{"version":3,"file":"static/js/main.b23bd8ed.js","mappings":"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AQ,sEACRQ,QAAU,eACVC,KAAO,gFACPC,MAAQ,gbAGZ,CACIN,GAAK,GACLJ,MAAQ,uDACRQ,QAAU,eACVE,MAAQ,0PAGZ,CACIN,GAAK,GACLJ,MAAQ,0BACRQ,QAAU,eACVE,MAAQ,6aC4chB,EApiBI,CACI,CACIN,GAAI,EACJJ,MAAO,8BACPW,MAAQ,GACRC,MAAO,CACH,CACIC,WAAY,wCACZC,IAAK,KAET,CACID,WAAY,6CACZC,IAAK,eAET,CACID,WAAY,sBACZC,IAAK,UAET,CACID,WAAY,kGACZC,IAAK,eAET,CACID,WAAY,iCACZC,IAAK,UAKjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,gCACZC,IAAK,KAET,CACID,WAAY,8EACZC,IAAK,YAET,CACID,WAAY,uBACZC,IAAK,QAET,CACID,WAAY,uCACZC,IAAK,QAET,CACID,WAAY,sEACZC,IAAK,cAKjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,sDACZC,IAAK,KAET,CACID,WAAY,mDACZC,IAAK,aAET,CACID,WAAY,uHACZC,IAAK,UAET,CACID,WAAY,yBACZC,IAAK,WAET,CACID,WAAY,kGACZC,IAAK,aAET,CACID,WAAY,2JACZC,IAAK,kBAKjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,qBACZC,IAAK,SAET,CACID,WAAY,8EACZC,IAAK,KAET,CACID,WAAY,uFACZC,IAAK,UAET,CACID,WAAY,+CACZC,IAAK,aAET,CACID,WAAY,2BACZC,IAAK,SAET,CACID,WAAY,uBACZC,IAAK,cAIb,CACAV,GAAI,GACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,qCACZC,IAAK,KAET,CACID,WAAY,kCACZC,IAAK,MAET,CACID,WAAY,kDACZC,IAAK,QAET,CACID,WAAY,qDACZC,IAAK,WAET,CACID,WAAY,qCACZC,IAAK,cAET,CACID,WAAY,iFACZC,IAAK,aAET,CACID,WAAY,mDACZC,IAAK,eAIjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,iCACZC,IAAK,KAET,CACID,WAAY,qFACZC,IAAK,SAET,CACID,WAAY,oHACZC,IAAK,aACN,CACCD,WAAY,qBACZC,IAAK,YAET,CACID,WAAY,8FACZC,IAAK,UAET,CACID,WAAY,6CACZC,IAAK,iBAET,CACID,WAAY,uDACZC,IAAK,WAKjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,gHACZC,IAAK,QAET,CACID,WAAY,uDACZC,IAAK,SAET,CACID,WAAY,wEACZC,IAAK,QAET,CACID,WAAY,sFACZC,IAAK,UAET,CACID,WAAY,oDACZC,IAAK,YAET,CACID,WAAY,0FACZC,IAAK,kBAET,CACID,WAAY,sFACZC,IAAK,gBAIjB,CACIV,GAAI,GACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,+FACZC,IAAK,KAET,CACID,WAAY,kDACZC,IAAK,UAET,CACID,WAAY,uDACZC,IAAK,OAET,CACID,WAAY,uBACZC,IAAK,SAET,CACID,WAAY,+DACZC,IAAK,SAET,CACID,WAAY,gDACZC,IAAK,UAET,CACID,WAAY,iFACZC,IAAK,WAET,CACID,WAAY,2CACZC,IAAK,gBAKjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,kJACZC,IAAK,UAET,CACID,WAAY,sCACZC,IAAK,QAET,CACID,WAAY,kCACZC,IAAK,SAET,CACID,WAAY,4CACZC,IAAK,gBAET,CACID,WAAY,2EACZC,IAAK,SAET,CACID,WAAY,8KACZC,IAAK,WAET,CACID,WAAY,0GACZC,IAAK,eAIjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,kEACZC,IAAK,UAET,CACID,WAAY,0FACZC,IAAK,QAET,CACID,WAAY,iDACZC,IAAK,UAET,CACID,WAAY,8EACZC,IAAK,cAET,CACID,WAAY,4DACZC,IAAK,eAET,CACID,WAAY,uCACZC,IAAK,WAET,CACID,WAAY,6JACZC,IAAK,eAIjB,CACIV,GAAI,EACJJ,MAAO,8BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,mDACZC,IAAK,OAET,CACID,WAAY,oGACZC,IAAK,SAET,CACID,WAAY,uDACZC,IAAK,SAET,CACID,WAAY,gBACZC,IAAK,UAET,CACID,WAAY,sDACZC,IAAK,WAET,CACID,WAAY,8HACZC,IAAK,cAET,CACID,WAAY,oDACZC,IAAK,qBAIjB,CACIV,GAAI,GACJJ,MAAO,6BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,2BACZC,IAAK,MAET,CACID,WAAY,iCACZC,IAAK,OAET,CACID,WAAY,mDACZC,IAAK,QAET,CACID,WAAY,+BACZC,IAAK,UAET,CACID,WAAY,0FACZC,IAAK,cAET,CACID,WAAY,wIACZC,IAAK,WAET,CACID,WAAY,yHACZC,IAAK,cAET,CACID,WAAY,0DACZC,IAAK,iBAIjB,CACIV,GAAI,GACJJ,MAAO,kDACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,yCACZC,IAAK,KAET,CACID,WAAY,sEACZC,IAAK,QAET,CACID,WAAY,wBACZC,IAAK,QAET,CACID,WAAY,wCACZC,IAAK,SAET,CACID,WAAY,qHACZC,IAAK,UAET,CACID,WAAY,wFACZC,IAAK,cAET,CACID,WAAY,kGACZC,IAAK,WAET,CACID,WAAY,8EACZC,IAAK,WAIjB,CACIV,GAAI,GACJJ,MAAO,6BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,aACZC,IAAK,SAET,CACID,WAAY,aACZC,IAAK,QAET,CACID,WAAY,aACZC,IAAK,UAET,CACID,WAAY,aACZC,IAAK,UAET,CACID,WAAY,aACZC,IAAK,WAKjB,CACIV,GAAI,GACJJ,MAAO,6BACPW,MAAQ,IACRC,MAAO,CACH,CACIC,WAAY,aACZC,IAAK,OAET,CACID,WAAY,aACZC,IAAK,UAET,CACID,WAAY,aACZC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EACJJ,MAAO,mDACPuB,KAAO,CACH,CACIf,QAAS,YACTM,IAAK,eAET,CACIN,QAAS,YACTM,IAAK,mBAET,CACIN,QAAS,YACTM,IAAK,cAET,CACIN,QAAS,YACTM,IAAK,cAET,CACIN,QAAS,YACTM,IAAK,cAIjB,CACIV,GAAI,EACJJ,MAAO,mEACPuB,KAAO,CACH,CACIf,QAAS,YACTM,IAAK,gBAET,CACIN,QAAS,YACTM,IAAK,eAET,CACIN,QAAS,YACTM,IAAK,cAET,CACIN,QAAS,YACTM,IAAK,aAET,CACIN,QAAS,YACTM,IAAK,aAIjB,CACIV,GAAI,EACJJ,MAAO,gDACPuB,KAAO,CACH,CACIf,QAAS,YACTM,IAAK,aAET,CACIN,QAAS,YACTM,IAAK,eAET,CACIN,QAAS,YACTM,IAAK,YAET,CACIN,QAAS,YACTM,IAAK,gBAET,CACIN,QAAS,YACTM,IAAK,cAIjB,CACIV,GAAI,EACJJ,MAAO,4CACPuB,KAAO,CACH,CACIf,QAAS,YACTM,IAAK,gBAET,CACIN,QAAS,YACTM,IAAK,cAET,CACIN,QAAS,YACTM,IAAK,kBAET,CACIN,QAAS,YACTM,IAAK,WAET,CACIN,QAAS,YACTM,IAAK,gBAIjB,CACIV,GAAI,EACJJ,MAAO,qDACPuB,KAAO,CACH,CACIf,QAAS,YACTM,IAAK,aAET,CACIN,QAAS,YACTM,IAAK,cAET,CACIN,QAAS,YACTM,IAAK,eAET,CACIN,QAAS,YACTM,IAAK,eAET,CACIN,QAAS,YACTM,IAAK,mBAIjB,CACIV,GAAI,EACJJ,MAAO,0CACPuB,KAAO,CACH,CACIf,QAAS,YACTM,IAAK,eAET,CACIN,QAAS,YACTM,IAAK,mBAET,CACIN,QAAS,YACTM,IAAK,gBAET,CACIN,QAAS,YACTM,IAAK,iBAET,CACIN,QAAS,YACTM,IAAK,cAIjB,CACIV,GAAI,EACJJ,MAAO,+CACPuB,KAAO,CACH,CACIf,QAAS,YACTM,IAAK,gBAET,CACIN,QAAS,YACTM,IAAK,gBAET,CACIN,QAAS,YACTM,IAAK,iBAET,CACIN,QAAS,YACTM,IAAK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EACZC,IAAK,WAET,CACID,WAAY,iFACZC,IAAK,aAId,CACCV,GAAI,MACJJ,MAAO,kBACP4D,WAAY,GACZC,YAAa,GACblD,MAAO,GACPC,MAAO,CACH,CACIC,WAAY,qDACZC,IAAK,KAET,CACID,WAAY,0DACZC,IAAK,UAET,CACID,WAAY,8BACZC,IAAK,cAET,CACID,WAAY,kEACZC,IAAK,aAET,CACID,WAAY,8FACZC,IAAK,cAET,CACID,WAAY,+EACZC,IAAK,cAIjB,CACIV,GAAI,MACJJ,MAAO,kDACP4D,WAAY,GACZE,YAAa,IACblD,MAAO,CACH,CACIE,IAAK,WACLD,WAAY,0FACZS,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAEjC,CACIR,IAAK,aACLD,WAAY,gJACZS,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAEvC,CACIR,IAAK,YACLD,WAAY,gEACZS,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,MAGhC,CACClB,GAAI,MACJJ,MAAO,kBACP4D,WAAY,GACZC,YAAa,IACblD,MAAO,IACPC,MAAO,CACH,CACIC,WAAY,wCACZC,IAAK,QAGT,CACID,WAAY,2CACZC,IAAK,SAET,CACID,WAAY,uDACZC,IAAK,UAET,CACID,WAAY,uCACZC,IAAK,aAET,CACID,WAAY,4CACZC,IAAK,UAET,CACID,WAAY,uFACZC,IAAK,UAId,CACCV,GAAI,MACJJ,MAAO,qBACP4D,WAAY,GACZC,YAAa,IACblD,MAAO,IACPC,MAAO,CACH,CACIC,WAAY,0EACZC,IAAK,KAET,CACID,WAAY,0BACZC,IAAK,OAET,CACID,WAAY,mEACZC,IAAK,OAET,CACID,WAAY,sCACZC,IAAK,SAET,CACID,WAAY,4CACZC,IAAK,UAET,CACID,WAAY,qEACZC,IAAK,WAET,CACID,WAAY,mDACZC,IAAK,YAIjB,CACIV,GAAI,MACJJ,MAAO,kDACP4D,WAAY,GACZE,YAAa,IACblD,MAAO,CACH,CACIE,IAAK,YACLD,WAAY,gEACZS,MAAO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ACZC,IAAK,YAIjB,CACIV,GAAI,MACJJ,MAAO,iBACP4D,WAAY,IACZC,YAAa,GACblD,MAAO,GACPC,MAAO,CACH,CACIC,WAAY,aACZC,IAAK,SAET,CACID,WAAY,aACZC,IAAK,SAET,CACID,WAAY,aACZC,IAAK,OAET,CACID,WAAY,aACZC,IAAK,QAET,CACID,WAAY,aACZC,IAAK,cAET,CACID,WAAY,aACZC,IAAK,WAIjB,CACIV,GAAI,MACJJ,MAAO,iBACP4D,WAAY,IACZC,YAAa,IACblD,MAAO,IACPC,MAAO,CACH,CACIC,WAAY,6CACZC,IAAK,MAET,CACID,WAAY,gCACZC,IAAK,OAET,CACID,WAAY,4CACZC,IAAK,OAET,CACID,WAAY,uBACZC,IAAK,QAET,CACID,WAAY,4EACZC,IAAK,QAET,CACID,WAAY,mCACZC,IAAK,QAET,CACID,WAAY,qEACZC,IAAK,SAET,CACID,WAAY,sDACZC,IAAK,SAET,CACID,WAAY,mFACZC,IAAK,SAET,CACID,WAAY,yFACZC,IAAK,gBAIjB,CACIV,GAAI,MACJJ,MAAO,iBACP4D,WAAY,IACZC,YAAa,GACblD,MAAO,GACPC,MAAO,CACH,CACIC,WAAY,aACZC,IAAK,UAET,CACID,WAAY,aACZC,IAAK,QAET,CACID,WAAY,aACZC,IAAK,WAET,CACID,WAAY,aACZC,IAAK,SAET,CACID,WAAY,aACZC,IAAK,WAET,CACID,WAAY,aACZC,IAAK,aAId,CACCV,GAAI,MACJJ,MAAO,GACPyB,OAAQ,QACRmC,WAAY,IACZG,YAAa,EACbrD,MAAO,o0BAEX,CAEIN,GAAI,MACJwD,WAAY,IACZG,YAAa,EACb/D,MAAO,+BACP0B,QAAS,6BACThB,MAAO,qeAEX,CACIN,GAAI,MACJJ,MAAO,GACPyB,OAAQ,QACRC,QAAS,wCACTkC,WAAY,IACZG,YAAa,EACbrD,MAAO,gxBAEX,CACIN,GAAI,MACJwD,WAAY,IACZG,YAAa,EACb/D,MAAO,yCACPuB,KAAM,CACF,CACIf,QAAS,eACTM,IAAK,aACLU,OAAQ,8FAEZ,CACIhB,QAA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P4D,WAAY,IACZC,YAAa,IACblD,MAAO,IACPC,MAAO,CACH,CACIC,WAAY,iDACZC,IAAK,KAET,CACID,WAAY,QACZC,IAAK,MAET,CACID,WAAY,qBACZC,IAAK,OAET,CACID,WAAY,4BACZC,IAAK,SAET,CACID,WAAY,qBACZC,IAAK,SAET,CACID,WAAY,6CACZC,IAAK,SAET,CACID,WAAY,gDACZC,IAAK,YAIjB,CACIV,GAAI,MACJJ,MAAO,kBACP4D,WAAY,IACZC,YAAa,IACblD,MAAO,IACPC,MAAO,CACH,CACIC,WAAY,mDACZC,IAAK,KAET,CACID,WAAY,wCACZC,IAAK,MAET,CACID,WAAY,sBACZC,IAAK,OAET,CACID,WAAY,2CACZC,IAAK,QAET,CACID,WAAY,yCACZC,IAAK,SAET,CACID,WAAY,mEACZC,IAAK,UAET,CACID,WAAY,2DACZC,IAAK,UAET,CACID,WAAY,qEACZC,IAAK,eAKjB,CACIV,GAAI,MACJJ,MAAO,kBACP4D,WAAY,IACZC,YAAa,IACblD,MAAO,IACPC,MAAO,CACH,CACIC,WAAY,cACZC,IAAK,SAET,CACID,WAAY,cACZC,IAAK,SAET,CACID,WAAY,cACZC,IAAK,SAET,CACID,WAAY,cACZC,IAAK,YAET,CACID,WAAY,cACZC,IAAK,WAET,CACID,WAAY,cACZC,IAAK,cAET,CACID,WAAY,cACZC,IAAK,mBAQjB,CACIV,GAAI,MACJJ,MAAO,kBACP4D,WAAY,IACZC,YAAa,IACblD,MAAO,IACPC,MAAO,CACH,CACIC,WAAY,gBACZC,IAAK,YAET,CACID,WAAY,gBACZC,IAAK,UAET,CACID,WAAY,gBACZC,IAAK,YAET,CACID,WAAY,gBACZC,IAAK,SAET,CACID,WAAY,gBACZC,IAAK,YAET,CACID,WAAY,gBACZC,IAAK,WAET,CACID,WAAY,gBACZC,IAAK,cAOhB,CACAV,GAAI,MACLwD,WAAY,IACZG,YAAa,EAEb/D,MAAQ,mBACR0B,QAAU,wFACVhB,MAAQ,4xBAEZ,CACIN,GAAI,MACJwD,WAAY,IACZG,YAAa,EACb/D,M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0B,EACA,CAAC,GAAI,GACL,EACA,EACA,GACA,EACA,EACA,EACA50B,EACA,CAAC,EAAG,GACJ,EACA,EACA,EACA40B,EACA,CAAC,GAAI,GACLA,EACA,CAAC,GAAI,GACL,EACA,EACA,IAEA4xE,OAAQ2oD,EAAE,CACV,EACA,EACA,EACA,GACA,GACAnvJ,EACA,CAAC,GAAI,GAAI,GACT,EACA,EACAA,EACA,CAAC,EAAG,EAAG,GACP40B,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,GACL,EACA,EACA,GACA,GACAA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,GACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,GAAI,IACL,EACAA,EACA,CAAC,IAAK,IACN,GACAA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJ,EACA,EACA,GACAA,EACA,CAAC,IAAK,IACNA,EACA,CAAC,GAAI,MAEL/xB,KAAMssJ,EAAE,CACRnvJ,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJ,EACAA,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJ40B,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,MAEN+B,MAAOw4H,EAAE,CACT,EACA,EACA,EACA,EACA,EACA,GACAv6H,EACA,CAAC,EAAG,GACJ,GACA,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,GAAI,GACL,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,KAEJk+F,KAAMq8B,EAAE,CACRnvJ,EACA,CAAC,EAAG,KACJA,EACA,CAAC,EAAG,GACJ40B,EACA,CAAC,EAAG,GACJA,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","sources":["components/commun/adSense.js","components/commun/localStorage.js","components/commun/withRouter.js","../node_modules/antd/es/tag/style/index.js","../node_modules/antd/es/_util/capitalize.js","../node_modules/antd/es/tag/CheckableTag.js","../node_modules/antd/es/tag/index.js","components/principal/SousMenu.js","data/DonneeDictee.js","data/DonneeListeMots.js","data/DonneeMemoire.js","data/DonneesMots.js","data/DonneeOrthographeMot.js","data/DonneePhraseErreur.js","data/DonneePhraseTrou.js","data/DonneMasterMot.js","data/DonneeVerbeConjugaison.js","data/DonneeDesordre.js","data/DonneeQcmMelange.js","data/DonneeBoogle.js","data/DonneeQcm.js","data/AccesDonnees.js","data/DonneesConcoursJeux.js","data/DonneesConcoursOrthographe.js","data/donneesConcours.js","data/donneesJeuxConcours.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@ant-design/cssinjs/es/Cache.js","../node_modules/@ant-design/cssinjs/es/StyleContext.js","../node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","../node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","../node_modules/@ant-design/cssinjs/es/util.js","../node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/@ant-design/cssinjs/es/linters/contentQuotesLinter.js","../node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js","../node_modules/@ant-design/cssinjs/es/Keyframes.js","../node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","../node_modules/@ant-design/cssinjs/es/theme/Theme.js","../node_modules/@ant-design/cssinjs/es/theme/createTheme.js","../node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/antd/es/_util/responsiveObserver.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/_util/wave/style.js","../node_modules/antd/es/_util/wave/util.js","../node_modules/antd/es/_util/wave/WaveEffect.js","../node_modules/antd/es/_util/wave/useWave.js","../node_modules/antd/es/_util/wave/index.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useRaf.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/index.js","../node_modules/antd/es/tabs/hooks/useAnimateConfig.js","../node_modules/antd/es/tabs/hooks/useLegacyItems.js","../node_modules/antd/es/tabs/TabPane.js","../node_modules/antd/es/tabs/style/motion.js","../node_modules/antd/es/tabs/style/index.js","../node_modules/antd/es/tabs/index.js","../node_modules/antd/es/card/Grid.js","../node_modules/antd/es/card/style/index.js","../node_modules/antd/es/card/Card.js","../node_modules/antd/es/card/Meta.js","../node_modules/antd/es/card/index.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/col/index.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/locale/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/config-provider/style/index.js","../node_modules/antd/es/config-provider/hooks/useTheme.js","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/antd/es/grid/style/index.js","../node_modules/antd/es/locale/LocaleReceiver.js","../node_modules/antd/es/locale/context.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/grid/row.js","../node_modules/antd/es/row/index.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/antd/es/skeleton/Element.js","../node_modules/antd/es/skeleton/style/index.js","../node_modules/antd/es/skeleton/Avatar.js","../node_modules/antd/es/skeleton/Button.js","../node_modules/@ant-design/icons-svg/es/asn/DotChartOutlined.js","../node_modules/@ant-design/icons/es/icons/DotChartOutlined.js","../node_modules/antd/es/skeleton/Node.js","../node_modules/antd/es/skeleton/Image.js","../node_modules/antd/es/skeleton/Input.js","../node_modules/antd/es/skeleton/Paragraph.js","../node_modules/antd/es/skeleton/Title.js","../node_modules/antd/es/skeleton/Skeleton.js","../node_modules/antd/es/skeleton/index.js","../node_modules/antd/es/style/index.js","../node_modules/antd/es/style/motion/motion.js","../node_modules/antd/es/style/motion/slide.js","../node_modules/antd/es/style/motion/zoom.js","../node_modules/antd/es/style/roundedArrow.js","../node_modules/antd/es/style/placementArrow.js","../node_modules/antd/es/style/presetColor.js","../node_modules/antd/es/theme/interface/presetColors.js","../node_modules/antd/es/theme/themes/shared/genControlHeight.js","../node_modules/antd/es/theme/themes/shared/genRadius.js","../node_modules/antd/es/theme/themes/default/colorAlgorithm.js","../node_modules/antd/es/theme/themes/default/colors.js","../node_modules/antd/es/theme/themes/shared/genFontMapToken.js","../node_modules/antd/es/theme/themes/shared/genFontSizes.js","../node_modules/antd/es/theme/util/getAlphaColor.js","../node_modules/antd/es/theme/util/alias.js","../node_modules/antd/es/theme/internal.js","../node_modules/antd/es/theme/themes/default/index.js","../node_modules/antd/es/theme/themes/shared/genColorMapToken.js","../node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","../node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","../node_modules/antd/es/version/version.js","../node_modules/antd/es/theme/themes/seed.js","../node_modules/antd/es/theme/util/genComponentStyleHook.js","../node_modules/antd/es/theme/util/statistic.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/tooltip/style/index.js","../node_modules/antd/es/tooltip/util.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/tooltip/PurePanel.js","../node_modules/classnames/index.js","../node_modules/css-unit-converter/index.js","../node_modules/d3-path/src/path.js","../node_modules/d3-array/src/range.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/constant.js","../node_modules/decimal.js-light/decimal.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/eventemitter3/index.js","../node_modules/fast-equals/src/utils.ts","../node_modules/fast-equals/src/comparator.ts","../node_modules/fast-equals/src/index.ts","../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/_apply.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.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/_baseGt.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_createSet.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/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.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/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.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/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.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/_strictIndexOf.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/constant.js","../node_modules/lodash/debounce.js","../node_modules/lodash/eq.js","../node_modules/lodash/every.js","../node_modules/lodash/find.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/flatMap.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/isBoolean.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/isNil.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/last.js","../node_modules/lodash/map.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/max.js","../node_modules/lodash/memoize.js","../node_modules/lodash/min.js","../node_modules/lodash/noop.js","../node_modules/lodash/now.js","../node_modules/lodash/property.js","../node_modules/lodash/range.js","../node_modules/lodash/some.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/throttle.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/upperFirst.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/cloneDeep.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/hooks/useBatchFrameState.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/propertyUtils.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-util/es/React/render.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-util/es/omit.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/rc-util/node_modules/react-is/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-helmet/es/Helmet.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-router-dom/index.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-side-effect/lib/index.js","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-transition-group/index.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/utils/PropTypes.js","../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/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/recharts/es6/component/Label.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/react-resize-detector/node_modules/tslib/tslib.es6.js","../node_modules/react-resize-detector/node_modules/lodash/isObject.js","../node_modules/react-resize-detector/node_modules/lodash/_root.js","../node_modules/react-resize-detector/node_modules/lodash/_freeGlobal.js","../node_modules/react-resize-detector/node_modules/lodash/now.js","../node_modules/react-resize-detector/node_modules/lodash/_trimmedEndIndex.js","../node_modules/react-resize-detector/node_modules/lodash/_baseTrim.js","../node_modules/react-resize-detector/node_modules/lodash/_Symbol.js","../node_modules/react-resize-detector/node_modules/lodash/_getRawTag.js","../node_modules/react-resize-detector/node_modules/lodash/_objectToString.js","../node_modules/react-resize-detector/node_modules/lodash/_baseGetTag.js","../node_modules/react-resize-detector/node_modules/lodash/isObjectLike.js","../node_modules/react-resize-detector/node_modules/lodash/isSymbol.js","../node_modules/react-resize-detector/node_modules/lodash/toNumber.js","../node_modules/react-resize-detector/node_modules/lodash/debounce.js","../node_modules/react-resize-detector/node_modules/lodash/throttle.js","../node_modules/react-resize-detector/src/utils.ts","../node_modules/react-resize-detector/src/ResizeDetector.tsx","../node_modules/react-resize-detector/src/useResizeDetector.ts","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/recharts/es6/component/Text.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/types.js","../node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/recharts/node_modules/react-is/index.js","../node_modules/reduce-css-calc/dist/index.js","../node_modules/reduce-css-calc/dist/lib/convert.js","../node_modules/reduce-css-calc/dist/lib/reducer.js","../node_modules/reduce-css-calc/dist/lib/stringifier.js","../node_modules/reduce-css-calc/dist/parser.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/index.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/parse.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/stringify.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/unit.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/walk.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.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","../webpack/bootstrap","../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","../node_modules/antd/es/avatar/SizeContext.js","../node_modules/antd/es/avatar/style/index.js","../node_modules/antd/es/avatar/avatar.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/antd/es/popover/style/index.js","../node_modules/antd/es/popover/PurePanel.js","../node_modules/antd/es/popover/index.js","../node_modules/antd/es/avatar/group.js","../node_modules/antd/es/avatar/index.js","components/commun/Tableau.js","components/commun/Graph.js","components/principal/Presentation.js","components/commun/ScrollToAnchor.js","components/principal/Dictee.js","components/principal/Grammaire.js","components/principal/JeuxMots.js","components/principal/Conjugaison.js","../node_modules/antd/es/style/motion/collapse.js","../node_modules/antd/es/menu/style/horizontal.js","../node_modules/antd/es/menu/style/rtl.js","../node_modules/antd/es/menu/style/theme.js","../node_modules/antd/es/menu/style/vertical.js","../node_modules/antd/es/menu/style/index.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/hooks/useItems.js","../node_modules/antd/es/menu/menu.js","../node_modules/antd/es/menu/index.js","../node_modules/@ant-design/icons-svg/es/asn/HomeFilled.js","../node_modules/@ant-design/icons/es/icons/HomeFilled.js","components/principal/menu.js","components/commun/PageFaute.js","components/principal/Routeur.js","components/principal/App.js","reportWebVitals.js","index.js"],"sourcesContent":["import React, { Component } from 'react';\r\nexport default class Ad extends Component {\r\n\r\n componentDidMount() {\r\n \r\n \r\n (window.adsbygoogle = window.adsbygoogle || []).push({});\r\n \r\n }\r\n render() {\r\n return
\r\n \r\n }\r\n\r\n}\r\n","function addGame(name, value)\r\n{\r\n if (localStorage.getItem(name) === null)\r\n {\r\n let tab = [value];\r\n localStorage.setItem(name,JSON.stringify(tab));\r\n }\r\n else\r\n {\r\n let tab = JSON.parse(localStorage.getItem(name));\r\n if (!tab.includes(value))\r\n {\r\n tab.push(value);\r\n localStorage.setItem(name, JSON.stringify(tab));\r\n }\r\n }\r\n}\r\n\r\nfunction readLocalStorage(name)\r\n{\r\n if (localStorage.getItem(name) !== null)\r\n {\r\n return JSON.parse(localStorage.getItem(name));\r\n }\r\n return [];\r\n}\r\n\r\n\r\nfunction addFirstName(value)\r\n{ \r\n localStorage.setItem(\"prenom\",value); \r\n}\r\n\r\nfunction readFirstName()\r\n{\r\n if (localStorage.getItem('prenom') !== null)\r\n {\r\n return localStorage.getItem(\"prenom\");\r\n }\r\n return null;\r\n}\r\n\r\n\r\nfunction addGameContest(contest, level)\r\n{\r\n let tab = [];\r\n const attempt = 1;\r\n if (localStorage.getItem('contestOrthographe') == null)\r\n {\r\n tab.push({contest, level, attempt});\r\n }\r\n else{\r\n tab = JSON.parse(localStorage.getItem('contestOrthographe'));\r\n let newValue = tab.find(x => x.contest === contest);\r\n if (newValue === undefined)\r\n {\r\n tab.push({contest, level, attempt});\r\n }\r\n else\r\n {\r\n newValue.level = level;\r\n if (level === 0) newValue.attempt = 1;\r\n }\r\n }\r\n localStorage.setItem('contestOrthographe',JSON.stringify(tab));\r\n}\r\n\r\nfunction addAttemptGameContest(contest)\r\n{\r\n let tab = [];\r\n\r\n if (localStorage.getItem('contestOrthographe') != null)\r\n {\r\n tab = JSON.parse(localStorage.getItem('contestOrthographe'));\r\n let newValue = tab.find(x => x.contest === contest);\r\n if (newValue !== undefined)\r\n {\r\n newValue.attempt++; \r\n }\r\n localStorage.setItem('contestOrthographe',JSON.stringify(tab));\r\n }\r\n}\r\n\r\nfunction readGameContest(contest)\r\n{\r\n\r\n if (localStorage.getItem('contestOrthographe') !== null)\r\n {\r\n let tab = JSON.parse(localStorage.getItem('contestOrthographe'));\r\n let tabContest = tab.find(x => x.contest === contest);\r\n if (tabContest !== undefined) return tabContest.level;\r\n\r\n }\r\n return -1;\r\n}\r\n\r\n\r\nfunction readAttemptContest(contest)\r\n{\r\n\r\n if (localStorage.getItem('contestOrthographe') !== null)\r\n {\r\n let tab = JSON.parse(localStorage.getItem('contestOrthographe'));\r\n let tabContest = tab.find(x => x.contest === contest);\r\n if (tabContest !== undefined) return tabContest.attempt;\r\n\r\n }\r\n return -1;\r\n}\r\n\r\nfunction readInfoContest(contest)\r\n{\r\n\r\n if (localStorage.getItem('contestOrthographe') !== null)\r\n {\r\n let tab = JSON.parse(localStorage.getItem('contestOrthographe'));\r\n let tabContest = tab.find(x => x.contest === contest);\r\n if (tabContest !== undefined) return tabContest;\r\n\r\n }\r\n return -1;\r\n}\r\n\r\n\r\nexport {addGame, readLocalStorage, addFirstName, readFirstName, addGameContest, readGameContest, addAttemptGameContest, readAttemptContest, readInfoContest};","import {\r\n useLocation,\r\n useNavigate,\r\n useParams,\r\n } from \"react-router-dom\";\r\n \r\n export default function withRouter(Component) {\r\n function ComponentWithRouterProp(props) {\r\n let location = useLocation();\r\n let navigate = useNavigate();\r\n let params = useParams();\r\n return (\r\n \r\n );\r\n }\r\n \r\n return ComponentWithRouterProp;\r\n }","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport capitalize from '../../_util/capitalize';\nimport { genPresetColor, resetComponent } from '../../style';\nconst genTagStatusStyle = (token, status, cssVariableType) => {\n const capitalizedCssVariableType = capitalize(cssVariableType);\n return {\n [`${token.componentCls}-${status}`]: {\n color: token[`color${cssVariableType}`],\n background: token[`color${capitalizedCssVariableType}Bg`],\n borderColor: token[`color${capitalizedCssVariableType}Border`]\n }\n };\n};\nconst genPresetStyle = token => genPresetColor(token, (colorKey, _ref) => {\n let {\n textColor,\n lightBorderColor,\n lightColor,\n darkColor\n } = _ref;\n return {\n [`${token.componentCls}-${colorKey}`]: {\n color: textColor,\n background: lightColor,\n borderColor: lightBorderColor,\n // Inverse color\n '&-inverse': {\n color: token.colorTextLightSolid,\n background: darkColor,\n borderColor: darkColor\n }\n }\n };\n});\nconst genBaseStyle = token => {\n const {\n paddingXXS,\n lineWidth,\n tagPaddingHorizontal\n } = token;\n const paddingInline = tagPaddingHorizontal - lineWidth;\n const iconMarginInline = paddingXXS - lineWidth;\n return {\n // Result\n [token.componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n height: 'auto',\n marginInlineEnd: token.marginXS,\n paddingInline,\n fontSize: token.tagFontSize,\n lineHeight: `${token.tagLineHeight}px`,\n whiteSpace: 'nowrap',\n background: token.tagDefaultBg,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusSM,\n opacity: 1,\n transition: `all ${token.motionDurationMid}`,\n textAlign: 'start',\n // RTL\n '&&-rtl': {\n direction: 'rtl'\n },\n '&, a, a:hover': {\n color: token.tagDefaultColor\n },\n [`${token.componentCls}-close-icon`]: {\n marginInlineStart: iconMarginInline,\n color: token.colorTextDescription,\n fontSize: token.tagIconSize,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n [`&&-has-color`]: {\n borderColor: 'transparent',\n [`&, a, a:hover, ${token.iconCls}-close, ${token.iconCls}-close:hover`]: {\n color: token.colorTextLightSolid\n }\n },\n [`&-checkable`]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n cursor: 'pointer',\n '&:not(&-checked):hover': {\n color: token.colorPrimary,\n backgroundColor: token.colorFillSecondary\n },\n '&:active, &-checked': {\n color: token.colorTextLightSolid\n },\n '&-checked': {\n backgroundColor: token.colorPrimary,\n '&:hover': {\n backgroundColor: token.colorPrimaryHover\n }\n },\n '&:active': {\n backgroundColor: token.colorPrimaryActive\n }\n },\n [`&-hidden`]: {\n display: 'none'\n },\n // To ensure that a space will be placed between character and `Icon`.\n [`> ${token.iconCls} + span, > span + ${token.iconCls}`]: {\n marginInlineStart: paddingInline\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tag', token => {\n const {\n fontSize,\n lineHeight,\n lineWidth,\n fontSizeIcon\n } = token;\n const tagHeight = Math.round(fontSize * lineHeight);\n const tagFontSize = token.fontSizeSM;\n const tagLineHeight = tagHeight - lineWidth * 2;\n const tagDefaultBg = token.colorFillAlter;\n const tagDefaultColor = token.colorText;\n const tagToken = mergeToken(token, {\n tagFontSize,\n tagLineHeight,\n tagDefaultBg,\n tagDefaultColor,\n tagIconSize: fontSizeIcon - 2 * lineWidth,\n tagPaddingHorizontal: 8 // Fixed padding.\n });\n\n return [genBaseStyle(tagToken), genPresetStyle(tagToken), genTagStatusStyle(tagToken, 'success', 'Success'), genTagStatusStyle(tagToken, 'processing', 'Info'), genTagStatusStyle(tagToken, 'error', 'Error'), genTagStatusStyle(tagToken, 'warning', 'Warning')];\n});","export default function capitalize(str) {\n if (typeof str !== 'string') {\n return str;\n }\n const ret = str.charAt(0).toUpperCase() + str.slice(1);\n return ret;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst CheckableTag = _a => {\n var {\n prefixCls: customizePrefixCls,\n className,\n checked,\n onChange,\n onClick\n } = _a,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"checked\", \"onChange\", \"onClick\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const handleClick = e => {\n onChange === null || onChange === void 0 ? void 0 : onChange(!checked);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, {\n [`${prefixCls}-checkable`]: true,\n [`${prefixCls}-checkable-checked`]: checked\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({}, restProps, {\n className: cls,\n onClick: handleClick\n })));\n};\nexport default CheckableTag;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { isPresetColor, isPresetStatusColor } from '../_util/colors';\nimport Wave from '../_util/wave';\nimport warning from '../_util/warning';\nimport CheckableTag from './CheckableTag';\nimport useStyle from './style';\nconst InternalTag = (_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n className,\n style,\n children,\n icon,\n color,\n onClose,\n closeIcon,\n closable = false\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"className\", \"style\", \"children\", \"icon\", \"color\", \"onClose\", \"closeIcon\", \"closable\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [visible, setVisible] = React.useState(true);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Tag', '`visible` is deprecated, please use `visible && ` instead.') : void 0;\n }\n React.useEffect(() => {\n if ('visible' in props) {\n setVisible(props.visible);\n }\n }, [props.visible]);\n const isInternalColor = isPresetColor(color) || isPresetStatusColor(color);\n const tagStyle = Object.assign({\n backgroundColor: color && !isInternalColor ? color : undefined\n }, style);\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const tagClassName = classNames(prefixCls, {\n [`${prefixCls}-${color}`]: isInternalColor,\n [`${prefixCls}-has-color`]: color && !isInternalColor,\n [`${prefixCls}-hidden`]: !visible,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n const handleCloseClick = e => {\n e.stopPropagation();\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n setVisible(false);\n };\n const renderCloseIcon = () => {\n if (closable) {\n return closeIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-icon`,\n onClick: handleCloseClick\n }, closeIcon) : /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`,\n onClick: handleCloseClick\n });\n }\n return null;\n };\n const isNeedWave = typeof props.onClick === 'function' || children && children.type === 'a';\n const iconNode = icon || null;\n const kids = iconNode ? /*#__PURE__*/React.createElement(React.Fragment, null, iconNode, /*#__PURE__*/React.createElement(\"span\", null, children)) : children;\n const tagNode = /*#__PURE__*/React.createElement(\"span\", Object.assign({}, props, {\n ref: ref,\n className: tagClassName,\n style: tagStyle\n }), kids, renderCloseIcon());\n return wrapSSR(isNeedWave ? /*#__PURE__*/React.createElement(Wave, null, tagNode) : tagNode);\n};\nconst Tag = /*#__PURE__*/React.forwardRef(InternalTag);\nif (process.env.NODE_ENV !== 'production') {\n Tag.displayName = 'Tag';\n}\nTag.CheckableTag = CheckableTag;\nexport default Tag;","\r\nimport React, { Component } from 'react';\r\nimport { donneesSuivantType } from '../../data/AccesDonnees';\r\nimport { Link } from 'react-router-dom';\r\nimport { Tag, Card } from 'antd';\r\nimport {readLocalStorage} from '../commun/localStorage';\r\n\r\n\r\nexport default class SousMenu extends Component {\r\n\r\n constructor(props)\r\n {\r\n super(props);\r\n this.type = props.type;\r\n this.donnees = donneesSuivantType(this.type);\r\n if (this.type === 'defijeux' || this.type === \"defigrammaire\") this.type = \"defiorthographe\";\r\n }\r\n \r\n render()\r\n {\r\n \r\n \r\n const dejaFait = readLocalStorage(this.type); \r\n return ( \r\n
\r\n {this.donnees.map((v, i) => \r\n {this.props.supprimer !== v.id &&
{v.titre}{(dejaFait !== null && dejaFait.includes(v.id))&&déjà fait}
}\r\n
)}\r\n
\r\n
)\r\n }\r\n }\r\n \r\n SousMenu.defaultProps = {\r\n supprimer : 'rien',\r\n titre: 'Les tests'\r\n };"," const DonneeDictee = [\r\n {\r\n id : 1,\r\n titre : \"Une dictée niveau facile (27 mots)\",\r\n fichier : 'dictee1.mp3',\r\n aide : \"Le narrateur est un homme. Notez les deux orthographes : J'étais sûr qu'il était sur la table. \",\r\n texte : 'Le loup est dans la cour. C\\'est un grand loup avec un nez noir. Il est très maigre. Je suis sûr qu\\'il cherche à manger notre coq.'\r\n },\r\n {\r\n id : 2,\r\n titre : \"Une autre dictée facile (25 mots)\",\r\n fichier : 'dictee2.mp3',\r\n aide: \"Attention, la dictée est facile mais la plupart des erreurs proviennent de la ponctuation, il faut écrire le mot ensuite le point puis l'espace (comme on le fait normalement).\",\r\n texte : 'Je vais souvent me promener sous la pluie avec mes bottes et un chapeau de pluie. Je regarde l\\'eau du chemin. Elle va jusqu\\'au moulin.'\r\n },\r\n {\r\n id : 7,\r\n titre : \"Dictéee facile du certificat d'étude de 1965 (47 mots)\",\r\n fichier : 'dictee8.mp3',\r\n aide: \"Dans la première phrase avec Marie on peut hésiter entre le singulier et le pluriel, il faut utiliser le singulier.\",\r\n texte : 'Marie se sentait heureuse de retourner au champ. Le vieux chien l\\'accompagnait. Les vaches marchaient en une longue file docile et lente. La première en tête, la plus ancienne de la ferme, les menait toutes. C\\'était une grande vache rouge et blanche avec de hautes pattes maigres.'\r\n \r\n },\r\n {\r\n id : 3,\r\n titre : \"Dictée CM2 évaluation nationale 2013 (34 mots)\",\r\n fichier : 'dictee3.mp3',\r\n texte : 'Lorsque les garçons étaient plus jeunes, leur grand-mère leur racontait souvent des histoires d\\'autrefois. Les enfants se demandaient toujours si elle inventait pour eux ces récits merveilleux ou si elle les savait depuis longtemps.'\r\n },\r\n {\r\n id : 4,\r\n titre : \"Dictée CM2 évaluation nationale 2012 (49 mots)\",\r\n fichier : 'dictee4.mp3',\r\n texte : 'Pendant les dernières grandes vacances, au mois de juillet, toute la famille de Pierre a visité un zoo. Les lions étaient un peu endormis, ce sont des bêtes féroces qui ressemblent alors à des grosses peluches. Mais quand une lionne a soudain rugi, les visiteurs ont eu peur.'\r\n },\r\n {\r\n id : 5,\r\n titre : \"Dictée niveau troisième - brevet 2019 (72 mots)\",\r\n fichier : 'dictee5.mp3',\r\n texte : 'Dès qu\\'ils étaient au complet, ils partaient, promenant la raquette le long des grilles rouillées des jardins devant les maisons, avec un grand bruit qui réveillait le quartier et faisait bondir les chats endormis sous les glycines poussiéreuses. Ils couraient, traversant la rue, essayant de s’attraper, couverts déjà d’une bonne sueur, mais toujours dans la même direction, vers le champ, non loin de leur école, à quatre ou cinq rues de là.'\r\n },\r\n {\r\n id : 6,\r\n titre : \"Dictée niveau troisième - brevet des collèges (42 mots)\",\r\n aide : \"Rappel sur le point d'interrogation : texte[espace]?[espace]texte. On met une majuscule au mot qui suit le point d'interrogation si l'on considère que le point d'interrogation termine la phrase. Dans une date, seul le mois s’écrit en toutes lettres.\",\r\n fichier : 'dictee9.mp3',\r\n texte : 'D\\'où venait cet aérostat, véritable jouet de l\\'effroyable tempête ? De quel point du monde s\\'était-il élancé ? Il n\\'avait évidemment pas pu partir pendant l\\'ouragan. Or l\\'ouragan durait depuis cinq jours déjà et ses premiers symptômes s\\'étaient manifestés le 18 mars.'\r\n },\r\n \r\n {\r\n id : 8,\r\n titre : \"Dictée d’entrée en sixième en 1954 (58 mots)\",\r\n fichier : 'dictee6.mp3',\r\n texte : 'Pas une feuille ne bougeait, et dans ces beaux jardins que j\\'avais sous les yeux, les vignes espacées sur les pentes, au grand soleil qui fait les vins sucrés, les fruits d\\'Europe abrités dans un coin d\\'ombre, les petits orangers, les mandariniers en longues files microscopiques, tout gardait le même aspect morne, cette immobilité des feuilles attendant l\\'orage.'\r\n \r\n },\r\n {\r\n id : 9,\r\n titre : \"Dictée du Certificat d’études primaire de 1912 (53 mots)\",\r\n fichier : 'dictee7.mp3',\r\n aide: \"Bucheron peut s'écrire bûcheron ou bucheron, selon les rectifications orthographiques de 1990. Ici, nous n'acceptons que la version bucheron avec la nouvelle orthographe (30 ans déjà).\",\r\n texte : 'Il est mort, le grand chêne, le roi de la forêt. La cognée du bucheron l\\'a abattu dans la clairière où il se dressait solitaire et majestueux. Au bout du tronçon qui reste seul à la place où le tronc s\\'élevait, la sève, qui est le sang des plantes, monte et afflue encore.' \r\n },\r\n {\r\n id : 10,\r\n titre : \"Dictée classique avec quelques pièges (56 mots)\",\r\n fichier : 'dictee10.mp3',\r\n aide: \"Rappel sur le point d'exclamation : texte[espace]![espace]texte. Attention au participe passé employé avec le verbe avoir.\",\r\n texte : 'Je m\\'adresse à vous pour vous faire part d\\'un événement intéressant mais bouleversant. La voiture, accidentée dans un champ de maïs, que j\\'ai aperçue cette nuit dans mon cauchemar était la vôtre ! Or, malgré quelques troubles psychologiques, je fais encore partie des gens lucides. Mais je n\\'ai pas sorti ma plume pour développer ce point.'\r\n \r\n },\r\n {\r\n id : 11,\r\n titre : \"Dictée extraite du championnat suisse 2019 (difficile - 61 mots)\",\r\n fichier : 'dictee11.mp3',\r\n aide : \"Bien écouter la phrase au départ pour repérer les sujets des verbes.\",\r\n texte : 'Là où triomphaient naguère la symétrie, l\\'ordre et la mesure régnaient la confusion, l\\'enchevêtrement et la luxuriance. Il n\\'y avait plus ni parterre ni plate-bande. J\\'avais l\\'impression que la nature s\\'était plu à ensevelir mes souvenirs dans un linceul d\\'herbes folles. Les orties interdisaient l\\'accès à la cabane où nous avions couru cacher notre chagrin à la mort de notre grand-mère.'\r\n \r\n },\r\n {\r\n id : 12,\r\n titre : \"Dictée assez difficile de Bernard Pivot (40 mots)\",\r\n fichier : 'dictee12.mp3',\r\n texte : 'Elle coule, roule, s\\'enroule, la Loire, tendre ou impétueuse, entre vals et près. Ni les donjons qui s\\'y sont reflétés, ni les gentes dames qui s\\'y sont mirées, ni les amoureux qui y ont canoté n\\'ont réussi à la canaliser.'\r\n \r\n },\r\n {\r\n id : 13,\r\n titre : \"Dictée CM2 (66 mots)\",\r\n fichier : 'dictee42.mp3',\r\n texte : \"Le soir tombait. Papa et maman, inquiets, se demandaient pourquoi leurs quatre garçons n'étaient pas rentrés. Les gamins se sont certainement perdus. S'ils n'ont pas encore retrouvé leur chemin, nous les verrons arriver très fatigués à la maison. Pourquoi ne pas téléphoner à Martine ? Elle les a peut-être vus. Aussitôt dit, aussitôt fait, à ce moment, le chien se mit à aboyer.\"\r\n \r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\nexport default DonneeDictee;\r\n","\r\nconst DonneesListeMots =\r\n [\r\n {\r\n id: 1,\r\n titre: 'Pyramide de mots Niveau 1.1',\r\n temps : 80,\r\n liste: [\r\n {\r\n definition: \"Première lettre de l’alphabet\",\r\n mot: \"a\"\r\n },\r\n {\r\n definition: \"On en trouve beaucoup le long de la Loire.\",\r\n mot: \"châteaux\"\r\n },\r\n {\r\n definition: \"un fanal des …\",\r\n mot: \"fanaux\"\r\n },\r\n {\r\n definition: \"Arc monté sur un fût et lançant des projectiles appelés « carreaux »\",\r\n mot: \"arbalète\"\r\n },\r\n {\r\n definition: \"Satellite naturel de la Terre \",\r\n mot: \"lune\"\r\n }\r\n\r\n ]\r\n },\r\n {\r\n id: 2,\r\n titre: 'Pyramide de mots Niveau 1.2',\r\n temps : 100,\r\n liste: [\r\n {\r\n definition: \"Dans avion mais pas dans nova\",\r\n mot: \"i\"\r\n },\r\n {\r\n definition: \"La maman en raconte une à son enfant tous les soirs avant de se coucher.\",\r\n mot: \"histoire\"\r\n },\r\n {\r\n definition: \"Un œil des ...\",\r\n mot: \"yeux\"\r\n },\r\n {\r\n definition: \"Gymnastique douce d'origine indienne\",\r\n mot: \"yoga\"\r\n },\r\n {\r\n definition: \"Roman de Zola sur l'exploitation d'une mine de charbon dans le Nord\",\r\n mot: \"germinal\"\r\n }\r\n\r\n ]\r\n },\r\n {\r\n id: 3,\r\n titre: 'Pyramide de mots Niveau 2.1',\r\n temps : 120,\r\n liste: [\r\n {\r\n definition: \"Dernière lettre de la capitale des États-Unis\",\r\n mot: \"n\"\r\n },\r\n {\r\n definition: \"Tombeaux des rois et des reines en Égypte \",\r\n mot: \"pyramides\"\r\n },\r\n {\r\n definition: \"Crustacé protégé par une carapace et doté de grandes pinces que l’on peut déguster au restaurant\",\r\n mot: \"homard\"\r\n },\r\n {\r\n definition: \"Le peintre de Guernica\",\r\n mot: \"picasso\"\r\n },\r\n {\r\n definition: \"Personne chargée de l’organisation de la cave et du service des vins dans un restaurant\",\r\n mot: \"sommelier\"\r\n },\r\n {\r\n definition: \"Système politique dans lequel un dirigeant favorise les membres de sa famille en leur octroyant des postes alors qu'ils n'ont pas les compétences.\",\r\n mot: \"népotisme\"\r\n }\r\n\r\n ]\r\n },\r\n {\r\n id: 5,\r\n titre: 'Pyramide de mots Niveau 2.2',\r\n temps : 100,\r\n liste: [\r\n {\r\n definition: \"L'arbre de Noël\",\r\n mot: \"sapin\"\r\n },\r\n {\r\n definition: \"Quelle lettre vaut 10 points au Scrabble dans la capitale du Népal ? \",\r\n mot: \"k\"\r\n },\r\n {\r\n definition: \"Cette créatrice de mode lance son premier parfum en 1925 qui porte le numéro 5\",\r\n mot: \"chanel\"\r\n },\r\n {\r\n definition: \"Jeune sanglier de moins de six mois d'âge\",\r\n mot: \"marcassin\"\r\n },\r\n {\r\n definition: \"La couleur de la passion\",\r\n mot: \"rouge\"\r\n },\r\n {\r\n definition: \"La capitale du Chili\",\r\n mot: \"santiago\"\r\n }\r\n\r\n ]\r\n }, {\r\n id: 11,\r\n titre: 'Pyramide de mots Niveau 2.3',\r\n temps : 120,\r\n liste: [\r\n {\r\n definition: \"Dans la mer mais pas dans la terre\",\r\n mot: \"m\"\r\n },\r\n {\r\n definition: \"La première note de la gamme\",\r\n mot: \"do\"\r\n },\r\n {\r\n definition: \"Peur du comédien avant d'affronter le public\",\r\n mot: \"trac\"\r\n },\r\n {\r\n definition: \"Sport de glace où l'on lance des pierres polies\",\r\n mot: \"curling\"\r\n },\r\n {\r\n definition: \"Le mois de la fête des amoureux\",\r\n mot: \"février\"\r\n },\r\n {\r\n definition: \"Sentiment de mépris ou d'hostilité des femmes à l'égard des hommes\",\r\n mot: \"misandrie\"\r\n },\r\n {\r\n definition: \"Fête qui se situe 40 jours après Pâques\",\r\n mot: \"ascension\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 6,\r\n titre: 'Pyramide de mots Niveau 3.1',\r\n temps : 140,\r\n liste: [\r\n {\r\n definition: \"Elle achève l’aventure\",\r\n mot: \"e\"\r\n },\r\n {\r\n definition: \"Bateau transportant des  des véhicules avec leur chargement et des passagers\",\r\n mot: \"ferry\"\r\n },\r\n {\r\n definition: \"Lieu sacré dans lequel le prêtre se prépare aux cérémonies et où l'on garde les objets du culte\",\r\n mot: \"sacristie\"\r\n }, {\r\n definition: \"Épouse d'un duc\",\r\n mot: \"duchesse\"\r\n },\r\n {\r\n definition: \"Paysage composé d’herbes et de quelques arbres qu’on trouve surtout en Afrique\",\r\n mot: \"savane\"\r\n },\r\n {\r\n definition: \"Lieu plein d'objets entassés sans ordre\",\r\n mot: \"capharnaüm\"\r\n },\r\n {\r\n definition: \"L’auteur de Pavane pour une infante défunte \",\r\n mot: \"ravel\"\r\n }\r\n\r\n ]\r\n },\r\n {\r\n id: 7,\r\n titre: 'Pyramide de mots Niveau 3.2',\r\n temps : 140,\r\n liste: [\r\n {\r\n definition: \"Boulette de riz entourée d'une feuille d'algue et garnie de poisson cru, d'omelette, de concombre, etc... \",\r\n mot: \"maki\"\r\n },\r\n {\r\n definition: \"Le peintre des danseuses de l’Opéra de Paris\",\r\n mot: \"degas\"\r\n },\r\n {\r\n definition: \"Une pantoufle ou le croisement d’une jument et d’un âne.\",\r\n mot: \"mule\"\r\n },\r\n {\r\n definition: \"Corneille a écrit « A vaincre sans péril, on triomphe sans ... » \",\r\n mot: \"gloire\"\r\n },\r\n {\r\n definition: \"Il a écrit « Le Rouge et le Noir »\",\r\n mot: \"stendhal\"\r\n },\r\n {\r\n definition: \"Capitale imaginaire de l'Enfer où Satan invoque le conseil des démons\",\r\n mot: \"pandémonium\"\r\n },\r\n {\r\n definition: \"Construit pour enfermer le Minotaure, il est difficile d’en trouver la sortie.\",\r\n mot: \"labyrinthe\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 12,\r\n titre: 'Pyramide de mots Niveau 3.3',\r\n temps : 140,\r\n liste: [\r\n {\r\n definition: \"Quelle lettre est la plus répétée dans le nom de la course olympique de 42,195 km ?\",\r\n mot: \"a\"\r\n },\r\n {\r\n definition: \"Possède 6 faces numérotées de 1 à 6\",\r\n mot: \"dés\"\r\n },\r\n {\r\n definition: \"Mouvement convulsif répété involontairement\",\r\n mot: \"tic\"\r\n },\r\n {\r\n definition: \"Le fruit du chêne\",\r\n mot: \"gland\"\r\n },\r\n {\r\n definition: \"Ces sœurs ont inventé une tarte qui porte leur nom.\",\r\n mot: \"tatin\"\r\n },\r\n {\r\n definition: \"Ouragan situé dans le Pacifique nord-ouest\",\r\n mot: \"typhon\"\r\n },\r\n {\r\n definition: \"Système d'écriture permettant aux personnes malvoyantes de lire un texte\",\r\n mot: \"braille\"\r\n },\r\n {\r\n definition: \"Prénom de la femme de Napoléon III\",\r\n mot: \"eugénie\"\r\n }\r\n \r\n ]\r\n },\r\n {\r\n id: 4,\r\n titre: 'Pyramide de mots Niveau 4.1',\r\n temps : 170,\r\n liste: [\r\n {\r\n definition: \"Elle a croqué la pomme et condamna toutes les femmes à enfanter dans la douleur et les hommes à devoir travailler pour survivre.\",\r\n mot: \"ève\"\r\n },\r\n {\r\n definition: \"Costume de la danseuse classique\",\r\n mot: \"tutu\"\r\n },\r\n {\r\n definition: \"Fondateur de la psychanalyse\",\r\n mot: \"freud\"\r\n },\r\n {\r\n definition: \"Femme qui est l'inspiratrice de quelqu'un\",\r\n mot: \"égérie\"\r\n },\r\n {\r\n definition: \"Ville d’Amèrique célèbre pour avoir pendu 19 sorcières.\",\r\n mot: \"salem\"\r\n },\r\n {\r\n definition: \"Un des sept péchés capitaux définis par le catholicisme qui se manifeste par une accumulation de biens et de richesses sans intention de les dépenser un jour.\",\r\n mot: \"avarice\"\r\n },\r\n {\r\n definition: \"Sentiment de mépris ou d'hostilité à l'égard des femmes motivé par leur sexe biologique.\",\r\n mot: \"misogynie\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 8,\r\n titre: 'Pyramide de mots Niveau 4.2',\r\n temps : 170,\r\n liste: [\r\n {\r\n definition: \"Il a construit une arche pour sauver sa famille et des animaux.\",\r\n mot: \"noé\"\r\n },\r\n {\r\n definition: \"Prénom féminin le plus populaire en 2019 et celui de l’actrice de La La Land\",\r\n mot: \"emma\"\r\n },\r\n {\r\n definition: \"Le sport préféré des femmes en France\",\r\n mot: \"marche\"\r\n },\r\n {\r\n definition: \"Étape biologique de grands changements entre l'enfance et l'adolescence \",\r\n mot: \"puberté\"\r\n },\r\n {\r\n definition: \"Personne qui manifeste de l'aversion pour le genre humain\",\r\n mot: \"misanthrope\"\r\n },\r\n {\r\n definition: \"On peut le caresser ou monter dessus\",\r\n mot: \"mamelon\"\r\n },\r\n {\r\n definition: \"Se dit de mots et de verbes que l'on peut substituer l'un à l'autre dans un énoncé sans changer le sens de celui-ci par exemple bateau et navire.\",\r\n mot: \"synonymes\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 9,\r\n titre: 'Pyramide de mots Niveau 4.3',\r\n temps : 170,\r\n liste: [\r\n {\r\n definition: \"Matériel indispensable pour cuisiner en Chine\",\r\n mot: \"wok\"\r\n },\r\n {\r\n definition: \"Vêtement traditionnel des femmes musulmanes, qui dissimule leur corps de la tête aux pieds.\",\r\n mot: \"burqa\"\r\n },\r\n {\r\n definition: \"Tour qui voulait toucher le ciel pour égaler Dieu\",\r\n mot: \"babel\"\r\n },\r\n {\r\n definition: \"Char allemand\",\r\n mot: \"panzer\"\r\n },\r\n {\r\n definition: \"Ce chanteur a connu une fille aux yeux révolver.\",\r\n mot: \"lavoine\"\r\n },\r\n {\r\n definition: \"Système politique fondé sur la suppression de la propriété privée au profit de la propriété collective\",\r\n mot: \"communisme\"\r\n },\r\n {\r\n definition: \"3 sont normalement nécessaires pendant 9 mois.\",\r\n mot: \"échographies\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10,\r\n titre: 'Pyramide très difficile',\r\n temps : 170,\r\n liste: [\r\n {\r\n definition: \"Mesure de l'intelligence\",\r\n mot: \"qi\"\r\n },\r\n {\r\n definition: \"Poisson et débit de boisson\",\r\n mot: \"bar\"\r\n },\r\n {\r\n definition: \"Les Chinois l'apprécient sous forme de bijou.\",\r\n mot: \"jade\"\r\n },\r\n {\r\n definition: \"Langue parlée en Belgique\",\r\n mot: \"wallon\"\r\n },\r\n {\r\n definition: \"Se dit d'un individu qui ne peut pas savoir avec certitude si un ou des dieux existent.\",\r\n mot: \"agnostique\"\r\n },\r\n {\r\n definition: \"État d’indifférence généralisée qui se manifeste par une perte de motivation, de désirs et d’émotions.\",\r\n mot: \"apathie\"\r\n },\r\n {\r\n definition: \"Action de tenir quelqu'un qui ne plaît pas à l'écart d'un groupe d'une manière discriminatoire et injuste.\",\r\n mot: \"ostracisme\"\r\n },\r\n {\r\n definition: \"Relations sexuelles hors mariage, péché de chair.\",\r\n mot: \"fornication\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 13,\r\n titre: 'Pyramide divertissement (cinéma, musique...)',\r\n temps : 150,\r\n liste: [\r\n {\r\n definition: \"Chef d'oeuvre de Costa-Gavras en 1968.\",\r\n mot: \"z\"\r\n },\r\n {\r\n definition: \"Il enseigne la force à Luke Skywalker sur la planète Dagobah.\",\r\n mot: \"yoda\"\r\n },\r\n {\r\n definition: \"Chanteur et tennisman\",\r\n mot: \"noah\"\r\n },\r\n {\r\n definition: \"Plombier mousatchu qui saute partout.\",\r\n mot: \"mario\"\r\n },\r\n {\r\n definition: \"Dans ce film Jake Sully un ancien marine immobilisé dans un fauteuil roulant se rend sur la planète Pandora.\",\r\n mot: \"avatar\"\r\n },\r\n {\r\n definition: \"Ce cyborg vient du futur pour tuer la mère d'un enfant qui n'est pas encore né.\",\r\n mot: \"terminator\"\r\n },\r\n {\r\n definition: \"Cet écrivain a imaginé le monde de la terre du Milieu où vit le hobbit Frodon Sacquet.\",\r\n mot: \"tolkien\"\r\n },\r\n {\r\n definition: \"Nom de l'actrice qui a joué dans Basic Instinct, Total Recall et Casino.\",\r\n mot: \"stone\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 16,\r\n titre: '1 image - 1 mot - facile 1',\r\n temps : 100,\r\n liste: [\r\n {\r\n definition: \"lmot11.jpg\",\r\n mot: \"hiver\"\r\n },\r\n {\r\n definition: \"lmot12.jpg\",\r\n mot: \"rose\"\r\n },\r\n {\r\n definition: \"lmot13.jpg\",\r\n mot: \"salade\"\r\n },\r\n {\r\n definition: \"lmot14.jpg\",\r\n mot: \"cactus\"\r\n },\r\n {\r\n definition: \"lmot15.jpg\",\r\n mot: \"botte\"\r\n }\r\n \r\n ]\r\n },\r\n {\r\n id: 17,\r\n titre: '1 image - 1 mot - facile 2',\r\n temps : 100,\r\n liste: [\r\n {\r\n definition: \"lmot21.jpg\",\r\n mot: \"roi\"\r\n },\r\n {\r\n definition: \"lmot22.jpg\",\r\n mot: \"thé\"\r\n },\r\n {\r\n definition: \"lmot23.jpg\",\r\n mot: \"poker\"\r\n },\r\n {\r\n definition: \"lmot24.jpg\",\r\n mot: \"désert\"\r\n },\r\n {\r\n definition: \"lmot25.jpg\",\r\n mot: \"artichaut\"\r\n },\r\n {\r\n definition: \"lmot26.jpg\",\r\n mot: \"partition\"\r\n }\r\n \r\n ]\r\n },\r\n {\r\n id: 18,\r\n titre: '1 image - 1 mot - moyen 1',\r\n temps : 100,\r\n liste: [\r\n {\r\n definition: \"lmot31.jpg\",\r\n mot: \"orgue\"\r\n },\r\n {\r\n definition: \"lmot32.jpg\",\r\n mot: \"balcon\"\r\n },\r\n {\r\n definition: \"lmot33.jpg\",\r\n mot: \"palmier\"\r\n },\r\n {\r\n definition: \"lmot36.jpg\",\r\n mot: \"tacos\"\r\n },\r\n {\r\n definition: \"lmot35.jpg\",\r\n mot: \"geisha\"\r\n },\r\n {\r\n definition: \"lmot34.jpg\",\r\n mot: \"vignoble\"\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 DonneesListeMots;\r\n","\r\n\r\nconst DonneeMemoire = [\r\n {\r\n id: 1,\r\n titre: \"Test pour s'entrainer\",\r\n explication: \"Mémoriser le mot\",\r\n image : 'memoire1.png',\r\n time : 10,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Un mot était affiché sur l\\'écran.',\r\n reponse : true\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Ecrire le mot',\r\n reponse : ['chocolat']\r\n }\r\n ]\r\n },\r\n {\r\n id: 2,\r\n titre: \"Test très facile\",\r\n explication: \"Mémoriser les mots\",\r\n image : 'memoire2.png',\r\n time : 30,\r\n exo: [\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Ecrivez tous les mots séparés par un saut de ligne',\r\n reponse : ['avion','bateau','escale']\r\n }\r\n ]\r\n },\r\n {\r\n id: 3,\r\n titre: 'Test facile sur les couleurs',\r\n explication : 'Compter les mots et leurs couleurs',\r\n image : 'memoire3.png',\r\n time : 30,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: '3 mots en bleu étaient affichés',\r\n reponse : false\r\n },\r\n {\r\n typeQuestion : \"ferme\",\r\n question: '3 mots en rouge étaient affichés',\r\n reponse : true\r\n }\r\n ]\r\n },\r\n {\r\n id: 4,\r\n titre: \"Test difficile\",\r\n explication :'Mémoriser les mots',\r\n image : 'memoire4.png',\r\n time : 50,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Le mot cure était dans la liste des mots.',\r\n reponse : false\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire tous les mots de plus de 4 lettres (sauter une ligne entre chaque mot)',\r\n reponse : ['cabane', 'cachet']\r\n }\r\n ]\r\n },\r\n {\r\n id: 5,\r\n titre: \"Test avec 4 mots\",\r\n explication : 'Mémoriser les mots',\r\n image : 'memoire5.png',\r\n time : 50,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y a 2 mots commençant par P.',\r\n reponse : false\r\n },\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y a 1 mot contenant un Y.',\r\n reponse : true\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot le plus court',\r\n reponse : ['été']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot qui comprend 2 A',\r\n reponse : ['paysager']\r\n }\r\n\r\n ]\r\n },\r\n {\r\n id: 6,\r\n titre: \"Nouveau test avec 4 mots\",\r\n explication: 'Mémoriser les mots en corrigeant la faute',\r\n image : 'memoire6.png',\r\n time : 50,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y a un seul mot commençant par un T.',\r\n reponse : true\r\n },\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y a 3 mots avec des accents.',\r\n reponse : false\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Corriger le mot avec une faute d\\'orthographe',\r\n reponse : ['alphabet']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot qui se termine par QUE',\r\n reponse : ['pétanque']\r\n }\r\n\r\n ]\r\n },\r\n {\r\n id: 7,\r\n titre: \"Test difficile avec 5 mots\",\r\n explication: 'Mémoriser les mots et la couleur des mots',\r\n image : 'memoire7.png',\r\n time : 70,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Tous les mots de la liste ont 6 lettres.',\r\n reponse : true\r\n },\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y a 2 mots avec des accents aigus.',\r\n reponse : false\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot en rouge',\r\n reponse : ['baquet']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire les mots qui commencent par T (sauter une ligne entre chaque mot)',\r\n reponse : ['tympan', 'tétine']\r\n },\r\n\r\n\r\n ]\r\n }\r\n ,\r\n {\r\n id: 8,\r\n titre: \"Type des mots - très difficile\",\r\n explication :'Mémoriser les mots, les couleurs et les synonymes, homonynes, antonymes',\r\n image : 'memoire8.png',\r\n time : 70,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y a 2 mots écrits en rouge.',\r\n reponse : true\r\n },\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y a 2 mots de 3 lettres.',\r\n reponse : false\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire les 2 homonymes (sauter une ligne entre chaque mot)',\r\n reponse : ['mer', 'maire']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire les 2 synonymes',\r\n reponse : ['abhorrer', 'détester']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire les 2 antonymes',\r\n reponse : ['chaud', 'froid']\r\n },\r\n\r\n\r\n ]\r\n },\r\n {\r\n id: 9,\r\n titre: \"Mots Coupés 1 - facile\",\r\n explication : 'Mémoriser les 3 mots coupés possibles',\r\n image : 'memoire9.png',\r\n time : 60,\r\n exo: [\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire les mots possibles commençant par C (sauter une ligne entre chaque mot)',\r\n reponse : ['clique', 'cloque']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot possible commençant par un T',\r\n reponse : ['trique']\r\n }\r\n ]\r\n },\r\n {\r\n id: 10,\r\n titre: \"Mots Coupés 2 - moyen\",\r\n explication : 'Trouver les 3 mots coupés et les mémoriser',\r\n image : 'memoire10.png',\r\n time : 70,\r\n exo: [\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot contentant le plus de lettres',\r\n reponse : ['cascade']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot commençant par un A',\r\n reponse : ['aubade']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot finissant par un R',\r\n reponse : ['casseur']\r\n }\r\n ]\r\n },\r\n {\r\n id: 11,\r\n titre: \"Mots Coupés 3 - très difficile\",\r\n explication : 'Trouver tous les mots coupés ou non et les mémoriser',\r\n image : 'memoire11.png',\r\n time : 80,\r\n exo: [\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire les 2 mots de 4 lettres',\r\n reponse : ['bord', 'rade']\r\n },\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Il y avait 1 note de musique',\r\n reponse : true\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire les 2 mots possibles de 6 lettres',\r\n reponse : ['flacon', 'dorade']\r\n }\r\n ]\r\n },\r\n {\r\n id: 12,\r\n titre: \"Mots Coupés 4 - très difficile\",\r\n explication : 'Mémoriser tous les mots possibles avec leur couleur',\r\n image : 'memoire12.png',\r\n time : 70,\r\n exo: [\r\n {\r\n typeQuestion : \"ferme\",\r\n question: 'Tous les groupes de lettres sont composés de 3 lettres.',\r\n reponse : true\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot en regroupant les lettres rouges',\r\n reponse : ['goulot']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Écrire le mot en regroupant les lettres noires',\r\n reponse : ['boulet']\r\n },\r\n {\r\n typeQuestion : \"ouverte\",\r\n question: 'Ecrire les 2 mots possibles en mélangeant les lettres noires et rouges (sauter une ligne entre chaque mot)',\r\n reponse : ['goulet', 'boulot']\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 DonneeMemoire;\r\n","let donneesMots =\r\n [{\r\n id: 40,\r\n titre: \"5 mots très simples\",\r\n explication: \"Retrouver 5 mots simples à partir des définitions du dictionnaire.\",\r\n liste: [\r\n {\r\n mot: \"hotte\",\r\n definition: \"Grand panier qui se fixe sur le dos au moyen de bretelles et qui sert à transporter divers objets.\",\r\n ordre: [0, 2, 3, 1, 4]\r\n },\r\n {\r\n mot: \"adieu\",\r\n definition: \"Formule de salutation adressée à quelqu'un qu'on quitte pour une longue période, ou même définitivement.\",\r\n ordre: [2, 0, 4, 1, 3]\r\n },\r\n {\r\n mot: \"apnée\",\r\n definition: \"Arrêt de la respiration de durée variable, sans arrêt cardiaque.\",\r\n ordre: [3, 1, 4, 0, 2]\r\n },\r\n {\r\n mot: \"flute\",\r\n definition: \"Instrument de musique à air, à tuyau ouvert dans lequel le son est produit par un souffle dirigé sur une arête où il se brise, mettant ainsi en vibration l'air du tuyau.\",\r\n ordre: [4, 1, 3, 2, 0]\r\n },\r\n {\r\n mot: \"fosse\",\r\n definition: \"Trou creusé en terre pour y inhumer un mort.\",\r\n ordre: [2, 1, 3, 4, 0]\r\n }\r\n ]\r\n },\r\n {\r\n id: 41,\r\n titre: \"5 mots simples de 6 lettres\",\r\n liste: [\r\n {\r\n mot: \"boucle\",\r\n definition: \"Anneau ou rectangle de métal avec traverse portant en général un ou plusieurs ardillons, qui sert à assujettir les deux extrémités d'une courroie, d'une ceinture, etc.\",\r\n ordre: [5, 2, 0, 4, 1, 3]\r\n },\r\n {\r\n mot: \"vessie\",\r\n definition: \"Poche du petit bassin où s'accumule entre deux mictions l'urine amenée par les uretères, et communiquant avec l'extérieur par le canal de l'urètre.\",\r\n ordre: [2, 5, 0, 4, 1, 3]\r\n },\r\n {\r\n mot: \"zénith\",\r\n definition: \"Point de la sphère céleste représentatif de la verticale ascendante, en un lieu donné.\",\r\n ordre: [3, 1, 4, 5, 0, 2]\r\n },\r\n {\r\n mot: \"tiroir\",\r\n definition: \"Compartiment sans couvercle emboîté dans un meuble et qu'on peut tirer à volonté.\",\r\n ordre: [4, 5, 1, 3, 2, 0]\r\n },\r\n {\r\n mot: \"sieste\",\r\n definition: \"Repos, petit somme, après le repas de midi.\",\r\n ordre: [2, 1, 3, 4, 5, 0]\r\n },\r\n ]\r\n },\r\n {\r\n id: 42,\r\n titre: \"5 mots de 7 lettres\",\r\n liste: [\r\n {\r\n mot: \"babiole\",\r\n definition: \"Petit objet de peu de valeur.\",\r\n ordre: [5, 2, 0, 6, 4, 1, 3]\r\n },\r\n {\r\n mot: \"bardage\",\r\n definition: \"Revêtement protecteur mince, à dilatation libre, de l'ossature ou des murs extérieurs d'un bâtiment.\",\r\n ordre: [2, 5, 6, 0, 4, 1, 3]\r\n },\r\n {\r\n mot: \"torrent\",\r\n definition: \"Cours d'eau de montagne, rapide et irrégulier, de faible longueur, plus ou moins à sec entre des crues violentes et brusques.\",\r\n ordre: [3, 1, 4, 5, 0, 2, 6]\r\n },\r\n {\r\n mot: \"trémolo\",\r\n definition: \"Tremblement de la voix indiquant une forte émotion, souvent feinte ou exagérée.\",\r\n ordre: [6, 4, 5, 1, 3, 2, 0]\r\n },\r\n {\r\n mot: \"tringle\",\r\n definition: \"Barre métallique ou de bois destinée à suspendre un rideau, une draperie, etc.\",\r\n ordre: [2, 6, 1, 3, 4, 5, 0]\r\n }\r\n ]\r\n },\r\n {\r\n id: 43,\r\n titre: \"5 mots difficiles\",\r\n liste: [\r\n {\r\n mot: \"logorrhée\",\r\n definition: \"Flot de paroles rapide et incoercible, généralement d'origine pathologique (ex: troubles bipolaires).\",\r\n ordre: [5, 2, 8, 0, 6, 4, 7, 1, 3]\r\n },\r\n {\r\n mot: \"esperluette\",\r\n definition: \"Logogramme &, résultant de la ligature du e et du t par les copistes médiévaux.\",\r\n ordre: [10, 9, 5, 2, 8, 0, 6, 4, 7, 1, 3]\r\n },\r\n {\r\n mot: \"procrastination\",\r\n definition: \"Action de reporter, de remettre à plus tard ce qui pourrait être fait le moment même.\",\r\n ordre: [10, 12, 9, 5, 2, 8, 11, 0, 6, 4, 13, 7, 1, 3, 14]\r\n },\r\n {\r\n mot: \"élucubration\",\r\n definition: \"Production déraisonnable, absurde, issue de recherches laborieuses ; divagation, extravagance.\",\r\n ordre: [10, 9, 4, 2, 11, 8, 0, 6, 5, 7, 1, 3]\r\n },\r\n {\r\n mot: \"psychotrope\",\r\n definition: \"Substance qui agit sur le psychisme, sur l'état du système nerveux central et y induit des modifications de la perception, des sensations, de l'humeur, de la conscience ou d'autres fonctions psychologiques et comportementales.\",\r\n ordre: [3, 1, 10, 5, 9, 2, 8, 0, 6, 4, 7]\r\n }\r\n ]\r\n },\r\n {\r\n id: 44,\r\n titre: \"Les nouveaux mots du dictionnaire 2020\",\r\n liste: [\r\n {\r\n mot: \"millenial\",\r\n definition: \"Personne devenue adulte aux environs de l'an 2000.\",\r\n ordre: [5, 2, 8, 0, 6, 4, 7, 1, 3]\r\n },\r\n {\r\n mot: \"coworking\",\r\n definition: \"Anglicisme qui désigne une organisation de travail regroupant plusieurs travailleurs indépendants dans un même lieu.\",\r\n ordre: [3, 1, 8, 7, 6, 4, 0, 2, 5]\r\n },\r\n {\r\n mot: \"cryptomonnaie\",\r\n definition: \"Monnaie numérique indépendante des réseaux bancaires et liée à un système de cryptage.\",\r\n ordre: [10, 12, 9, 5, 2, 8, 11, 0, 6, 4, 7, 1, 3]\r\n },\r\n {\r\n mot: \"antispécisme\",\r\n definition: \"Vision du monde qui récuse la notion de hiérarchie entre les espèces animales et la supériorité de l'être humain sur les animaux.\",\r\n ordre: [10, 9, 4, 2, 11, 8, 0, 6, 5, 7, 1, 3]\r\n },\r\n {\r\n mot: \"fachosphère\",\r\n definition: \"Ensemble des partis politiques de la mouvance fasciste et, plus largement, d'extrême droite.\",\r\n ordre: [3, 7, 10, 5, 9, 2, 8, 0, 6, 4, 1]\r\n }\r\n ]\r\n },\r\n {\r\n id: 49,\r\n titre: \"Les nouveaux mots du dictionnaire Larousse 2021\",\r\n liste: [\r\n {\r\n mot: \"antivax\",\r\n definition: \"Se dit d’un mouvement d’opinion marqué par une opposition à la vaccination en général.\",\r\n ordre: [5, 2, 0, 6, 4, 1, 3]\r\n },\r\n {\r\n mot: \"dégagisme\",\r\n definition: \"Attitude d’insoumission et de rejet prônant l’éviction des détenteurs du pouvoir.\",\r\n ordre: [3, 5, 0, 7, 6, 4, 8, 2, 1]\r\n },\r\n {\r\n mot: \"frugalisme\",\r\n definition: \"Mode de vie consistant à vivre en dessous de ses moyens et à épargner afin de quitter la vie active bien avant l’âge de la retraite.\",\r\n ordre: [3, 9, 5, 2, 8, 0, 6, 4, 7, 1, 10]\r\n },\r\n {\r\n mot: \"féminicide\",\r\n definition: \"Meurtre d’une femme ou d’une jeune fille, en raison de son appartenance au sexe féminin.\",\r\n ordre: [9, 4, 2, 8, 3, 6, 5, 7, 1, 0]\r\n },\r\n {\r\n mot: \"hygge\",\r\n definition: \"Sentiment de bien-être et de sérénité caractéristique de l’art de vivre danois, fondé sur les plaisirs authentiques du quotidien.\",\r\n ordre: [2, 0, 3, 4, 1]\r\n }\r\n ]\r\n }\r\n ,\r\n {\r\n id: 50,\r\n titre: \"Les nouveaux mots du dictionnaire Robert 2021\",\r\n liste: [\r\n {\r\n mot: \"cluster\",\r\n definition: \"Groupement d'un petit nombre d'objets, foyer épidémique\",\r\n ordre: [5, 2, 3, 6, 4, 1, 0]\r\n },\r\n {\r\n mot: \"pansexuel\",\r\n definition: \"Orientation sexuelle caractérisant les individus qui peuvent être attirés par un individu de n’importe quel sexe ou genre.\",\r\n ordre: [3, 2, 4, 7, 6, 0, 8, 5, 1]\r\n },\r\n {\r\n mot: \"écouvillon\",\r\n definition: \"Bâtonnet muni d'une petite brosse ou d'une matière absorbante pour effectuer des prélèvements.\",\r\n ordre: [1, 9, 5, 2, 8, 0, 6, 4, 7, 3]\r\n },\r\n {\r\n mot: \"polyamour\",\r\n definition: \"Multiple relations amoureuses avec le consentement éclairé de toutes les personnes concernées.\",\r\n ordre: [4, 2, 8, 3, 6, 5, 7, 1, 0]\r\n },\r\n {\r\n mot: \"veggie\",\r\n definition: \"Anglicisme de végétarien.\",\r\n ordre: [5, 2, 0, 3, 4, 1]\r\n }\r\n ]\r\n }\r\n ,\r\n {\r\n id: 51,\r\n titre: \"Les nouveaux mots du dictionnaire Larousse 2022\",\r\n liste: [\r\n {\r\n mot: \"émoji\",\r\n definition: \" Terme issu du japonais. Petite image utilisée dans un message électronique pour exprimer une émotion.\",\r\n ordre: [2, 3, 4, 1, 0]\r\n },\r\n {\r\n mot: \"mocktail\",\r\n definition: \"Ce terme, combinaison de mock (faux en anglais) et cocktail, désigne les mélanges sans alcool.\",\r\n ordre: [0, 2, 4, 7, 6, 3, 5, 1]\r\n },\r\n {\r\n mot: \"quatorzaine\",\r\n definition: \"Quarantaine de 14 jours\",\r\n ordre: [10, 1, 9, 5, 2, 8, 0, 6, 4, 7, 3]\r\n },\r\n {\r\n mot: \"asymptomatique\",\r\n definition: \"Adjectif. Se dit d'une maladie, d'un trouble qui ne s'accompagne pas de symptômes. On parle de porteur sain.\",\r\n ordre: [13,4, 2, 8,10, 3, 6, 5, 7,9, 1, 0,11, 12]\r\n },\r\n {\r\n mot: \"racisé\",\r\n definition: \"Adjectif désignant une personne touchée par le racisme, la discrimination. Concept utilisé par les militants pour désigner les non-blancs dans leur ensemble.\",\r\n ordre: [5, 2, 0, 3, 4, 1]\r\n }\r\n ]\r\n }\r\n ,\r\n {\r\n id: 45,\r\n titre: \"Les mots provenant de l'anglais\",\r\n liste: [\r\n {\r\n mot: \"spoiler\",\r\n definition: \"Terme employé pour désigner un document ou un texte qui dévoile tout ou une partie de l'intrigue d'une œuvre (livre, film, jeu vidéo).\",\r\n ordre: [2, 0, 6, 4, 5, 1, 3]\r\n },\r\n {\r\n mot: \"snipper\",\r\n definition: \"Tireur embusqué ou franc-tireur.\",\r\n ordre: [6, 3, 1, 4, 0, 2, 5]\r\n },\r\n {\r\n mot: \"bankable\",\r\n definition: \" Se dit d'un acteur ou d'un personnage dont la présence suffit à faire le succès d'un film.\",\r\n ordre: [2, 7, 6, 0, 4, 5, 1, 3]\r\n },\r\n {\r\n mot: \"pitch\",\r\n definition: \"Résumé de l'intrigue d'un roman ou d'un film.\",\r\n ordre: [2, 0, 4, 1, 3]\r\n },\r\n {\r\n mot: \"backstage\",\r\n definition: \"Coulisses, loges d'une salle de théâtre ou de concert.\",\r\n ordre: [8, 2, 6, 7, 0, 4, 3, 1, 5]\r\n }\r\n ]\r\n } ,\r\n {\r\n id: 46,\r\n titre: \"Entraînement aux mots croisés difficiles\",\r\n liste: [\r\n {\r\n mot: \"escalier\",\r\n definition: \"Tourne dans sa cage\",\r\n ordre: [0, 1, 6,4, 5, 3, 2, 7]\r\n },\r\n {\r\n mot: \"orsay\",\r\n definition: \"Gare à la peinture\",\r\n ordre: [0, 1, 2, 4, 3]\r\n },\r\n {\r\n mot: \"amnésique\",\r\n definition: \"N'a vraiment rien à regretter \",\r\n ordre: [2, 7, 6, 0, 4, 5, 1, 3, 8]\r\n },\r\n {\r\n mot: \"cécité\",\r\n definition: \"Point de vue\",\r\n ordre: [0,2,5, 4, 1, 3]\r\n },\r\n {\r\n mot: \"essuie-glace\",\r\n definition: \"Collectionneur de papillons\",\r\n ordre: [0,8, 2, 6, 7, 9,10,11, 4, 3, 1, 5]\r\n }\r\n ]\r\n },\r\n {\r\n id: 47,\r\n titre: \"Les classiques des mots croisés\",\r\n liste: [\r\n {\r\n mot: \"risée\",\r\n definition: \"Petite brise passagère\",\r\n ordre: [0, 1, 4,3,2]\r\n },\r\n {\r\n mot: \"snob\",\r\n definition: \"Fait des manières\",\r\n ordre: [0, 3, 2, 1]\r\n },\r\n {\r\n mot: \"vahiné\",\r\n definition: \"Femme de Tahiti\",\r\n ordre: [2, 0, 4, 5, 1, 3]\r\n },\r\n {\r\n mot: \"wapiti\",\r\n definition: \"Grand cerf d'Amérique du Nord\",\r\n ordre: [0,2,5, 4, 1, 3]\r\n },\r\n {\r\n mot: \"geôle\",\r\n definition: \"Ancien cachot\",\r\n ordre: [0, 2, 4,3,1]\r\n }\r\n ]\r\n },\r\n {\r\n id: 48,\r\n titre: \"Les classiques des mots croisés (facile)\",\r\n liste: [\r\n {\r\n mot: \"brelan\",\r\n definition: \"Réunion de trois cartes de même valeur au poker\",\r\n ordre: [5,0, 1, 4,3,2]\r\n },\r\n {\r\n mot: \"talc\",\r\n definition: \"Poudre blanche pour les fesses de bébé\",\r\n ordre: [0, 3, 2, 1]\r\n },\r\n {\r\n mot: \"tsar\",\r\n definition: \"Ancien souverain russe\",\r\n ordre: [1, 0, 2, 3]\r\n },\r\n {\r\n mot: \"vespa\",\r\n definition: \"Deux roues à l'italienne\",\r\n ordre: [0,2, 4, 1, 3]\r\n },\r\n {\r\n mot: \"zinc\",\r\n definition: \"Comptoir d'un débit de boisson\",\r\n ordre: [0, 1,3,2]\r\n }\r\n ]\r\n },\r\n {\r\n id: 47,\r\n titre: \"Les classiques des mots croisés\",\r\n liste: [\r\n {\r\n mot: \"risée\",\r\n definition: \"Petite brise passagère\",\r\n ordre: [0, 1, 4,3,2]\r\n },\r\n {\r\n mot: \"snob\",\r\n definition: \"Fait des manières\",\r\n ordre: [0, 3, 2, 1]\r\n },\r\n {\r\n mot: \"vahiné\",\r\n definition: \"Femme de Tahiti\",\r\n ordre: [2, 0, 4, 5, 1, 3]\r\n },\r\n {\r\n mot: \"wapiti\",\r\n definition: \"Grand cerf d'Amérique du Nord\",\r\n ordre: [0,2,5, 4, 1, 3]\r\n },\r\n {\r\n mot: \"geôle\",\r\n definition: \"Ancien cachot\",\r\n ordre: [0, 2, 4,3,1]\r\n }\r\n ]\r\n },\r\n {\r\n id: 48,\r\n titre: \"Les classiques des mots croisés (facile)\",\r\n liste: [\r\n {\r\n mot: \"brelan\",\r\n definition: \"Réunion de trois cartes de même valeur au poker\",\r\n ordre: [5,0, 1, 4,3,2]\r\n },\r\n {\r\n mot: \"talc\",\r\n definition: \"Poudre blanche pour les fesses de bébé\",\r\n ordre: [0, 3, 2, 1]\r\n },\r\n {\r\n mot: \"tsar\",\r\n definition: \"Ancien souverain russe\",\r\n ordre: [1, 0, 2, 3]\r\n },\r\n {\r\n mot: \"vespa\",\r\n definition: \"Deux roues à l'italienne\",\r\n ordre: [0,2, 4, 1, 3]\r\n },\r\n {\r\n mot: \"zinc\",\r\n definition: \"Comptoir d'un débit de boisson\",\r\n ordre: [0, 1,3,2]\r\n }\r\n ]\r\n },\r\n {\r\n id: 52,\r\n titre: \"Connais-tu les nouveaux mots du dictionnaire 2025 ?\",\r\n liste: [ {\r\n mot: \"écoféminisme\",\r\n definition: \"Courant de pensée qui établit un parallèle entre la domination des hommes sur les femmes et la surexploitation de la nature.\",\r\n ordre: [4,6,10,7,2,9,5,11,1,3,0,8]\r\n },\r\n {\r\n mot: \"mégabassine\",\r\n definition: \"Immense réservoir d'eau à ciel ouvert utilisé pour l'irrigation\",\r\n ordre: [3,5,10,0,1,6,7,4,2,9,8]\r\n },\r\n \r\n {\r\n mot: \"masculinisme\",\r\n definition: \"Courant venu des États-Unis, en opposition au féminisme, qui veut réaffirmer des valeurs masculines.\",\r\n ordre: [8,5,10,11,1,0,2,7,4,6,3,9]\r\n },\r\n {\r\n mot: \"tiktokeur\",\r\n definition: \"Personne qui publie des vidéos sur l'application TikTok.\",\r\n ordre: [1,3,5,7,4,8,0,6,2]\r\n },\r\n {\r\n mot: \"kombucha\",\r\n definition: \"Boisson à base de thé, sucrée et fermentée grâce à des levures.\",\r\n ordre: [7,6,1,5,2,0,3,4]\r\n }\r\n ]\r\n }\r\n \r\n \r\n ];\r\n\r\nexport default donneesMots;\r\n","const DonneeOrthographeMot = [\r\n {\r\n id: 1,\r\n titre: \"Des mots simples niveau CM2\",\r\n test : [\r\n {\r\n fichier: 'mot11.mp3',\r\n mot: 'attentivement'\r\n },\r\n {\r\n fichier: 'mot12.mp3',\r\n mot: 'décourager'\r\n },\r\n {\r\n fichier: 'mot13.mp3',\r\n mot: 'dernièrement'\r\n },\r\n {\r\n fichier: 'mot14.mp3',\r\n mot: 'éléphant'\r\n },\r\n {\r\n fichier: 'mot15.mp3',\r\n mot: 'appartement'\r\n }\r\n ]\r\n },\r\n {\r\n id: 2,\r\n titre: \"Orthographe des mots niveau CM2\",\r\n test : [\r\n {\r\n fichier: 'mot21.mp3',\r\n mot: 'cimetière'\r\n },\r\n {\r\n fichier: 'mot22.mp3',\r\n mot: 'enseignement'\r\n },\r\n {\r\n fichier: 'mot23.mp3',\r\n mot: 'fougère'\r\n },\r\n {\r\n fichier: 'mot24.mp3',\r\n mot: 'stupéfaction'\r\n },\r\n {\r\n fichier: 'mot25.mp3',\r\n mot: 'conférence'\r\n }\r\n ]\r\n },\r\n {\r\n id: 3,\r\n titre: \"Toujours des mots simples niveau fin de primaire\",\r\n test : [\r\n {\r\n fichier: 'mot31.mp3',\r\n mot: 'giboulée'\r\n },\r\n {\r\n fichier: 'mot32.mp3',\r\n mot: 'malheureusement'\r\n },\r\n {\r\n fichier: 'mot33.mp3',\r\n mot: 'prodigieux'\r\n },\r\n {\r\n fichier: 'mot34.mp3',\r\n mot: 'épouser'\r\n },\r\n {\r\n fichier: 'mot35.mp3',\r\n mot: 'orphelin'\r\n }\r\n ]\r\n },\r\n {\r\n id: 4,\r\n titre: \"Des mots plus difficiles à écrire niveau fin de collège\",\r\n test : [\r\n {\r\n fichier: 'mot41.mp3',\r\n mot: 'suffisamment'\r\n },\r\n {\r\n fichier: 'mot42.mp3',\r\n mot: 'raccommoder'\r\n },\r\n {\r\n fichier: 'mot43.mp3',\r\n mot: 'raccourcir'\r\n },\r\n {\r\n fichier: 'mot44.mp3',\r\n mot: 'carrousel'\r\n },\r\n {\r\n fichier: 'mot45.mp3',\r\n mot: 'remords'\r\n }\r\n ]\r\n },\r\n {\r\n id: 5,\r\n titre: \"Orthographe des mots niveau fin de collège\",\r\n test : [\r\n {\r\n fichier: 'mot51.mp3',\r\n mot: 'sympathie'\r\n },\r\n {\r\n fichier: 'mot52.mp3',\r\n mot: 'dégât'\r\n },\r\n {\r\n fichier: 'mot53.mp3',\r\n mot: 'embarras'\r\n },\r\n {\r\n fichier: 'mot54.mp3',\r\n mot: 'enthousiasme'\r\n },\r\n {\r\n fichier: 'mot55.mp3',\r\n mot: 'jacinthe'\r\n }\r\n ]\r\n },\r\n {\r\n id: 6,\r\n titre: \"Test orthographe des mots niveau lycée\",\r\n test : [\r\n {\r\n fichier: 'mot61.mp3',\r\n mot: 'métaphore'\r\n },\r\n {\r\n fichier: 'mot62.mp3',\r\n mot: 'conscience'\r\n },\r\n {\r\n fichier: 'mot63.mp3',\r\n mot: 'inconsciemment'\r\n },\r\n {\r\n fichier: 'mot64.mp3',\r\n mot: 'dilemme'\r\n },\r\n {\r\n fichier: 'mot65.mp3',\r\n mot: 'cédille'\r\n }\r\n ]\r\n },\r\n {\r\n id: 7,\r\n titre: \"Mots difficiles à orthographier niveau lycée\",\r\n test : [\r\n {\r\n fichier: 'mot71.mp3',\r\n mot: 'enveloppe'\r\n },\r\n {\r\n fichier: 'mot72.mp3',\r\n mot: 'labyrinthe'\r\n },\r\n {\r\n fichier: 'mot73.mp3',\r\n mot: 'décès'\r\n },\r\n {\r\n fichier: 'mot74.mp3',\r\n mot: 'insouciance'\r\n },\r\n {\r\n fichier: 'mot75.mp3',\r\n mot: 'onomatopée'\r\n }\r\n ]\r\n },\r\n {\r\n id: 8,\r\n titre: \"Orthographe des mots très difficiles\",\r\n test : [\r\n {\r\n fichier: 'mot81.mp3',\r\n mot: 'thaumaturge'\r\n },\r\n {\r\n fichier: 'mot82.mp3',\r\n mot: 'thuriféraire'\r\n },\r\n {\r\n fichier: 'mot83.mp3',\r\n mot: 'obédience'\r\n },\r\n {\r\n fichier: 'mot84.mp3',\r\n mot: 'méphitique'\r\n },\r\n {\r\n fichier: 'mot85.mp3',\r\n mot: 'histrion'\r\n }\r\n ]\r\n },\r\n {\r\n id: 9,\r\n titre: \"Test orthographe des mots très difficiles\",\r\n test : [\r\n {\r\n fichier: 'mot91.mp3',\r\n mot: 'hédoniste'\r\n },\r\n {\r\n fichier: 'mot92.mp3',\r\n mot: 'épigramme'\r\n },\r\n {\r\n fichier: 'mot93.mp3',\r\n mot: 'dithyrambique'\r\n },\r\n {\r\n fichier: 'mot94.mp3',\r\n mot: 'déshérence'\r\n },\r\n {\r\n fichier: 'mot95.mp3',\r\n mot: 'apocryphe'\r\n }\r\n ]\r\n },\r\n {\r\n id: 10,\r\n titre: \"Écrire les mots avec des accents sans faute\",\r\n test : [\r\n {\r\n fichier: 'mot101.mp3',\r\n mot: 'belvédère'\r\n },\r\n {\r\n fichier: 'mot102.mp3',\r\n mot: 'célèbre'\r\n },\r\n {\r\n fichier: 'mot103.mp3',\r\n mot: 'éphémère'\r\n },\r\n {\r\n fichier: 'mot104.mp3',\r\n mot: 'phénomène'\r\n },\r\n {\r\n fichier: 'mot105.mp3',\r\n mot: 'mystère'\r\n }\r\n ]\r\n },\r\n {\r\n id: 11,\r\n titre: \"Des mots difficiles à prononcer et à écrire 1\",\r\n test : [\r\n {\r\n fichier: 'mot111.mp3',\r\n mot: 'puzzle'\r\n },\r\n {\r\n fichier: 'mot112.mp3',\r\n mot: 'reblochon'\r\n },\r\n {\r\n fichier: 'mot113.mp3',\r\n mot: 'mnémotechnique'\r\n },\r\n {\r\n fichier: 'mot114.mp3',\r\n mot: 'maelström'\r\n },\r\n {\r\n fichier: 'mot115.mp3',\r\n mot: 'cerf'\r\n }\r\n ]\r\n },\r\n {\r\n id: 12,\r\n titre: \"Des mots difficiles à prononcer et à écrire 2\",\r\n test : [\r\n {\r\n fichier: 'mot121.mp3',\r\n mot: 'broc'\r\n },\r\n {\r\n fichier: 'mot122.mp3',\r\n mot: 'rébellion'\r\n },\r\n {\r\n fichier: 'mot123.mp3',\r\n mot: 'oignon'\r\n },\r\n {\r\n fichier: 'mot124.mp3',\r\n mot: 'ananas'\r\n },\r\n {\r\n fichier: 'mot125.mp3',\r\n mot: 'exsangue'\r\n }\r\n ]\r\n },\r\n \r\n {\r\n id: 13,\r\n titre: \"Écrire des mots simples avec 2 accents ou plus\",\r\n test : [\r\n {\r\n fichier: 'mot131.mp3',\r\n mot: 'écuyère'\r\n },\r\n {\r\n fichier: 'mot132.mp3',\r\n mot: 'théorème'\r\n },\r\n {\r\n fichier: 'mot133.mp3',\r\n mot: 'délétère'\r\n },\r\n {\r\n fichier: 'mot134.mp3',\r\n mot: 'télésiège'\r\n },\r\n {\r\n fichier: 'mot135.mp3',\r\n mot: 'pépinière'\r\n }\r\n ]\r\n },\r\n {\r\n id: 14,\r\n titre: \"Écrire des mots de plus de 12 lettres\",\r\n test : [\r\n {\r\n fichier: 'mot141.mp3',\r\n mot: 'conférencière'\r\n },\r\n {\r\n fichier: 'mot142.mp3',\r\n mot: 'parallélépipède'\r\n },\r\n {\r\n fichier: 'mot143.mp3',\r\n mot: 'irrégulièrement'\r\n },\r\n {\r\n fichier: 'mot144.mp3',\r\n mot: 'arbalétrière'\r\n },\r\n {\r\n fichier: 'mot145.mp3',\r\n mot: 'écartèlement'\r\n }\r\n ]\r\n },\r\n {\r\n id: 15,\r\n titre: \"L'accord des adjectifs dans une phrase 1 - facile\",\r\n test : [\r\n {\r\n fichier: 'phrase1.mp3',\r\n mot: 'énervés',\r\n phrase : \"Jean et Tarik sont $.\"\r\n },\r\n {\r\n fichier: 'phrase2.mp3',\r\n mot: 'légères',\r\n phrase : \"Les soupières sont aussi très $.\"\r\n },\r\n {\r\n fichier: 'phrase3.mp3',\r\n mot: 'sympathique',\r\n phrase : \"La concierge est $.\"\r\n },\r\n {\r\n fichier: 'phrase4.mp3',\r\n mot: \"paresseuses\",\r\n phrase : \"Elles sont très $.\"\r\n \r\n },\r\n {\r\n fichier: 'phrase5.mp3',\r\n mot: 'bon',\r\n phrase : \"Ces roses sentent $.\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 16,\r\n titre: \"L'accord des adjectifs dans une phrase 2 - intermédiaire\",\r\n test : [\r\n {\r\n fichier: 'phrase10.mp3',\r\n mot: 'plastifiée',\r\n phrase : \"Une carte des desserts $\"\r\n },\r\n {\r\n fichier: 'phrase11.mp3',\r\n mot: 'vocales',\r\n phrase : \"Un examen des cordes $ douloureux\"\r\n },\r\n {\r\n fichier: 'phrase12.mp3',\r\n mot: 'grecque',\r\n phrase : \"Un livre de littérature $\"\r\n },\r\n {\r\n fichier: 'phrase13.mp3',\r\n mot: \"réélue\",\r\n phrase : \"Une candidate aux élections municipales $\"\r\n \r\n },\r\n {\r\n fichier: 'phrase14.mp3',\r\n mot: 'lues',\r\n phrase : \"Sur toutes les pages $. J’écris ton nom.\"\r\n }\r\n ]\r\n },\r\n // {\r\n // id: 17,\r\n // titre: \"Concours (nouveau)\",\r\n // test : [\r\n // {\r\n // fichier: 'phrase60.mp3',\r\n // mot: 'arrêtées',\r\n // phrase : \"Elles se sont $ pour se reposer.\"\r\n // },\r\n // {\r\n // fichier: 'phrase61.mp3',\r\n // mot: 'montrerai',\r\n // phrase : \"Au musée, je vous $ plusieurs tableaux.\"\r\n // },\r\n // {\r\n // fichier: 'phrase62.mp3',\r\n // mot: 'viendras',\r\n // phrase : \"Est-ce que tu $ à la piscine avec moi ? \"\r\n // },\r\n // {\r\n // fichier: 'phrase63.mp3',\r\n // mot: \"angoissés\",\r\n // phrase : \"Les patineuses et leur entraîneur, à la veille de la compétition, sont $.\"\r\n \r\n // },\r\n // {\r\n // fichier: 'phrase64.mp3',\r\n // mot: 'bleues',\r\n // phrase : \"Un troupeau de brebis égarées avançait paisiblement au milieu des fleurs $.\"\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // id: 18,\r\n // titre: \"Concours 2 - facile\",\r\n // test : [\r\n // {\r\n // fichier: 'phrase70.mp3',\r\n // mot: 'travers',\r\n // phrase : \"Le roi Dagobert faisait tout de $. Il mettait sa culotte à l’envers.\"\r\n // },\r\n // {\r\n // fichier: 'phrase71.mp3',\r\n // mot: 'asphyxiant',\r\n // phrase : \"L’atmosphère suffocante les oblige à respirer de l’air $.\"\r\n // },\r\n // {\r\n // fichier: 'phrase72.mp3',\r\n // mot: 'leurs pieds',\r\n // phrase : \"Il leur faut reculer car le sol vibre sous $.\"\r\n // },\r\n // {\r\n // fichier: 'phrase73.mp3',\r\n // mot: \"entrée\",\r\n // phrase : \"Papa a ouvert et une femme deux fois plus grande que lui est $.\"\r\n \r\n // },\r\n // {\r\n // fichier: 'phrase74.mp3',\r\n // mot: 'développée',\r\n // phrase : \"En France, l’agriculture biologique s’est considérablement $.\"\r\n // }\r\n // ]\r\n // }\r\n]\r\n\r\nexport default DonneeOrthographeMot;\r\n","\r\n\r\nconst DonneePhraseErreur = [\r\n {\r\n id : 1,\r\n niveau: \"très facile\",\r\n titre : \"Trouver les fautes niveau CE1\",\r\n texte : \"Alors cette année, les vacances, c’est la plage en Bretagne. Pour consoler@consolé@ maman, papa a quand même@méme@ dit qu’on ferait du sport. Je crois qu’il a prévu le grand tour du parasol et des randonnées@randonnés@ régulières entre la mer et les serviettes@servietes@ de bain.\" \r\n \r\n },\r\n {\r\n id : 2,\r\n niveau : \"facile\",\r\n titre : \"Trouver toutes les fautes niveau CE1\",\r\n texte : \"Il était une fois, en Afrique, un lapin qui était très sage. Il avait creusé son terrier au pied d’un vieux baobab, en plein centre de la forêt@foret@. C’était l’ami de tous les animaux, et les singes, les lions, les gazelles, les crocodiles, les perroquets, l’éléphant même, venaient@venait@ se confier à lui. \" \r\n },\r\n {\r\n id : 3,\r\n niveau : \"facile\",\r\n titre : \"Trouver toutes les fautes niveau CM2\",\r\n texte : \"Il faut une heure environ pour gravir ces@ses@ trois cents@cent@ mètres. Depuis quelque temps, déjà, des vapeurs de soufre@souffre@ nous prennent à la gorge. Nous avons aperçu, tantôt sur la droite, tantôt@tantot@ sur la gauche, de grands jets de fumée sortant par des fissures du sol ; nous avons posé nos mains sur de grosses pierres brulantes.\" \r\n },\r\n {\r\n id : 4,\r\n niveau : \"facile\",\r\n titre : \"Trouver les fautes niveau CM2\",\r\n texte : \"Le vieux Joseph, tout heureux d’avoir les pieds au sec, se laissa réparer et transformer en maison. On lui mit de beaux rideaux, on planta des rosiers qui grimpèrent sur son ventre et on installa de jolies chambres où la petite fille put@pu@ inviter à@a@ jouer tous ses@ces@ petits camarades. Le vieux Joseph devint ainsi la maison des enfants.\" \r\n },\r\n {\r\n id : 10,\r\n niveau : \"facile\",\r\n titre : \"Vingt-quatre heures de la vie d'une femme (facile)\",\r\n extrait : \"Vingt-quatre heures de la vie d'une femme - Zweig\",\r\n texte : \"Jamais encore, je n’avais vu un visage dans lequel la passion du jeu jaillissait si bestiale dans sa nudité effrontée@effronté@…. J’étais fascinée par ce visage qui, soudain, devint morne et éteint@éteind@ tandis que la boule se fixait sur un numéro : cet homme venait de tout perdre ! Il s’élança hors du Casino. Instinctivement, je le suivis... Commencèrent alors 24 heures qui allaient@allait@ bouleverser mon destin.\"\r\n },\r\n {\r\n id : 11,\r\n niveau : \"facile\",\r\n titre : \"Nord et Sud (facile)\",\r\n extrait : \"Nord et Sud - Elizabeth Gaskell\",\r\n texte : \"Il s'approcha encore et à nouveau répéta d'une voix suppliante@supliante@ et frémissante : Margaret ! Elle baissa encore la tête presque jusqu'à la table. Il s'approcha davantage, s'agenouilla à côté d'elle afin de murmurer à son oreille d'une voix haletante : Prenez garde... Si vous ne dites rien j'aurai la présomption@présemption@ de croire que vous acceptez d'être mienne. Si je dois partir, renvoyez-moi tout de suite... Margaret !... À ce troisième appel, elle tourna vers lui son visage à demi@demie@ caché par ses fines mains blanches et elle s'inclina sur son épaule pour s'y blottir@blotir@.\" \r\n },\r\n {\r\n id : 13,\r\n niveau : \"facile\",\r\n titre : \"La dictée du Balfroid (Belgique) (facile)\",\r\n texte : \"Tout le temps, on nous rappelle de quelle@quel@ façon nous devrions manger et ce qu’il faudrait consommer@consomer@. Il faut tout relativiser. Si nos grands-parents n’entendaient pas ce genre de propos, c’est qu’ils utilisaient, au moins à la campagne, des produits naturels. Les poules qu’ils avaient élevées@élevés@ leur donnaient@donnait@ des oeufs frais. Le lait et la viande étaient fournis@fourni@ par les vaches. Le jardin donnait de délicieux légumes : des poireaux, des carottes, du céleri, du persil, tous cueillis@cueilli@ juste avant les préparations culinaires. Maintenant, un circuit court permet d’agir comme autrefois. Il faut peut-être se déplacer vers une ferme proche, mais quel@quelle@ bonheur de déguster des aliments de qualité !\" \r\n },\r\n \r\n {\r\n id : 6,\r\n niveau: \"intermédiaire\",\r\n titre : \"Test de fautes d'orthographe niveau brevet (intermédiaire)\",\r\n texte : \" Ah ! les bois, les chers bois de Montigny ! À cette heure-ci, je le sais bien, comme ils@il@ bourdonnent@bourdonne@ ! Les guêpes et les mouches qui pompent dans les fleurs des tilleuls et des sureaux@surots@ font vibrer toute la forêt comme un orgue ; et les oiseaux ne chantent pas, car à midi ils se tiennent debout sur les branches, cherchent l’ombre, lissent leurs@leur@ plumes@plume@, et regardent@regarde@ le sous-bois avec des yeux mobiles et brillants.\" \r\n },\r\n \r\n {\r\n id : 8,\r\n niveau : \"intermédiaire\",\r\n titre : \"Trouver les fautes (intermédiaire)\",\r\n texte : \"Il était huit heures et demie passées@passée@ quand j’ai enfin pu me coucher. Je me suis réveillée neuf heures plus tard, la tête lourde, car j’avais fait un affreux cauchemar@cauchemard@. Après l’avalanche de paroles@parole@ du chauffeur de taxi et du sapeur-pompier qui m’avaient assommée et laissée quasi traumatisée, j’ai subi en plus une ingestion@injestion@ forcée de nourriture. En effet, j’ai rêvé qu’après une randonnée sur le plateau de Millevaches et l’exploration spéléologique@spélélogique@ d’un aven, j’étais entrée dans un restaurant d’un village du causse@cosse@ corrézien.\"\r\n },\r\n {\r\n id : 7,\r\n niveau : \"difficile\",\r\n titre : \"Notre-Dame de Paris (difficile)\",\r\n extrait : \"Notre-Dame de Paris - Hugo\",\r\n texte : \"Tous les yeux s’étaient levés vers le haut de l’église. Ce qu’ils@il@ voyaient@voyait@ était extraordinaire. Sur le sommet de la galerie la plus élevée, plus haut que la rosace centrale@central@, il y avait une grande flamme qui montait entre les deux clochers avec des tourbillons d’étincelles, une grande flamme désordonnée et furieuse dont le vent emportait par moments@moment@ un lambeau dans la fumée.\" \r\n },\r\n \r\n {\r\n id : 5,\r\n niveau : \"difficile\",\r\n titre : \"Test de fautes d'orthographe niveau brevet (difficile)\",\r\n texte : \"J’étais toute tremblante d’une admiration, d’un enthousiasme que j’eusse voulu lui exprimer@exprimé@, mais il ne me venait à l’esprit que des phrases que je craignais qu'elle ne trouvât ridicules@ridicule@. La classe était près de finir. Vite, je déchirai le bas d’une feuille de mon cahier ; j'écrivis en tremblant sur ce bout de papier : ' Je voudrais être votre amie ' et glissai@glissais@ vers elle gauchement ce billet. \" \r\n },\r\n {\r\n id : 9,\r\n niveau: \"très difficile\",\r\n titre : \"Trouver les fautes (très difficile)\",\r\n texte : \"Hier, un collègue est tombé d’un appentis@apentis@ en capturant un ara@aras@ qui le narguait en le traitant de bachibouzouk. Le pauvre s’est brisé le coccyx@cocyx@. Il y a deux jours, c’était la traque d’un atèle@athèle@, propriété d’une ex-égérie quasi centenaire de Soljenitsyne@Soljenitsine@. Le singe s’était réfugié au milieu des panicules les plus fournies d’un paulownia et s’enivrait de l’odeur de violette exhalée par les fleurs mellifères@melifères@. C’est au lasso qu’on l’a ramené à terre à@a@ passé deux heures du matin.\"\r\n },\r\n \r\n {\r\n id : 12,\r\n niveau : \"très difficile\",\r\n titre : \"Le texte de Mérimée (très très difficile)\",\r\n texte : \"Quelles que soient@soit@ et quelqu'exiguës qu'aient pu paraître, à côté de la somme due, les arrhes@arhes@ qu'étaient censés@censées@ avoir données@donnés@ la douairière et le marguillier, il était infâme d'en vouloir pour cela à ces fusiliers jumeaux et mal bâtis et de leur infliger une raclée alors qu'ils ne songeaient qu'à prendre des rafraîchissements avec leurs coreligionnaires@co-religionnaires@.\" \r\n },\r\n {\r\n id : 16,\r\n niveau : \"intermédiaire\",\r\n titre : \"Extrait du test de positionnement en début de lycée par l'Éducation nationale\",\r\n texte : \"Déçue@Déçu@ par l’attitude de Thierry, elle ne veut plus lui parler.
Appréciée par le public, la chanson a été interprétée une nouvelle fois.
Heureuses@Heureuse@, les petites filles font de la balançoire.
Impatients@Impatient@, les premiers acheteurs se précipitèrent dans le magasin.
Elle a déjà fini@finit@ son assiette de frites.
Sous le soleil de l’été, étendue@étendu@ sur sa serviette, Marie se repose enfin.
On se@ce@ réveille sans savoir le temps qu’il fait et on se lève pour regarder par la fenêtre.\"\r\n },\r\n // {\r\n // id : 17,\r\n // niveau : \"intermédiaire\",\r\n // titre : \"La souris prisonnière\",\r\n // texte : \"Papa attrapait les souris toutes vivantes@vivante@ dans une espèce de boîte qui se fermait@fermaient@ sur elles@elle@ en claquant et dont elles ne pouvaient sortir. J'allais les regarder là, par leur petite fenêtre@fenetre@ grillagée. Je voyais une jolie@joli@ petite bête avec de jolis petits yeux vifs, et j'aurais bien voulu la tenir dans ma main. Mais, dans la boîte, elle@elles@ courait@couraient@ de tous les côtés pour trouver la porte.\"\r\n // },\r\n\r\n];\r\nexport default DonneePhraseErreur\r\n","\r\n\r\nconst DonneePhraseTrou = [\r\n {\r\n id : 1,\r\n titre : \"Une test niveau CE1\",\r\n texte : \"Bruno, Marie et Éric partent se promener dans la campagne. Pour le [piknik] @pique-nique , Bruno a apporté le reste du [roti] @rôti , une orange et du [Sòkòla] @chocolat . \"\r\n },\r\n {\r\n id : 2,\r\n titre : \"Une autre phrase niveau CE1\",\r\n texte : \"Le dimanche, quand le temps est beau, nous allons nous [pròmné] @promener au parc. Les enfants sont [kôtâ] @contents et jouent autour du bassin. Nous donnons des [mjèt] @miettes de pain aux canards.\"\r\n },\r\n {\r\n id : 3,\r\n titre : \"Phrase à compléter niveau CM2 - facile\",\r\n texte : \"Dès qu'il s’éveille, à l’aube, il se met à l’ouvrage. Il fabrique un arc avec une branche souple et une corde en fibre de liane. Il taille quelques [flèS] @flèches et part à la chasse. Le dieu Quals le protège : Lynx tue une multitude d’oiseaux. Il les [dévòr] @dévore . De leur plumage multicolore, il se fait un manteau si beau, si [ébluisâ] @éblouissant que le soleil traversant le ciel s’arrête un instant, en plein midi, pour le contempler.\" \r\n },\r\n {\r\n id : 5,\r\n titre : \"Phrase à compléter niveau CM2 - facile\",\r\n texte : \"La boutique de Franz qui était située près de la maison [resâblè] @ressemblait à une merveilleuse caverne d’Ali Baba. Elle était remplie avec des jouets extraordinaires et magiques que nous admirions avec [âvi] @envie . Les enfants adoraient un lieu aussi [féérik] @féérique . Celui-ci avait le pouvoir de les séduire et il mettait régulièrement dans leurs yeux des étoiles d’émerveillement.\" \r\n },\r\n {\r\n id : 6,\r\n titre : \"Connaissez-vous les proverbes ? - facile\",\r\n texte : \"Pierre qui roule n'amasse pas @mousse .
Au royaume des aveugles, les borgnes sont @rois .
C'est à force de forger que l'on devient @forgeron .
A l’impossible nul n’est @tenu .
Noël au balcon, Pâques au @tison .
Qui s'acquitte @s'enrichit .
La pluie du matin n'arrête pas le @pèlerin .
On n'est jamais mieux servi que par @soi-même .
Mieux vaut être seul que mal @accompagné .
\" \r\n },\r\n {\r\n id : 7,\r\n titre : \"De bien belles pensées et citations à méditer - assez facile\",\r\n texte : \"Aimer, ce n'est pas se regarder l'un l'autre, c'est regarder @ensemble dans la même direction. (Antoine de Saint-Exupéry)
L'amour @triomphe de tout. (Virgile)
La vie, c'est comme une @bicyclette , il faut avancer pour ne pas perdre l'équilibre. (Albert Einstein)
Je ne perds jamais. Soit je gagne, soit j’ @apprends . (Nelson Mandela)
La vie est comme une pièce de théâtre: ce qui compte ce n'est pas qu'elle dure @longtemps , mais qu'elle soit bien jouée. (Sénèque)
Une femme pardonne tout, @excepté qu’on ne veuille pas d’elle (Musset).
\" \r\n },\r\n {\r\n id : 8,\r\n titre : \"Connaissez-vous le Corbeau et le Renard ?\",\r\n extrait : \"Le Corbeau et le Renard - Jean de La Fontaine\",\r\n texte : \"Maître Corbeau, sur un arbre @perché ,
Tenait en son bec un fromage.
Maître Renard, par l'odeur alléché,
Lui tint à peu près ce langage :
Et bonjour, Monsieur du Corbeau.
Que vous êtes joli ! que vous me semblez beau !
Sans mentir, si votre @ramage
Se rapporte à votre @plumage ,
Vous êtes le Phénix des hôtes de ces bois.
À ces mots, le Corbeau ne se sent pas de joie ;
Et pour montrer sa belle voix,
Il ouvre un large bec, laisse tomber sa proie.
Le Renard s'en saisit, et dit : Mon bon Monsieur,
Apprenez que tout @flatteur
Vit aux dépens de celui qui l'écoute.
Cette leçon vaut bien un @fromage , sans doute.
Le Corbeau @honteux et confus
Jura, mais un peu tard, qu'on ne l'y prendrait plus.
\" \r\n },\r\n {\r\n id : 9,\r\n titre : \"Connaissez-vous ce magnifique poème de Victor Hugo ?\",\r\n extrait : \" Demain, dès l’aube… Victor Hugo ( Les Contemplations)\",\r\n texte : \"Demain, dès l'aube, à l'heure où blanchit la campagne,
Je partirai. Vois-tu, je sais que tu m'attends.
J'irai par la forêt, j'irai par la montagne.
Je ne puis demeurer loin de toi plus longtemps.
Je marcherai les yeux fixés sur mes pensées,
Sans rien voir au dehors, sans entendre aucun bruit,
Seul, inconnu, le dos courbé, les mains croisées,
Triste, et le jour pour moi sera comme la nuit.
Je ne regarderai ni l’or du soir qui tombe,
Ni les voiles au loin descendant vers Harfleur,
Et quand j'arriverai, je mettrai sur ta @tombe
Un bouquet de houx vert et de bruyère en fleur.
\"\r\n },\r\n {\r\n id : 10,\r\n titre : \"La concordance des modes - facile\",\r\n texte : \"Au fait, hier soir, je t’ai attendu dehors jusqu’à ce qu’il se [mettre] @mette à pleuvoir. À ce moment-là, je me suis réfugié dans un café, si bien que nous nous [être] @sommes ratés, si toutefois tu es venu. Ne répète à personne ce que je t’[avoir] @ai dit au sujet de Sébastien : on pourrait en déduire que je [être] @suis jaloux. Non, ce que je t’[avoir] @ai dit, c’est pour que tu [être] @sois prévenu et que tu ne te [faire] @fasses pas avoir, toi aussi, par Sébastien.
\"\r\n },\r\n {\r\n id : 11,\r\n titre : \"Compléter la phrase rokoko - difficile\",\r\n extrait : \"La confidente\",\r\n texte : \"Chaque dimanche, je me rends rue des Bouleaux pour entendre ma grand-mère [patèrnèl] @paternelle me raconter de nouvelles histoires. Ses souvenirs d’une époque socioculturelle [révòlu] @révolue me fascinent et m’enchantent. Ma grand-mère a vécu, durant sa jeunesse, un fol amour dont elle ne s’est jamais complètement remise. Souvent, confortablement [unstalé] @installées dans son boudoir rempli d’objets [ròkòko] @rococo , accoudées sur un mol oreiller et dégustant des boissons [ègredousse] @aigres-douces , nous laissons l’après-midi filer par les fenêtres grandes ouvertes alors qu’elle me raconte ses anciennes amours avec un [bèl] @bel officier de la marine. Seuls les beaux instants sont évoqués ; les événements désagréables sont [tabu] @tabous .
\"\r\n },\r\n {\r\n id : 12,\r\n titre : \"Compléter des verbes - facile\",\r\n texte : \"Je me [souvjên] @souviens de Paul alors qu’il n’avait que six ans. Déjà, ses parents l’encourageaient à développer son potentiel artistique. Tout le monde [disè] @disait de lui qu’il deviendrait un grand virtuose. Ni son professeur ni ses parents ne [savè] @savaient à quel point ces commentaires se révéleraient justes. À dix-sept ans, selon les dires de spécialistes qui [survèj] @surveillent ses progrès, il semblerait qu’il soit en voie de devenir un musicien [aimérit] @émérite .
\"\r\n },\r\n {\r\n id : 13,\r\n titre : \"Compléter les phrases\",\r\n texte : \"Quoique ce travail leur demande beaucoup de temps et d’efforts, ils s’arrêtent quelquefois pour se raconter [tel] @telle anecdote survenue durant la semaine ou encore [leur] @leurs démêlés avec [leur] @leur professeur de français, celui-là même qui leur conseille de ne pas s’asseoir ensemble en classe. Mais après ces quelques minutes de répit, [tou] @tout rentre dans l’ordre. Tout à leur tâche, [tou] @tout fatigués qu’ils soient, ils ne s’arrêteront que lorsqu’ils auront [tou] @tout compris. Quelque tentés qu’ils soient de s’amuser, ils demeurent [tou] @tout à leur affaire.
\"\r\n },\r\n {\r\n id : 14,\r\n titre : \"Écrire les couleurs - difficile\",\r\n texte : \"Des robes [vert] @vertes
Des robes [turqoise] @turquoise
Des robes [maron] @marron
Des robes jaune [fonsé] @foncé
Des robes bleu [clair] @clair
Des robes [jaune] @jaunes \"\r\n }\r\n ,\r\n {\r\n id : 15,\r\n titre : \"Retour en enfance - une souris verte\",\r\n texte : \"Une souris verte
Qui courait dans l'herbe
Je l'attrape par la @queue
Je la montre à ces @messieurs
Ces messieurs me disent
Trempez-la dans l'huile
Trempez-la dans l'eau
Ça fera un @escargot
Tout chaud
Je la mets dans un @tiroir
Elle me dit qu'il fait trop noir
Je la mets dans mon @chapeau
Elle me dit qu'il fait trop chaud
\"\r\n },\r\n {\r\n id : 18,\r\n titre : \"La féminisation des métiers\",\r\n extrait : \"La question reste ouverte pour de nombreux cas dans les dictionnaires (auteur, écrivain...).\",\r\n texte : \"Un fermier, une @fermière
Un fonctionnaire, une @fonctionnaire
Un médecin, une @médecin
Un sergent, une @sergente
Un sculpteur, une @sculptrice
Un metteur en scène, une @metteuse en scène
Un abbé, une @abbesse
Une sagefemme (rectifications orthographiques de 1990), un @sagefemme
Un valet de chambre, une @femme de chambre
Un ingénieur, une @ingénieure
\"\r\n },\r\n {\r\n id : 19,\r\n titre : \"Quel(s) / quelle(s) – qu'elle(s)\",\r\n extrait : \"Complétez [quel] par la bonne orthographe. Revoir le cours\",\r\n texte : \"Ah, [quel] @quelle belle pomme !
Il fait toujours froid, [quel] @quelles sont vos prévisions pour la semaine ?
Voici des fleurs [quel] @qu'elle a cueillies pour toi.
Ils refusent de tuer un animal, [quel] @quel qu’il soit
Ah, [quel] @quelle tristesse !
À [quel] @quels événements fait-il allusion
Pendant [quel] @quelles discussions avez-vous abordé ce sujet ?
À [quel] @quel moment partirez-vous ?
Qu’est-ce [quel] @qu'elles ont tant à faire ?
\"\r\n },\r\n {\r\n id : 20,\r\n titre : \"Savoir écrire des, dès, dés, sur, sûr et sûre\",\r\n extrait : \"Complétez [des] et [sur] avec la bonne orthographe.\",\r\n texte : \"J'espère que vous l'examinerez [des] @dès que vous le pourrez.
Vous pouvez apprendre à jouer aux [des] @dés mexicains.
Cela doit être fait [des] @dès que la liste sera mise à disposition.
Avez-vous [des] @des enfants ?
Aux commandes d'un bateau, il est [sur] @sûr de lui.
Location de voiture électriques [des] @dès 50 euros par jour.
Elle est [sur] @sûre d’elle.
Quels sont les différents jeux de [des] @dés ?
Laissez trois hommes ensemble après le dîner, vous pouvez être [sur] @sûr que la conversation tombera sur les femmes. (Flaubert)
Il danse [sur] @sur le mur de Berlin.
\"\r\n },\r\n // {\r\n // id : 25,\r\n // titre : \"Majuscule ou pas\",\r\n // extrait : \"Il suffit simplement de réécrire le mot entre crochets avec ou sans majuscule. \",\r\n // texte : \"Le [président] @président de la [république] @République parle au nom de la France.
Il est nommé [premier] @Premier ministre.
Elle a de la chance ; [il] @il s'est mis à neiger pour les sports d'hiver.
Il apprend le [chinois] @chinois .
Le palais Bourbon est le nom communément donné au bâtiment qui abrite l'Assemblée [nationale] @nationale française.
La [tour] @tour Eiffel est une tour de 324 mètres de hauteur.
Les [parisiens] @Parisiens sont-ils des privilégiés ?
Le [moyen] @Moyen Âge est la période de l'histoire européenne qui s'étend de la fin de l'Empire romain au début de la Renaissance.
Le [préfet] @préfet est la représentation de l’État au niveau d'un département.
\"\r\n // },\r\n // {\r\n // id : 21,\r\n // titre : \"Masculin ou féminin\",\r\n // extrait : \"Ajouter un ou une (sans majuscule) devant chaque mot\",\r\n // texte : \"(un/une) @un haltère
(un/une) @un pétale
(un/une) @un équinoxe
(un/une) @un enseigne (l'officier de la marine de guerre)
(un/une) @une anagramme
(un/une) @une oasis
(un/une) @un abîme
(un/une) @une apostrophe
(un/une) @une stalactite
(un/une) @un tentacule
\"\r\n\r\n // },\r\n // {\r\n // id : 22,\r\n // titre : \" Écrire le contraire des mots ou des adjectifs ci-dessous avec des préfixes\",\r\n // extrait : \"Exemple : lisible - illisible\",\r\n // texte : \"responsable @irresponsable
hydraté @déshydraté
moral @immoral
défini @indéfini
populaire @impopulaire
mortel @immortel
lettré @illettré
observable @inobservable
accordé @désaccordé
hospitalier @inhospitalier
\"\r\n\r\n // },\r\n // },\r\n // {\r\n // id : 23,\r\n // titre : \"Les abréviations\",\r\n // extrait : \"Écrire la forme abrégée du mot entre parenthèses. Certaines abréviations nécessitent normalement des exposants (madame) mais cela n’est pas possible ici. On se contentera de l’écrire simplement sur la même ligne.\",\r\n // texte : \"(Monsieur) @M. Dupont
(Messieurs) @MM. Corchan et Lucas
(Madame) @Mme N'Dyaye
5 (minutes) @min
4 (kilomètres) @km
Les enseignants du (second) @2d degré
Le (premier) @1er prix
Le (troisième) @3e prix
L'expression latine « exempli gratia » est principalement utilisée par les anglophones pour illustrer son point de vue à l'aide d'un exemple, sa forme abrégée sans espace est @e.g.
La classe de (seconde) @2de
\"\r\n\r\n // },\r\n \r\n \r\n \r\n];\r\nexport default DonneePhraseTrou\r\n","\r\nconst DonneeListeMots = [{\r\n id: 1,\r\n taille : 6,\r\n titre: \"Mots de 6 lettres\",\r\n liste: ['ACAJOU', 'AMORCE', 'BARQUE', 'BATEAU', 'BETISE', 'BOURSE', 'CANAPE', 'CARNET', 'DEVOIR', 'DISQUE', 'ECUEIL','ENFANT',\r\n'FARINE','FLEUVE', 'GELULE','HELIUM','IVOIRE', 'JAMBON', 'LARDON', 'LEURRE', 'MILIEU', 'MUGUET','NOTICE', 'OURSON', 'PASTEL',\r\n'PERRON', 'PEUPLE', 'RAGOUT', 'RAPACE', 'REVEUR', 'SERMON', 'SILLON', 'TARTRE', 'TOUBIB', 'URGENT', 'VALLON', 'ZENITH']\r\n\r\n},\r\n{\r\nid: 2,\r\ntaille : 7,\r\ntitre: \"Mots de 7 lettres\",\r\nliste: ['ABSENCE', 'AFFAIRE', 'AROMATE', 'BAGNARD', 'BARATIN', 'BISCUIT', 'BOUQUET', 'CAILLOU','CARAMEL', 'CLAVIER', 'CONSOLE',\r\n'DAUPHIN', 'DEFICIT', 'DORMEUR', 'DRAPEAU', 'EPARGNE', 'FISSURE', 'GLUCIDE', 'HORMONE', 'INSECTE', 'JUMELLE', 'LECTEUR','LUTHIER',\r\n'MACHINE', 'MAILLOT', 'MISSION', 'NATUREL', 'ORIGINE', 'PELICAN', 'PINTADE', 'RELIURE', 'SOUDEUR', 'SUSPENS', 'TEMPETE', 'TILLEUL', 'VANILLE',\r\n'VOYANTE']\r\n},\r\n{\r\n id: 3,\r\n taille : 8,\r\n titre: \"Mots de 8 lettres\",\r\n liste: ['ALLIANCE', 'ARCHIPEL', 'ASSIETTE', 'BAIGNEUR', 'BENEVOLE', 'CALOMNIE', 'CHANTEUR', 'CITATION', 'COLLEGUE', 'DEMINEUR',\r\n'DISCOURS', 'ERAFLURE', 'ETUDIANT', 'GRIFFURE', 'GRATTOIR','HERITAGE', 'KEROSENE', 'LENTILLE', 'LINGERIE', 'MANUCURE', 'MIGRAINE',\r\n'MOQUETTE', 'OBSTACLE', 'OVERDOSE', 'PANTHERE', 'PEINTURE', 'PIANISTE', 'REGIMENT', 'RICOCHET', 'SPECIMEN', 'STOCKAGE', 'TOILETTE', 'TONNERRE',\r\n'VINAIGRE']\r\n },\r\n {\r\n id: 4,\r\n taille : 7,\r\n titre: \"Mots de 7 lettres - difficile\",\r\n liste: ['ABOYEUR', 'ACOLYTE', 'ADHESIF','AQUEDUC', 'BAROQUE', 'BECARRE', 'BRIQUET', 'BROYAGE', 'CALYPSO',\r\n 'COHORTE', 'CUISSOT', 'DACTYLO', 'DIOXYDE', 'ESCARPE', 'GABELLE', 'GALAXIE', 'GYNECEE', 'JACUZZI', 'KOUGLOF', 'MIXTURE','METEQUE',\r\n 'OEILLET','PARAPHE','PERDRIX','PIVOINE','REJETON','ROUQUIN','SAMOVAR','SOLVANT','TREMOLO', 'VARAPPE','VOILAGE','ZIZANIE', 'WALLABY'\r\n]\r\n },\r\n]\r\n\r\nexport default DonneeListeMots;\r\n","\r\n\r\nconst DonneeVerbeConjugaison = [\r\n {\r\n id: 1,\r\n titre: \"Conjugaison au présent\",\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'je',\r\n verbe: 'penser',\r\n reponse: 'pense'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'il',\r\n verbe: 'finir',\r\n reponse: 'finit'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'nous',\r\n verbe: 'être',\r\n reponse: 'sommes'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'elle',\r\n verbe: 'envoyer',\r\n reponse: 'envoie'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'ils',\r\n verbe: 'aimer',\r\n reponse: 'aiment'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'tu',\r\n verbe: 'battre',\r\n reponse: 'bats'\r\n }\r\n\r\n ]\r\n },\r\n {\r\n id: 2,\r\n titre: \"Conjugaison au passé composé\",\r\n exo: [\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'j\\'',\r\n verbe: 'conjuguer',\r\n reponse: 'ai conjugué'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'il',\r\n verbe: 'sécher',\r\n reponse: 'a séché'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'vous',\r\n verbe: 'installer',\r\n reponse: 'avez installé'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'nous',\r\n verbe: 'prendre',\r\n reponse: 'avons pris'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'ils',\r\n verbe: 'envahir',\r\n reponse: 'ont envahi'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'nous',\r\n verbe: 'fuire',\r\n reponse: 'avons fui'\r\n }\r\n ]\r\n },\r\n {\r\n id: 3,\r\n titre: \"Conjugaison au passé simple\",\r\n exo: [\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'vous',\r\n verbe: 'couler',\r\n reponse: 'coulâtes'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'tu',\r\n verbe: 'manger',\r\n reponse: 'mangeas'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'nous',\r\n verbe: 'profiter',\r\n reponse: 'profitâmes'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'je',\r\n verbe: 'faire',\r\n reponse: 'fis'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'ils',\r\n verbe: 'jouer',\r\n reponse: 'jouèrent'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'nous',\r\n verbe: 'fuir',\r\n reponse: 'fuîmes'\r\n }\r\n ]\r\n\r\n },\r\n {\r\n id: 4,\r\n titre: \"Conjugaison au conditionnel présent\",\r\n exo: [\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'ils',\r\n verbe: 'bouger',\r\n reponse: 'bougeraient'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'tu',\r\n verbe: 'informer',\r\n reponse: 'informerais'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'nous',\r\n verbe: 'taire',\r\n reponse: 'tairions'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'ils',\r\n verbe: 'réussir',\r\n reponse: 'réussiraient'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'ils',\r\n verbe: 'perdre',\r\n reponse: 'perdraient'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'tu',\r\n verbe: 'appréhender',\r\n reponse: 'appréhenderais'\r\n }\r\n ]\r\n\r\n },\r\n {\r\n id: 5,\r\n titre: \"Conjugaison impératif présent\",\r\n exo: [\r\n {\r\n temps: 'Impératif présent',\r\n sujet: '(tu)',\r\n verbe: 'gagner',\r\n reponse: 'gagne'\r\n },\r\n {\r\n temps: 'Impératif présent',\r\n sujet: '(tu)',\r\n verbe: 'convier',\r\n reponse: 'convie'\r\n },\r\n {\r\n temps: 'Impératif présent',\r\n sujet: '(tu)',\r\n verbe: 'avoir',\r\n reponse: 'aie'\r\n },\r\n {\r\n temps: 'Impératif présent',\r\n sujet: '(nous)',\r\n verbe: 'avoir',\r\n reponse: 'ayons'\r\n },\r\n {\r\n temps: 'Impératif présent',\r\n sujet: '(vous)',\r\n verbe: 'avoir',\r\n reponse: 'ayez'\r\n },\r\n {\r\n temps: 'Impératif présent',\r\n sujet: '(vous)',\r\n verbe: 'râler',\r\n reponse: 'râlez'\r\n }\r\n ]\r\n\r\n },\r\n {\r\n id: 6,\r\n titre: \"Conjugaison infinitif et gérondif\",\r\n exo: [\r\n {\r\n temps: 'Infinitif',\r\n sujet: '',\r\n verbe: 'gagner',\r\n reponse: 'gagner'\r\n },\r\n {\r\n temps: 'Infinitif passé',\r\n sujet: '',\r\n verbe: 'ajouter',\r\n reponse: 'avoir ajouté'\r\n },\r\n {\r\n temps: 'Gérondif présent',\r\n sujet: '',\r\n verbe: 'procurer',\r\n reponse: 'en procurant'\r\n },\r\n {\r\n temps: 'Gérondif passé',\r\n sujet: '',\r\n verbe: 'procurer',\r\n reponse: 'en ayant procuré'\r\n },\r\n {\r\n temps: 'Gérondif présent',\r\n sujet: '',\r\n verbe: 'déteindre',\r\n reponse: 'en déteignant'\r\n },\r\n {\r\n temps: 'Gérondif passé',\r\n sujet: '',\r\n verbe: 'râler',\r\n reponse: 'en ayant râlé'\r\n }\r\n ]\r\n\r\n },\r\n {\r\n id: 7,\r\n titre: \"Conjugaison des verbes irréguliers\",\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'je',\r\n verbe: 'peindre',\r\n reponse: 'peins'\r\n },\r\n {\r\n temps: 'Futur',\r\n sujet: 'je',\r\n verbe: 'battre',\r\n reponse: 'battrai'\r\n },\r\n {\r\n temps: 'Imparfait',\r\n sujet: 'ils',\r\n verbe: 'déplaire',\r\n reponse: 'déplaisaient'\r\n },\r\n {\r\n temps: 'Plus-que-parfait',\r\n sujet: 'il',\r\n verbe: 'joindre',\r\n reponse: 'avait joint'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'ils',\r\n verbe: 'pouvoir',\r\n reponse: 'purent'\r\n },\r\n {\r\n temps: 'Futur',\r\n sujet: 'je',\r\n verbe: 'connaître',\r\n reponse: 'connaîtrai'\r\n }\r\n ]\r\n\r\n }, \r\n {\r\n id: 8,\r\n titre: \"Conjugaisons très difficiles\",\r\n exo: [\r\n {\r\n temps: 'Futur antérieur',\r\n sujet: 'ils',\r\n verbe: 'dérouler',\r\n reponse: 'auront déroulé'\r\n },\r\n {\r\n temps: 'Passé antérieur',\r\n sujet: 'tu',\r\n verbe: 'moudre',\r\n reponse: 'eus moulu'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'je',\r\n verbe: 'joindre',\r\n reponse: 'joindrais'\r\n },\r\n {\r\n temps: 'Subjonctif présent',\r\n sujet: 'que tu',\r\n verbe: 'requérir',\r\n reponse: 'requières'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'ils',\r\n verbe: 'rompre',\r\n reponse: 'rompirent'\r\n }, {\r\n temps: 'Futur antérieur',\r\n sujet: 'nous',\r\n verbe: 'acquérir',\r\n reponse: 'aurons acquis'\r\n }\r\n\r\n ]\r\n\r\n }, \r\n {\r\n id: 9,\r\n titre: \"Test futur vs conditionnel\",\r\n exo: [\r\n {\r\n temps: 'Futur',\r\n sujet: 'je',\r\n verbe: 'consolider',\r\n reponse: 'consoliderai'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'je',\r\n verbe: 'consolider',\r\n reponse: 'consoliderais'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'tu',\r\n verbe: 'devoir',\r\n reponse: 'devrais'\r\n },\r\n {\r\n temps: 'Futur',\r\n sujet: 'tu',\r\n verbe: 'devoir',\r\n reponse: 'devras'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'vous',\r\n verbe: 'sentir',\r\n reponse: 'sentiriez'\r\n },\r\n {\r\n temps: 'Futur',\r\n sujet: 'vous',\r\n verbe: 'sentir',\r\n reponse: 'sentirez'\r\n }\r\n ]\r\n\r\n }\r\n , \r\n {\r\n id: 10,\r\n titre: \"Conjugaison verbe premier groupe présent\",\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'je',\r\n verbe: 'parler',\r\n reponse: 'parle'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'tu',\r\n verbe: 'parler',\r\n reponse: 'parles'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'elle',\r\n verbe: 'parler',\r\n reponse: 'parle'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'nous',\r\n verbe: 'parler',\r\n reponse: 'parlons'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'vous',\r\n verbe: 'parler',\r\n reponse: 'parlez'\r\n },\r\n \r\n {\r\n temps: 'Présent',\r\n sujet: 'ils',\r\n verbe: 'parler',\r\n reponse: 'parlent'\r\n }\r\n ]\r\n\r\n },\r\n {\r\n id: 11,\r\n titre: \"Conjugaison verbe second groupe présent\",\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'je',\r\n verbe: 'bondir',\r\n reponse: 'bondis'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'tu',\r\n verbe: 'bondir',\r\n reponse: 'bondis'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'elle',\r\n verbe: 'bondir',\r\n reponse: 'bondit'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'nous',\r\n verbe: 'bondir',\r\n reponse: 'bondissons'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'vous',\r\n verbe: 'bondir',\r\n reponse: 'bondissez'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'elles',\r\n verbe: 'bondir',\r\n reponse: 'bondissent'\r\n }\r\n ]\r\n }\r\n ,\r\n {\r\n id: 12,\r\n titre: \"Conjugaison verbe troisième groupe présent\",\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'je',\r\n verbe: 'sentir',\r\n reponse: 'sens'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'tu',\r\n verbe: 'sentir',\r\n reponse: 'sens'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'elle',\r\n verbe: 'sentir',\r\n reponse: 'sent'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'nous',\r\n verbe: 'sentir',\r\n reponse: 'sentons'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'vous',\r\n verbe: 'sentir',\r\n reponse: 'sentez'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'elles',\r\n verbe: 'sentir',\r\n reponse: 'sentent'\r\n }\r\n ]\r\n } ,\r\n {\r\n id: 13,\r\n titre: \"Conjugaison verbes coudre/moudre\",\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'je',\r\n verbe: 'coudre',\r\n reponse: 'couds'\r\n },\r\n {\r\n temps: 'Futur',\r\n sujet: 'tu',\r\n verbe: 'coudre',\r\n reponse: 'coudras'\r\n },\r\n {\r\n temps: 'Imparfait',\r\n sujet: 'elle',\r\n verbe: 'coudre',\r\n reponse: 'cousait'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'nous',\r\n verbe: 'moudre',\r\n reponse: 'avons moulu'\r\n },\r\n {\r\n temps: 'Plus-que-parfait',\r\n sujet: 'vous',\r\n verbe: 'moudre',\r\n reponse: 'aviez moulu'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'elles',\r\n verbe: 'moudre',\r\n reponse: 'moulurent'\r\n }\r\n ]\r\n } ,\r\n {\r\n id: 14,\r\n titre: \"Conjugaison verbes difficiles\",\r\n exo: [\r\n {\r\n temps: 'Futur',\r\n sujet: 'je',\r\n verbe: 'balayer',\r\n reponse: 'balaierai'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'tu',\r\n verbe: 'cueillir',\r\n reponse: 'cueillis'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'elle',\r\n verbe: 'clore',\r\n reponse: 'clôt'\r\n },\r\n {\r\n temps: 'Futur',\r\n sujet: 'nous',\r\n verbe: 'craindre',\r\n reponse: 'craindrons'\r\n },\r\n {\r\n temps: 'Imparfait',\r\n sujet: 'vous',\r\n verbe: 'joindre',\r\n reponse: 'joigniez'\r\n },\r\n {\r\n temps: 'Futur',\r\n sujet: 'elles',\r\n verbe: 'naître',\r\n reponse: 'naîtront'\r\n }\r\n ]\r\n }\r\n\r\n\r\n];\r\n\r\nexport default DonneeVerbeConjugaison;\r\n","const DonneeDesordre = [\r\n {id: 1,\r\n titre: \"Désordre facile 1\",\r\n liste :\r\n [{\r\n lettres : \"HUPROETAASIBR\",\r\n reponse : [\"BAS\",\"HAUT\"]\r\n },\r\n {\r\n lettres : \"EUVLRESOVBRREPQEA\",\r\n reponse : [\"LOUPE\",\"VERRE\"]\r\n }]\r\n},\r\n{id: 2,\r\n titre: \"Désordre facile 2\",\r\n liste :\r\n [{\r\n lettres : \"PRITOREEAUIFCS\",\r\n reponse : [\"FOIE\",\"CUIR\"]\r\n },\r\n {\r\n lettres : \"NNDTOEPIESDSETU\",\r\n reponse : [\"DENT\",\"DOSE\"]\r\n }]\r\n},\r\n{id: 7,\r\n titre: \"Désordre facile 3\",\r\n liste :\r\n [{\r\n lettres : \"BONMEINARCPTOD\",\r\n reponse : [\"DON\",\"MAIN\"]\r\n },\r\n {\r\n lettres : \"MGNAMUIIBERTGSREAAVT\",\r\n reponse : [\"MUET\",\"MARS\",\"GAIN\"]\r\n }]\r\n},\r\n{id: 8,\r\n titre: \"Désordre facile 4\",\r\n liste :\r\n [{\r\n lettres : \"IIGWRREMSXUERTAOBR\",\r\n reponse : [\"RIRE\",\"ROBE\"]\r\n },\r\n {\r\n lettres : \"TFRIADSAUFNEHIVM\",\r\n reponse : [\"TARD\",\"VAIN\"]\r\n }]\r\n},\r\n{id: 3,\r\n titre: \"Désordre moyen 1\",\r\n liste :\r\n [{\r\n lettres : \"GSREOFIUTCFSGILHE\",\r\n reponse : [\"FLIC\",\"GOSSE\"]\r\n },\r\n {\r\n lettres : \"SNOAZUALOEEEUTEDYGRRSL\",\r\n reponse : [\"RAYON\",\"SALLE\",\"DROGUE\"]\r\n }]\r\n},\r\n{id: 4,\r\n titre: \"Désordre moyen 2\",\r\n liste :\r\n [{\r\n lettres : \"TDHURGAOEOENUCLCEER\",\r\n reponse : [\"DOUANE\",\"ECORCE\"]\r\n },\r\n {\r\n lettres : \"RAORPMSISIIENTAEFETD\",\r\n reponse : [\"EMPIRE\",\"ARTISAN\"]\r\n }]\r\n},\r\n{id: 6,\r\n titre: \"Désordre moyen 3\",\r\n liste :\r\n [\r\n {\r\n lettres : \"TIJRROEOIGADDUUER\",\r\n reponse : [\"RODEUR\",\"JEUDI\"]\r\n },\r\n {\r\n lettres : \"STATALDNPEETUHFYOUIIB\",\r\n reponse : [\"TAUDIS\",\"BOUT\",\"FILE\"]\r\n },\r\n ]\r\n},\r\n{id: 9,\r\n titre: \"Désordre moyen 4\",\r\n liste :\r\n [\r\n {\r\n lettres : \"SKTOOPIAEJPLISAICNULU\",\r\n reponse : [\"SKI\",\"LOUP\",\"PIANO\"]\r\n },\r\n {\r\n lettres : \"RMRREVDDIOUREEIPYJASRBOTPROI\",\r\n reponse : [\"VIE\",\"JURY\",\"DOPER\",\"DORMIR\"]\r\n },\r\n ]\r\n},\r\n{id: 5,\r\n titre: \"Désordre difficile 1\",\r\n liste :\r\n [{\r\n lettres : \"ORCDEPUROEAEVSCCMFHCAL\",\r\n reponse : [\"CAMPEUR\",\"CLOCHER\"]\r\n },\r\n {\r\n lettres : \"CBPVOECRVARCIEOSEETSISNA\",\r\n reponse : [\"CONVIVE\",\"CARCASSE\"]\r\n }]\r\n},\r\n// {id: 10,\r\n// titre: \"Désordre concours 1\",\r\n// liste :\r\n// [{\r\n// lettres : \"LTOLXEPIRGSEOTIAILETNEF\",\r\n// reponse : [\"SEXE\",\"FILON\",\"GILET\"]\r\n// },\r\n// {\r\n// lettres : \"ETVEEFROREIAYMBSJGIP\",\r\n// reponse : [\"FOYER\",\"EGERIE\"]\r\n// }]\r\n// },\r\n// {id: 11,\r\n// titre: \"Désordre concours 2\",\r\n// liste :\r\n// [{\r\n// lettres : \"NECSRCTEIEROVEAEMLPHNSAO\",\r\n// reponse : [\"CALE\",\"VEINE\",\"SERMON\"]\r\n// },\r\n// {\r\n// lettres : \"KRTEETADORGASEBIOEUSCPR\",\r\n// reponse : [\"ROCKET\",\"ADRESSE\"]\r\n// }]\r\n// },\r\n\r\n\r\n]\r\nexport default DonneeDesordre;","const DonneeQcmMelange = [\r\n {id: 3,\r\n titre : \"Culture générale - facile\",\r\n info : [{\"question\":\"

Dans quelle ville pouvez-vous visiter la place Stanislas ?

\",\"reponses\":[{\"choix\":\"Nancy\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de la famille (père et fils) qui a composé les morceaux suivants : La Marche de Radetzky, Le Beau Danube Bleu, La Valse de l’Empereur ?

\",\"reponses\":[{\"choix\":\"Strauss\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom du réalisateur de E.T, Jurassic Park et Ready Player One

\",\"reponses\":[{\"choix\":\"Spielberg\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Moine et théologien allemand excommunié par le pape et qui est à l’origine de la réforme protestante.

\",\"reponses\":[{\"choix\":\"Luther\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Prénom d’une des deux sœurs Williams qui a gagné 22 titres en simple en Grand Chelem (record féminin égalé).

\",\"reponses\":[{\"choix\":\"Serena\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom du meilleur buteur de l'histoire de l’équipe de France de football (53 buts)

\",\"reponses\":[{\"choix\":\"Giroud\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n },\r\n {id: 1,\r\n titre : \"Culture générale - facile\",\r\n info : [{\"question\":\"

Nom de l’auteur des Aventures de Tom Sawyer (1876) et des Aventures de Huckleberry Finn ?

\",\"reponses\":[{\"choix\":\"Twain\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom du chanteur considéré comme le plus grand rockeur français et qui est décédé en 2017 ?

\",\"reponses\":[{\"choix\":\"Hallyday\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom du cimetière parisien où est enterré Honoré de Balzac, Alain Bashung et Oscar Wilde ?

\",\"reponses\":[{\"choix\":\"Père-Lachaise\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Vedette d’émission de télé-réalité connue pour avoir prononcé la phrase : « Allô ! Non, mais allô quoi !… »

\",\"reponses\":[{\"choix\":\"Nabilla\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom de la mer située dans l’océan Atlantique, seule mer au monde ne possédant pas de rivages.

\",\"reponses\":[{\"choix\":\"Sargasses\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom de l’homme politique et écrivain italien (Florence 1469-1527) auteur de la citation « Contenter le peuple et ménager les grands, voilà la maxime de ceux qui savent gouverner. »

\",\"reponses\":[{\"choix\":\"Machiavel\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n}, {id: 2,\r\n titre : \"Connaissez-vous la philosophie ? - très difficile\",\r\n info : [{\"question\":\"

Voici 2 citations d’Épictète \\\"Supporte les maux et abstiens-toi des biens\\\" et \\\"Il n'y a qu'une route vers le bonheur c'est de renoncer aux choses qui ne dépendent pas de notre volonté.\\\"

À quel courant de pensée philosophique Épictète appartient-il ?

\",\"reponses\":[{\"choix\":\"stoïcisme\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"

Le stoïcisme implique de vivre en harmonie avec la nature en prenant soin de son corps et de son âme par la pratique de la vertu et le rejet des passions. (https://www.philomag.com/)

\"},{\"question\":\"

Ce philosophe vivait comme un vagabond et n’hésitait pas à se masturber en public. Il est souvent représenté vivant dans un tonneau. Il pensait que bonheur n’était possible qu’en s’accordant parfaitement avec la nature et que les conventions sociales, les biens matériels ne sont que des pièges qui empêchent toute sagesse.

Quel est son nom ?

\",\"reponses\":[{\"choix\":\"Diogène\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom du philosophe qui pensait que le but principal de l'existence est le plaisir ? Ces citations les plus connues sont \\\"Il est plus doux de donner que de recevoir.\\\" et \\\"L'homme qui ne se contente pas de peu ne sera jamais content de rien.\\\" .

\",\"reponses\":[{\"choix\":\"Épicure\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"

L’épicurien évite les excès et aime les plaisirs simples.

\"},{\"question\":\"

Ce philosophe chinois (mort en -479 av. J.-C.) pensait que l’humanité devait agir moralement. Il est l’auteur des citations suivantes \\\"Lorsque l’on se cogne la tête contre un pot et que cela sonne creux, ça n’est pas forcément le pot qui est vide.\\\" , \\\"Se préparer au pire. Espérer le meilleur. Prendre ce qui vient.\\\" , \\\"Exige beaucoup de toi-même et attends peu des autres. Ainsi beaucoup d'ennuis te seront épargnés\\\" .

Quel est son nom ?

\",\"reponses\":[{\"choix\":\"Confucius\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de ce philosophe allemand très pessimiste qui pense que \\\"La vie oscille, comme un pendule, de la souffrance à l'ennui\\\" et que \\\"La souffrance est le fond de toute vie\\\" ? Ce célibataire endurci a légué l’ensemble de ses biens à son chien.

\",\"reponses\":[{\"choix\":\"Schopenhauer\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de ce philosophe et théologien chrétien de l’Antiquité, reconnu comme saint par l’Église catholique et dont les citation les plus célèbres sont : \\\"La mesure de l'amour, c'est d'aimer sans mesure.\\\" et \\\"Aime et fais ce que tu voudras.\\\" ?

\",\"reponses\":[{\"choix\":\"Augustin\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n}, \r\n{id: 4,\r\n titre : \"Connaissez-vous les noms des fleurs ? - moyen\",\r\n info :[{\"question\":\"

Quel est le nom de cet arbuste avec ses fleurs ?

fleurMel1.jpg\",\"reponses\":[{\"choix\":\"camélia\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de cette plante, souvent associée à la commémoration de la Première Guerre mondiale car elle fleurissait aux abords des tranchées et des tombes de soldats ?

fleurMel2.jpg\",\"reponses\":[{\"choix\":\"coquelicot\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de cette plante ?

fleurMel3.jpg\",\"reponses\":[{\"choix\":\"glaïeul\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de cette plante ?

fleurMel4.jpg\",\"reponses\":[{\"choix\":\"myosotis\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de cette plante qui est de la même famille que les jonquilles ?

fleurMel5.jpg\",\"reponses\":[{\"choix\":\"narcisse\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de cette plante que l’on trouve souvent sur les balcons et les terrasses ?

fleurMel6.jpg\",\"reponses\":[{\"choix\":\"pétunia\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n}, \r\n\r\n\r\n\r\n\r\n]\r\nexport default DonneeQcmMelange;","const Donnee6Mots = [\r\n {\r\n id: 1,\r\n titre: \"Boogle 6 mots - facile 1\",\r\n info:\r\n {\r\n lettres: ['R', 'A', 'T','E', 'B', 'P', 'D'],\r\n motsLongueur : [1,1,1,6]\r\n \r\n },\r\n },\r\n {\r\n id: 2,\r\n titre: \"Boogle 6 mots - facile 2\",\r\n info:\r\n {\r\n lettres: ['R', 'A', 'T','O', 'B', 'E', 'D'],\r\n motsLongueur : [1,1,1,6]\r\n \r\n },\r\n },\r\n {\r\n id: 3,\r\n titre: \"Boogle 6 mots - facile 3\",\r\n info:\r\n {\r\n lettres: ['E', 'A', 'S','I', 'N', 'R', 'T'],\r\n motsLongueur : [1,1,1,6]\r\n \r\n },\r\n },\r\n {\r\n id: 4,\r\n titre: \"Boogle 6 mots - facile 4\",\r\n info:\r\n {\r\n lettres: ['D', 'P', 'R','L', 'A', 'E', 'I'],\r\n motsLongueur : [1,1,1,6]\r\n \r\n },\r\n },\r\n {\r\n id: 5,\r\n titre: \"Boogle 6 mots - moyen 1\",\r\n info:\r\n {\r\n lettres: ['S', 'B', 'T','R', 'E', 'A', 'M'],\r\n motsLongueur : [1,1,1,6]\r\n \r\n },\r\n },\r\n {\r\n id: 6,\r\n titre: \"Boogle 6 mots - moyen 2\",\r\n info:\r\n {\r\n lettres: ['I', 'L', 'R','N', 'E', 'M', 'A'],\r\n motsLongueur : [1,1,1,6]\r\n \r\n },\r\n },\r\n \r\n]\r\nexport default Donnee6Mots;","const donneesQcm =\r\n [\r\n {\r\n id: 1,\r\n titre: \"Conjugaison des verbes - très facile\",\r\n niveau: 1,\r\n info: [\r\n {\r\n phrase: \"Le chien @aboie@ tous les jours.\",\r\n reponses: [\"aboient\", \"aboie\", \"aboies\"]\r\n },\r\n {\r\n phrase: \"Vous @allez@ à la fête foraine avec vos parents.\",\r\n reponses: [\"allé\", \"aller\", \"allez\"]\r\n },\r\n {\r\n phrase: \"Mon père @est@ en colère.\",\r\n reponses: [\"est\", \"et\", \"es\"]\r\n },\r\n {\r\n phrase: \"Tu @dois@ ranger ta chambre.\",\r\n reponses: [\"doit\", \"dois\", \"bois\"]\r\n }, \r\n {\r\n phrase: \"Le marchand @vend@ des glaces.\",\r\n reponses: [\"vends\", \"vent\", \"vend\"]\r\n },\r\n {\r\n phrase:\"J'@ai@ un appareil dentaire.\",\r\n reponses: [\"est\", \"ai\", \"ais\"]\r\n }\r\n\r\n \r\n ]\r\n\r\n },\r\n {\r\n id: 2,\r\n titre: \"L'impératif présent - facile\",\r\n niveau: 1,\r\n info: [\r\n {\r\n phrase: \"@Mets@ ta main devant ta bouche !\",\r\n reponses: [\"Met\", \"Mets\"]\r\n },\r\n {\r\n phrase: \"Ne @mens@ pas tout le temps.\",\r\n reponses: [\"men\", \"ment\", \"mens\"]\r\n },\r\n {\r\n phrase: \"Ne @pointe@ pas du doigt les gens.\",\r\n reponses: [\"pointe\", \"pointes\"]\r\n },\r\n {\r\n phrase: \"Ne @regarde@ pas trop ton smartphone.\",\r\n reponses: [\"regarde\", \"regardes\"]\r\n }, \r\n {\r\n phrase: \"@Couche@-toi !\",\r\n reponses: [\"Couche\", \"Couches\"]\r\n },\r\n {\r\n phrase:\"@Prends@ l'argent !\",\r\n reponses: [\"Prend\", \"Prends\"]\r\n }\r\n\r\n \r\n ]\r\n\r\n },\r\n {\r\n id: 3,\r\n titre: \"Accord du verbe - moyen\",\r\n aide : \"Pour ceux qui veulent plus d'explications - Accord du participe passé : être et avoir\",\r\n niveau: 1,\r\n info: [\r\n {\r\n phrase: \"Les fleurs, Marc les a @arrosées@ ce matin.\",\r\n reponses: [\"arrosé\", \"arrosées\", \"arrosés\"]\r\n },\r\n \r\n {\r\n phrase: \"La peinture a complètement @séché@.\",\r\n reponses: [\"séché\", \"séchée\"]\r\n },\r\n {\r\n phrase: \"La violence scolaire a toujours @existé@.\",\r\n reponses: [\"existé\", \"existée\"]\r\n }, \r\n {\r\n phrase: \"Le pull et la chemise que Martine a @portés@ hier sont sales.\",\r\n reponses: [\"portés\", \"porté\", \"portées\"]\r\n },\r\n {\r\n phrase: \"Les athlètes féminines sont bien @entraînées@.\",\r\n reponses: [\"entraînés\", \"entraînées\", \"entraîné\"]\r\n },\r\n {\r\n phrase:\"Quels dessins ont-ils @faits@ ?\",\r\n reponses: [\"fait\", \"faits\"]\r\n }\r\n\r\n \r\n ]\r\n\r\n }\r\n \r\n ]\r\nexport default donneesQcm;","import DonneeDictee from './DonneeDictee';\r\nimport DonneesListeMots from './DonneeListeMots';\r\nimport DonneeMemoire from './DonneeMemoire';\r\nimport DonneesMots from './DonneesMots';\r\nimport DonneeOrthographeMot from './DonneeOrthographeMot';\r\nimport DonneePhraseErreur from './DonneePhraseErreur';\r\nimport DonneePhraseTrou from './DonneePhraseTrou';\r\nimport DonneesJeuxConcours from '../data/donneesJeuxConcours';\r\nimport DonneesConcours from '../data/donneesConcours';\r\nimport DonneesConcoursJeux from '../data/DonneesConcoursJeux';\r\nimport DonneesConcoursOrthographe from '../data/DonneesConcoursOrthographe';\r\nimport DonneeMasterMot from '../data/DonneMasterMot';\r\nimport DonneeVerbeConjugaison from './DonneeVerbeConjugaison';\r\nimport DonneeDesordre from './DonneeDesordre';\r\nimport DonneeQcmMelange from './DonneeQcmMelange';\r\nimport DonneeBoogle from './DonneeBoogle';\r\nimport DonneeQcm from './DonneeQcm';\r\n\r\nfunction donneesSuivantType(type) {\r\n let donnees = null;\r\n switch (type) {\r\n case 'dictee':\r\n donnees = DonneeDictee;\r\n break;\r\n case 'listemots':\r\n donnees = DonneesListeMots;\r\n break;\r\n case 'memoire':\r\n donnees = DonneeMemoire;\r\n break;\r\n case 'motdefinition':\r\n donnees = DonneesMots;\r\n break;\r\n case 'orthographemot':\r\n donnees = DonneeOrthographeMot;\r\n break;\r\n case 'phraseerreur':\r\n donnees = DonneePhraseErreur;\r\n break;\r\n case 'phrasetrou':\r\n donnees = DonneePhraseTrou;\r\n break;\r\n case 'verbeconjugaison':\r\n donnees = DonneeVerbeConjugaison;\r\n break;\r\n case 'concours':\r\n donnees = DonneesJeuxConcours;\r\n break;\r\n case 'defijeux':\r\n donnees = DonneesConcoursJeux;\r\n break;\r\n case 'defigrammaire':\r\n donnees = DonneesConcoursOrthographe;\r\n break;\r\n case 'defiorthographe':\r\n donnees = DonneesConcours;\r\n break;\r\n case 'mastermind-mot':\r\n donnees = DonneeMasterMot;\r\n break;\r\n case 'desordre':\r\n donnees = DonneeDesordre;\r\n break;\r\n case 'qcmmelange':\r\n donnees = DonneeQcmMelange;\r\n break;\r\n case 'boogle':\r\n donnees = DonneeBoogle;\r\n break;\r\n case 'qcm':\r\n donnees = DonneeQcm;\r\n break;\r\n\r\n default:\r\n break;\r\n\r\n }\r\n return donnees;\r\n}\r\n\r\n\r\n\r\nexport default function obtenirDonneesJeu(idTest, type) {\r\n let concours = false;\r\n if (idTest > 10000) {\r\n type = 'concours';\r\n concours = true;\r\n }\r\n let donnees = donneesSuivantType(type);\r\n\r\n let jeux = donnees.find(info => info.id === idTest);\r\n console.log(jeux)\r\n return { concours, ...jeux };\r\n}\r\n\r\nexport { donneesSuivantType }","let donneesConcoursJeux =\r\n [\r\n {\r\n id: 320,\r\n titre: \"Compléter les textes de romans (nouveau) - difficile\",\r\n\r\n liste: [{ type: 'textetrou', id: 10320, titre: \"textetrou\" },{ type: 'textetrou', id: 10321, titre: \"textetrou\" }, { type: 'textetrou', id: 10322, titre: \"textetrou\" }\r\n ]\r\n },\r\n {\r\n id: 10,\r\n titre: \"Jouer avec les mots - facile\",\r\n\r\n liste: [{ type: 'listemots', id: 10010, titre: \"pyramide\" },{ type: 'motdefinition', id: 10011, titre: \"définition\" }, { type: 'listemots', id: 10012, titre: \"pyramide\" }\r\n ]\r\n },\r\n {\r\n id: 140,\r\n titre: \"Des jeux avec les mots - facile\",\r\n\r\n liste: [{ type: 'listemots', id: 10140, titre: \"pyramide\" },{ type: 'motdefinition', id: 10141, titre: \"définition\" }, { type: 'mastermind-mot', id: 10142, titre: \"motus\" }\r\n ]\r\n },\r\n {\r\n id: 20,\r\n titre: \"Jouer avec les mots - intermédiaire\",\r\n\r\n liste: [{ type: 'listemots', id: 10020, titre: \"pyramide\" },{ type: 'motdefinition', id: 10021, titre: \"définition\" }, { type: 'listemots', id: 10022, titre: \"pyramide\" }\r\n ]\r\n },\r\n {\r\n id: 80,\r\n titre: \"Jouer avec les mots - difficile\",\r\n\r\n liste: [{ type: 'listemots', id: 10080, titre: \"pyramide\" },{ type: 'motdefinition', id: 10081, titre: \"définition\" }, { type: 'listemots', id: 10082, titre: \"pyramide\" }\r\n ]\r\n }, {\r\n id: 100,\r\n titre: \"Jeux de mots (motus) - facile\",\r\n\r\n liste: [{ type: 'mastermind-mot', id: 10100, titre: \"motus\" }, { type: 'listemots', id: 10101, titre: \"pyramide\" }, { type: 'mastermind-mot', id: 10102, titre: \"motus\" }\r\n ]\r\n },\r\n {\r\n id: 110,\r\n titre: \"Jeux de mots (motus) - intermédiaire\",\r\n\r\n liste: [{ type: 'mastermind-mot', id: 10110, titre: \"motus\" }, { type: 'listemots', id: 10111, titre: \"pyramide\" }, { type: 'mastermind-mot', id: 10112, titre: \"motus\" }\r\n ]\r\n },\r\n {\r\n id: 150,\r\n titre: \"Pyramide des images en désordre - facile\",\r\n liste: [ { type: 'desordre', id: 10150, titre: \"désordre\" },{ type: 'listemots', id: 10151, titre: \"pyramide\" }, { type: 'desordre', id: 10152, titre: \"désordre\" }\r\n ]\r\n },\r\n {\r\n id: 160,\r\n titre: \"Pyramide des images en désordre - intermédiaire\",\r\n liste: [ { type: 'desordre', id: 10160, titre: \"désordre\" },{ type: 'listemots', id: 10161, titre: \"pyramide\" }, { type: 'desordre', id: 10162, titre: \"désordre\" }\r\n ]\r\n },\r\n {\r\n id: 300,\r\n titre: \"Pyramide des images - moyen\",\r\n liste: [ { type: 'listemots', id: 10300, titre: \"pyramide\" },{ type: 'listemots', id: 10301, titre: \"pyramide\" }]\r\n \r\n },\r\n {\r\n id: 190,\r\n titre: \"Des hautes pyramides - moyen\",\r\n liste: [ { type: 'listemots', id: 10190, titre: \"pyramide\" },{ type: 'listemots', id: 10191, titre: \"pyramide\" }, { type: 'listemots', id: 10192, titre: \"pyramide\" }, { type: 'listemots', id: 10193, titre: \"pyramide\" }\r\n ]\r\n },\r\n {\r\n id: 250,\r\n titre: \"Une autre pyramide à construire - facile\",\r\n liste: [ { type: 'listemots', id: 10250, titre: \"pyramide\" },{ type: 'listemots', id: 10251, titre: \"images\" }, { type: 'listemots', id: 10252, titre: \"pyramide\" }, { type: 'listemots', id: 10253, titre: \"images\" }\r\n ]\r\n },\r\n {\r\n id: 220,\r\n titre: \"Test de culture générale mélangée 1 - intermédiaire\",\r\n liste: [ { type: 'qcmmelange', id: 10220, titre: \"culture\" },{ type: 'qcmmelange', id: 10221, titre: \"culture\" }]\r\n \r\n },\r\n {\r\n id: 230,\r\n titre: \"Test de culture générale mélangée 2 - difficile\",\r\n liste: [ { type: 'qcmmelange', id: 10230, titre: \"culture\" },{ type: 'qcmmelange', id: 10231, titre: \"culture\" }]\r\n \r\n },\r\n {\r\n id: 240,\r\n titre: \"Test de culture générale mélangée 3 - difficile\",\r\n liste: [ { type: 'qcmmelange', id: 10240, titre: \"culture\" },{ type: 'qcmmelange', id: 10241, titre: \"culture\" }]\r\n \r\n },\r\n \r\n \r\n \r\n ]\r\n\r\n export default donneesConcoursJeux;","let donneesConcoursOrthographe =\r\n [ \r\n {\r\n id: 330,\r\n titre: \"Quiz compléter les phrases - facile (nouveau)\",\r\n liste: [{ type: 'textetrou', id: 10330, titre: \"textetrou\" }, { type: 'textetrou', id: 10331, titre: \"Musso\" }, { type: 'textetrou', id: 10332, titre: \"textetrou\" }\r\n ]\r\n }, \r\n {\r\n id: 340,\r\n titre: \"Quiz les pièges orthographiques - intermédiaire (nouveau)\",\r\n liste: [{ type: 'textetrou', id: 10340, titre: \"textetrou\" }, { type: 'textetrou', id: 10341, titre: \"Musso\" }, { type: 'textetrou', id: 10342, titre: \"textetrou\" }\r\n ]\r\n }, \r\n \r\n {\r\n id: 130,\r\n titre: \"Trouver toutes les fautes dans des extraits de livres récents - facile\",\r\n liste: [{ type: 'phraseerreur', id: 10130, titre: \"Grimaldi\" }, { type: 'phraseerreur', id: 10131, titre: \"Musso\" }, { type: 'phraseerreur', id: 10132, titre: \"Levy\" }\r\n ]\r\n }, \r\n {\r\n id: 290,\r\n titre: \"Quiz grammaire et vocabulaire 1 - facile\",\r\n\r\n liste: [{ type: 'qcm', id: 10290, titre: \"qcm\" }, { type: 'qcmmelange', id: 10291, titre: \"vocabulaire\" }, { type: 'qcm', id: 10292, titre: \"qcm\" }\r\n ]\r\n },\r\n \r\n \r\n \r\n {\r\n id: 210,\r\n titre: \"Quiz écrire des mots (audio) - facile\",\r\n liste: [ { type: 'orthographemot', id: 10210, titre: \"mots\" },{ type: 'phrasetrou', id: 10211, titre: \"trous\" }, { type: 'orthographemot', id: 10212, titre: \"mots\" }\r\n ]\r\n },\r\n {\r\n id: 90,\r\n titre: \"Dictées et orthographe des mots (audio) - facile\",\r\n\r\n liste: [{ type: 'dictee', id: 10090, titre: \"dictée\" }, { type: 'orthographemot', id: 10091, titre: \"mot\" },{ type: 'dictee', id: 10092, titre: \"dictée\" }\r\n ]\r\n }, {\r\n id: 280,\r\n titre: \"Quiz grammaire et vocabulaire 2 - intermédiaire\",\r\n\r\n liste: [{ type: 'qcm', id: 10280, titre: \"qcm\" }, { type: 'qcmmelange', id: 10281, titre: \"vocabulaire\" }, { type: 'qcm', id: 10282, titre: \"qcm\" }\r\n ]\r\n },\r\n {\r\n id: 50,\r\n titre: \"Grammaire, orthographe et mémoire - intermédiaire\",\r\n\r\n liste: [{ type: 'verbeconjugaison', id: 10050, titre: \"conjugaison\" }, { type: 'phraseerreur', id: 10051, titre: \"erreur\" },{ type: 'memoire', id: 10052, titre: \"mémoire\" },{ type: 'phrasetrou', id: 10053, titre: \"trou\" }\r\n ]\r\n }, \r\n {\r\n id: 60,\r\n titre: \"Dictées et orthographe des mots (audio) 1 - intermédiaire\",\r\n\r\n liste: [{ type: 'dictee', id: 10060, titre: \"dictée\" }, { type: 'orthographemot', id: 10061, titre: \"mot\" },{ type: 'dictee', id: 10062, titre: \"dictée\" }\r\n ]\r\n },\r\n {\r\n id: 70,\r\n titre: \"Dictées et orthographe des mots (audio) 2 - intermédiaire\",\r\n\r\n liste: [{ type: 'dictee', id: 10070, titre: \"dictée\" }, { type: 'orthographemot', id: 10071, titre: \"mot\" },{ type: 'dictee', id: 10072, titre: \"dictée\" }\r\n ]\r\n }, \r\n {\r\n id: 120,\r\n titre: \"Test conjugaison passé/présent/futur - intermédiaire\",\r\n liste: [{ type: 'verbeconjugaison', id: 10120, titre: \"passé\" }, { type: 'verbeconjugaison', id: 10121, titre: \"présent\" }, { type: 'verbeconjugaison', id: 10122, titre: \"futur\" }\r\n ]\r\n },\r\n {\r\n id: 170,\r\n titre: \"Test écrire sans faute (audio) - intermédiaire\",\r\n liste: [ { type: 'orthographemot', id: 10170, titre: \"phrases\" },{ type: 'orthographemot', id: 10171, titre: \"mots\" }, { type: 'orthographemot', id: 10172, titre: \"phrases\" }\r\n ]\r\n }, \r\n {\r\n id: 200,\r\n titre: \"Test repérer les erreurs - intermédiaire\",\r\n liste: [ { type: 'phraseerreur', id: 10200, titre: \"erreur\" },{ type: 'phrasetrou', id: 10201, titre: \"trous\" }, { type: 'phraseerreur', id: 10202, titre: \"erreur\" }\r\n ]\r\n },\r\n \r\n {\r\n id: 40,\r\n titre: \"Grammaire, orthographe et mémoire - difficile\",\r\n\r\n liste: [{ type: 'phraseerreur', id: 10040, titre: \"erreur\" }, { type: 'memoire', id: 10042, titre: \"mémoire\" }, { type: 'phrasetrou', id: 10041, titre: \"trou\" }, { type: 'verbeconjugaison', id: 10043, titre: \"conjugaison\" }\r\n ]\r\n },\r\n \r\n {\r\n id: 310,\r\n titre: \"Quiz correction des grands classiques- difficile\",\r\n liste: [{ type: 'phraseerreur', id: 10310, titre: \"Stendhal\" }, { type: 'phraseerreur', id: 10311, titre: \"Maupassant\" }\r\n ]\r\n },\r\n \r\n \r\n {\r\n id: 180,\r\n titre: \"Défi écrire sans faute (audio) - difficile\",\r\n liste: [ { type: 'orthographemot', id: 10180, titre: \"phrases\" },{ type: 'orthographemot', id: 10181, titre: \"mots\" }, { type: 'orthographemot', id: 10182, titre: \"phrases\" }\r\n ]\r\n },\r\n \r\n \r\n \r\n {\r\n id: 270,\r\n titre: \"Quiz corriger les textes- difficile\",\r\n\r\n liste: [{ type: 'phraseerreur', id: 10270, titre: \"fautes\" }, { type: 'phraseerreur', id: 10271, titre: \"fautes\" }\r\n ]\r\n },\r\n \r\n {\r\n id: 260,\r\n titre: \"Quiz sur l'orthographe trop souvent négligée - très difficile\",\r\n\r\n liste: [{ type: 'phrasetrou', id: 10260, titre: \"trou\" }, { type: 'phrasetrou', id: 10261, titre: \"trou\" }, { type: 'phrasetrou', id: 10262, titre: \"trou\" }, { type: 'phrasetrou', id: 10263, titre: \"trou\" }\r\n ]\r\n },\r\n \r\n\r\n \r\n \r\n\r\n ]\r\n\r\nexport default donneesConcoursOrthographe;","import donneesConcoursJeux from './DonneesConcoursJeux';\r\nimport donneesConcoursOrthographe from './DonneesConcoursOrthographe';\r\n\r\nlet donneesConcours =\r\n [...donneesConcoursJeux, ...donneesConcoursOrthographe];\r\n\r\nexport default donneesConcours;","let donneesJeuxConcours =\r\n [\r\n {\r\n id: 10010,\r\n titre: \"Pyramide facile\",\r\n idConcours: 10,\r\n qualifTemps: 80,\r\n temps: 80,\r\n liste: [\r\n {\r\n definition: \"Seconde lettre de la capitale de la Belgique\",\r\n mot: \"r\"\r\n },\r\n\r\n {\r\n definition: \"Animal vivant souvent dans les égouts\",\r\n mot: \"rat\"\r\n },\r\n {\r\n definition: \"Il y en a 4 par jour en Bretagne\",\r\n mot: \"marées\"\r\n },\r\n {\r\n definition: \"Émile Zola en a écrit beaucoup\",\r\n mot: \"romans\"\r\n },\r\n {\r\n definition: \"Tourne autour de la Terre\",\r\n mot: \"satellite\"\r\n },\r\n {\r\n definition: \"Se dit d'une personne réservée qui a des difficultés à s'exprimer devant les autres\",\r\n mot: \"timide\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10011,\r\n titre: \"Trouvez les mots à partir des définitions\",\r\n idConcours: 10,\r\n qualifScore: 100,\r\n liste: [\r\n {\r\n mot: \"brocanteur\",\r\n definition: \"Personne qui fait commerce d'objets anciens et de curiosités qu'elle achète d'occasion pour la revente.\",\r\n ordre: [8, 2, 0, 5, 3, 7, 1, 6, 4, 9]\r\n },\r\n {\r\n mot: \"élongation\",\r\n definition: \"Étirement d'une partie des fibres musculaires d'un muscle après un effort physique mal préparé\",\r\n ordre: [9, 2, 5, 0, 3, 7, 6, 1, 4, 8]\r\n },\r\n {\r\n mot: \"guitare\",\r\n definition: \"Instrument de musique à cordes que l'on pince avec les doigts\",\r\n ordre: [2, 5, 0, 3, 6, 1, 4]\r\n }\r\n ]\r\n }, {\r\n id: 10012,\r\n titre: \"Pyramide facile\",\r\n idConcours: 10,\r\n qualifTemps: 70,\r\n temps: 70,\r\n liste: [\r\n {\r\n definition: \"Le verbe aller à la troisième personne du singulier au présent\",\r\n mot: \"va\"\r\n },\r\n\r\n {\r\n definition: \"Vêtement féminin composé d'un corsage et d'une jupe d'un seul tenant\",\r\n mot: \"robe\"\r\n },\r\n {\r\n definition: \"On dit qu'il est fier comme un ...\",\r\n mot: \"paon\"\r\n },\r\n {\r\n definition: \"Acte de courtoisie, preuve de dévouement d'un homme à une femme\",\r\n mot: \"hommage\"\r\n },\r\n {\r\n definition: \"Lien servant au gréement d'un navire ou à la manœuvre d'une machine\",\r\n mot: \"cordage\"\r\n }\r\n\r\n ]\r\n }, {\r\n id: 10020,\r\n titre: \"Pyramide facile\",\r\n idConcours: 20,\r\n qualifTemps: 80,\r\n temps: 80,\r\n liste: [\r\n {\r\n definition: \"On le trouve dans le poulet mais pas dans la loupe\",\r\n mot: \"t\"\r\n },\r\n {\r\n definition: \"Elles accompagnent souvent l'entrecôte au restaurant\",\r\n mot: \"frites\"\r\n },\r\n {\r\n definition: \"Bateau de transport fluvial\",\r\n mot: \"péniche\"\r\n },\r\n {\r\n definition: \"Se dit d'une personne prétentieuse qui aime se faire admirer\",\r\n mot: \"vaniteuse\"\r\n },\r\n {\r\n definition: \"Végétal sans feuilles, formé généralement d'un pied surmonté d'un chapeau\",\r\n mot: \"champignon\"\r\n },\r\n {\r\n definition: \"Tissu fin à motifs ajourés qui était une spécialité de Calais\",\r\n mot: \"dentelle\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10021,\r\n titre: \"Trouvez les mots à partir des définitions\",\r\n idConcours: 20,\r\n qualifScore: 100,\r\n liste: [\r\n {\r\n mot: \"fanfaron\",\r\n definition: \"Qui se vante d'être ce qu'il n'est pas ou qui exagère ce qu'il est réellement.\",\r\n ordre: [2, 6, 5, 3, 7, 1, 0, 4,]\r\n },\r\n {\r\n mot: \"anarchisme\",\r\n definition: \"Conception politique qui tend à supprimer l'État, à éliminer de la société tout pouvoir disposant d'un droit de contrainte.\",\r\n ordre: [9, 7, 5, 3, 0, 2, 6, 1, 4, 8]\r\n },\r\n {\r\n mot: \"lézard\",\r\n definition: \"Petit reptile à longue queue effilée qui aime le soleil\",\r\n ordre: [2, 5, 0, 3, 1, 4]\r\n }\r\n ]\r\n }, {\r\n id: 10022,\r\n titre: \"Pyramide facile\",\r\n idConcours: 20,\r\n qualifTemps: 110,\r\n temps: 110,\r\n liste: [\r\n {\r\n definition: \"Obstacle sur la piste d'athlétisme\",\r\n mot: \"haie\"\r\n },\r\n\r\n {\r\n definition: \"On peut le manger ou le lancer au hockey\",\r\n mot: \"palet\"\r\n },\r\n {\r\n definition: \"Ce sous-vêtement féminin comporte des baleines\",\r\n mot: \"corset\"\r\n },\r\n {\r\n definition: \"Crocodilien qui réside en Floride\",\r\n mot: \"alligator\"\r\n },\r\n {\r\n definition: \"Carnet où l'on inscrit ses rendez-vous\",\r\n mot: \"agenda\"\r\n },\r\n {\r\n definition: \"Obstacle équestre dans lequel la barre supérieure est suivie d'une autre barre\",\r\n mot: \"oxer\"\r\n }\r\n\r\n ]\r\n }, {\r\n id: 10082,\r\n titre: \"Pyramide difficile\",\r\n idConcours: 80,\r\n qualifTemps: 100,\r\n temps: 100,\r\n liste: [\r\n {\r\n definition: \"Se promène en solitaire à Trouville mais en couple à Deauville\",\r\n mot: \"e\"\r\n },\r\n {\r\n definition: \"Brève action comique\",\r\n mot: \"gag\"\r\n },\r\n {\r\n definition: \"Eau-de-vie de grains aromatisée avec des baies de genièvre\",\r\n mot: \"gin\"\r\n },\r\n {\r\n definition: \"Petits beignets frits à la morue\",\r\n mot: \"acras\"\r\n },\r\n {\r\n definition: \"Mouvement lent dans une pièce musicale\",\r\n mot: \"adagio\"\r\n },\r\n {\r\n definition: \"Vêtement féminin droit, porté sur une jupe ou un pantalon\",\r\n mot: \"tunique\"\r\n },\r\n {\r\n definition: \"Moments précédant immédiatement la mort\",\r\n mot: \"agonie\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10081,\r\n titre: \"Trouvez les mots à partir des définitions\",\r\n idConcours: 80,\r\n qualifScore: 100,\r\n liste: [\r\n {\r\n mot: \"trèfle\",\r\n definition: \"Une herbe et aussi une des quatre couleurs d'un jeu de cartes\",\r\n ordre: [5, 2, 3, 1, 0, 4,]\r\n },\r\n {\r\n mot: \"absinthe\",\r\n definition: \"Alcool que l'on appelait la fée verte\",\r\n ordre: [7, 5, 3, 2, 0, 6, 1, 4]\r\n },\r\n {\r\n mot: \"vanille\",\r\n definition: \"Gousse qui, séchée, devient noire et aromatique\",\r\n ordre: [6, 2, 5, 0, 3, 1, 4]\r\n }\r\n ]\r\n }, {\r\n id: 10080,\r\n titre: \"Pyramide difficile\",\r\n idConcours: 80,\r\n qualifTemps: 110,\r\n temps: 110,\r\n liste: [\r\n {\r\n definition: \"Un pour Degas, Deux pour Van Gogh, aucun pour Renoir\",\r\n mot: \"g\"\r\n },\r\n {\r\n definition: \"Assortiment de petites entrées variées, à l'espagnole, servi à l'apéritif.\",\r\n mot: \"tapas\"\r\n },\r\n {\r\n definition: \"Unité définie localisée sur un chromosome\",\r\n mot: \"gène\"\r\n },\r\n {\r\n definition: \"Commerçant qui vend des abats\",\r\n mot: \"tripier\"\r\n },\r\n {\r\n definition: \"Repli cousu sur les bords pour éviter que le tissu ne s'effile\",\r\n mot: \"ourlet\"\r\n },\r\n {\r\n definition: \"Jupe de dessous\",\r\n mot: \"jupon\"\r\n },\r\n {\r\n definition: \"régime politique où le pouvoir est exercé par les personnes les plus âgées de la société\",\r\n mot: \"gérontocratie\"\r\n },\r\n\r\n\r\n ]\r\n },\r\n {\r\n id: 10040,\r\n titre: \"phrase erreur\",\r\n niveau: 'facile',\r\n extrait: \"Discours d’Hubertine Auclert (1879)\",\r\n idConcours: 40,\r\n qualifFaute: 1,\r\n texte: \"Je vous remercie d’avoir accepté et mis à votre ordre du jour cette question : de l’égalité complète@compléte@ de la femme et de l’homme. C’est en provoquer@provoqué@ la discussion dans toute la France, et en préparer@préparé@ l’expérimentation, car jusqu’ici on s’est contenté de nier sans vouloir approfondir la chose. On trouve bon de faire des recherches scientifiques sur tout. Mais jamais encore on n’a songé à@a@ mettre la femme dans une situation identique à celle de l’homme, de façon à ce qu’elle puisse se mesurer avec lui et prouver l’équivalence de ses@ces@ facultés.\"\r\n },\r\n {\r\n id: 10041,\r\n titre: \"phrase trou\",\r\n idConcours: 40,\r\n qualifFaute: 1,\r\n texte: \"Souvent nos dimanches d’hiver se [passer] @passaient ainsi. Dès le matin, mon père s’en allait au loin, sur le bord de quelque étang couvert de brume, pêcher le brochet dans une barque ; et ma mère, [retirer] @retirée jusqu’à la nuit dans sa chambre obscure, rafistolait d’humbles toilettes. Elle s’enfermait ainsi de crainte qu’une dame de ses [ami] @amies , aussi pauvre qu’elle mais aussi fière, vînt la surprendre. Et moi, les vêpres [finir] @finies , j’attendais, en lisant dans la froide salle à manger, qu’elle [ouvrir] @ouvrît la porte pour me montrer comment ça lui allait. \"\r\n\r\n },\r\n {\r\n id: 10042,\r\n titre: \"Mémoire 1\",\r\n idConcours: 40,\r\n qualifFaute: 0,\r\n explication: \"Mémoriser les mots\",\r\n image: 'memoire13.png',\r\n time: 30,\r\n exo: [\r\n {\r\n typeQuestion: \"ferme\",\r\n question: 'Quatre mots étaient présents sur la page précédente',\r\n reponse: false\r\n },\r\n {\r\n typeQuestion: \"ouverte\",\r\n question: \"Écrire le nom de l'arbre\",\r\n reponse: ['châtaignier']\r\n },\r\n {\r\n typeQuestion: \"ouverte\",\r\n question: \"Écrire le jour de la semaine\",\r\n reponse: ['mercredi']\r\n }\r\n ]\r\n },\r\n {\r\n id: 10043,\r\n titre: \"verbe conjugaison\",\r\n idConcours: 40,\r\n qualifFaute: 0,\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'nous',\r\n verbe: 'arroser',\r\n reponse: 'arrosons'\r\n },\r\n {\r\n temps: 'Imparfait',\r\n sujet: 'tu',\r\n verbe: 'justifier',\r\n reponse: 'justifiais'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'vous',\r\n verbe: 'suppléer',\r\n reponse: 'suppléez'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'ils',\r\n verbe: 'atterrir',\r\n reponse: 'ont atterri'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'il',\r\n verbe: 'fournir',\r\n reponse: 'fournit'\r\n }\r\n ]\r\n },\r\n {\r\n id: 10050,\r\n titre: \"verbe conjugaison\",\r\n idConcours: 50,\r\n qualifFaute: 1,\r\n exo: [\r\n {\r\n temps: 'Futur simple',\r\n sujet: 'je',\r\n verbe: 'essuyer',\r\n reponse: 'essuierai'\r\n },\r\n {\r\n temps: 'Plus-que-parfait',\r\n sujet: 'tu',\r\n verbe: 'fendre',\r\n reponse: 'avais fendu'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'nous nous',\r\n verbe: 'se souvenir',\r\n reponse: 'souvenons'\r\n },\r\n {\r\n temps: 'Conditionnel présent',\r\n sujet: 'ils',\r\n verbe: 'grandir',\r\n reponse: 'grandiraient'\r\n },\r\n {\r\n temps: 'Imparfait',\r\n sujet: 'il',\r\n verbe: 'savoir',\r\n reponse: 'savait'\r\n }\r\n ]\r\n }, {\r\n id: 10051,\r\n titre: \"phrase erreur\",\r\n extrait: \"Albert Camus,Le Premier Homme\",\r\n niveau: 'facile',\r\n idConcours: 50,\r\n qualifFaute: 1,\r\n texte: \"Dès qu’ils étaient au complet, ils partaient, promenant la raquette le long des grilles rouillées@rouillés@ des jardins devant les maisons, avec un grand bruit qui réveillait le quartier et faisait bondir les chats endormis@endormi@ sous les glycines@glicynes@ poussiéreuses. Ils couraient, traversant la rue, essayant de s’attraper, couverts@couvert@ déjà d’une bonne sueur, mais toujours dans la même direction, vers le champ@champs@, non loin de leur école, à quatre ou cinq rues de là.\"\r\n },\r\n {\r\n id: 10052,\r\n titre: \"Mémoire 1\",\r\n idConcours: 50,\r\n qualifFaute: 0,\r\n explication: \"Mémoriser les mots\",\r\n image: 'memoire14.png',\r\n time: 35,\r\n exo: [\r\n {\r\n typeQuestion: \"ferme\",\r\n question: 'Deux mots commençaient par un P',\r\n reponse: true\r\n },\r\n {\r\n typeQuestion: \"ouverte\",\r\n question: \"Écrire le premier mot dans l'ordre alphabétique\",\r\n reponse: ['écoutille']\r\n },\r\n {\r\n typeQuestion: \"ouverte\",\r\n question: \"Écrire mot commençant par un T\",\r\n reponse: ['trappe']\r\n }\r\n ]\r\n },\r\n {\r\n id: 10053,\r\n titre: \"phrase trou\",\r\n idConcours: 50,\r\n qualifFaute: 0,\r\n texte: \"Lorsqu’ils sont arrivés sur une crête, le vent froid les a [accueillir] @accueillis . Ce vent était passé par chaque cime et chaque vallon. Ils en ont pris une bonne bouffée. Des petits oiseaux à gorge blanche remuaient la queue dans les buissons puis s’enfuyaient en [gazouler] @gazouillant . Une chèvre toute noire était perchée sur la pointe du rocher. Les rochers ressemblaient à d’énormes maisons dont on ne sait pas qui les [habiter (présent)] @habite .\"\r\n\r\n },\r\n {\r\n id: 10062,\r\n titre: \"Dictée facile (CE2 - 44 mots)\",\r\n idConcours: 60,\r\n qualifFaute: 1,\r\n\r\n fichier: 'dictee13.mp3',\r\n texte: \"Dans une petite ville, un marchand de fruits possédait un magasin situé juste au-dessus d'une cave profonde. Chaque nuit les souris venaient en foule de cette cave dans le magasin. Elles mangeaient les pommes et les poires, les raisins et les noix.\"\r\n },\r\n {\r\n id: 10061,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 60,\r\n qualifFaute: 0,\r\n test: [\r\n {\r\n fichier: 'mot150.mp3',\r\n mot: 'menuisier'\r\n },\r\n {\r\n fichier: 'mot151.mp3',\r\n mot: 'jaillissement'\r\n },\r\n {\r\n fichier: 'mot152.mp3',\r\n mot: 'dompteur'\r\n },\r\n {\r\n fichier: 'mot153.mp3',\r\n mot: 'funambule'\r\n },\r\n {\r\n fichier: 'mot154.mp3',\r\n mot: 'enthousiasme'\r\n }\r\n ]\r\n },\r\n {\r\n id: 10060,\r\n titre: \"Dictée facile (27 mots)\",\r\n idConcours: 60,\r\n qualifFaute: 1,\r\n\r\n fichier: 'dictee14.mp3',\r\n texte: 'Une petite souris trottine dans la forêt verte et touffue. Soudain, elle rencontre un beau renard roux qui a des yeux méchants. Vite elle plonge dans un trou profond.'\r\n }, {\r\n id: 10070,\r\n titre: \"Dictée intermédiaire (52 mots)\",\r\n idConcours: 70,\r\n qualifFaute: 2,\r\n\r\n fichier: 'dictee15.mp3',\r\n texte: \"On ne peut vraiment rien trouver de plus délicieux, de plus retiré que ce petit village perdu au milieu des roches, intéressant par son double côté marin et pastoral. Tous pêcheurs ou laboureurs, les gens d'ici ont l'abord rude, peu engageant. Ils ne vous invitent pas à rester chez eux.\"\r\n },\r\n {\r\n id: 10071,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 70,\r\n qualifFaute: 0,\r\n test: [\r\n {\r\n fichier: 'mot160.mp3',\r\n mot: 'fourrière'\r\n },\r\n {\r\n fichier: 'mot161.mp3',\r\n mot: 'bienveillante'\r\n },\r\n {\r\n fichier: 'mot162.mp3',\r\n mot: 'blizzard'\r\n },\r\n {\r\n fichier: 'mot163.mp3',\r\n mot: 'houspiller'\r\n },\r\n {\r\n fichier: 'mot164.mp3',\r\n mot: 'réverbère'\r\n }\r\n ]\r\n }, {\r\n id: 10072,\r\n titre: \"Dictée intermédiaire (47 mots)\",\r\n idConcours: 70,\r\n qualifFaute: 2,\r\n\r\n fichier: 'dictee16.mp3',\r\n texte: \"Un port est un séjour charmant pour une âme fatiguée des luttes de la vie. L'ampleur du ciel, l'architecture mobile des nuages, les colorations changeantes de la mer, le scintillement des phares, sont un prisme merveilleusement propre à amuser les yeux sans jamais les lasser.\"\r\n },\r\n {\r\n id: 10090,\r\n titre: \"Dictée facile (24 mots)\",\r\n idConcours: 90,\r\n qualifFaute: 1,\r\n\r\n fichier: 'dictee17.mp3',\r\n texte: \"Il y a une tête de mort sur le drapeau noir des pirates. C'est pour faire peur aux ennemis et pour piller leurs navires.\"\r\n },\r\n {\r\n id: 10091,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 90,\r\n qualifFaute: 0,\r\n test: [\r\n {\r\n fichier: 'mot165.mp3',\r\n mot: 'bonhomme'\r\n },\r\n {\r\n fichier: 'mot166.mp3',\r\n mot: 'vêtement'\r\n },\r\n {\r\n fichier: 'mot167.mp3',\r\n mot: 'malheureux'\r\n },\r\n {\r\n fichier: 'mot168.mp3',\r\n mot: 'printemps'\r\n },\r\n {\r\n fichier: 'mot169.mp3',\r\n mot: 'voix'\r\n }\r\n ]\r\n }, {\r\n id: 10092,\r\n titre: \"Dictée facile (24 mots)\",\r\n idConcours: 90,\r\n qualifFaute: 1,\r\n\r\n fichier: 'dictee18.mp3',\r\n texte: \"Tous les soirs, maman me demande de lui raconter ma journée en détail. Elle adore savoir mes petits secrets. Elle est vraiment très curieuse.\"\r\n }, {\r\n id: 10100,\r\n titre: \"Motus facile\",\r\n idConcours: 100,\r\n\r\n taille: 6,\r\n liste: ['CANCRE', 'CHAISE', 'HUMAIN', 'LOTION', 'MINUTE', 'PICHET', 'PUBLIC', 'RECOIN']\r\n },\r\n {\r\n id: 10101,\r\n titre: \"Pyramide facile\",\r\n idConcours: 100,\r\n qualifTemps: 90,\r\n temps: 90,\r\n liste: [\r\n {\r\n definition: \"Dans voiture mais pas dans trouve\",\r\n mot: \"i\"\r\n },\r\n {\r\n definition: \"Femelle du porc\",\r\n mot: \"truie\"\r\n },\r\n {\r\n definition: \"Nom familier du médécin\",\r\n mot: \"toubib\"\r\n },\r\n {\r\n definition: \"Musique des Village People et de Boney M.\",\r\n mot: \"disco\"\r\n }, {\r\n definition: \"Gouvernail sur un bateau et colore la paella en jaune\",\r\n mot: \"safran\"\r\n },\r\n {\r\n definition: \"Chaussure traditionnelle des Indiens d'Amérique du Nord\",\r\n mot: \"mocassin\"\r\n },\r\n ],\r\n }\r\n , {\r\n id: 10102,\r\n titre: \"Motus facile\",\r\n idConcours: 100,\r\n\r\n taille: 7,\r\n liste: ['BRIGADE', 'CAILLOU', 'COMMODE', 'CONSOLE', 'MAILLOT', 'MANCHOT', 'REVENTE', 'SALAIRE', 'SEMENCE']\r\n },\r\n {\r\n id: 10110,\r\n titre: \"Motus facile\",\r\n idConcours: 110,\r\n\r\n taille: 7,\r\n liste: ['TOMBEAU', 'TORCHON', 'TOXIQUE', 'TRIBORD', 'VICTIME', 'EDIFICE', 'ENCLAVE', 'FARCEUR']\r\n },\r\n {\r\n id: 10111,\r\n titre: \"Pyramide intermédiaire\",\r\n idConcours: 110,\r\n qualifTemps: 80,\r\n temps: 80,\r\n liste: [\r\n {\r\n definition: \"Initiale du nom de l'actrice du dernier métro\",\r\n mot: \"d\"\r\n },\r\n {\r\n definition: \"Il faut le bander pour le mettre sous tension\",\r\n mot: \"arc\"\r\n },\r\n {\r\n definition: \"Poils protégeant les yeux\",\r\n mot: \"cils\"\r\n },\r\n {\r\n definition: \"Se dit d'une cantatrice ou d'une personne capricieuse\",\r\n mot: \"diva\"\r\n }, {\r\n definition: \"Carlos les aimait big\",\r\n mot: \"bisous\"\r\n },\r\n {\r\n definition: \"Il commence généralement le 21 décembre et se termine le 20 mars\",\r\n mot: \"hiver\"\r\n },\r\n {\r\n definition: \"Enveloppe protectrice et sous-vêtement féminin\",\r\n mot: \"gaine\"\r\n },\r\n ],\r\n }\r\n , {\r\n id: 10112,\r\n titre: \"Motus facile\",\r\n idConcours: 110,\r\n\r\n taille: 8,\r\n liste: ['GRILLAGE', 'GUENILLE', 'HERITIER', 'HOMONYME', 'MORPHINE', 'NATIVITE', 'PANCARTE', 'PERCHOIR']\r\n },\r\n {\r\n id: 10120,\r\n titre: \"verbe conjugaison\",\r\n idConcours: 120,\r\n qualifFaute: 1,\r\n exo: [\r\n {\r\n temps: 'Passé composé',\r\n sujet: \"j'\",\r\n verbe: 'confirmer',\r\n reponse: \"ai confirmé\"\r\n },\r\n {\r\n temps: 'Imparfait',\r\n sujet: 'tu',\r\n verbe: 'demander',\r\n reponse: 'demandais'\r\n },\r\n {\r\n temps: 'Passé simple',\r\n sujet: 'il',\r\n verbe: 'demander',\r\n reponse: 'demanda'\r\n },\r\n {\r\n temps: 'Plus-que-parfait',\r\n sujet: 'ils',\r\n verbe: 'fuir',\r\n reponse: 'avaient fui'\r\n },\r\n {\r\n temps: 'Passé composé',\r\n sujet: 'nous',\r\n verbe: 'taper',\r\n reponse: 'avons tapé'\r\n }\r\n ]\r\n },\r\n {\r\n id: 10121,\r\n titre: \"verbe conjugaison\",\r\n idConcours: 120,\r\n qualifFaute: 1,\r\n exo: [\r\n {\r\n temps: 'Présent',\r\n sujet: 'vous',\r\n verbe: 'sentir',\r\n reponse: \"sentez\"\r\n },\r\n {\r\n temps: 'Present',\r\n sujet: 'ils',\r\n verbe: 'craindre',\r\n reponse: 'craignent'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'nous',\r\n verbe: 'contacter',\r\n reponse: 'contactons'\r\n },\r\n {\r\n temps: 'Présent',\r\n sujet: 'il',\r\n verbe: 'élargir',\r\n reponse: 'élargit'\r\n },\r\n {\r\n temps: 'Impératif Présent',\r\n sujet: '(tu)',\r\n verbe: 'manger',\r\n reponse: 'mange'\r\n }\r\n ]\r\n },\r\n {\r\n id: 10122,\r\n titre: \"verbe conjugaison\",\r\n idConcours: 120,\r\n qualifFaute: 1,\r\n exo: [\r\n {\r\n temps: 'Futur simple',\r\n sujet: 'tu',\r\n verbe: 'peser',\r\n reponse: \"pèseras\"\r\n },\r\n {\r\n temps: 'Futur simple',\r\n sujet: 'il',\r\n verbe: 'grandir',\r\n reponse: 'grandira'\r\n },\r\n {\r\n temps: 'Futur simple',\r\n sujet: 'ils',\r\n verbe: 'enrichir',\r\n reponse: 'enrichiront'\r\n },\r\n {\r\n temps: 'Futur simple',\r\n sujet: 'je',\r\n verbe: 'visiter',\r\n reponse: 'visiterai'\r\n },\r\n {\r\n temps: 'Futur antérieur',\r\n sujet: \"j'\",\r\n verbe: 'aimer',\r\n reponse: 'aurai aimé'\r\n }\r\n ]\r\n },\r\n {\r\n id: 10130,\r\n titre: \"phrase erreur\",\r\n niveau: 'facile',\r\n extrait: \"Et que ne durent que les moments doux - Virginie Grimaldi - Fayard (les fautes ont été ajoutées pour le jeu)\",\r\n idConcours: 130,\r\n qualifFaute: 1,\r\n texte: \"C’était un samedi, au mois de juillet. Il faisait chaud et, sur la porte de l'ascenseur parfumé à l’urine, le dessin d’un énorme pénis nous saluait@saluai@. Thomas avait gloussé tout au long de l'ascension vers le quatrième étage, Charline avait regretté de ne pas être allée@allé@ vivre chez son père. Il avait huit ans, elle douze. Avant même de monter les meubles, j’avais décoré leurs@leur@ chambres. De jolies@jolis@ couleurs aux murs pour étouffer le traumatisme du divorce.\"\r\n },\r\n {\r\n id: 10131,\r\n titre: \"phrase erreur\",\r\n niveau: 'facile',\r\n extrait: \"Guillaume Musso - Central Park - XO éditions (les fautes ont été ajoutées pour le jeu)\",\r\n idConcours: 130,\r\n qualifFaute: 1,\r\n texte: \"Alice repoussa quelques mèches blondes qui lui tombaient@tombait@ devant les yeux puis considéra les bracelets métalliques qui la liaient@liait@ à cet individu. C’était un modèle standard@standart@ à double sécurité utilisé par un grand nombre de services de police ou de sécurité privée de par le monde. Il était même fort probable qu'il s’agisse de sa propre paire@pair@. Alice fouilla dans la poche de son jean en espérant y trouver la clé.\"\r\n },\r\n {\r\n id: 10132,\r\n titre: \"phrase erreur\",\r\n niveau: 'facile',\r\n extrait: \"Marc Levy - Une fille comme elle - Robert Laffont/Versilio (les fautes ont été ajoutées pour le jeu)\",\r\n idConcours: 130,\r\n qualifFaute: 1,\r\n texte: \"Il posa sa serviette, traversa le salon et ouvrit la porte de la chambre bleue@bleu@. Il l'avait peinte ainsi trois décennies plus tôt. Démonter le berceau fabriqué de ses mains avait été l'expérience la plus douloureuse de sa vie. Depuis lors, il n'entrait dans cette@cet@ chambre qu’une fois l’an, s’asseyait sur la chaise qu’il avait installée@installé@ près de la fenêtre et faisait une prière silencieuse.\"\r\n }\r\n ,\r\n {\r\n id: 10140,\r\n titre: \"Pyramide difficile\",\r\n idConcours: 140,\r\n qualifTemps: 110,\r\n temps: 110,\r\n liste: [\r\n {\r\n definition: \"Cette lettre est présente deux fois chez Pierrot.\",\r\n mot: \"r\"\r\n },\r\n {\r\n definition: \"On en mange beaucoup en Asie.\",\r\n mot: \"riz\"\r\n },\r\n {\r\n definition: \"Citoyens chargés de rendre un verdict dans un procès\",\r\n mot: \"jury\"\r\n },\r\n {\r\n definition: \"Elton John et Lang Lang en jouent\",\r\n mot: \"piano\"\r\n },\r\n {\r\n definition: \"Œuf en gelée ou serpent venimeux\",\r\n mot: \"aspic\"\r\n },\r\n\r\n ]\r\n },\r\n {\r\n id: 10141,\r\n titre: \"Trouvez les mots à partir des définitions\",\r\n idConcours: 140,\r\n qualifScore: 30,\r\n liste: [\r\n {\r\n mot: \"eiffel\",\r\n definition: \"Il a construit une célèbre tour à Paris.\",\r\n ordre: [5, 2, 3, 1, 0, 4]\r\n },\r\n {\r\n mot: \"pastis\",\r\n definition: \"Boisson alcoolisée aromatisée à l'anis et à la réglisse que l'on boit en Provence.\",\r\n ordre: [5, 3, 2, 0, 1, 4]\r\n },\r\n {\r\n mot: \"mensuel\",\r\n definition: \"Qui a lieu, arrive tous les mois.\",\r\n ordre: [0, 2, 5, 6, 3, 1, 4]\r\n }\r\n ]\r\n },\r\n {\r\n id: 10142,\r\n titre: \"Motus facile\",\r\n idConcours: 140,\r\n\r\n taille: 6,\r\n liste: ['CHEVAL', 'CHEVRE', 'DEVOIR', 'LESION', 'LIONNE', 'PARURE', 'PIMENT', 'RENARD', 'ROSIER']\r\n },\r\n {\r\n id: 10150,\r\n titre: \"Désordre facile\",\r\n idConcours: 150,\r\n liste:\r\n [{\r\n lettres: \"JGGEAPELTOIUNRERU\",\r\n reponse: [\"GRUE\", \"LIGNE\"]\r\n },\r\n {\r\n lettres: \"HEBELURSEIVLAEMLVREU\",\r\n reponse: [\"MERLE\", \"LEVURE\"]\r\n }]\r\n },\r\n {\r\n id: 10151,\r\n titre: \"Pyramide facile\",\r\n idConcours: 150,\r\n qualifTemps: 100,\r\n temps: 100,\r\n liste: [\r\n {\r\n definition: \"lmot43.jpg\",\r\n mot: \"pizza\"\r\n },\r\n {\r\n definition: \"lmot42.jpg\",\r\n mot: \"pointes\"\r\n },\r\n {\r\n definition: \"lmot45.jpg\",\r\n mot: \"pétales\"\r\n },\r\n {\r\n definition: \"lmot46.jpg\",\r\n mot: \"diamant\"\r\n },\r\n {\r\n definition: \"lmot44.jpg\",\r\n mot: \"mariage\"\r\n },\r\n {\r\n definition: \"lmot41.jpg\",\r\n mot: \"nénuphars\"\r\n },\r\n\r\n ]\r\n },\r\n {\r\n id: 10152,\r\n titre: \"Désordre facile\",\r\n idConcours: 150,\r\n liste:\r\n [{\r\n lettres: \"TOILAGTCEIGEAHRSDUR\",\r\n reponse: [\"TIRAGE\", \"LUSTRE\"]\r\n },\r\n {\r\n lettres: \"NBEMELPLUUNMDAOAOI\",\r\n reponse: [\"MOULIN\", \"NOMADE\"]\r\n }]\r\n },\r\n {\r\n id: 10160,\r\n titre: \"Désordre facile\",\r\n idConcours: 160,\r\n liste:\r\n [{\r\n lettres: \"ANATRPOMURJEGSTOEDLSB\",\r\n reponse: [\"JAMBON\", \"DESSERT\"]\r\n },\r\n {\r\n lettres: \"IETCIUPLLVPEEASBCUOFHRI\",\r\n reponse: [\"PICHET\", \"FEUILLE\"]\r\n }]\r\n\r\n },\r\n {\r\n id: 10161,\r\n titre: \"Pyramide facile\",\r\n idConcours: 160,\r\n qualifTemps: 100,\r\n temps: 100,\r\n liste: [\r\n {\r\n definition: \"lmot50.jpg\",\r\n mot: \"dés\"\r\n },\r\n {\r\n definition: \"lmot51.jpg\",\r\n mot: \"vague\"\r\n },\r\n {\r\n definition: \"lmot52.jpg\",\r\n mot: \"bougies\"\r\n },\r\n {\r\n definition: \"lmot53.jpg\",\r\n mot: \"orchidée\"\r\n },\r\n {\r\n definition: \"lmot54.jpg\",\r\n mot: \"éclairs\"\r\n },\r\n {\r\n definition: \"lmot55.jpg\",\r\n mot: \"volcan\"\r\n },\r\n\r\n ]\r\n },\r\n {\r\n id: 10162,\r\n titre: \"Désordre difficile\",\r\n idConcours: 160,\r\n liste:\r\n [{\r\n lettres: \"ORCDEPUROEAEVSCCMFHCAL\",\r\n reponse: [\"CAMPEUR\", \"CLOCHER\"]\r\n },\r\n {\r\n lettres: \"CBPVOECRVARCIEOSEETSISNA\",\r\n reponse: [\"CONVIVE\", \"CARCASSE\"]\r\n }]\r\n },\r\n {\r\n id: 10170,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 170,\r\n qualifFaute: 1,\r\n test: [\r\n {\r\n fichier: 'phrase35.mp3',\r\n mot: 'émerveillent',\r\n phrase: \"Les paysages du Cantal, par leur immensité, nous $ toujours\"\r\n },\r\n {\r\n fichier: 'phrase36.mp3',\r\n mot: 'réussit',\r\n phrase: \"Le vent, le froid, la pluie, rien ne $ à décourager Marc lorsqu’il court.\"\r\n },\r\n {\r\n fichier: 'phrase37.mp3',\r\n mot: 'seule',\r\n phrase: \"Louise ira $ à ce congrès.\"\r\n },\r\n {\r\n fichier: 'phrase38.mp3',\r\n mot: \"inaperçue\",\r\n phrase: \"Je te présente une collègue qui ne passe pas $ dans une soirée.\"\r\n\r\n },\r\n {\r\n fichier: 'phrase39.mp3',\r\n mot: 'raccourcies',\r\n phrase: \"Les procédures d’analyse ont été $.\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10171,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 170,\r\n qualifFaute: 1,\r\n test: [\r\n {\r\n fichier: 'mot170.mp3',\r\n mot: 'accueil'\r\n },\r\n {\r\n fichier: 'mot171.mp3',\r\n mot: 'absence'\r\n },\r\n {\r\n fichier: 'mot172.mp3',\r\n mot: 'aussitôt'\r\n },\r\n {\r\n fichier: 'mot173.mp3',\r\n mot: 'longtemps'\r\n },\r\n {\r\n fichier: 'mot174.mp3',\r\n mot: 'déjà'\r\n }\r\n ]\r\n }, {\r\n id: 10172,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 170,\r\n qualifFaute: 1,\r\n test: [\r\n {\r\n fichier: 'phrase40.mp3',\r\n mot: 'faisons',\r\n phrase: \"Thomas et moi $ des projets pour le mois prochain.\"\r\n },\r\n {\r\n fichier: 'phrase41.mp3',\r\n mot: 'utilisez',\r\n phrase: \"Caroline et toi $ souvent les voies piétonnes.\"\r\n },\r\n {\r\n fichier: 'phrase42.mp3',\r\n mot: 'moud',\r\n phrase: \"Le meunier $ la farine.\"\r\n },\r\n {\r\n fichier: 'phrase43.mp3',\r\n mot: \"résout\",\r\n phrase: \"Le mathématicien $ les problèmes.\"\r\n\r\n },\r\n {\r\n fichier: 'phrase44.mp3',\r\n mot: 'épie',\r\n phrase: \"Le chat $ les souris.\"\r\n }\r\n ]\r\n }, {\r\n id: 10180,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 180,\r\n qualifFaute: 1,\r\n test: [\r\n {\r\n fichier: 'phrase45.mp3',\r\n mot: 'censé',\r\n phrase: \"Nul n'est $ ignorer la Loi.\"\r\n },\r\n {\r\n fichier: 'phrase46.mp3',\r\n mot: 'différend',\r\n phrase: \"J'ai eu un $ avec mon voisin aujourd'hui.\"\r\n },\r\n {\r\n fichier: 'phrase47.mp3',\r\n mot: 'tort',\r\n phrase: \"Un accident ou sinistre en $ est un accident duquel vous êtes responsable.\"\r\n },\r\n {\r\n fichier: 'phrase48.mp3',\r\n mot: \"d'affaires\",\r\n phrase: \"Le chiffre $ représente le montant des affaires réalisées par une entreprise.\"\r\n\r\n },\r\n {\r\n fichier: 'phrase49.mp3',\r\n mot: 'prodigue',\r\n phrase: \"Il $ aussi des conseils.\"\r\n }\r\n ]\r\n }, {\r\n id: 10181,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 180,\r\n qualifFaute: 1,\r\n test: [\r\n {\r\n fichier: 'mot180.mp3',\r\n mot: 'silhouette'\r\n },\r\n {\r\n fichier: 'mot181.mp3',\r\n mot: 'insatiable',\r\n },\r\n {\r\n fichier: 'mot182.mp3',\r\n mot: 'subterfuge'\r\n },\r\n {\r\n fichier: 'mot183.mp3',\r\n mot: 'vicissitude'\r\n },\r\n {\r\n fichier: 'mot184.mp3',\r\n mot: 'peccadille'\r\n }\r\n ]\r\n }, {\r\n id: 10182,\r\n titre: \"Écrire sans faute\",\r\n idConcours: 180,\r\n qualifFaute: 1,\r\n test: [\r\n {\r\n fichier: 'phrase50.mp3',\r\n mot: 'quant',\r\n phrase: \"Elle dit ne rien savoir $ à un possible changement de direction.\"\r\n },\r\n {\r\n fichier: 'phrase51.mp3',\r\n mot: 'prêts',\r\n phrase: \"Sont-ils $ ? Pouvons-nous sortir la voiture ?\"\r\n },\r\n {\r\n fichier: 'phrase52.mp3',\r\n mot: 'quelles',\r\n phrase: \"Je ne sais pas $ suites seront données à ma demande.\"\r\n },\r\n {\r\n fichier: 'phrase53.mp3',\r\n mot: \"d'affilée\",\r\n phrase: \"Lille a fait trois matchs nuls $.\"\r\n\r\n },\r\n {\r\n fichier: 'phrase54.mp3',\r\n mot: 'dû',\r\n phrase: \"Il a $ faire demi-tour car il avait oublié ses clés.\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10190,\r\n titre: \"Pyramide haute\",\r\n idConcours: 190,\r\n qualifTemps: 120,\r\n temps: 120,\r\n liste: [\r\n {\r\n definition: \"Symbole de l'azote\",\r\n mot: \"n\"\r\n },\r\n {\r\n definition: \"Ancienne monnaie française ou bouclier\",\r\n mot: \"écu\"\r\n },\r\n {\r\n definition: \"Mèche de cheveux qui pousse en sens contraire des autres\",\r\n mot: \"épi\"\r\n },\r\n {\r\n definition: \"Pied de vigne\",\r\n mot: \"cep\"\r\n },\r\n {\r\n definition: \"Table sur laquelle les bouchers débitent la viande\",\r\n mot: \"étal\"\r\n },\r\n {\r\n definition: \"Dans la galette des rois\",\r\n mot: \"fève\"\r\n },\r\n {\r\n definition: \"Éclairage dans un tube\",\r\n mot: \"néon\"\r\n },\r\n {\r\n definition: \"Nom du programme spatial qui a permis d'envoyer des hommes sur la lune\",\r\n mot: \"apollo\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10191,\r\n titre: \"Pyramide haute\",\r\n idConcours: 190,\r\n qualifTemps: 90,\r\n temps: 90,\r\n liste: [\r\n {\r\n definition: \"lmot60.jpg\",\r\n mot: \"gants\"\r\n },\r\n {\r\n definition: \"lmot61.jpg\",\r\n mot: \"jaune\"\r\n },\r\n {\r\n definition: \"lmot62.jpg\",\r\n mot: \"bar\"\r\n },\r\n {\r\n definition: \"lmot63.jpg\",\r\n mot: \"arcs\"\r\n },\r\n {\r\n definition: \"lmot64.jpg\",\r\n mot: \"bébé\"\r\n },\r\n {\r\n definition: \"lmot65.jpg\",\r\n mot: \"fusil\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10192,\r\n titre: \"Pyramide haute\",\r\n idConcours: 190,\r\n qualifTemps: 130,\r\n temps: 130,\r\n liste: [\r\n {\r\n definition: \"Troisième note de la gamme de DO majeur\",\r\n mot: \"mi\"\r\n },\r\n {\r\n definition: \"Poil autour de la paupière\",\r\n mot: \"cil\"\r\n },\r\n {\r\n definition: \"Balle au-dessus de l'adversaire au tennis\",\r\n mot: \"lob\"\r\n },\r\n {\r\n definition: \"Femelle du lièvre\",\r\n mot: \"hase\"\r\n },\r\n {\r\n definition: \"Maison urbaine traditionnelle au Maroc disposant d'un jardin intérieur\",\r\n mot: \"riad\"\r\n },\r\n {\r\n definition: \"Enduit mural qui imite le marbre\",\r\n mot: \"stuc\"\r\n },\r\n {\r\n definition: \"Instrument de musique à cordes pincées de forme triangulaire\",\r\n mot: \"harpe\"\r\n },\r\n {\r\n definition: \"Se dit de quelque chose de démodé et ridicule\",\r\n mot: \"kitch\"\r\n },\r\n {\r\n definition: \"Alluvion, terre charriée par un cours d'eau et qui se dépose sur ses rives\",\r\n mot: \"limon\"\r\n },\r\n {\r\n definition: \"Grave atteinte portée à l’environnement entraînant des dommages majeurs.\",\r\n mot: \"écocide\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10193,\r\n titre: \"Pyramide haute\",\r\n idConcours: 190,\r\n qualifTemps: 90,\r\n temps: 90,\r\n liste: [\r\n {\r\n definition: \"lmot70.jpg\",\r\n mot: \"troncs\"\r\n },\r\n {\r\n definition: \"lmot71.jpg\",\r\n mot: \"yoga\"\r\n },\r\n {\r\n definition: \"lmot72.jpg\",\r\n mot: \"collier\"\r\n },\r\n {\r\n definition: \"lmot73.jpg\",\r\n mot: \"brume\"\r\n },\r\n {\r\n definition: \"lmot74.jpg\",\r\n mot: \"pompier\"\r\n },\r\n {\r\n definition: \"lmot75.jpg\",\r\n mot: \"lavande\"\r\n }\r\n ],\r\n\r\n }, {\r\n id: 10200,\r\n titre: \"\",\r\n niveau: 'moyen',\r\n idConcours: 200,\r\n qualifFaute: 1,\r\n texte: \"Le facteur avait d'abord cru qu'on le faisait courir. Et pourtant non ! La lettre qu'il avait aperçue@aperçu@ au hasard@hazard@ du tri venait bien de Bernard. Ce dernier s'adressait à lui, pour lui faire part d'un événement bouleversant : il faisait partie@parti@ des excellents finalistes des championnats de France d'orthographe ! Quelle@Quel@ joie ! Pour en arriver là, notre facteur avait travaillé dur. En effet, même s'il trouvait intéressant de développer@déveloper@ ses@ces@ connaissances (quoique cela lui prenne du temps), il ne savait jamais comment écrire certains termes : philosophie, psychologie, étymologie, une vache dans un champ@champs@. Eh oui ! Parmi tous les mots, certains lui donnaient des maux... de tête. Il attrapait des migraines, un vrai cauchemar@cauchemard@ !\"\r\n },\r\n {\r\n\r\n id: 10201,\r\n idConcours: 200,\r\n qualifFaute: 2,\r\n titre: \"Pluriel des mots (difficile)\",\r\n extrait: \"Mettre les mots au pluriel\",\r\n texte: \"Un balai-brosse, des @balais-brosses
(Pluriel selon les rectifications orthographiques de 1990) Un hors-jeu, des @hors-jeux
Un taille-crayon, des @taille-crayons
Un cerceau, des @cerceaux
Un va-et-vient, des @va-et-vient
Une demi-finale, des @demi-finales
Le ciel de Provence, les @ciels de Provence
(Pluriel le plus courant) Un scénario, des @scénarios
Les visiteurs étaient plus de cinq (100) @cents .
Une voie, des @voies
\"\r\n },\r\n {\r\n id: 10202,\r\n titre: \"\",\r\n niveau: 'moyen',\r\n extrait: \"Émile Zola, L’Assommoir, 1877\",\r\n idConcours: 200,\r\n qualifFaute: 1,\r\n texte: \"Cependant, couchés@couché@ côte à côte sur le même oreiller, les deux enfants dormaient. Claude, qui avait huit ans, ses petites mains rejetées hors de la couverture, respirait@respiraient@ d’une haleine lente, tandis qu’Étienne, âgé de quatre ans seulement, souriait@souriaient@, un bras passé au cou de son frère@frêre@. Lorsque le regard noyé de leur mère s'arrêta sur eux, elle eut une nouvelle crise de sanglots, elle tamponna un mouchoir sur sa bouche, pour étouffer les légers cris@cries@ qui lui échappaient. Et, pieds@pied@ nus@nu@, sans songer à remettre ses savates tombées, elle retourna s’accouder à la fenêtre, elle reprit son attente de la nuit, interrogeant les trottoirs au loin.\"\r\n },\r\n {\r\n id: 10210,\r\n idConcours: 210,\r\n qualifFaute: 1,\r\n titre: \"L'accord des adjectifs dans une phrase\",\r\n test: [\r\n {\r\n fichier: 'phrase20.mp3',\r\n mot: 'invités',\r\n phrase: \"Les policiers et les policières sont $ à exprimer leurs idées sur cette question.\"\r\n },\r\n {\r\n fichier: 'phrase21.mp3',\r\n mot: 'inscrits',\r\n phrase: \"L’étudiante et l’étudiant $ à ces cours recevront leur planning.\"\r\n },\r\n {\r\n fichier: 'phrase22.mp3',\r\n mot: 'belle',\r\n phrase: \"une $ histoire\"\r\n },\r\n {\r\n fichier: 'phrase23.mp3',\r\n mot: \"nouvel\",\r\n phrase: \"un $ enfant\"\r\n\r\n },\r\n {\r\n fichier: 'phrase24.mp3',\r\n mot: 'vieil',\r\n phrase: \"un $ immeuble\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10211,\r\n idConcours: 210,\r\n qualifFaute: 1,\r\n titre: \"Pluriel des mots\",\r\n extrait: \"Mettre les mots au pluriel\",\r\n texte: \"Une souris, des @souris
Un écrou, des @écrous
Un lieu (le poisson), des @lieus
Un pou, des @poux
Un lieu (un endroit), des @lieux
Un pneu, des @pneus
Un gaz, des @gaz
Un clou, des @clous
Un tuyau, des @tuyaux
Ce garçon est infernal, ces garçons sont @infernaux .
Un hôpital,  des @hôpitaux
\"\r\n },\r\n {\r\n id: 10212,\r\n idConcours: 210,\r\n qualifFaute: 1,\r\n titre: \"Accord du participe passé\",\r\n test: [\r\n {\r\n fichier: 'phrase30.mp3',\r\n mot: 'présents',\r\n phrase: \"Les administrateurs $ à la conférence ont applaudi.\"\r\n },\r\n {\r\n fichier: 'phrase31.mp3',\r\n mot: 'enchantée',\r\n phrase: \"Martine était $ de vous revoir.\"\r\n },\r\n {\r\n fichier: 'phrase32.mp3',\r\n mot: 'méritée',\r\n phrase: \"La punition que j’ai reçue était $.\"\r\n },\r\n {\r\n fichier: 'phrase33.mp3',\r\n mot: \"évanouie\",\r\n phrase: \"La jeune fille s’est $ en le voyant.\"\r\n\r\n },\r\n {\r\n fichier: 'phrase34.mp3',\r\n mot: 'fondu',\r\n phrase: \"Les dernières neiges ont déjà $.\"\r\n }\r\n ]\r\n },\r\n {\r\n id: 10220,\r\n idConcours: 220,\r\n qualifFaute: 1,\r\n info: [{ \"question\": \"

Nom du groupe de rock français qui chante les chansons L’Aventurier, Trois nuits par semaine, J'ai demandé à la lune ?

\", \"reponses\": [{ \"choix\": \"Indochine\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Nom de l’auteur russe des pièces de théâtres Oncle Vania, Les Trois Sœurs, La Cerisaie ?

\", \"reponses\": [{ \"choix\": \"Tchékhov\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Quel est le nom de l’auteur du roman L'Attrape-cœurs ?

\", \"reponses\": [{ \"choix\": \"Salinger\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Nom du fleuve qui traverse la ville de Toulouse

\", \"reponses\": [{ \"choix\": \"Garonne\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Nom de la capitale des Émirats arabes unis

\", \"reponses\": [{ \"choix\": \"Abou Dabi\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Nom du scientifique polonais qui a écrit que la terre tourne autour du soleil alors que tout le monde pensait qu’elle était immobile et au centre de l’univers.

\", \"reponses\": [{ \"choix\": \"Copernic\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }]\r\n },\r\n \r\n {\r\n id: 10221,\r\n idConcours: 220,\r\n qualifFaute: 1,\r\n info : [{\"question\":\"

Qui a écrit la phrase \\\"Ce qui ne me tue pas me rend plus fort\\\" dans le \\\"Crépuscule des Idoles\\\" en 1888 ?

\",\"reponses\":[{\"choix\":\"Nietzsche\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom du scientifique français, pionner de la chimie, qui fût guillotiné en 1794 et à qui on doit la phrase \\\"Rien ne se perd, rien ne se crée, tout se transforme\\\".

\",\"reponses\":[{\"choix\":\"Lavoisier\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Homme d'état italien d’abord socialiste puis dictateur fasciste. Il est surnommé le \\\"Duce\\\".

\",\"reponses\":[{\"choix\":\"Mussolini\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Nom de la rivière qui traverse Metz et qui donne son nom au département

\",\"reponses\":[{\"choix\":\"Moselle\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Auteur français (1884 - 1995) de 124 pièces et de 36 films, réputé pour sa misogynie avec des citations comme \\\"Les femmes c'est charmant, mais les chiens c'est tellement plus fidèle.\\\", \\\"Pourquoi n'aimerions-nous pas les femmes pour ce qu'elles font de mieux : mentir ?\\\".

\",\"reponses\":[{\"choix\":\"Guitry\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Cette ville située dans l’Utah est considérée comme la nouvelle Jérusalem par les Mormons. Quel est son nom ?

\",\"reponses\":[{\"choix\":\"Salt Lake City\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n },\r\n {\r\n id: 10230,\r\n idConcours: 230,\r\n qualifFaute: 1,\r\n info : [{\"question\":\"

Vent glacial qui souffle au Canada et dans le nord des États-Unis, souvent accompagné de tempêtes de neige.

\",\"reponses\":[{\"choix\":\"blizzard\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Terme d'argot souvent utilisé par les jeunes exprimant un vif ressentiment mêlé d’écœurement.

\",\"reponses\":[{\"choix\":\"seum\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Répétition d'une consonne ou d'un groupe de consonnes dans des mots qui se suivent, produisant un effet d'harmonie.

Exemple avec Serge Gainsbourg:

Dans les trois jours, voilà le tac-tac-tac

Des mitraillettes qui reviennent à l'attaque

\",\"reponses\":[{\"choix\":\"allitération\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Autoportrait photographique, généralement réalisé avec un téléphone intelligent (smartphone).

\",\"reponses\":[{\"choix\":\"selfie\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Religieux retiré dans un lieu désert.

\",\"reponses\":[{\"choix\":\"ermite\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Manière de se moquer de quelqu'un en disant le contraire de ce qu'on veut exprimer.

\",\"reponses\":[{\"choix\":\"ironie\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n },\r\n \r\n {\r\n id: 10231,\r\n idConcours: 230,\r\n qualifFaute: 1,\r\n info : [{\"question\":\"

Groupe de pression qui tente d’influencer les lois et les gouvernements pour favoriser ses propres intérêts.

\",\"reponses\":[{\"choix\":\"lobby\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Premiers mots d'un manuscrit, d'un ouvrage.

\",\"reponses\":[{\"choix\":\"incipit\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Inscription funéraire, placée sur une pierre tombale ou un monument funéraire.

\",\"reponses\":[{\"choix\":\"épitaphe\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Dans le monde arabe, établissement où l’on enseigne le droit et les sciences religieuses.

\",\"reponses\":[{\"choix\":\"madrasa\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Mot qui désigne une plante et un support d'écriture chez les Égyptiens.

\",\"reponses\":[{\"choix\":\"papyrus\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Construction préhistorique constituée d'une ou plusieurs grosses dalles de couverture posées sur des pierres verticales qui lui servent de pieds.

\",\"reponses\":[{\"choix\":\"dolmen\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n },\r\n {\r\n id: 10240,\r\n idConcours: 240,\r\n qualifFaute: 1,\r\n info : [{\"question\":\"

Unité internationale de puissance. Son nom rend hommage à un ingénieur écossais (1736-1819) qui a contribué au développement de la machine à vapeur.

\",\"reponses\":[{\"choix\":\"watt\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"

James Watt met au point un modèle avec une chambre de condensation indépendante qu'il fait breveter en 1769. La première machine à vapeur performante est née. (https://global-industrie.com/)

\"},{\"question\":\"

Unité légale de mesure internationale utilisée en radioactivité. Cette unité est nommée en hommage à un physicien français découvreur de la radioactivité.

\",\"reponses\":[{\"choix\":\"becquerel\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"

Antoine Henri Becquerel, né le 15 décembre 1852, est lauréat du prix Nobel de physique de 1903 (partagé avec Marie Curie et son mari Pierre Curie). (wikipedia)

\"},{\"question\":\"

Unité de fréquence : fréquence d'un phénomène périodique dont la période est une seconde. Cette unité vient d’un savant allemand, pionnier de la radioélectricité.

\",\"reponses\":[{\"choix\":\"hertz\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"

Heinrich Hertz est un ingénieur et physicien allemand qui a découvert les ondes hertziennes auxquelles il a donné son nom. (wikipedia)

\"},{\"question\":\"

Unité de mesure des champs magnétiques, nommée en l'honneur d’un physicien serbe et dont le nom a été repris par une marque de voiture.

\",\"reponses\":[{\"choix\":\"tesla\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"

Nikola Tesla est un inventeur et ingénieur américain d'origine serbe. Il a beaucoup travaillé sur le développement et l'adoption du courant alternatif pour le transport et la distribution de l'électricité.

\"},{\"question\":\"

Unité de mesure de l'intensité du courant électrique. Elle doit son nom à un savant français, père de l'électromagnétisme.

\",\"reponses\":[{\"choix\":\"ampère\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Unité de pression, elle doit son nom à un savant et philosophe français, auteur des Pensées.

\",\"reponses\":[{\"choix\":\"pascal\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n },\r\n \r\n {\r\n id: 10241,\r\n idConcours: 240,\r\n qualifFaute: 1,\r\n info : [{\"question\":\"

Il a été membre du jury dans l’émission The Voice et s’est fait connaître avec les titres Cosmo, Fresh Prince, Clown.

De qui s'agit-il ?

\",\"reponses\":[{\"choix\":\"Soprano\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Elle rencontre le roi Louis XV pendant un bal masqué et va ensuite devenir la première maîtresse officielle du roi pendant six ans, de 1745 à 1751.

Il s’agit de Madame de …

\",\"reponses\":[{\"choix\":\"Pompadour\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

En quelle année a été signé le traité de Francfort qui cède l’Alsace et la Lorraine à l’Allemagne ?

\",\"reponses\":[{\"choix\":\"1871\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"

Il a été signé pour mettre fin à la guerre de 1870.

\"},{\"question\":\"

Quel est le nom de la servante qui n’ayant que la permission de minuit pour participer à une réception doit s’enfuir précipitamment lorsque l’heure approche ? Dans sa fuite elle perd sa pantoufle de verre.

\",\"reponses\":[{\"choix\":\"Cendrillon\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Dans quel état se trouve la ville de Seattle aux États-Unis ?

\",\"reponses\":[{\"choix\":\"Washington\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de ce type de chaussure ?

Des ...

concoursMel1.jpg\",\"reponses\":[{\"choix\":\"escarpins\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

En quelle année débute la guerre de Corée ?

\",\"reponses\":[{\"choix\":\"1950\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"},{\"question\":\"

Quel est le nom de ce marquis français qui a joué un grand rôle pour l'indépendance des États-Unis et la Révolution française ?

\",\"reponses\":[{\"choix\":\"La Fayette\",\"bonneReponse\":true,\"repJoueur\":\"vide\"}],\"explication\":\"\"}]\r\n },\r\n\r\n \r\n {\r\n id: 10250,\r\n titre: \"Pyramide facile\",\r\n idConcours: 250,\r\n qualifTemps: 120,\r\n temps: 120,\r\n liste: [\r\n {\r\n definition: \"Dans une écharde mais pas dans l'écharpe\",\r\n mot: \"d\"\r\n },\r\n {\r\n definition: \"3,141\",\r\n mot: \"pi\"\r\n },\r\n {\r\n definition: \"Il chante le matin\",\r\n mot: \"coq\"\r\n },\r\n {\r\n definition: \"On en trouve à Auteuil\",\r\n mot: \"haies\"\r\n },\r\n {\r\n definition: \"Contraire de petit\",\r\n mot: \"grand\"\r\n },\r\n {\r\n definition: \"Construction en neige, en forme de coupole\",\r\n mot: \"igloo\"\r\n },\r\n {\r\n definition: \"Sous-vêtement féminin couvrant le buste\",\r\n mot: \"caraco\"\r\n },\r\n ]\r\n },\r\n {\r\n id: 10252,\r\n titre: \"Pyramide facile\",\r\n idConcours: 250,\r\n qualifTemps: 120,\r\n temps: 120,\r\n liste: [\r\n {\r\n definition: \"Première lettre de la capitale de l'Australie\",\r\n mot: \"c\"\r\n },\r\n {\r\n definition: \"Les chiens les apprécient beaucoup\",\r\n mot: \"os\"\r\n },\r\n {\r\n definition: \"X en chiffre romain\",\r\n mot: \"dix\"\r\n },\r\n {\r\n definition: \"Musique de Duke Ellington et Miles Davis\",\r\n mot: \"jazz\"\r\n },\r\n {\r\n definition: \"Chèvre et vieille femme méchante\",\r\n mot: \"bique\"\r\n },\r\n {\r\n definition: \"Projectile du canon et personne inutile qui empêche d'avancer\",\r\n mot: \"boulet\"\r\n },\r\n {\r\n definition: \"Résidence secondaire à la campagne pour les Russes\",\r\n mot: \"datcha\"\r\n },\r\n {\r\n definition: \"Qui pratique la nudité pour être en communion avec la nature\",\r\n mot: \"naturiste\"\r\n },\r\n \r\n ]\r\n },\r\n {\r\n id: 10251,\r\n titre: \"Pyramide facile\",\r\n idConcours: 250,\r\n qualifTemps: 100,\r\n temps: 100,\r\n liste: [\r\n {\r\n definition: \"lmot105.jpg\",\r\n mot: \"chips\"\r\n },\r\n {\r\n definition: \"lmot100.jpg\",\r\n mot: \"vague\"\r\n },\r\n {\r\n definition: \"lmot101.jpg\",\r\n mot: \"phare\"\r\n },\r\n {\r\n definition: \"lmot102.jpg\",\r\n mot: \"béret\"\r\n },\r\n {\r\n definition: \"lmot103.jpg\",\r\n mot: \"bretzel\"\r\n },\r\n {\r\n definition: \"lmot104.jpg\",\r\n mot: \"légumes\"\r\n },\r\n {\r\n definition: \"lmot106.jpg\",\r\n mot: \"dépression\"\r\n },\r\n \r\n \r\n \r\n \r\n ]\r\n },\r\n {\r\n id: 10253,\r\n titre: \"Pyramide facile\",\r\n idConcours: 250,\r\n qualifTemps: 100,\r\n temps: 100,\r\n liste: [\r\n {\r\n definition: \"conhiver5.jpg\",\r\n mot: \"fusée\"\r\n },\r\n {\r\n definition: \"conhiver6.jpg\",\r\n mot: \"balles\"\r\n },\r\n {\r\n definition: \"conhiver7.jpg\",\r\n mot: \"capitole\"\r\n },\r\n {\r\n definition: \"conhiver4.jpg\",\r\n mot: \"foret\"\r\n },\r\n {\r\n definition: \"conhiver3.jpg\",\r\n mot: \"perceuse\"\r\n },\r\n {\r\n definition: \"conhiver2.jpg\",\r\n mot: \"ukraine\"\r\n },\r\n {\r\n definition: \"conhiver1.jpg\",\r\n mot: \"sandales\"\r\n },\r\n \r\n \r\n \r\n ]\r\n },\r\n {\r\n id: 10260,\r\n idConcours: 260,\r\n qualifFaute: 2,\r\n \r\n titre : \"Majuscule ou pas\",\r\n extrait : \"Il suffit simplement de réécrire le mot entre crochets avec ou sans majuscule. \",\r\n texte : \"Le [président] @président de la [république] @République parle au nom de la France.
Il est nommé [premier] @Premier ministre.
Elle a de la chance ; [il] @il s'est mis à neiger pour les sports d'hiver.
Il apprend le [chinois] @chinois .
Le palais Bourbon est le nom communément donné au bâtiment qui abrite l'Assemblée [nationale] @nationale française.
La [tour] @tour Eiffel est une tour de 324 mètres de hauteur.
Les [parisiens] @Parisiens sont-ils des privilégiés ?
Le [moyen] @Moyen Âge est la période de l'histoire européenne qui s'étend de la fin de l'Empire romain au début de la Renaissance.
Le [préfet] @préfet est la représentation de l’État au niveau d'un département.
\"\r\n },\r\n {\r\n id: 10261,\r\n idConcours: 260,\r\n qualifFaute: 2,\r\n titre : \"Masculin ou féminin\",\r\n extrait : \"Ajouter un ou une (sans majuscule) devant chaque mot\",\r\n texte : \"(un/une) @un haltère
(un/une) @un pétale
(un/une) @un équinoxe
(un/une) @un enseigne (l'officier de la marine de guerre)
(un/une) @une anagramme
(un/une) @une oasis
(un/une) @un abîme
(un/une) @une apostrophe
(un/une) @une stalactite
(un/une) @un tentacule
\"\r\n\r\n },\r\n {\r\n id: 10262,\r\n idConcours: 260,\r\n qualifFaute: 2,\r\n titre : \" Écrire le contraire des mots ou des adjectifs ci-dessous avec des préfixes\",\r\n extrait : \"Exemple : lisible - illisible\",\r\n texte : \"responsable @irresponsable
hydraté @déshydraté
moral @immoral
défini @indéfini
populaire @impopulaire
mortel @immortel
lettré @illettré
observable @inobservable
accordé @désaccordé
hospitalier @inhospitalier
\"\r\n\r\n },\r\n {\r\n id: 10263,\r\n idConcours: 260,\r\n qualifFaute: 2,\r\n titre : \"Les abréviations\",\r\n extrait : \"Écrire la forme abrégée du mot entre parenthèses. Certaines abréviations nécessitent normalement des exposants (madame) mais cela n’est pas possible ici. On se contentera de l’écrire simplement sur la même ligne.\",\r\n texte : \"(Monsieur) @M. Dupont
(Messieurs) @MM. Corchan et Lucas
(Madame) @Mme N'Dyaye
5 (minutes) @min
4 (kilomètres) @km
Les enseignants du (second) @2d degré
Le (premier) @1er prix
Le (troisième) @3e prix
L'expression latine « exempli gratia » est principalement utilisée par les anglophones pour illustrer son point de vue à l'aide d'un exemple, sa forme abrégée sans espace est @e.g.
La classe de (seconde) @2de
\"\r\n\r\n },\r\n {\r\n id: 10270,\r\n niveau : \"intermédiaire\",\r\n titre : \"Robert Merle - Le débarquement\",\r\n idConcours: 270,\r\n qualifFaute: 2,\r\n\r\n texte : \"La grande pirogue était posée@posé@ sur le lagon@laguon@, ses@ces@ grandes voiles repliées@repliés@, et les hommes blancs descendaient leurs@leur@ petites pirogues à l'eau pour débarquer. Les Tahitiens se mirent à@a@ rire parce que les baleinières des étrangers avançaient avec une telle@tel@ lenteur sur l'eau calme du lagon. Cependant, c'était agréable d'observer le déplacement des longues et bizarres@bizares@ pagaies@pagais@ blanches, comme des pattes de moustique sur l'eau.\"\r\n \r\n },\r\n {\r\n id : 10271,\r\n niveau : \"intermédiaire\",\r\n titre : \"L'Assommoir d'Émile Zola\",\r\n idConcours: 270,\r\n qualifFaute: 2,\r\n texte : \"Puis, une clameur s'éleva, où@ou@ l'on distinguait les voix aiguës et les sauts de joie des enfants. Il y eut une rentrée triomphale : Gervaise portait l'oie, les bras raidis@raidies@, la face suante, épanouie@épanoui@ dans un large rire silencieux ; les femmes marchaient derrière elle, riaient@riait@ comme elle ; tandis que Nana, tout au bout, les yeux démesurément@démesurement@ ouverts, se haussait pour voir. Quand l'oie fut sur la table, énorme, dorée@doré@, ruisselante de jus, on ne l'attaqua pas tout de suite.\"\r\n },\r\n {\r\n id: 10280,\r\n titre: \"Accord de l'adjectif\",\r\n aide : 'Il faut connaitre le pluriel des couleurs et les subtilités avec \"possible\".', \r\n niveau: 1,\r\n idConcours: 280,\r\n qualifFaute: 1,\r\n info: [\r\n {\r\n phrase: \"Il y a deux façons @possibles@ de s’y rendre.\",\r\n reponses: [\"possibles\", \"possible\"]\r\n },\r\n {\r\n phrase: \"Ses oreilles sont devenues toutes @rouges@.\",\r\n reponses: [\"rouge\", \"rouges\"]\r\n },\r\n {\r\n phrase: \"Ils veulent avertir le plus de collègues @possible@.\",\r\n reponses: [\"possible\", \"possibles\"]\r\n },\r\n {\r\n phrase: \"J'ai des yeux vert @foncé@.\",\r\n reponses: [\"foncé\", \"foncés\"]\r\n }, \r\n {\r\n phrase: \"C'était des enfants tout à fait @ravissants@. \",\r\n reponses: [\"ravissant\", \"ravissants\"]\r\n },\r\n {\r\n phrase:\"J’adore ton @nouvel@ appartement.\",\r\n reponses: [\"nouveau\", \"nouvel\", \"nouvelle\"]\r\n }\r\n\r\n \r\n ]\r\n\r\n },\r\n {\r\n id: 10281,\r\n idConcours: 280,\r\n qualifFaute: 1,\r\n info: [{ \"question\": \"

Parler en criant et avec colère

\", \"reponses\": [{ \"choix\": \"vociférer\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Facilité à bien parler

\", \"reponses\": [{ \"choix\": \"éloquence\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Rendre moins lourd en enlevant un chargement

\", \"reponses\": [{ \"choix\": \"délester\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Homme de très grande taille et très fort

\", \"reponses\": [{ \"choix\": \"colosse\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Murmurer entre ses dents en se plaignant

\", \"reponses\": [{ \"choix\": \"grommeler\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Parcourir un lieu de long en large à grands pas

\", \"reponses\": [{ \"choix\": \"arpenter\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }]\r\n },\r\n {\r\n id: 10282,\r\n titre: \"Conditionnel et futur\",\r\n niveau: 1,\r\n idConcours: 280,\r\n aide : \"Si vous souhaitez des informations avant de commencer - Futur ou conditionnel.\",\r\n qualifFaute: 1,\r\n info: [\r\n {\r\n phrase: \"Je @souhaiterais@ acheter quelques fleurs pour le jardin.\",\r\n reponses: [\"souhaiterais\", \"souhaiterai\", \"souhaiterait\"]\r\n },\r\n {\r\n phrase: \"J’@aimerais@ connaître votre signe astrologique.\",\r\n reponses: [\"aimerai\", \"aimerais\"]\r\n },\r\n {\r\n phrase: \"Demain je @ferai@ les réparations.\",\r\n reponses: [\"ferai\", \"ferais\"]\r\n },\r\n {\r\n phrase: \"Je @boirais@ bien un jus d'orange.\",\r\n reponses: [\"boirai\", \"boirais\", \"boirait\"]\r\n }, \r\n {\r\n phrase: \"Je @ferai@ le nécessaire !\",\r\n reponses: [\"ferai\", \"ferais\"]\r\n },\r\n {\r\n phrase:\"J'@aimerais@ aller à la plage.\",\r\n reponses: [\"aimerai\", \"aimerais\"]\r\n }\r\n \r\n ]\r\n\r\n },\r\n \r\n \r\n {\r\n id: 10290,\r\n titre: \"Accord de l'adjectif\",\r\n niveau: 1,\r\n idConcours: 290,\r\n qualifFaute: 1,\r\n info: [\r\n {\r\n phrase: \"Quelle @jolie@ voiture !\",\r\n reponses: [\"joli\", \"jolie\"]\r\n },\r\n {\r\n phrase: \"Il faut que j'@appelle@ la police.\",\r\n reponses: [\"appele\", \"appelle\", \"appel\"]\r\n },\r\n {\r\n phrase: \"Je me @rappelle@ mon enfance comme si c’était hier.\",\r\n reponses: [\"rappelle\", \"rappele\", \"rapelle\"]\r\n },\r\n {\r\n phrase: \"Soyez @attentifs@ !\",\r\n reponses: [\"attentifs\", \"attentif\"]\r\n }, \r\n {\r\n phrase: \"Vous avez eu raison d'@appeler@ la police.\",\r\n reponses: [\"appeler\", \"appeller\"]\r\n },\r\n {\r\n phrase:\" Il @choisit@ de partir à pied et commença sa longue marche.\",\r\n reponses: [\"choisi\", \"choisit\", \"choisis\"]\r\n }\r\n\r\n \r\n ]\r\n\r\n },\r\n {\r\n id: 10291,\r\n idConcours: 290,\r\n qualifFaute: 1,\r\n info: [{ \"question\": \"

Place devant une église, une cathédrale

\", \"reponses\": [{ \"choix\": \"parvis\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Erreur qui consiste à prendre une personne, une chose pour une autre

\", \"reponses\": [{ \"choix\": \"quiproquo\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Figure de style d'insistance qui consiste à répéter le même terme au début de chaque phrase.

\", \"reponses\": [{ \"choix\": \"anaphore\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Vider l’eau qui s’est introduite dans un bateau.

\", \"reponses\": [{ \"choix\": \"écoper\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Au théâtre, long monologue récité par un personnage de manière ininterrompue.

\", \"reponses\": [{ \"choix\": \"tirade\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }, { \"question\": \"

Colline de sable fin formée par le vent

\", \"reponses\": [{ \"choix\": \"dune\", \"bonneReponse\": true, \"repJoueur\": \"vide\" }], \"explication\": \"\" }]\r\n },\r\n {\r\n id: 10292,\r\n titre: \"Conditionnel et futur\",\r\n niveau: 1,\r\n idConcours: 290,\r\n qualifFaute: 1,\r\n info: [\r\n {\r\n phrase: \"Martine a préparé des tartes, ce sont @ses@ pâtisseries préférées.\",\r\n reponses: [\"ses\", \"ces\"]\r\n },\r\n {\r\n phrase: \"Est-ce que @ça@ vous convient ?\",\r\n reponses: [\"sa\", \"ça\"]\r\n },\r\n {\r\n phrase:\"Dans votre état, @ces@ activités sont déconseillées.\",\r\n reponses: [\"ces\", \"ses\"]\r\n },\r\n \r\n {\r\n phrase: \"Préfères-tu un bonbon @ou@ une glace ?\",\r\n reponses: [\"ou\", \"où\"]\r\n },\r\n {\r\n phrase: \"Vois-tu @ces@ sommets au loin.\",\r\n reponses: [\"ses\", \"ces\"]\r\n }, \r\n {\r\n phrase: \" Merci pour tous @ces@ moments passés avec nous ! \",\r\n reponses: [\"ses\", \"ces\"]\r\n },\r\n \r\n ]\r\n\r\n },\r\n {\r\n id: 10300,\r\n titre: \"Pyramide facile\",\r\n idConcours: 300,\r\n qualifTemps: 100,\r\n temps: 100,\r\n liste: [\r\n {\r\n definition: \"pdefi15.jpg\",\r\n mot: \"ails\"\r\n },\r\n {\r\n definition: \"pdefi11.jpg\",\r\n mot: \"glace\"\r\n },\r\n {\r\n definition: \"pdefi12.jpg\",\r\n mot: \"saumon\"\r\n },\r\n {\r\n definition: \"pdefi13.jpg\",\r\n mot: \"avocat\"\r\n },\r\n {\r\n definition: \"pdefi14.jpg\",\r\n mot: \"brocoli\"\r\n },\r\n {\r\n definition: \"pdefi16.jpg\",\r\n mot: \"épinards\"\r\n } \r\n ]\r\n },\r\n {\r\n id: 10301,\r\n titre: \"Pyramide facile\",\r\n idConcours: 300,\r\n qualifTemps: 100,\r\n temps: 100,\r\n liste: [\r\n {\r\n definition: \"pdefi26.jpg\",\r\n mot: \"fée\"\r\n },\r\n {\r\n definition: \"pdefi25.jpg\",\r\n mot: \"ville\"\r\n },\r\n {\r\n definition: \"pdefi22.jpg\",\r\n mot: \"cahier\"\r\n },\r\n {\r\n definition: \"pdefi21.jpg\",\r\n mot: \"bureau\"\r\n },\r\n {\r\n definition: \"pdefi23.jpg\",\r\n mot: \"victoire\"\r\n },\r\n {\r\n definition: \"pdefi24.jpg\",\r\n mot: \"bitcoin\"\r\n },\r\n {\r\n definition: \"pdefi27.jpg\",\r\n mot: \"sorcière\"\r\n },\r\n \r\n \r\n \r\n ]\r\n },\r\n\r\n\r\n {\r\n id: 10310,\r\n titre: \"phrase erreur\",\r\n niveau: 'facile',\r\n extrait: \"Extrait du chapitre 1 - Le Rouge et le Noir de Stendhal\",\r\n idConcours: 310,\r\n qualifFaute: 1,\r\n texte: \"Pour peu que le voyageur s'arrête quelques instants dans cette grande rue de Verrières, qui va en montant depuis la rive du Doubs jusque vers le sommet de la colline, il y a cent à@a@ parier contre un qu'il verra paraître un grand homme à l'air affairé et important. À son aspect tous@tout@ les chapeaux se lèvent rapidement. Ses cheveux sont grisonnants, et il est vêtu de gris. Il est chevalier de plusieurs ordres, il a un grand front, un nez aquilin@aquillin@, et au total sa figure ne manque pas d'une certaine régularité : on trouve même, au premier aspect, qu'elle réunit à la dignité du maire de village cette sorte d'agrément qui peut encore se rencontrer avec quarante-huit ou cinquante ans. Mais bientôt le voyageur parisien est choqué d'un certain air de contentement@consentement@ de soi et de suffisance mêlé à je ne sais quoi de borné et de peu inventif. On sent enfin que le talent de cet@cette@ homme-là se borne à se faire payer bien exactement ce qu'on lui doit, et à payer lui-même le plus tard possible quand il doit.\"\r\n },\r\n {\r\n id: 10311,\r\n titre: \"phrase erreur\",\r\n niveau: 'facile',\r\n extrait: \"Extrait du chapitre 1 - Guy de Maupassant - Boule de suif\",\r\n idConcours: 310,\r\n qualifFaute: 2,\r\n texte: \"La femme, une de celles@celle@ appelées galantes, était célèbre par son embonpoint précoce qui lui avait valu le surnom de Boule de suif. Petite, ronde de partout, grasse à lard, avec des doigts bouffis@bouffies@, étranglés aux phalanges, pareils@pareil@ à des chapelets de courtes saucisses, avec une peau luisante et tendue, une gorge énorme qui saillait@sallait@ sous sa robe, elle restait cependant appétissante et courue@couru@, tant sa fraîcheur faisait plaisir à voir. Sa figure était une pomme rouge, un bouton de pivoine prêt@près@ à fleurir ; et là-dedans s’ouvraient, en haut, deux yeux noirs magnifiques, ombragés de grands cils épais qui mettaient une ombre dedans ; en bas, une bouche charmante, étroite, humide pour le baiser, meublée@meublé@ de quenottes@quenotes@ luisantes et microscopiques.\"\r\n },\r\n\r\n\r\n {\r\n id: 10321,\r\n niveau: 'facile',\r\n idConcours: 320,\r\n qualifFaute: 3,\r\n titre : \"Albert Cohen - Belle du seigneur\",\r\n phrase : \"Les autres mettent des @semaines@ et des mois pour arriver à @aimer@ . Moi, ce fut le temps d'un @battement@ de paupières. Dites-moi fou, mais croyez-moi. Un battement de ses paupières, et elle me regarda sans me voir, et ce fut la @gloire@ et le printemps et le @soleil@ et la @mer@ tiède et sa transparence près du rivage et ma @jeunesse@ revenue, et le monde était né.\",\r\n },\r\n\r\n {\r\n id: 10322,\r\n niveau: 'facile',\r\n idConcours: 320,\r\n qualifFaute: 3,\r\n titre : \"Proclamation aux troupes par Bonaparte - Campagne d'Italie\",\r\n phrase : \"Dénués de tout, vous avez suppléé à tout. Vous avez gagné des batailles sans @canons@ , passé des rivières sans @ponts@ , fait des marches forcées sans @souliers@ , bivaqué sans eau-de-vie et souvent sans @pain@ . Les phalanges républicaines, les soldats de la liberté, étaient seuls capables de @souffrir@ ce que vous avez @souffert@ ; grâces vous en soient rendues, soldats ! La @patrie@ reconnaissante vous devra sa @prospérité@ .\",\r\n },\r\n {\r\n id: 10320,\r\n niveau: 'facile',\r\n idConcours: 320,\r\n qualifFaute: 3,\r\n titre : \"Le portrait de Dracula\",\r\n phrase : \"J'avais déjà remarqué le @dos@ de ses mains qui m'avaient paru @blanches@ et fines, mais à la lueur du feu, je constatai qu'elles étaient plutôt @grossières@ - larges, avec des doigts @épais@ et, curieusement, des @poils@ au milieu des paumes. Les @ongles@ étaient cependant longs et taillés en pointe. Alors qu'il se penchait vers moi et m'effleurait la @main@ , je ne pus réprimer un frisson, sans doute dû à son @haleine@ fétide. Remarquant ma réaction, il recula aussitôt et, avec une sorte de sourire sinistre qui révéla davantage ses @dents@ proéminentes, il reprit sa place près de la cheminée.\",\r\n },\r\n {\r\n id: 10331,\r\n niveau: 'facile',\r\n idConcours: 330,\r\n qualifFaute: 0,\r\n titre : \"Les homonymes\",\r\n phrase : \"@C'est@ avec fierté qu'il présente @ses@ projets.
Il ne sait pas si @ces@ idées, proposées par son collègue, plairont à tout le monde.
Il ne sait pas si @ses@ propres idées trouveront un écho favorable.
Il @s'est@ perdu dans ses pensées pendant le cours.\",\r\n },\r\n {\r\n id: 10330,\r\n niveau: 'facile',\r\n idConcours: 330,\r\n qualifFaute: 0,\r\n titre : \"Les homonymes\",\r\n phrase : \"Elle pense que @ça@ pourrait l'aider à retrouver @sa@ motivation pour avancer. Elle sait que @son@ attitude et @ses@ choix @sont@ cruciaux pour la réussite.
Les livres @sont@ sur la table.
Veux-tu du café @ou@ du thé ?
Il a rangé @sa@ voiture dans le garage.
Tu peux choisir de partir à la montagne @ou@ à la mer, selon tes goûts.
Il cherche @son@ cahier depuis une heure.
Elle pense que @ça@ va être une journée difficile.
Il est retourné dans le village @où@ il a grandi.
\",\r\n },\r\n {\r\n id: 10332,\r\n niveau: 'facile',\r\n idConcours: 330,\r\n qualifFaute: 0,\r\n titre : \"Les homonymes\",\r\n phrase : \"Avant de partir, il a décidé de @se@ préparer calmement.
Tu sais bien que @ce@ garçon est toujours en avance.
Il préfère toujours @se@ reposer après une longue journée de travail.
Ce matin, il a oublié de @se@ préparer correctement.
On ne comprend pas pourquoi @ce@ problème revient sans cesse.
\",\r\n },\r\n\r\n\r\n {\r\n id: 10340,\r\n niveau: 'facile',\r\n idConcours: 340,\r\n qualifFaute: 0,\r\n titre : \"Les difficultés de l'orthographe\",\r\n phrase : \"Ils oublient tout, tout au monde, @leur@ maison, @leur@ famille, @leurs@ enfants, @leurs@ affaires, @leurs@ soucis pour regarder dans les remous ce petit flotteur qui bouge.
Ma fille est une personne @sensée@ .
Ils partageraient @leur@ temps entre la rédaction de leur livre, le jardinage et la peinture.
Elle @leur@ a servi le café comme les autres jours.
Elle était @censé@ le faire hier.
\"\r\n },\r\n {\r\n id: 10341,\r\n niveau: 'facile',\r\n idConcours: 340,\r\n qualifFaute: 0,\r\n titre : \"Les difficultés de l'orthographe\",\r\n phrase : \"Elle chante avec une voix légère comme l' @air@ .
La @cour@ du roi était remplie de nobles et de chevaliers.
Le fleuve suit son @cours@ à travers la vallée.
Les oiseaux construisent leurs nids dans une @aire@ bien protégée.
Nous vivons dans l' @ère@ numérique.
Un @hère@ malheureux lui demanda un peu d'aide.
Elle @court@ tous les matins pour s'entraîner au marathon.
\",\r\n },\r\n {\r\n id: 10342,\r\n niveau: 'facile',\r\n idConcours: 340,\r\n qualifFaute: 0,\r\n titre : \"Les difficultés de l'orthographe\",\r\n phrase : \"Les conseils qu'ils ont @donnés@ étaient très utiles.
Il préfère @manger@ des fruits frais.
Le film que j'ai @regardé@ hier était magnifique.
Le cadeau qu'il a @donné@ était très apprécié.
J'aime @regarder@ les étoiles la nuit.
Les informations qu'elles ont @données@ étaient précieuses.
Il préfère @manger@ des fruits frais.
Les matchs qu'ils ont @regardés@ étaient passionnants. Les glaces qu'elles ont @mangées@ étaient rafraîchissantes. \",\r\n },\r\n\r\n\r\n ]\r\n\r\nexport default donneesJeuxConcours;\r\n\r\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\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 };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\n// [times, realValue]\nvar Entity = /*#__PURE__*/function () {\n function Entity() {\n _classCallCheck(this, Entity);\n\n _defineProperty(this, \"cache\", new Map());\n }\n\n _createClass(Entity, [{\n key: \"get\",\n value: function get(keys) {\n return this.cache.get(keys.join('%')) || null;\n }\n }, {\n key: \"update\",\n value: function update(keys, valueFn) {\n var path = keys.join('%');\n var prevValue = this.cache.get(path);\n var nextValue = valueFn(prevValue);\n\n if (nextValue === null) {\n this.cache.delete(path);\n } else {\n this.cache.set(path, nextValue);\n }\n }\n }]);\n\n return Entity;\n}();\n\nexport default Entity;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport CacheEntity from \"./Cache\";\nexport var ATTR_TOKEN = 'data-token-hash';\nexport var ATTR_MARK = 'data-css-hash';\nexport var ATTR_DEV_CACHE_PATH = 'data-dev-cache-path'; // Mark css-in-js instance in style element\n\nexport var CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport var CSS_IN_JS_INSTANCE_ID = Math.random().toString(12).slice(2);\nexport function createCache() {\n if (typeof document !== 'undefined' && document.head && document.body) {\n var styles = document.body.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\")) || [];\n var firstChild = document.head.firstChild;\n Array.from(styles).forEach(function (style) {\n style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || CSS_IN_JS_INSTANCE_ID; // Not force move if no head\n\n document.head.insertBefore(style, firstChild);\n }); // Deduplicate of moved styles\n\n var styleHash = {};\n Array.from(document.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\"))).forEach(function (style) {\n var hash = style.getAttribute(ATTR_MARK);\n\n if (styleHash[hash]) {\n if (style[CSS_IN_JS_INSTANCE] === CSS_IN_JS_INSTANCE_ID) {\n var _style$parentNode;\n\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n } else {\n styleHash[hash] = true;\n }\n });\n }\n\n return new CacheEntity();\n}\nvar StyleContext = /*#__PURE__*/React.createContext({\n hashPriority: 'low',\n cache: createCache(),\n defaultCache: true\n});\nexport var StyleProvider = function StyleProvider(props) {\n var children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var parentContext = React.useContext(StyleContext);\n var context = useMemo(function () {\n var mergedContext = _objectSpread({}, parentContext);\n\n Object.keys(restProps).forEach(function (key) {\n var value = restProps[key];\n\n if (restProps[key] !== undefined) {\n mergedContext[key] = value;\n }\n });\n var cache = restProps.cache;\n mergedContext.cache = mergedContext.cache || createCache();\n mergedContext.defaultCache = !cache && parentContext.defaultCache;\n return mergedContext;\n }, [parentContext, restProps], function (prev, next) {\n return !isEqual(prev[0], next[0], true) || !isEqual(prev[1], next[1], true);\n });\n return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n value: context\n }, children);\n};\nexport default StyleContext;","function useProdHMR() {\n return false;\n}\n\nvar webpackHMR = false;\n\nfunction useDevHMR() {\n return webpackHMR;\n}\n\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR; // Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\n\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot) {\n var win = window;\n\n if (typeof win.webpackHotUpdate === 'function') {\n var originWebpackHotUpdate = win.webpackHotUpdate;\n\n win.webpackHotUpdate = function () {\n webpackHMR = true;\n setTimeout(function () {\n webpackHMR = false;\n }, 0);\n return originWebpackHotUpdate.apply(void 0, arguments);\n };\n }\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport StyleContext from \"../StyleContext\";\nimport useHMR from \"./useHMR\";\nexport default function useClientCache(prefix, keyPath, cacheFn, onCacheRemove) {\n var _React$useContext = React.useContext(StyleContext),\n globalCache = _React$useContext.cache;\n\n var fullPath = [prefix].concat(_toConsumableArray(keyPath));\n var HMRUpdate = useHMR(); // Create cache\n\n React.useMemo(function () {\n globalCache.update(fullPath, function (prevCache) {\n var _ref = prevCache || [],\n _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n times = _ref2$ === void 0 ? 0 : _ref2$,\n cache = _ref2[1]; // HMR should always ignore cache since developer may change it\n\n\n var tmpCache = cache;\n\n if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(tmpCache, HMRUpdate);\n tmpCache = null;\n }\n\n var mergedCache = tmpCache || cacheFn();\n return [times + 1, mergedCache];\n });\n },\n /* eslint-disable react-hooks/exhaustive-deps */\n [fullPath.join('_')]\n /* eslint-enable */\n ); // Remove if no need anymore\n\n React.useEffect(function () {\n return function () {\n globalCache.update(fullPath, function (prevCache) {\n var _ref3 = prevCache || [],\n _ref4 = _slicedToArray(_ref3, 2),\n _ref4$ = _ref4[0],\n times = _ref4$ === void 0 ? 0 : _ref4$,\n cache = _ref4[1];\n\n var nextCount = times - 1;\n\n if (nextCount === 0) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(cache, false);\n return null;\n }\n\n return [times - 1, cache];\n });\n };\n }, fullPath);\n return globalCache.get(fullPath)[1];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nexport function flattenToken(token) {\n var str = '';\n Object.keys(token).forEach(function (key) {\n var value = token[key];\n str += key;\n\n if (value && _typeof(value) === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n return str;\n}\n/**\n * Convert derivative token to key string\n */\n\nexport function token2key(token, salt) {\n return hash(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar layerKey = \"layer-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\nvar layerWidth = '903px';\n\nfunction supportSelector(styleStr, handleElement) {\n if (canUseDom()) {\n var _ele$parentNode;\n\n updateCSS(styleStr, layerKey);\n\n var _ele = document.createElement('div');\n\n _ele.style.position = 'fixed';\n _ele.style.left = '0';\n _ele.style.top = '0';\n handleElement === null || handleElement === void 0 ? void 0 : handleElement(_ele);\n document.body.appendChild(_ele);\n\n if (process.env.NODE_ENV !== 'production') {\n _ele.innerHTML = 'Test';\n _ele.style.zIndex = '9999999';\n }\n\n var support = getComputedStyle(_ele).width === layerWidth;\n (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 ? void 0 : _ele$parentNode.removeChild(_ele);\n removeCSS(layerKey);\n return support;\n }\n\n return false;\n}\n\nvar canLayer = undefined;\nexport function supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(\"@layer \".concat(layerKey, \" { .\").concat(layerKey, \" { width: \").concat(layerWidth, \"!important; } }\"), function (ele) {\n ele.className = layerKey;\n });\n }\n\n return canLayer;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport hash from '@emotion/hash';\nimport { ATTR_TOKEN, CSS_IN_JS_INSTANCE, CSS_IN_JS_INSTANCE_ID } from \"../StyleContext\";\nimport useGlobalCache from \"./useGlobalCache\";\nimport { flattenToken, token2key } from \"../util\";\nvar EMPTY_OVERRIDE = {}; // Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\n\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar tokenKeys = new Map();\n\nfunction recordCleanToken(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\n\nfunction removeStyleTags(key) {\n if (typeof document !== 'undefined') {\n var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n styles.forEach(function (style) {\n if (style[CSS_IN_JS_INSTANCE] === CSS_IN_JS_INSTANCE_ID) {\n var _style$parentNode;\n\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n });\n }\n} // Remove will check current keys first\n\n\nfunction cleanTokenStyle(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n var tokenKeyList = Array.from(tokenKeys.keys());\n var cleanableKeyList = tokenKeyList.filter(function (key) {\n var count = tokenKeys.get(key) || 0;\n return count <= 0;\n });\n\n if (cleanableKeyList.length < tokenKeyList.length) {\n cleanableKeyList.forEach(function (key) {\n removeStyleTags(key);\n tokenKeys.delete(key);\n });\n }\n}\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\n\n\nexport default function useCacheToken(theme, tokens) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _option$salt = option.salt,\n salt = _option$salt === void 0 ? '' : _option$salt,\n _option$override = option.override,\n override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n formatToken = option.formatToken; // Basic - We do basic cache here\n\n var mergedToken = React.useMemo(function () {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n }, [tokens]);\n var tokenStr = React.useMemo(function () {\n return flattenToken(mergedToken);\n }, [mergedToken]);\n var overrideTokenStr = React.useMemo(function () {\n return flattenToken(override);\n }, [override]);\n var cachedToken = useGlobalCache('token', [salt, theme.id, tokenStr, overrideTokenStr], function () {\n var derivativeToken = theme.getDerivativeToken(mergedToken); // Merge with override\n\n var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), override); // Format if needed\n\n\n if (formatToken) {\n mergedDerivativeToken = formatToken(mergedDerivativeToken);\n } // Optimize for `useStyleRegister` performance\n\n\n var tokenKey = token2key(mergedDerivativeToken, salt);\n mergedDerivativeToken._tokenKey = tokenKey;\n recordCleanToken(tokenKey);\n var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n mergedDerivativeToken._hashId = hashId; // Not used\n\n return [mergedDerivativeToken, hashId];\n }, function (cache) {\n // Remove token will remove all related style\n cleanTokenStyle(cache[0]._tokenKey);\n });\n return cachedToken;\n}","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","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'\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 {IMPORT, 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 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 {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","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:\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 m s\n\t\t\t\t\t\t\t\t\tcase 100: 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 { lintWarning } from \"./utils\";\n\nvar linter = function linter(key, value, info) {\n if (key === 'content') {\n // From emotion: https://github.com/emotion-js/emotion/blob/main/packages/serialize/src/index.js#L63\n var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n lintWarning(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\".concat(value, \"\\\"'`.\"), info);\n }\n }\n};\n\nexport default linter;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport * as React from 'react'; // @ts-ignore\n\nimport unitless from '@emotion/unitless';\nimport { compile, serialize, stringify } from 'stylis';\nimport { contentQuotesLinter, hashedAnimationLinter } from \"../linters\";\nimport StyleContext, { ATTR_DEV_CACHE_PATH, ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE, CSS_IN_JS_INSTANCE_ID } from \"../StyleContext\";\nimport { supportLayer } from \"../util\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar isClientSide = canUseDom();\nvar SKIP_CHECK = '_skip_check_';\n// ============================================================================\n// == Parser ==\n// ============================================================================\n// Preprocessor style content to browser support one\nexport function normalizeStyle(styleStr) {\n var serialized = serialize(compile(styleStr), stringify);\n return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\n\nfunction isCompoundCSSProperty(value) {\n return _typeof(value) === 'object' && value && SKIP_CHECK in value;\n} // 注入 hash 值\n\n\nfunction injectSelectorHash(key, hashId, hashPriority) {\n if (!hashId) {\n return key;\n }\n\n var hashClassName = \".\".concat(hashId);\n var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName; // 注入 hashId\n\n var keys = key.split(',').map(function (k) {\n var _firstPath$match;\n\n var fullPath = k.trim().split(/\\s+/); // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n\n var firstPath = fullPath[0] || '';\n var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n return [firstPath].concat(_toConsumableArray(fullPath.slice(1))).join(' ');\n });\n return keys.join(',');\n}\n\n// Global effect style will mount once and not removed\n// The effect will not save in SSR cache (e.g. keyframes)\nvar globalEffectStyleKeys = new Set();\n/**\n * @private Test only. Clear the global effect style keys.\n */\n\nexport var _cf = process.env.NODE_ENV !== 'production' ? function () {\n return globalEffectStyleKeys.clear();\n} : undefined; // Parse CSSObject to style content\n\nexport var parseStyle = function parseStyle(interpolation) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n root: true,\n parentSelectors: []\n },\n root = _ref.root,\n injectHash = _ref.injectHash,\n parentSelectors = _ref.parentSelectors;\n\n var hashId = config.hashId,\n layer = config.layer,\n path = config.path,\n hashPriority = config.hashPriority,\n _config$transformers = config.transformers,\n transformers = _config$transformers === void 0 ? [] : _config$transformers,\n _config$linters = config.linters,\n linters = _config$linters === void 0 ? [] : _config$linters;\n var styleStr = '';\n var effectStyle = {};\n\n function parseKeyframes(keyframes) {\n var animationName = keyframes.getName(hashId);\n\n if (!effectStyle[animationName]) {\n var _parseStyle = parseStyle(keyframes.style, config, {\n root: false,\n parentSelectors: parentSelectors\n }),\n _parseStyle2 = _slicedToArray(_parseStyle, 1),\n _parsedStr = _parseStyle2[0];\n\n effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n }\n }\n\n function flattenList(list) {\n var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n list.forEach(function (item) {\n if (Array.isArray(item)) {\n flattenList(item, fullList);\n } else if (item) {\n fullList.push(item);\n }\n });\n return fullList;\n }\n\n var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n flattenStyleList.forEach(function (originStyle) {\n // Only root level can use raw string\n var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n\n if (typeof style === 'string') {\n styleStr += \"\".concat(style, \"\\n\");\n } else if (style._keyframe) {\n // Keyframe\n parseKeyframes(style);\n } else {\n var mergedStyle = transformers.reduce(function (prev, trans) {\n var _trans$visit;\n\n return (trans === null || trans === void 0 ? void 0 : (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n }, style); // Normal CSSObject\n\n Object.keys(mergedStyle).forEach(function (key) {\n var value = mergedStyle[key];\n\n if (_typeof(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n var subInjectHash = false; // 当成嵌套对象来处理\n\n var mergedKey = key.trim(); // Whether treat child as root. In most case it is false.\n\n var nextRoot = false; // 拆分多个选择器\n\n if ((root || injectHash) && hashId) {\n if (mergedKey.startsWith('@')) {\n // 略过媒体查询,交给子节点继续插入 hashId\n subInjectHash = true;\n } else {\n // 注入 hashId\n mergedKey = injectSelectorHash(key, hashId, hashPriority);\n }\n } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n // But it does not conform to stylis syntax,\n // and finally we will get `{color:red;}` as css, which is wrong.\n // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n mergedKey = '';\n nextRoot = true;\n }\n\n var _parseStyle3 = parseStyle(value, config, {\n root: nextRoot,\n injectHash: subInjectHash,\n parentSelectors: [].concat(_toConsumableArray(parentSelectors), [mergedKey])\n }),\n _parseStyle4 = _slicedToArray(_parseStyle3, 2),\n _parsedStr2 = _parseStyle4[0],\n childEffectStyle = _parseStyle4[1];\n\n effectStyle = _objectSpread(_objectSpread({}, effectStyle), childEffectStyle);\n styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n } else {\n var _value;\n\n var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n\n if (process.env.NODE_ENV !== 'production' && (_typeof(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n [contentQuotesLinter, hashedAnimationLinter].concat(_toConsumableArray(linters)).forEach(function (linter) {\n return linter(key, actualValue, {\n path: path,\n hashId: hashId,\n parentSelectors: parentSelectors\n });\n });\n } // 如果是样式则直接插入\n\n\n var styleName = key.replace(/[A-Z]/g, function (match) {\n return \"-\".concat(match.toLowerCase());\n }); // Auto suffix with px\n\n var formatValue = actualValue;\n\n if (!unitless[key] && typeof formatValue === 'number' && formatValue !== 0) {\n formatValue = \"\".concat(formatValue, \"px\");\n } // handle animationName & Keyframe value\n\n\n if (key === 'animationName' && value !== null && value !== void 0 && value._keyframe) {\n parseKeyframes(value);\n formatValue = value.getName(hashId);\n }\n\n styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n }\n });\n }\n });\n\n if (!root) {\n styleStr = \"{\".concat(styleStr, \"}\");\n } else if (layer && supportLayer()) {\n var layerCells = layer.split(',');\n var layerName = layerCells[layerCells.length - 1].trim();\n styleStr = \"@layer \".concat(layerName, \" {\").concat(styleStr, \"}\"); // Order of layer if needed\n\n if (layerCells.length > 1) {\n // zombieJ: stylis do not support layer order, so we need to handle it manually.\n styleStr = \"@layer \".concat(layer, \"{%%%:%}\").concat(styleStr);\n }\n }\n\n return [styleStr, effectStyle];\n}; // ============================================================================\n// == Register ==\n// ============================================================================\n\nfunction uniqueHash(path, styleStr) {\n return hash(\"\".concat(path.join('%')).concat(styleStr));\n}\n\nfunction Empty() {\n return null;\n}\n/**\n * Register a style to the global style sheet.\n */\n\n\nexport default function useStyleRegister(info, styleFn) {\n var token = info.token,\n path = info.path,\n hashId = info.hashId,\n layer = info.layer;\n\n var _React$useContext = React.useContext(StyleContext),\n autoClear = _React$useContext.autoClear,\n mock = _React$useContext.mock,\n defaultCache = _React$useContext.defaultCache,\n hashPriority = _React$useContext.hashPriority,\n container = _React$useContext.container,\n ssrInline = _React$useContext.ssrInline,\n transformers = _React$useContext.transformers,\n linters = _React$useContext.linters;\n\n var tokenKey = token._tokenKey;\n var fullPath = [tokenKey].concat(_toConsumableArray(path)); // Check if need insert style\n\n var isMergedClientSide = isClientSide;\n\n if (process.env.NODE_ENV !== 'production' && mock !== undefined) {\n isMergedClientSide = mock === 'client';\n }\n\n var _useGlobalCache = useGlobalCache('style', fullPath, // Create cache if needed\n function () {\n var styleObj = styleFn();\n\n var _parseStyle5 = parseStyle(styleObj, {\n hashId: hashId,\n hashPriority: hashPriority,\n layer: layer,\n path: path.join('-'),\n transformers: transformers,\n linters: linters\n }),\n _parseStyle6 = _slicedToArray(_parseStyle5, 2),\n parsedStyle = _parseStyle6[0],\n effectStyle = _parseStyle6[1];\n\n var styleStr = normalizeStyle(parsedStyle);\n var styleId = uniqueHash(fullPath, styleStr);\n\n if (isMergedClientSide) {\n var style = updateCSS(styleStr, styleId, {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container\n });\n style[CSS_IN_JS_INSTANCE] = CSS_IN_JS_INSTANCE_ID; // Used for `useCacheToken` to remove on batch when token removed\n\n style.setAttribute(ATTR_TOKEN, tokenKey); // Dev usage to find which cache path made this easily\n\n if (process.env.NODE_ENV !== 'production') {\n style.setAttribute(ATTR_DEV_CACHE_PATH, fullPath.join('|'));\n } // Inject client side effect style\n\n\n Object.keys(effectStyle).forEach(function (effectKey) {\n if (!globalEffectStyleKeys.has(effectKey)) {\n globalEffectStyleKeys.add(effectKey); // Inject\n\n updateCSS(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container\n });\n }\n });\n }\n\n return [styleStr, tokenKey, styleId];\n }, // Remove cache if no need\n function (_ref2, fromHMR) {\n var _ref3 = _slicedToArray(_ref2, 3),\n styleId = _ref3[2];\n\n if ((fromHMR || autoClear) && isClientSide) {\n removeCSS(styleId, {\n mark: ATTR_MARK\n });\n }\n }),\n _useGlobalCache2 = _slicedToArray(_useGlobalCache, 3),\n cachedStyleStr = _useGlobalCache2[0],\n cachedTokenKey = _useGlobalCache2[1],\n cachedStyleId = _useGlobalCache2[2];\n\n return function (node) {\n var styleNode;\n\n if (!ssrInline || isMergedClientSide || !defaultCache) {\n styleNode = /*#__PURE__*/React.createElement(Empty, null);\n } else {\n var _ref4;\n\n styleNode = /*#__PURE__*/React.createElement(\"style\", _extends({}, (_ref4 = {}, _defineProperty(_ref4, ATTR_TOKEN, cachedTokenKey), _defineProperty(_ref4, ATTR_MARK, cachedStyleId), _ref4), {\n dangerouslySetInnerHTML: {\n __html: cachedStyleStr\n }\n }));\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, styleNode, node);\n };\n} // ============================================================================\n// == SSR ==\n// ============================================================================\n\nexport function extractStyle(cache) {\n // prefix with `style` is used for `useStyleRegister` to cache style context\n var styleKeys = Array.from(cache.cache.keys()).filter(function (key) {\n return key.startsWith('style%');\n }); // const tokenStyles: Record = {};\n\n var styleText = '';\n styleKeys.forEach(function (key) {\n var _ = _slicedToArray(cache.cache.get(key)[1], 3),\n styleStr = _[0],\n tokenKey = _[1],\n styleId = _[2];\n\n styleText += \"\");\n });\n return styleText;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar Keyframe = /*#__PURE__*/function () {\n function Keyframe(name, style) {\n _classCallCheck(this, Keyframe);\n\n _defineProperty(this, \"name\", void 0);\n\n _defineProperty(this, \"style\", void 0);\n\n _defineProperty(this, \"_keyframe\", true);\n\n this.name = name;\n this.style = style;\n }\n\n _createClass(Keyframe, [{\n key: \"getName\",\n value: function getName() {\n var hashId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return hashId ? \"\".concat(hashId, \"-\").concat(this.name) : this.name;\n }\n }]);\n\n return Keyframe;\n}();\n\nexport default Keyframe;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// ================================== Cache ==================================\nexport function sameDerivativeOption(left, right) {\n if (left.length !== right.length) {\n return false;\n }\n\n for (var i = 0; i < left.length; i++) {\n if (left[i] !== right[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar ThemeCache = /*#__PURE__*/function () {\n function ThemeCache() {\n _classCallCheck(this, ThemeCache);\n\n _defineProperty(this, \"cache\", void 0);\n\n _defineProperty(this, \"keys\", void 0);\n\n _defineProperty(this, \"cacheCallTimes\", void 0);\n\n this.cache = new Map();\n this.keys = [];\n this.cacheCallTimes = 0;\n }\n\n _createClass(ThemeCache, [{\n key: \"size\",\n value: function size() {\n return this.keys.length;\n }\n }, {\n key: \"internalGet\",\n value: function internalGet(derivativeOption) {\n var _cache2, _cache3;\n\n var updateCallTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var cache = {\n map: this.cache\n };\n derivativeOption.forEach(function (derivative) {\n if (!cache) {\n cache = undefined;\n } else {\n var _cache, _cache$map;\n\n cache = (_cache = cache) === null || _cache === void 0 ? void 0 : (_cache$map = _cache.map) === null || _cache$map === void 0 ? void 0 : _cache$map.get(derivative);\n }\n });\n\n if ((_cache2 = cache) !== null && _cache2 !== void 0 && _cache2.value && updateCallTimes) {\n cache.value[1] = this.cacheCallTimes++;\n }\n\n return (_cache3 = cache) === null || _cache3 === void 0 ? void 0 : _cache3.value;\n }\n }, {\n key: \"get\",\n value: function get(derivativeOption) {\n var _this$internalGet;\n\n return (_this$internalGet = this.internalGet(derivativeOption, true)) === null || _this$internalGet === void 0 ? void 0 : _this$internalGet[0];\n }\n }, {\n key: \"has\",\n value: function has(derivativeOption) {\n return !!this.internalGet(derivativeOption);\n }\n }, {\n key: \"set\",\n value: function set(derivativeOption, value) {\n var _this = this;\n\n // New cache\n if (!this.has(derivativeOption)) {\n if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n var _this$keys$reduce = this.keys.reduce(function (result, key) {\n var _result = _slicedToArray(result, 2),\n callTimes = _result[1];\n\n if (_this.internalGet(key)[1] < callTimes) {\n return [key, _this.internalGet(key)[1]];\n }\n\n return result;\n }, [this.keys[0], this.cacheCallTimes]),\n _this$keys$reduce2 = _slicedToArray(_this$keys$reduce, 1),\n targetKey = _this$keys$reduce2[0];\n\n this.delete(targetKey);\n }\n\n this.keys.push(derivativeOption);\n }\n\n var cache = this.cache;\n derivativeOption.forEach(function (derivative, index) {\n if (index === derivativeOption.length - 1) {\n cache.set(derivative, {\n value: [value, _this.cacheCallTimes++]\n });\n } else {\n var cacheValue = cache.get(derivative);\n\n if (!cacheValue) {\n cache.set(derivative, {\n map: new Map()\n });\n } else if (!cacheValue.map) {\n cacheValue.map = new Map();\n }\n\n cache = cache.get(derivative).map;\n }\n });\n }\n }, {\n key: \"deleteByPath\",\n value: function deleteByPath(currentCache, derivatives) {\n var cache = currentCache.get(derivatives[0]);\n\n if (derivatives.length === 1) {\n var _cache$value;\n\n if (!cache.map) {\n currentCache.delete(derivatives[0]);\n } else {\n currentCache.set(derivatives[0], {\n map: cache.map\n });\n }\n\n return (_cache$value = cache.value) === null || _cache$value === void 0 ? void 0 : _cache$value[0];\n }\n\n var result = this.deleteByPath(cache.map, derivatives.slice(1));\n\n if ((!cache.map || cache.map.size === 0) && !cache.value) {\n currentCache.delete(derivatives[0]);\n }\n\n return result;\n }\n }, {\n key: \"delete\",\n value: function _delete(derivativeOption) {\n // If cache exists\n if (this.has(derivativeOption)) {\n this.keys = this.keys.filter(function (item) {\n return !sameDerivativeOption(item, derivativeOption);\n });\n return this.deleteByPath(this.cache, derivativeOption);\n }\n\n return undefined;\n }\n }]);\n\n return ThemeCache;\n}();\n\n_defineProperty(ThemeCache, \"MAX_CACHE_SIZE\", 20);\n\n_defineProperty(ThemeCache, \"MAX_CACHE_OFFSET\", 5);\n\nexport { ThemeCache as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { warning } from \"rc-util/es/warning\";\nvar uuid = 0;\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\n\nvar Theme = /*#__PURE__*/function () {\n function Theme(derivatives) {\n _classCallCheck(this, Theme);\n\n _defineProperty(this, \"derivatives\", void 0);\n\n _defineProperty(this, \"id\", void 0);\n\n this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n this.id = uuid;\n\n if (derivatives.length === 0) {\n warning(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');\n }\n\n uuid += 1;\n }\n\n _createClass(Theme, [{\n key: \"getDerivativeToken\",\n value: function getDerivativeToken(token) {\n return this.derivatives.reduce(function (result, derivative) {\n return derivative(token, result);\n }, undefined);\n }\n }]);\n\n return Theme;\n}();\n\nexport { Theme as default };","import ThemeCache from \"./ThemeCache\";\nimport Theme from \"./Theme\";\nvar cacheThemes = new ThemeCache();\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\n\nexport default function createTheme(derivatives) {\n var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives]; // Create new theme if not exist\n\n if (!cacheThemes.has(derivativeArr)) {\n cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n } // Get theme from cache and return\n\n\n return cacheThemes.get(derivativeArr);\n}","function splitValues(value) {\n if (typeof value === 'number') {\n return [value];\n }\n\n var splitStyle = String(value).split(/\\s+/); // Combine styles split in brackets, like `calc(1px + 2px)`\n\n var temp = '';\n var brackets = 0;\n return splitStyle.reduce(function (list, item) {\n if (item.includes('(')) {\n temp += item;\n brackets += item.split('(').length - 1;\n } else if (item.includes(')')) {\n temp += item;\n brackets -= item.split(')').length - 1;\n\n if (brackets === 0) {\n list.push(temp);\n temp = '';\n }\n } else if (brackets > 0) {\n temp += item;\n } else {\n list.push(item);\n }\n\n return list;\n }, []);\n}\n\nfunction noSplit(list) {\n list.notSplit = true;\n return list;\n}\n\nvar keyMap = {\n // Inset\n inset: ['top', 'right', 'bottom', 'left'],\n insetBlock: ['top', 'bottom'],\n insetBlockStart: ['top'],\n insetBlockEnd: ['bottom'],\n insetInline: ['left', 'right'],\n insetInlineStart: ['left'],\n insetInlineEnd: ['right'],\n // Margin\n marginBlock: ['marginTop', 'marginBottom'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n marginInline: ['marginLeft', 'marginRight'],\n marginInlineStart: ['marginLeft'],\n marginInlineEnd: ['marginRight'],\n // Padding\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom'],\n paddingInline: ['paddingLeft', 'paddingRight'],\n paddingInlineStart: ['paddingLeft'],\n paddingInlineEnd: ['paddingRight'],\n // Border\n borderBlock: noSplit(['borderTop', 'borderBottom']),\n borderBlockStart: noSplit(['borderTop']),\n borderBlockEnd: noSplit(['borderBottom']),\n borderInline: noSplit(['borderLeft', 'borderRight']),\n borderInlineStart: noSplit(['borderLeft']),\n borderInlineEnd: noSplit(['borderRight']),\n // Border width\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndWidth: ['borderBottomWidth'],\n borderInlineWidth: ['borderLeftWidth', 'borderRightWidth'],\n borderInlineStartWidth: ['borderLeftWidth'],\n borderInlineEndWidth: ['borderRightWidth'],\n // Border style\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderInlineStyle: ['borderLeftStyle', 'borderRightStyle'],\n borderInlineStartStyle: ['borderLeftStyle'],\n borderInlineEndStyle: ['borderRightStyle'],\n // Border color\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockEndColor: ['borderBottomColor'],\n borderInlineColor: ['borderLeftColor', 'borderRightColor'],\n borderInlineStartColor: ['borderLeftColor'],\n borderInlineEndColor: ['borderRightColor'],\n // Border radius\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius']\n};\n\nfunction skipCheck(value) {\n return {\n _skip_check_: true,\n value: value\n };\n}\n/**\n * Convert css logical properties to legacy properties.\n * Such as: `margin-block-start` to `margin-top`.\n * Transform list:\n * - inset\n * - margin\n * - padding\n * - border\n */\n\n\nvar transform = {\n visit: function visit(cssObj) {\n var clone = {};\n Object.keys(cssObj).forEach(function (key) {\n var value = cssObj[key];\n var matchValue = keyMap[key];\n\n if (matchValue && (typeof value === 'number' || typeof value === 'string')) {\n var values = splitValues(value);\n\n if (matchValue.length && matchValue.notSplit) {\n // not split means always give same value like border\n matchValue.forEach(function (matchKey) {\n clone[matchKey] = skipCheck(value);\n });\n } else if (matchValue.length === 1) {\n // Handle like `marginBlockStart` => `marginTop`\n clone[matchValue[0]] = skipCheck(value);\n } else if (matchValue.length === 2) {\n // Handle like `marginBlock` => `marginTop` & `marginBottom`\n matchValue.forEach(function (matchKey, index) {\n var _values$index;\n\n clone[matchKey] = skipCheck((_values$index = values[index]) !== null && _values$index !== void 0 ? _values$index : values[0]);\n });\n } else if (matchValue.length === 4) {\n // Handle like `inset` => `top` & `right` & `bottom` & `left`\n matchValue.forEach(function (matchKey, index) {\n var _ref, _values$index2;\n\n clone[matchKey] = skipCheck((_ref = (_values$index2 = values[index]) !== null && _values$index2 !== void 0 ? _values$index2 : values[index - 2]) !== null && _ref !== void 0 ? _ref : values[0]);\n });\n } else {\n clone[key] = value;\n }\n } else {\n clone[key] = value;\n }\n });\n return clone;\n }\n};\nexport default transform;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n acc[key] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils';\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\nEllipsisOutlined.displayName = 'EllipsisOutlined';\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function 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 * 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]\n */\nexport function 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 var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\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 default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\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]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\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 { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function 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 var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\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 default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\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]\n */\nexport function 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 var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(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 * Converts an RGBA color plus alpha transparency to hex\n *\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\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(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 * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\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: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\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 lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\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: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\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: '#ff0000',\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: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\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 * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\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 }\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 }\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 (Object.prototype.hasOwnProperty.call(color, '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// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\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 * 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}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\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 = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\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 match = matchers.hex6.exec(color);\n if (match) {\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 match = matchers.hex4.exec(color);\n if (match) {\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 match = matchers.hex3.exec(color);\n if (match) {\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}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\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) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\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 /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # appened.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # appened.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\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 /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || 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 TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.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 new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\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.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).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 new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\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 * \n * @hidden\n */\nexport function 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\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","////////////////////////////////////////////////////////////////////////////////\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/**\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: any;\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/**\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`. May be either a URL or the pieces of a\n * 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 * 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};\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 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(to) {\n return typeof to === \"string\" ? to : createPath(to);\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 });\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 });\n }\n },\n go(delta) {\n action = Action.Pop;\n index = clampIndex(index + delta);\n if (listener) {\n listener({ action, location: getCurrentLocation() });\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 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\nfunction 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): HistoryState {\n return {\n usr: location.state,\n key: location.key,\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 function createClientSideURL(location: Location | string): 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 typeof window !== \"undefined\" &&\n typeof window.location !== \"undefined\" &&\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n let href = typeof location === \"string\" ? location : createPath(location);\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\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 function handlePop() {\n action = Action.Pop;\n if (listener) {\n listener({ action, location: history.location });\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 let historyState = getHistoryState(location);\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 // 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 });\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 let historyState = getHistoryState(location);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\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 encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createClientSideURL(\n typeof to === \"string\" ? to : createPath(to)\n );\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 } 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: any;\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}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\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\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\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?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\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: {\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 formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\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;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\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\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\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 */\ntype 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 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 parentPath: number[] = [],\n allIds: Set = new Set()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, 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 !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\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 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 matches = matchRouteBranch(\n branches[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 safelyDecodeURI(pathname)\n );\n }\n\n return matches;\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\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 explodes _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): 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 if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\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;\n } = {} as any\n): string {\n let path = 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 return path\n .replace(/^:(\\w+)/g, (_, key: PathParam) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/:(\\w+)/g, (_, key: PathParam) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return `/${params[key]!}`;\n })\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n });\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, paramNames] = 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 = paramNames.reduce>(\n (memo, paramName, 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 memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\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 paramNames: string[] = [];\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(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\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, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\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\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent 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 * @private\n */\nexport function warning(cond: any, message: string): void {\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 React Router!\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\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/**\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 (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\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 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 pendingKeys: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscriber?: (aborted: boolean) => void = undefined;\n data: Record;\n\n constructor(data: Record) {\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\n private trackPromise(\n key: string | number,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.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, null, 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 | number,\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.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n const subscriber = this.subscriber;\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n subscriber && subscriber(false);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n subscriber && subscriber(false);\n return data;\n }\n\n subscribe(fn: (aborted: boolean) => void) {\n this.subscriber = fn;\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n let subscriber = this.subscriber;\n subscriber && subscriber(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.pendingKeys.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\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 function defer(data: Record) {\n return new DeferredData(data);\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 * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n 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 throw from an action/loader\n */\nexport function isRouteErrorResponse(e: any): e is ErrorResponse {\n return e instanceof ErrorResponse;\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n createClientSideURL,\n invariant,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\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 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 * 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): void;\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, opts?: RouterNavigateOptions): void;\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,\n opts?: RouterNavigateOptions\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 * 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/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\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 _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?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\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: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\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 };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\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 formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\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\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\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 * Tuple of [key, href, DataRouteMatch, DataRouteMatch[]] for a revalidating\n * fetcher.load()\n */\ntype RevalidatingFetcher = [\n string,\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Tuple of [href, DataRouteMatch, DataRouteMatch[]] for an active\n * fetcher.load()\n */\ntype FetchLoadMatch = [\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\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};\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};\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\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 invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\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(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\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 let initialized =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\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 };\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 // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\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 // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\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 // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\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 // 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 }) =>\n startNavigation(historyAction, location)\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\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 subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(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(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\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 ): 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 updateState({\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 // Don't restore on submission navigations\n restoreScrollPosition: state.navigation.formData\n ? false\n : getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset: pendingPreventScrollReset,\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 // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\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,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let location = 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 location = {\n ...location,\n ...init.history.encodeLocation(location),\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 return await startNavigation(historyAction, location, {\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 });\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 { overrideNavigation: state.navigation }\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 submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: 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 let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | 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 pendingError = {\n [findNearestBoundary(matches).route.id]: 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 actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\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,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\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 opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\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) {\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 result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\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 replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\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 are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\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 overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\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 = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n pendingActionData,\n pendingError,\n fetchLoadMatches\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 // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\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 (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(([key]) => {\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(([key]) =>\n fetchControllers.set(key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\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 revalidatingFetchers.forEach(([key]) => fetchControllers.delete(key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\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 markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\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,\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 if (fetchControllers.has(key)) abortFetcher(key);\n\n let matches = matchRoutes(dataRoutes, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches, submission);\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 submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou 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 if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\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 if (isDeferredResult(actionResult)) {\n invariant(false, \"defer() is not supported in actions\");\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 nextLocation,\n abortController.signal\n );\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(dataRoutes, state.navigation.location, init.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: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n { [match.route.id]: actionResult.data },\n undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches\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(([staleKey]) => staleKey !== key)\n .forEach(([staleKey]) => {\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(([staleKey]) =>\n fetchControllers.delete(staleKey)\n );\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = 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 ...(didAbortFetchLoads ? { 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 submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported or 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 ou 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 // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\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 state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n // Check if this an external redirect that goes to a new origin\n if (typeof window?.location !== \"undefined\") {\n let newOrigin = createClientSideURL(redirect.location).origin;\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.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 ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\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 if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map(([, href, match, fetchMatches]) =>\n callLoaderOrAction(\n \"loader\",\n createClientSideRequest(href, request.signal),\n match,\n fetchMatches,\n router.basename\n )\n ),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map(([, , match]) => match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\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.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\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 }\n }\n markFetchersDone(doneKeys);\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 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 || ((location) => location.key);\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 saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\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,\n dispose,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: {\n basename?: string;\n }\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\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 async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\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 };\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 };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\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 async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\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 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 match\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 let routeData = [result.actionData, result.loaderData].find((v) => v);\n return Object.values(routeData || {})[0];\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\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 routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\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, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\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 isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action) {\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 result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\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.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\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 };\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 let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\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 : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\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 let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\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 (isRouteRequest && !routeMatch?.route.loader) {\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 : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\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: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n let executedLoaders = new Set();\n results.forEach((result, i) => {\n executedLoaders.add(matchesToLoad[i].route.id);\n // Can't do anything with these without the Remix side of things, so just\n // cancel them for now\n if (isDeferredResult(result)) {\n result.deferredData.cancel();\n }\n });\n\n // Process and commit output from loaders\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\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 };\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: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\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 to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\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 // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (\n isFetcher &&\n parsedPath.search &&\n hasNakedIndexQuery(parsedPath.search)\n ) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n } catch (e) {\n return {\n path,\n error: getInternalRouterError(400),\n };\n }\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes 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) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n pendingActionData?: RouteData,\n pendingError?: RouteData,\n fetchLoadMatches?: Map\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter(\n (match, index) =>\n match.route.loader != null &&\n (isNewLoader(state.loaderData, state.matches[index], match) ||\n // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some((id) => id === match.route.id) ||\n shouldRevalidateLoader(\n state.location,\n state.matches[index],\n submission,\n location,\n match,\n isRevalidationRequired,\n actionResult\n ))\n );\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches &&\n fetchLoadMatches.forEach(([href, match, fetchMatches], key) => {\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(\n href,\n match,\n submission,\n href,\n match,\n isRevalidationRequired,\n actionResult\n );\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\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 &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n currentLocation: string | Location,\n currentMatch: AgnosticDataRouteMatch,\n submission: Submission | undefined,\n location: string | Location,\n match: AgnosticDataRouteMatch,\n isRevalidationRequired: boolean,\n actionResult: DataResult | undefined\n) {\n let currentUrl = createClientSideURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = createClientSideURL(location);\n let nextParams = match.params;\n\n // This is the default implementation as to 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 // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n let defaultShouldRevalidate =\n isNewRouteInstance(currentMatch, match) ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n\n invariant(\n 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 resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n let isAbsolute =\n /^[a-z+]+:\\/\\//i.test(location) || location.startsWith(\"//\");\n\n // Support relative routing in internal redirects\n if (!isAbsolute) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\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 data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\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 (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return { type: ResultType.deferred, deferredData: result };\n }\n\n return { type: ResultType.data, data: result };\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 location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = createClientSideURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\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 invariant(\n typeof value === \"string\",\n 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' +\n 'please use \"multipart/form-data\" instead.'\n );\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds?: Map\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\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\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) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\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 if (isDeferredResult(result)) {\n activeDeferreds && activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // TODO: Add statusCode/headers once we wire up streaming in Remix\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 (\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 }\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) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[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 matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let [key, , match] = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n 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 throw new Error(\"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 throw new Error(\"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\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) {\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\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 = 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 }: {\n pathname?: string;\n routeId?: string;\n method?: 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 {\n errorMessage = \"Cannot submit binary form data using GET\";\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 ErrorResponse(\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(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return 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 return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\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\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 isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\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) && (isFetcher || 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, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\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\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\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//#endregion\n","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (includeInverse) {\n return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n }\n return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n return PresetStatusColorTypes.includes(color);\n}","import * as React from 'react';\nexport default function useForceUpdate() {\n const [, forceUpdate] = React.useReducer(x => x + 1, 0);\n return forceUpdate;\n}","// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n height: 0,\n opacity: 0\n});\nconst getRealHeight = node => {\n const {\n scrollHeight\n } = node;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nconst getCurrentHeight = node => ({\n height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ant';\n return {\n motionName: `${rootCls}-motion-collapse`,\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n };\n};\nconst SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionDirection = placement => {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return `slide-down`;\n }\n return `slide-up`;\n};\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName, getTransitionDirection };\nexport default initCollapseMotion;","import * as React from 'react';\nexport const {\n isValidElement\n} = React;\nexport function isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","import React from 'react';\nimport { useToken } from '../theme/internal';\nexport const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst getResponsiveMap = token => ({\n xs: `(max-width: ${token.screenXSMax}px)`,\n sm: `(min-width: ${token.screenSM}px)`,\n md: `(min-width: ${token.screenMD}px)`,\n lg: `(min-width: ${token.screenLG}px)`,\n xl: `(min-width: ${token.screenXL}px)`,\n xxl: `(min-width: ${token.screenXXL}px)`\n});\n/**\n * Ensures that the breakpoints token are valid, in good order\n * For each breakpoint : screenMin <= screen <= screenMax and screenMax <= nextScreenMin\n */\nconst validateBreakpoints = token => {\n const indexableToken = token;\n const revBreakpoints = [].concat(responsiveArray).reverse();\n revBreakpoints.forEach((breakpoint, i) => {\n const breakpointUpper = breakpoint.toUpperCase();\n const screenMin = `screen${breakpointUpper}Min`;\n const screen = `screen${breakpointUpper}`;\n if (!(indexableToken[screenMin] <= indexableToken[screen])) {\n throw new Error(`${screenMin}<=${screen} fails : !(${indexableToken[screenMin]}<=${indexableToken[screen]})`);\n }\n if (i < revBreakpoints.length - 1) {\n const screenMax = `screen${breakpointUpper}Max`;\n if (!(indexableToken[screen] <= indexableToken[screenMax])) {\n throw new Error(`${screen}<=${screenMax} fails : !(${indexableToken[screen]}<=${indexableToken[screenMax]})`);\n }\n const nextBreakpointUpperMin = revBreakpoints[i + 1].toUpperCase();\n const nextScreenMin = `screen${nextBreakpointUpperMin}Min`;\n if (!(indexableToken[screenMax] <= indexableToken[nextScreenMin])) {\n throw new Error(`${screenMax}<=${nextScreenMin} fails : !(${indexableToken[screenMax]}<=${indexableToken[nextScreenMin]})`);\n }\n }\n });\n return token;\n};\nexport default function useResponsiveObserver() {\n const [, token] = useToken();\n const responsiveMap = getResponsiveMap(validateBreakpoints(token));\n // To avoid repeat create instance, we add `useMemo` here.\n return React.useMemo(() => {\n const subscribers = new Map();\n let subUid = -1;\n let screens = {};\n return {\n matchHandlers: {},\n dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(func => func(screens));\n return subscribers.size >= 1;\n },\n subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe(paramToken) {\n subscribers.delete(paramToken);\n if (!subscribers.size) this.unregister();\n },\n unregister() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const handler = this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const listener = _ref => {\n let {\n matches\n } = _ref;\n this.dispatch(Object.assign(Object.assign({}, screens), {\n [screen]: matches\n }));\n };\n const mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n this.matchHandlers[matchMediaQuery] = {\n mql,\n listener\n };\n listener(mql);\n });\n },\n responsiveMap\n };\n }, [token]);\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport const canUseDocElement = () => canUseDom() && window.document.documentElement;\nexport { isStyleSupport };\nlet flexGapSupported;\nexport const detectFlexGapSupported = () => {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n const flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","import { genComponentStyleHook } from '../../theme/internal';\nconst genWaveStyle = token => {\n const {\n componentCls,\n colorPrimary\n } = token;\n return {\n [componentCls]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none',\n boxSizing: 'border-box',\n color: `var(--wave-color, ${colorPrimary})`,\n boxShadow: `0 0 0 0 currentcolor`,\n opacity: 0.2,\n // =================== Motion ===================\n '&.wave-motion-appear': {\n transition: [`box-shadow 0.4s ${token.motionEaseOutCirc}`, `opacity 2s ${token.motionEaseOutCirc}`].join(','),\n '&-active': {\n boxShadow: `0 0 0 6px currentcolor`,\n opacity: 0\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Wave', token => [genWaveStyle(token)]);","export function isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n const match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nexport function isValidWaveColor(color) {\n return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && isNotGrey(color) && !/rgba\\((?:\\d*, ){3}0\\)/.test(color) &&\n // any transparent rgba color\n color !== 'transparent';\n}\nexport function getTargetWaveColor(node) {\n const {\n borderTopColor,\n borderColor,\n backgroundColor\n } = getComputedStyle(node);\n if (isValidWaveColor(borderTopColor)) {\n return borderTopColor;\n }\n if (isValidWaveColor(borderColor)) {\n return borderColor;\n }\n if (isValidWaveColor(backgroundColor)) {\n return backgroundColor;\n }\n return null;\n}","import * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport raf from \"rc-util/es/raf\";\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { getTargetWaveColor } from './util';\nfunction validateNum(value) {\n return Number.isNaN(value) ? 0 : value;\n}\nconst WaveEffect = props => {\n const {\n className,\n target\n } = props;\n const divRef = React.useRef(null);\n const [color, setWaveColor] = React.useState(null);\n const [borderRadius, setBorderRadius] = React.useState([]);\n const [left, setLeft] = React.useState(0);\n const [top, setTop] = React.useState(0);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const [enabled, setEnabled] = React.useState(false);\n const waveStyle = {\n left,\n top,\n width,\n height,\n borderRadius: borderRadius.map(radius => `${radius}px`).join(' ')\n };\n if (color) {\n waveStyle['--wave-color'] = color;\n }\n function syncPos() {\n const nodeStyle = getComputedStyle(target);\n // Get wave color from target\n setWaveColor(getTargetWaveColor(target));\n // Rect\n setLeft(target.offsetLeft);\n setTop(target.offsetTop);\n setWidth(target.offsetWidth);\n setHeight(target.offsetHeight);\n // Get border radius\n const {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius\n } = nodeStyle;\n setBorderRadius([borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius].map(radius => validateNum(parseFloat(radius))));\n }\n React.useEffect(() => {\n if (target) {\n // We need delay to check position here\n // since UI may change after click\n const id = raf(() => {\n syncPos();\n setEnabled(true);\n });\n // Add resize observer to follow size\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(syncPos);\n resizeObserver.observe(target);\n }\n return () => {\n raf.cancel(id);\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n }\n }, []);\n if (!enabled) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionAppear: true,\n motionName: \"wave-motion\",\n motionDeadline: 5000,\n onAppearEnd: (_, event) => {\n var _a;\n if (event.deadline || event.propertyName === 'opacity') {\n const holder = (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;\n unmount(holder).then(() => {\n var _a;\n (_a = holder.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(holder);\n });\n }\n return false;\n }\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: divRef,\n className: classNames(className, motionClassName),\n style: waveStyle\n });\n });\n};\nexport default function showWaveEffect(node, className) {\n var _a;\n // Create holder\n const holder = document.createElement('div');\n holder.style.position = 'absolute';\n holder.style.left = `0px`;\n holder.style.top = `0px`;\n (_a = node.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(holder);\n render( /*#__PURE__*/React.createElement(WaveEffect, {\n target: node,\n className: className\n }), holder);\n}","import showWaveEffect from './WaveEffect';\nexport default function useWave(nodeRef, className) {\n function showWave() {\n const node = nodeRef.current;\n showWaveEffect(node, className);\n }\n return showWave;\n}","import classNames from 'classnames';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport React, { useContext, useRef } from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement } from '../reactNode';\nimport useStyle from './style';\nimport useWave from './useWave';\nconst Wave = props => {\n const {\n children,\n disabled\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const containerRef = useRef(null);\n // ============================== Style ===============================\n const prefixCls = getPrefixCls('wave');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Wave ===============================\n const showWave = useWave(containerRef, classNames(prefixCls, hashId));\n // ============================== Effect ==============================\n React.useEffect(() => {\n const node = containerRef.current;\n if (!node || node.nodeType !== 1 || disabled) {\n return;\n }\n // Click handler\n const onClick = e => {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || !isVisible(e.target) ||\n // No need wave\n !node.getAttribute || node.getAttribute('disabled') || node.disabled || node.className.includes('disabled') || node.className.includes('-leave')) {\n return;\n }\n showWave();\n };\n // Bind events\n node.addEventListener('click', onClick, true);\n return () => {\n node.removeEventListener('click', onClick, true);\n };\n }, [disabled]);\n // ============================== Render ==============================\n if (! /*#__PURE__*/React.isValidElement(children)) {\n return children !== null && children !== void 0 ? children : null;\n }\n const ref = supportRef(children) ? composeRef(children.ref, containerRef) : containerRef;\n return cloneElement(children, {\n ref\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Wave.displayName = 'Wave';\n}\nexport default Wave;","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import * as React from 'react';\nimport classNames from 'classnames';\nvar TabPane = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n tabKey = _ref.tabKey,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: classNames(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\n\nexport default TabPane;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"./TabPane\";\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (_ref2) {\n var key = _ref2.key,\n forceRender = _ref2.forceRender,\n paneStyle = _ref2.style,\n paneClassName = _ref2.className,\n restTabProps = _objectWithoutProperties(_ref2, _excluded);\n\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!destroyInactiveTabPane,\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref3, ref) {\n var motionStyle = _ref3.style,\n motionClassName = _ref3.className;\n return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),\n className: classNames(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key); // Reuse last one when not exist yet\n\n if (!data) {\n var _tabs;\n\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n\n var entity = map.get(key) || _objectSpread({}, data); // Right\n\n\n entity.right = rightOffset - entity.left - entity.width; // Update entity\n\n map.set(key, entity);\n }\n\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useRaf(callback) {\n var rafRef = useRef();\n var removedRef = useRef(false);\n\n function trigger() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!removedRef.current) {\n raf.cancel(rafRef.current);\n rafRef.current = raf(function () {\n callback.apply(void 0, args);\n });\n }\n }\n\n useEffect(function () {\n //be compatible with react 18 StrictMode in dev\n removedRef.current = false;\n return function () {\n removedRef.current = true;\n raf.cancel(rafRef.current);\n };\n }, []);\n return trigger;\n}\nexport function useRafState(defaultState) {\n var batchRef = useRef([]);\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useRaf(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n\n return [state.current, updater];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n\n stateRef.current = newValue;\n forceUpdate({});\n }\n\n return [stateRef.current, setState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL); // ================================= Hook =================================\n\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n\n var motionRef = useRef(); // ========================= Events =========================\n // >>> Touch events\n\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null); // Swipe if needed\n\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY); // Skip swipe if low distance\n\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n } // >>> Wheel event\n\n\n var lastWheelDirectionRef = useRef();\n\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC\n\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n } // ========================= Effect =========================\n\n\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n }); // No need to clean up since element removed\n\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n\n var len = tabs.length;\n var endIndex = len;\n\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n\n if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {\n endIndex = i - 1;\n break;\n }\n }\n\n var startIndex = 0;\n\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n\n return [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nexport function stringify(obj) {\n var tgt;\n\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n\n return JSON.stringify(tgt);\n}","import * as React from 'react';\n\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n\n if (!editable || editable.showAdd === false) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n}\n\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content; // Parse extra\n\n var assertExtra = {};\n\n if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n\n if (position === 'right') {\n content = assertExtra.right;\n }\n\n if (position === 'left') {\n content = assertExtra.left;\n }\n\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\n\nexport default ExtraContent;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n setTriggerVisible = _ref.setTriggerVisible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus;\n var focusMenuRef = React.useRef(false);\n\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible && triggerRef.current) {\n var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2, _triggerRef$current$t3;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : (_triggerRef$current$t3 = _triggerRef$current$t2.focus) === null || _triggerRef$current$t3 === void 0 ? void 0 : _triggerRef$current$t3.call(_triggerRef$current$t2);\n setTriggerVisible(false);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(false);\n }\n }\n };\n\n var focusMenu = function focusMenu() {\n var _triggerRef$current2, _triggerRef$current2$, _triggerRef$current2$2, _triggerRef$current2$3;\n\n var elements = getFocusNodeList((_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.popupRef) === null || _triggerRef$current2$ === void 0 ? void 0 : (_triggerRef$current2$2 = _triggerRef$current2$.current) === null || _triggerRef$current2$2 === void 0 ? void 0 : (_triggerRef$current2$3 = _triggerRef$current2$2.getElement) === null || _triggerRef$current2$3 === void 0 ? void 0 : _triggerRef$current2$3.call(_triggerRef$current2$2));\n var firstElement = elements[0];\n\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus) {\n firstElement.focus();\n focusMenuRef.current = true;\n return true;\n }\n\n return false;\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n\n case TAB:\n {\n var focusResult = false;\n\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n\n break;\n }\n }\n };\n\n React.useEffect(function () {\n if (visible) {\n window.addEventListener('keydown', handleKeyDown);\n\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n useAccessibility({\n visible: mergedVisible,\n setTriggerVisible: setTriggerVisible,\n triggerRef: triggerRef,\n onVisibleChange: props.onVisibleChange,\n autoFocus: autoFocus\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(newVisible) {\n var onVisibleChangeProp = props.onVisibleChange;\n setTriggerVisible(newVisible);\n\n if (typeof onVisibleChangeProp === 'function') {\n onVisibleChangeProp(newVisible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), overlayElement);\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n builtinPlacements: placements\n }, otherProps), {}, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport AddButton from \"./AddButton\";\n\nfunction OperationNode(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n tabs = _ref.tabs,\n locale = _ref.locale,\n mobile = _ref.mobile,\n _ref$moreIcon = _ref.moreIcon,\n moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n style = _ref.style,\n className = _ref.className,\n editable = _ref.editable,\n tabBarGutter = _ref.tabBarGutter,\n rtl = _ref.rtl,\n removeAriaLabel = _ref.removeAriaLabel,\n onTabClick = _ref.onTabClick,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName;\n\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref2) {\n var key = _ref2.key,\n domEvent = _ref2.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var removable = editable && tab.closable !== false && !tab.disabled;\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: tab.key,\n id: \"\".concat(popupId, \"-\").concat(tab.key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(tab.key),\n disabled: tab.disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, tab.label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, tab.key);\n }\n }, tab.closeIcon || editable.removeIcon || '×'));\n }));\n\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n\n function onKeyDown(e) {\n var which = e.which;\n\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n\n return;\n }\n\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n\n case KeyCode.ESC:\n setOpen(false);\n break;\n\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n } // ========================= Effect =========================\n\n\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]); // ========================= Render =========================\n\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: tabs.length ? open : false,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: classNames(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n}\n\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n return (// https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\n\nfunction TabNode(_ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n label = _ref$tab.label,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = editable && closable !== false && !disabled;\n\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n\n onClick(e);\n }\n\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key // ref={ref}\n ,\n \"data-node-key\": key,\n className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n}\n\nexport default TabNode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useRaf, { useRafState } from \"../hooks/useRaf\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\n\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n\n return [offsetWidth, offsetHeight];\n};\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\n\n\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\n\nfunction TabNavList(props, ref) {\n var _classNames;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll;\n var containerRef = useRef();\n var extraLeftRef = useRef();\n var extraRightRef = useRef();\n var tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef(); // const [getBtnRef, removeBtnRef] = useRefs();\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n\n var _useState = useState([0, 0]),\n _useState2 = _slicedToArray(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n\n var _useState3 = useState([0, 0]),\n _useState4 = _slicedToArray(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n\n var _useState5 = useState([0, 0]),\n _useState6 = _slicedToArray(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n\n var _useState7 = useState([0, 0]),\n _useState8 = _slicedToArray(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n\n var _useRafState = useRafState(new Map()),\n _useRafState2 = _slicedToArray(_useRafState, 2),\n tabSizes = _useRafState2[0],\n setTabSizes = _useRafState2[1];\n\n var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]); // ========================== Unit =========================\n\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue; // ========================== Util =========================\n\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n\n if (value > transformMax) {\n return transformMax;\n }\n\n return value;\n } // ========================= Mobile ========================\n\n\n var touchMovingRef = useRef();\n\n var _useState9 = useState(),\n _useState10 = _slicedToArray(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\n\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n } // Skip scroll if place is enough\n\n\n if (containerExcludeExtraSizeValue >= tabContentSizeValue) {\n return false;\n }\n\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n\n return clearTouchMoving;\n }, [lockAnimation]); // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n\n var _useVisibleRange = useVisibleRange(tabOffsets, // Container\n visibleTabContentValue, // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop, // Tabs\n tabContentSizeValue, // Add\n addSizeValue, // Operation\n operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1]; // ========================= Scroll ========================\n\n\n var scrollToTab = function scrollToTab() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft; // RTL\n\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n } // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n }; // ========================== Tab ==========================\n\n\n var tabNodeStyle = {};\n\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */\n ,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n\n if (!tabsWrapperRef.current) {\n return;\n } // Focus element will make scrollLeft change which we should reset back\n\n\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n }); // Update buttons records\n\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current;\n\n var key = _ref2.key;\n var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector(\"[data-node-key=\\\"\".concat(key, \"\\\"]\"));\n\n if (btnNode) {\n newSizes.set(key, {\n width: btnNode.offsetWidth,\n height: btnNode.offsetHeight,\n left: btnNode.offsetLeft,\n top: btnNode.offsetTop\n });\n }\n });\n return newSizes;\n });\n };\n\n useEffect(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = useRaf(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize); // Which includes add button size\n\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]); // Update buttons records\n\n updateTabSizes();\n }); // ======================== Dropdown =======================\n\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n var _useState11 = useState(),\n _useState12 = _slicedToArray(_useState11, 2),\n inkStyle = _useState12[0],\n setInkStyle = _useState12[1];\n\n var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n var inkBarRafRef = useRef();\n\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n\n useEffect(function () {\n var newInkStyle = {};\n\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n useEffect(function () {\n scrollToTab(); // eslint-disable-next-line\n }, [activeKey, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n useEffect(function () {\n onListHolderResize(); // eslint-disable-next-line\n }, [rtl]); // ========================= Render ========================\n\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = -transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = -transformTop + containerExcludeExtraSizeValue < tabContentSizeValue;\n }\n\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: useComposeRef(ref, containerRef),\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: inkStyle\n })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"];\n// zombieJ: To compatible with `renderTabBar` usage.\nimport * as React from 'react';\nimport TabNavList from '.';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"../TabPanelList/TabPane\";\n// We have to create a TabNavList components.\nexport default function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(TabContext),\n tabs = _React$useContext.tabs;\n\n if (renderTabBar) {\n var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = _objectWithoutProperties(_ref2, _excluded2);\n\n return /*#__PURE__*/React.createElement(TabPane, _extends({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n\n return renderTabBar(tabNavBarProps, TabNavList);\n }\n\n return /*#__PURE__*/React.createElement(TabNavList, restProps);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabPanelList from \"./TabPanelList\";\nimport TabContext from \"./TabContext\";\nimport TabNavListWrapper from \"./TabNavList/Wrapper\";\nimport useAnimateConfig from \"./hooks/useAnimateConfig\";\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n// Used for accessibility\n\nvar uuid = 0;\n\nfunction Tabs(_ref, ref) {\n var _classNames;\n\n var id = _ref.id,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n className = _ref.className,\n items = _ref.items,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n animated = _ref.animated,\n _ref$tabPosition = _ref.tabPosition,\n tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n tabBarGutter = _ref.tabBarGutter,\n tabBarStyle = _ref.tabBarStyle,\n tabBarExtraContent = _ref.tabBarExtraContent,\n locale = _ref.locale,\n moreIcon = _ref.moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n renderTabBar = _ref.renderTabBar,\n onChange = _ref.onChange,\n onTabClick = _ref.onTabClick,\n onTabScroll = _ref.onTabScroll,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && _typeof(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = useAnimateConfig(animated); // ======================== Mobile ========================\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []); // ====================== Active Key ======================\n\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1]; // Reset active key if not exist anymore\n\n\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================\n\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1]; // Async generate id to avoid ssr mapping failed\n\n\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []); // ======================== Events ========================\n\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n\n if (isActiveChanged) {\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n }\n } // ======================== Render ========================\n\n\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName\n });\n\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabNavListWrapper, _extends({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\n\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\n\nif (process.env.NODE_ENV !== 'production') {\n ForwardTabs.displayName = 'Tabs';\n}\n\nexport default ForwardTabs;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nexport default function useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n } // Enable tabPane animation if provide motion\n\n\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n\n mergedAnimated.tabPane = false;\n }\n\n return mergedAnimated;\n}","import Tabs from \"./Tabs\";\nexport default Tabs;","import { getTransitionName } from '../../_util/motion';\nconst motion = {\n motionAppear: false,\n motionEnter: true,\n motionLeave: true\n};\nexport default function useAnimateConfig(prefixCls) {\n let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n inkBar: true,\n tabPane: false\n };\n let mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: true\n };\n } else {\n mergedAnimated = Object.assign({\n inkBar: true\n }, typeof animated === 'object' ? animated : {});\n }\n if (mergedAnimated.tabPane) {\n mergedAnimated.tabPaneMotion = Object.assign(Object.assign({}, motion), {\n motionName: getTransitionName(prefixCls, 'switch')\n });\n }\n return mergedAnimated;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../../_util/warning';\nfunction filter(items) {\n return items.filter(item => item);\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Tabs', 'Tabs.TabPane is deprecated. Please use `items` directly.') : void 0;\n const childrenItems = toArray(children).map(node => {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n const {\n key,\n props\n } = node;\n const _a = props || {},\n {\n tab\n } = _a,\n restProps = __rest(_a, [\"tab\"]);\n const item = Object.assign(Object.assign({\n key: String(key)\n }, restProps), {\n label: tab\n });\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","const TabPane = () => null;\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'DeprecatedTabPane';\n}\nexport default TabPane;","import { initSlideMotion } from '../../style/motion';\nconst genMotionStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return [{\n [componentCls]: {\n [`${componentCls}-switch`]: {\n '&-appear, &-enter': {\n transition: 'none',\n '&-start': {\n opacity: 0\n },\n '&-active': {\n opacity: 1,\n transition: `opacity ${motionDurationSlow}`\n }\n },\n '&-leave': {\n position: 'absolute',\n transition: 'none',\n inset: 0,\n '&-start': {\n opacity: 1\n },\n '&-active': {\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`\n }\n }\n }\n }\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down')]];\n};\nexport default genMotionStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusStyle, resetComponent, textEllipsis } from '../../style';\nimport genMotionStyle from './motion';\nconst genCardStyle = token => {\n const {\n componentCls,\n tabsCardHorizontalPadding,\n tabsCardHeadBackground,\n tabsCardGutter,\n colorSplit\n } = token;\n return {\n [`${componentCls}-card`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: 0,\n padding: tabsCardHorizontalPadding,\n background: tabsCardHeadBackground,\n border: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`\n },\n [`${componentCls}-tab-active`]: {\n color: token.colorPrimary,\n background: token.colorBgContainer\n },\n [`${componentCls}-ink-bar`]: {\n visibility: 'hidden'\n }\n },\n // ========================== Top & Bottom ==========================\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginLeft: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n }\n }\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n },\n [`${componentCls}-tab-active`]: {\n borderBottomColor: token.colorBgContainer\n }\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n },\n [`${componentCls}-tab-active`]: {\n borderTopColor: token.colorBgContainer\n }\n }\n },\n // ========================== Left & Right ==========================\n [`&${componentCls}-left, &${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginTop: `${tabsCardGutter}px`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadiusLG}px 0 0 ${token.borderRadiusLG}px`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderRightColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px 0`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderLeftColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n }\n }\n };\n};\nconst genDropdownStyle = token => {\n const {\n componentCls,\n tabsHoverColor,\n dropdownEdgeChildVerticalPadding\n } = token;\n return {\n [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: token.zIndexPopup,\n display: 'block',\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-dropdown-menu`]: {\n maxHeight: token.tabsDropdownHeight,\n margin: 0,\n padding: `${dropdownEdgeChildVerticalPadding}px 0`,\n overflowX: 'hidden',\n overflowY: 'auto',\n textAlign: {\n _skip_check_: true,\n value: 'left'\n },\n listStyleType: 'none',\n backgroundColor: token.colorBgContainer,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadow,\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n display: 'flex',\n alignItems: 'center',\n minWidth: token.tabsDropdownWidth,\n margin: 0,\n padding: `${token.paddingXXS}px ${token.paddingSM}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '> span': {\n flex: 1,\n whiteSpace: 'nowrap'\n },\n '&-remove': {\n flex: 'none',\n marginLeft: {\n _skip_check_: true,\n value: token.marginSM\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n '&:hover': {\n color: tabsHoverColor\n }\n },\n '&:hover': {\n background: token.controlItemBgHover\n },\n '&-disabled': {\n '&, &:hover': {\n color: token.colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n })\n }\n })\n };\n};\nconst genPositionStyle = token => {\n const {\n componentCls,\n margin,\n colorSplit\n } = token;\n return {\n // ========================== Top & Bottom ==========================\n [`${componentCls}-top, ${componentCls}-bottom`]: {\n flexDirection: 'column',\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n margin: `0 0 ${margin}px 0`,\n '&::before': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n borderBottom: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n content: \"''\"\n },\n [`${componentCls}-ink-bar`]: {\n height: token.lineWidthBold,\n '&-animated': {\n transition: `width ${token.motionDurationSlow}, left ${token.motionDurationSlow},\n right ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-wrap`]: {\n '&::before, &::after': {\n top: 0,\n bottom: 0,\n width: token.controlHeight\n },\n '&::before': {\n left: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowLeft\n },\n '&::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowRight\n },\n [`&${componentCls}-nav-wrap-ping-left::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-right::after`]: {\n opacity: 1\n }\n }\n }\n },\n [`${componentCls}-top`]: {\n [`> ${componentCls}-nav,\n > div > ${componentCls}-nav`]: {\n '&::before': {\n bottom: 0\n },\n [`${componentCls}-ink-bar`]: {\n bottom: 0\n }\n }\n },\n [`${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n marginTop: `${margin}px`,\n marginBottom: 0,\n '&::before': {\n top: 0\n },\n [`${componentCls}-ink-bar`]: {\n top: 0\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n // ========================== Left & Right ==========================\n [`${componentCls}-left, ${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n flexDirection: 'column',\n minWidth: token.controlHeight * 1.25,\n // >>>>>>>>>>> Tab\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px ${token.paddingLG}px`,\n textAlign: 'center'\n },\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n margin: `${token.margin}px 0 0 0`\n },\n // >>>>>>>>>>> Nav\n [`${componentCls}-nav-wrap`]: {\n flexDirection: 'column',\n '&::before, &::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeight\n },\n '&::before': {\n top: 0,\n boxShadow: token.boxShadowTabsOverflowTop\n },\n '&::after': {\n bottom: 0,\n boxShadow: token.boxShadowTabsOverflowBottom\n },\n [`&${componentCls}-nav-wrap-ping-top::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-bottom::after`]: {\n opacity: 1\n }\n },\n // >>>>>>>>>>> Ink Bar\n [`${componentCls}-ink-bar`]: {\n width: token.lineWidthBold,\n '&-animated': {\n transition: `height ${token.motionDurationSlow}, top ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-list, ${componentCls}-nav-operations`]: {\n flex: '1 0 auto',\n flexDirection: 'column'\n }\n }\n },\n [`${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-ink-bar`]: {\n right: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n marginLeft: {\n _skip_check_: true,\n value: `-${token.lineWidth}px`\n },\n borderLeft: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingLeft: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n },\n [`${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n [`${componentCls}-ink-bar`]: {\n left: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0,\n marginRight: {\n _skip_check_: true,\n value: -token.lineWidth\n },\n borderRight: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingRight: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n padding\n } = token;\n return {\n [componentCls]: {\n '&-small': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px 0`,\n fontSize: token.fontSize\n }\n }\n },\n '&-large': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${padding}px 0`,\n fontSize: token.fontSizeLG\n }\n }\n }\n },\n [`${componentCls}-card`]: {\n [`&${componentCls}-small`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXXS * 1.5}px ${padding}px`\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadius}px ${token.borderRadius}px`\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `${token.borderRadius}px ${token.borderRadius}px 0 0`\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadius}px ${token.borderRadius}px 0`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadius}px 0 0 ${token.borderRadius}px`\n }\n }\n }\n },\n [`&${componentCls}-large`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px ${padding}px ${token.paddingXXS * 1.5}px`\n }\n }\n }\n }\n };\n};\nconst genTabStyle = token => {\n const {\n componentCls,\n tabsActiveColor,\n tabsHoverColor,\n iconCls,\n tabsHorizontalGutter\n } = token;\n const tabCls = `${componentCls}-tab`;\n return {\n [tabCls]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n padding: `${token.paddingSM}px 0`,\n fontSize: `${token.fontSize}px`,\n background: 'transparent',\n border: 0,\n outline: 'none',\n cursor: 'pointer',\n '&-btn, &-remove': Object.assign({\n '&:focus:not(:focus-visible), &:active': {\n color: tabsActiveColor\n }\n }, genFocusStyle(token)),\n '&-btn': {\n outline: 'none',\n transition: 'all 0.3s'\n },\n '&-remove': {\n flex: 'none',\n marginRight: {\n _skip_check_: true,\n value: -token.marginXXS\n },\n marginLeft: {\n _skip_check_: true,\n value: token.marginXS\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n '&:hover': {\n color: tabsHoverColor\n },\n [`&${tabCls}-active ${tabCls}-btn`]: {\n color: token.colorPrimary,\n textShadow: token.tabsActiveTextShadow\n },\n [`&${tabCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${tabCls}-disabled ${tabCls}-btn, &${tabCls}-disabled ${componentCls}-remove`]: {\n '&:focus, &:active': {\n color: token.colorTextDisabled\n }\n },\n [`& ${tabCls}-remove ${iconCls}`]: {\n margin: 0\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: token.marginSM\n }\n }\n },\n [`${tabCls} + ${tabCls}`]: {\n margin: {\n _skip_check_: true,\n value: `0 0 0 ${tabsHorizontalGutter}px`\n }\n }\n };\n};\nconst genRtlStyle = token => {\n const {\n componentCls,\n tabsHorizontalGutter,\n iconCls,\n tabsCardGutter\n } = token;\n const rtlCls = `${componentCls}-rtl`;\n return {\n [rtlCls]: {\n direction: 'rtl',\n [`${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: {\n _skip_check_: true,\n value: `0 0 0 ${tabsHorizontalGutter}px`\n },\n [`${componentCls}-tab:last-of-type`]: {\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: 0\n },\n marginLeft: {\n _skip_check_: true,\n value: `${token.marginSM}px`\n }\n },\n [`${componentCls}-tab-remove`]: {\n marginRight: {\n _skip_check_: true,\n value: `${token.marginXS}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: `-${token.marginXXS}px`\n },\n [iconCls]: {\n margin: 0\n }\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav`]: {\n order: 1\n },\n [`> ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav`]: {\n order: 0\n },\n [`> ${componentCls}-content-holder`]: {\n order: 1\n }\n },\n // ====================== Card ======================\n [`&${componentCls}-card${componentCls}-top, &${componentCls}-card${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginRight: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n }\n }\n }\n },\n [`${componentCls}-dropdown-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-menu-item`]: {\n [`${componentCls}-dropdown-rtl`]: {\n textAlign: {\n _skip_check_: true,\n value: 'right'\n }\n }\n }\n };\n};\nconst genTabsStyle = token => {\n const {\n componentCls,\n tabsCardHorizontalPadding,\n tabsCardHeight,\n tabsCardGutter,\n tabsHoverColor,\n tabsActiveColor,\n colorSplit\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n // ========================== Navigation ==========================\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n position: 'relative',\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n [`${componentCls}-nav-wrap`]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n alignSelf: 'stretch',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n transform: 'translate(0)',\n // >>>>> Ping shadow\n '&::before, &::after': {\n position: 'absolute',\n zIndex: 1,\n opacity: 0,\n transition: `opacity ${token.motionDurationSlow}`,\n content: \"''\",\n pointerEvents: 'none'\n }\n },\n [`${componentCls}-nav-list`]: {\n position: 'relative',\n display: 'flex',\n transition: `opacity ${token.motionDurationSlow}`\n },\n // >>>>>>>> Operations\n [`${componentCls}-nav-operations`]: {\n display: 'flex',\n alignSelf: 'stretch'\n },\n [`${componentCls}-nav-operations-hidden`]: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none'\n },\n [`${componentCls}-nav-more`]: {\n position: 'relative',\n padding: tabsCardHorizontalPadding,\n background: 'transparent',\n border: 0,\n '&::after': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: 0,\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeightLG / 8,\n transform: 'translateY(100%)',\n content: \"''\"\n }\n },\n [`${componentCls}-nav-add`]: Object.assign({\n minWidth: `${tabsCardHeight}px`,\n marginLeft: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n },\n padding: `0 ${token.paddingXS}px`,\n background: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`,\n outline: 'none',\n cursor: 'pointer',\n color: token.colorText,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&:hover': {\n color: tabsHoverColor\n },\n '&:active, &:focus:not(:focus-visible)': {\n color: tabsActiveColor\n }\n }, genFocusStyle(token))\n },\n [`${componentCls}-extra-content`]: {\n flex: 'none'\n },\n // ============================ InkBar ============================\n [`${componentCls}-ink-bar`]: {\n position: 'absolute',\n background: token.colorPrimary,\n pointerEvents: 'none'\n }\n }), genTabStyle(token)), {\n // =========================== TabPanes ===========================\n [`${componentCls}-content`]: {\n position: 'relative',\n width: '100%'\n },\n [`${componentCls}-content-holder`]: {\n flex: 'auto',\n minWidth: 0,\n minHeight: 0\n },\n [`${componentCls}-tabpane`]: {\n outline: 'none',\n '&-hidden': {\n display: 'none'\n }\n }\n }),\n [`${componentCls}-centered`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-nav-wrap`]: {\n [`&:not([class*='${componentCls}-nav-wrap-ping'])`]: {\n justifyContent: 'center'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tabs', token => {\n const tabsCardHeight = token.controlHeightLG;\n const tabsToken = mergeToken(token, {\n tabsHoverColor: token.colorPrimaryHover,\n tabsActiveColor: token.colorPrimaryActive,\n tabsCardHorizontalPadding: `${(tabsCardHeight - Math.round(token.fontSize * token.lineHeight)) / 2 - token.lineWidth}px ${token.padding}px`,\n tabsCardHeight,\n tabsCardGutter: token.marginXXS / 2,\n tabsHorizontalGutter: 32,\n tabsCardHeadBackground: token.colorFillAlter,\n dropdownEdgeChildVerticalPadding: token.paddingXXS,\n tabsActiveTextShadow: '0 0 0.25px currentcolor',\n tabsDropdownHeight: 200,\n tabsDropdownWidth: 120\n });\n return [genSizeStyle(tabsToken), genRtlStyle(tabsToken), genPositionStyle(tabsToken), genDropdownStyle(tabsToken), genCardStyle(tabsToken), genTabsStyle(tabsToken), genMotionStyle(tabsToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50\n}));","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport classNames from 'classnames';\nimport RcTabs from 'rc-tabs';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport warning from '../_util/warning';\nimport useAnimateConfig from './hooks/useAnimateConfig';\nimport useLegacyItems from './hooks/useLegacyItems';\nimport TabPane from './TabPane';\nimport useStyle from './style';\nfunction Tabs(_a) {\n var {\n type,\n className,\n size: propSize,\n onEdit,\n hideAdd,\n centered,\n addIcon,\n popupClassName,\n children,\n items,\n animated\n } = _a,\n props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\", \"popupClassName\", \"children\", \"items\", \"animated\"]);\n const {\n prefixCls: customizePrefixCls,\n moreIcon = /*#__PURE__*/React.createElement(EllipsisOutlined, null)\n } = props;\n const {\n direction,\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: (editType, _ref) => {\n let {\n key,\n event\n } = _ref;\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(editType === 'add' ? event : key, editType);\n },\n removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n showAdd: hideAdd !== true\n };\n }\n const rootPrefixCls = getPrefixCls();\n process.env.NODE_ENV !== \"production\" ? warning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.') : void 0;\n const mergedItems = useLegacyItems(items, children);\n const mergedAnimated = useAnimateConfig(prefixCls, animated);\n const contextSize = React.useContext(SizeContext);\n const size = propSize !== undefined ? propSize : contextSize;\n return wrapSSR( /*#__PURE__*/React.createElement(RcTabs, Object.assign({\n direction: direction,\n getPopupContainer: getPopupContainer,\n moreTransitionName: `${rootPrefixCls}-slide-up`\n }, props, {\n items: mergedItems,\n className: classNames({\n [`${prefixCls}-${size}`]: size,\n [`${prefixCls}-card`]: ['card', 'editable-card'].includes(type),\n [`${prefixCls}-editable-card`]: type === 'editable-card',\n [`${prefixCls}-centered`]: centered\n }, className, hashId),\n popupClassName: classNames(popupClassName, hashId),\n editable: editable,\n moreIcon: moreIcon,\n prefixCls: prefixCls,\n animated: mergedAnimated\n })));\n}\nTabs.TabPane = TabPane;\nif (process.env.NODE_ENV !== 'production') {\n Tabs.displayName = 'Tabs';\n}\nexport default Tabs;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nconst Grid = _a => {\n var {\n prefixCls,\n className,\n hoverable = true\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefix = getPrefixCls('card', prefixCls);\n const classString = classNames(`${prefix}-grid`, className, {\n [`${prefix}-grid-hoverable`]: hoverable\n });\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, props, {\n className: classString\n }));\n};\nexport default Grid;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { clearFix, resetComponent, textEllipsis } from '../../style';\n// ============================== Styles ==============================\n// ============================== Head ==============================\nconst genCardHeadStyle = token => {\n const {\n antCls,\n componentCls,\n cardHeadHeight,\n cardPaddingBase,\n cardHeadTabsMarginBottom\n } = token;\n return Object.assign(Object.assign({\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n minHeight: cardHeadHeight,\n marginBottom: -1,\n padding: `0 ${cardPaddingBase}px`,\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.fontSizeLG,\n background: 'transparent',\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n }, clearFix()), {\n '&-wrapper': {\n width: '100%',\n display: 'flex',\n alignItems: 'center'\n },\n '&-title': Object.assign(Object.assign({\n display: 'inline-block',\n flex: 1\n }, textEllipsis), {\n [`\n > ${componentCls}-typography,\n > ${componentCls}-typography-edit-content\n `]: {\n insetInlineStart: 0,\n marginTop: 0,\n marginBottom: 0\n }\n }),\n [`${antCls}-tabs-top`]: {\n clear: 'both',\n marginBottom: cardHeadTabsMarginBottom,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n '&-bar': {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`\n }\n }\n });\n};\n// ============================== Grid ==============================\nconst genCardGridStyle = token => {\n const {\n cardPaddingBase,\n colorBorderSecondary,\n cardShadow,\n lineWidth\n } = token;\n return {\n width: '33.33%',\n padding: cardPaddingBase,\n border: 0,\n borderRadius: 0,\n boxShadow: `\n ${lineWidth}px 0 0 0 ${colorBorderSecondary},\n 0 ${lineWidth}px 0 0 ${colorBorderSecondary},\n ${lineWidth}px ${lineWidth}px 0 0 ${colorBorderSecondary},\n ${lineWidth}px 0 0 0 ${colorBorderSecondary} inset,\n 0 ${lineWidth}px 0 0 ${colorBorderSecondary} inset;\n `,\n transition: `all ${token.motionDurationMid}`,\n '&-hoverable:hover': {\n position: 'relative',\n zIndex: 1,\n boxShadow: cardShadow\n }\n };\n};\n// ============================== Actions ==============================\nconst genCardActionsStyle = token => {\n const {\n componentCls,\n iconCls,\n cardActionsLiMargin,\n cardActionsIconSize,\n colorBorderSecondary\n } = token;\n return Object.assign(Object.assign({\n margin: 0,\n padding: 0,\n listStyle: 'none',\n background: token.colorBgContainer,\n borderTop: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n display: 'flex',\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px `\n }, clearFix()), {\n '& > li': {\n margin: cardActionsLiMargin,\n color: token.colorTextDescription,\n textAlign: 'center',\n '> span': {\n position: 'relative',\n display: 'block',\n minWidth: token.cardActionsIconSize * 2,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimary,\n transition: `color ${token.motionDurationMid}`\n },\n [`a:not(${componentCls}-btn), > ${iconCls}`]: {\n display: 'inline-block',\n width: '100%',\n color: token.colorTextDescription,\n lineHeight: `${token.fontSize * token.lineHeight}px`,\n transition: `color ${token.motionDurationMid}`,\n '&:hover': {\n color: token.colorPrimary\n }\n },\n [`> ${iconCls}`]: {\n fontSize: cardActionsIconSize,\n lineHeight: `${cardActionsIconSize * token.lineHeight}px`\n }\n },\n '&:not(:last-child)': {\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`\n }\n }\n });\n};\n// ============================== Meta ==============================\nconst genCardMetaStyle = token => Object.assign(Object.assign({\n margin: `-${token.marginXXS}px 0`,\n display: 'flex'\n}, clearFix()), {\n '&-avatar': {\n paddingInlineEnd: token.padding\n },\n '&-detail': {\n overflow: 'hidden',\n flex: 1,\n '> div:not(:last-child)': {\n marginBottom: token.marginXS\n }\n },\n '&-title': Object.assign({\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.fontSizeLG\n }, textEllipsis),\n '&-description': {\n color: token.colorTextDescription\n }\n});\n// ============================== Inner ==============================\nconst genCardTypeInnerStyle = token => {\n const {\n componentCls,\n cardPaddingBase,\n colorFillAlter\n } = token;\n return {\n [`${componentCls}-head`]: {\n padding: `0 ${cardPaddingBase}px`,\n background: colorFillAlter,\n '&-title': {\n fontSize: token.fontSize\n }\n },\n [`${componentCls}-body`]: {\n padding: `${token.padding}px ${cardPaddingBase}px`\n }\n };\n};\n// ============================== Loading ==============================\nconst genCardLoadingStyle = token => {\n const {\n componentCls\n } = token;\n return {\n overflow: 'hidden',\n [`${componentCls}-body`]: {\n userSelect: 'none'\n }\n };\n};\n// ============================== Basic ==============================\nconst genCardStyle = token => {\n const {\n componentCls,\n cardShadow,\n cardHeadPadding,\n colorBorderSecondary,\n boxShadow,\n cardPaddingBase\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n background: token.colorBgContainer,\n borderRadius: token.borderRadiusLG,\n [`&:not(${componentCls}-bordered)`]: {\n boxShadow\n },\n [`${componentCls}-head`]: genCardHeadStyle(token),\n [`${componentCls}-extra`]: {\n // https://stackoverflow.com/a/22429853/3040605\n marginInlineStart: 'auto',\n color: '',\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`${componentCls}-body`]: Object.assign({\n padding: cardPaddingBase,\n borderRadius: ` 0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n }, clearFix()),\n [`${componentCls}-grid`]: genCardGridStyle(token),\n [`${componentCls}-cover`]: {\n '> *': {\n display: 'block',\n width: '100%'\n },\n img: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n }\n },\n [`${componentCls}-actions`]: genCardActionsStyle(token),\n [`${componentCls}-meta`]: genCardMetaStyle(token)\n }),\n [`${componentCls}-bordered`]: {\n border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n [`${componentCls}-cover`]: {\n marginTop: -1,\n marginInlineStart: -1,\n marginInlineEnd: -1\n }\n },\n [`${componentCls}-hoverable`]: {\n cursor: 'pointer',\n transition: `box-shadow ${token.motionDurationMid}, border-color ${token.motionDurationMid}`,\n '&:hover': {\n borderColor: 'transparent',\n boxShadow: cardShadow\n }\n },\n [`${componentCls}-contain-grid`]: {\n [`${componentCls}-body`]: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n [`&:not(${componentCls}-loading) ${componentCls}-body`]: {\n marginBlockStart: -token.lineWidth,\n marginInlineStart: -token.lineWidth,\n padding: 0\n }\n },\n [`${componentCls}-contain-tabs`]: {\n [`> ${componentCls}-head`]: {\n [`${componentCls}-head-title, ${componentCls}-extra`]: {\n paddingTop: cardHeadPadding\n }\n }\n },\n [`${componentCls}-type-inner`]: genCardTypeInnerStyle(token),\n [`${componentCls}-loading`]: genCardLoadingStyle(token),\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\n// ============================== Size ==============================\nconst genCardSizeStyle = token => {\n const {\n componentCls,\n cardPaddingSM,\n cardHeadHeightSM\n } = token;\n return {\n [`${componentCls}-small`]: {\n [`> ${componentCls}-head`]: {\n minHeight: cardHeadHeightSM,\n padding: `0 ${cardPaddingSM}px`,\n fontSize: token.fontSize,\n [`> ${componentCls}-head-wrapper`]: {\n [`> ${componentCls}-extra`]: {\n fontSize: token.fontSize\n }\n }\n },\n [`> ${componentCls}-body`]: {\n padding: cardPaddingSM\n }\n },\n [`${componentCls}-small${componentCls}-contain-tabs`]: {\n [`> ${componentCls}-head`]: {\n [`${componentCls}-head-title, ${componentCls}-extra`]: {\n minHeight: cardHeadHeightSM,\n paddingTop: 0,\n display: 'flex',\n alignItems: 'center'\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Card', token => {\n const cardToken = mergeToken(token, {\n cardShadow: token.boxShadowCard,\n cardHeadHeight: token.fontSizeLG * token.lineHeightLG + token.padding * 2,\n cardHeadHeightSM: token.fontSize * token.lineHeight + token.paddingXS * 2,\n cardHeadPadding: token.padding,\n cardPaddingBase: token.paddingLG,\n cardHeadTabsMarginBottom: -token.padding - token.lineWidth,\n cardActionsLiMargin: `${token.paddingSM}px 0`,\n cardActionsIconSize: token.fontSize,\n cardPaddingSM: 12 // Fixed padding.\n });\n\n return [\n // Style\n genCardStyle(cardToken),\n // Size\n genCardSizeStyle(cardToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport Skeleton from '../skeleton';\nimport Tabs from '../tabs';\nimport Grid from './Grid';\nimport useStyle from './style';\nfunction getAction(actions) {\n const actionList = actions.map((action, index) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: `${100 / actions.length}%`\n },\n key: `action-${index}`\n }, /*#__PURE__*/React.createElement(\"span\", null, action)));\n return actionList;\n}\nconst Card = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const size = React.useContext(SizeContext);\n const onTabChange = key => {\n var _a;\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n const isContainGrid = () => {\n let containGrid;\n React.Children.forEach(props.children, element => {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n const {\n prefixCls: customizePrefixCls,\n className,\n extra,\n headStyle = {},\n bodyStyle = {},\n title,\n loading,\n bordered = true,\n size: customizeSize,\n type,\n cover,\n actions,\n tabList,\n children,\n activeTabKey,\n defaultActiveTabKey,\n tabBarExtraContent,\n hoverable,\n tabProps = {}\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const loadingBlock = /*#__PURE__*/React.createElement(Skeleton, {\n loading: true,\n active: true,\n paragraph: {\n rows: 4\n },\n title: false\n }, children);\n const hasActiveTabKey = activeTabKey !== undefined;\n const extraProps = Object.assign(Object.assign({}, tabProps), {\n [hasActiveTabKey ? 'activeKey' : 'defaultActiveKey']: hasActiveTabKey ? activeTabKey : defaultActiveTabKey,\n tabBarExtraContent\n });\n let head;\n const tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, Object.assign({\n size: \"large\"\n }, extraProps, {\n className: `${prefixCls}-head-tabs`,\n onChange: onTabChange,\n items: tabList.map(item => {\n var _a;\n return {\n label: item.tab,\n key: item.key,\n disabled: (_a = item.disabled) !== null && _a !== void 0 ? _a : false\n };\n })\n })) : null;\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head`,\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head-wrapper`\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head-title`\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-extra`\n }, extra)), tabs);\n }\n const coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-cover`\n }, cover) : null;\n const body = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body`,\n style: bodyStyle\n }, loading ? loadingBlock : children);\n const actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: `${prefixCls}-actions`\n }, getAction(actions)) : null;\n const divProps = omit(others, ['onTabChange']);\n const mergedSize = customizeSize || size;\n const classString = classNames(prefixCls, {\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-hoverable`]: hoverable,\n [`${prefixCls}-contain-grid`]: isContainGrid(),\n [`${prefixCls}-contain-tabs`]: tabList && tabList.length,\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-type-${type}`]: !!type,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref\n }, divProps, {\n className: classString\n }), head, coverDom, body, actionDom));\n});\nexport default Card;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nconst Meta = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n avatar,\n title,\n description\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const classString = classNames(`${prefixCls}-meta`, className);\n const avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-avatar`\n }, avatar) : null;\n const titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-title`\n }, title) : null;\n const descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-description`\n }, description) : null;\n const MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-detail`\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n};\nexport default Meta;","import InternalCard from './Card';\nimport Grid from './Grid';\nimport Meta from './Meta';\nconst Card = InternalCard;\nCard.Grid = Grid;\nCard.Meta = Meta;\nif (process.env.NODE_ENV !== 'production') {\n Card.displayName = 'Card';\n}\nexport default Card;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nimport { useColStyle } from './style';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return `${flex} ${flex} auto`;\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n return flex;\n}\nconst sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst Col = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n gutter,\n wrap,\n supportFlexGap\n } = React.useContext(RowContext);\n const {\n prefixCls: customizePrefixCls,\n span,\n order,\n offset,\n push,\n pull,\n className,\n children,\n flex,\n style\n } = props,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n const prefixCls = getPrefixCls('col', customizePrefixCls);\n const [wrapSSR, hashId] = useColStyle(prefixCls);\n let sizeClassObj = {};\n sizes.forEach(size => {\n let sizeProps = {};\n const propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (typeof propSize === 'object') {\n sizeProps = propSize || {};\n }\n delete others[size];\n sizeClassObj = Object.assign(Object.assign({}, sizeClassObj), {\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset || sizeProps.offset === 0,\n [`${prefixCls}-${size}-push-${sizeProps.push}`]: sizeProps.push || sizeProps.push === 0,\n [`${prefixCls}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull || sizeProps.pull === 0,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n });\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${span}`]: span !== undefined,\n [`${prefixCls}-order-${order}`]: order,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-push-${push}`]: push,\n [`${prefixCls}-pull-${pull}`]: pull\n }, className, sizeClassObj, hashId);\n const mergedStyle = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n const horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n // Vertical gutter use padding when gap not support\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n const verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n style: Object.assign(Object.assign({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","import { Col } from '../grid';\nexport default Col;","import * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n let {\n children,\n disabled\n } = _ref;\n const originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","import * as React from 'react';\nexport const defaultIconPrefixCls = 'anticon';\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `ant-${suffixCls}` : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls,\n iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n Consumer: ConfigConsumer\n} = ConfigContext;","import * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n const {\n locale = {},\n children,\n _ANT_MARK__\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(() => {\n changeConfirmLocale(locale && locale.Modal);\n return () => {\n changeConfirmLocale();\n };\n }, [locale]);\n const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n exist: true\n }), [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { createTheme } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleReceiver from '../locale/LocaleReceiver';\nimport defaultLocale from '../locale/en_US';\nimport { DesignTokenContext } from '../theme/internal';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useTheme from './hooks/useTheme';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nexport { ConfigContext, ConfigConsumer };\nexport { defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form', 'select'];\nexport const defaultPrefixCls = 'ant';\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nconst setGlobalConfig = _ref => {\n let {\n prefixCls,\n iconPrefixCls,\n theme\n } = _ref;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n});\nconst ProviderChildren = props => {\n var _a, _b;\n const {\n children,\n csp: customCsp,\n autoInsertSpaceInButton,\n form,\n locale,\n componentSize,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n legacyLocale,\n parentContext,\n iconPrefixCls: customIconPrefixCls,\n theme,\n componentDisabled\n } = props;\n const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n const {\n prefixCls\n } = props;\n if (customizePrefixCls) return customizePrefixCls;\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n const shouldWrapSSR = iconPrefixCls !== parentContext.iconPrefixCls;\n const csp = customCsp || parentContext.csp;\n const wrapSSR = useStyle(iconPrefixCls);\n const mergedTheme = useTheme(theme, parentContext.theme);\n const baseConfig = {\n csp,\n autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n getPrefixCls,\n iconPrefixCls,\n theme: mergedTheme\n };\n const config = Object.assign({}, parentContext);\n Object.keys(baseConfig).forEach(key => {\n if (baseConfig[key] !== undefined) {\n config[key] = baseConfig[key];\n }\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(propName => {\n const propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n const prevKeys = Object.keys(prevConfig);\n const currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n });\n const memoIconContextValue = React.useMemo(() => ({\n prefixCls: iconPrefixCls,\n csp\n }), [iconPrefixCls, csp]);\n let childNode = shouldWrapSSR ? wrapSSR(children) : children;\n // Additional Form provider\n let validateMessages = {};\n if (locale) {\n validateMessages = ((_a = locale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n if (form && form.validateMessages) {\n validateMessages = Object.assign(Object.assign({}, validateMessages), form.validateMessages);\n }\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n // ================================ Dynamic theme ================================\n const memoTheme = React.useMemo(() => {\n const _a = mergedTheme || {},\n {\n algorithm,\n token\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : undefined;\n return Object.assign(Object.assign({}, rest), {\n theme: themeObj,\n token: Object.assign(Object.assign({}, defaultSeedToken), token)\n });\n }, [mergedTheme]);\n if (theme) {\n childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n value: memoTheme\n }, childNode);\n }\n // =================================== Render ===================================\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nconst ConfigProvider = props => /*#__PURE__*/React.createElement(LocaleReceiver, null, (_, __, legacyLocale) => /*#__PURE__*/React.createElement(ConfigConsumer, null, context => /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n parentContext: context,\n legacyLocale: legacyLocale\n}, props))));\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nif (process.env.NODE_ENV !== 'production') {\n ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport { useToken } from '../../theme/internal';\nconst useStyle = iconPrefixCls => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister({\n theme,\n token,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls]\n }, () => [{\n [`.${iconPrefixCls}`]: resetIcon()\n }]);\n};\nexport default useStyle;","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { defaultConfig } from '../../theme/internal';\nexport default function useTheme(theme, parentTheme) {\n const themeConfig = theme || {};\n const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? defaultConfig : parentTheme;\n const mergedTheme = useMemo(() => {\n if (!theme) {\n return parentTheme;\n }\n // Override\n const mergedComponents = Object.assign({}, parentThemeConfig.components);\n Object.keys(theme.components || {}).forEach(componentName => {\n mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n });\n // Base token\n return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n components: mergedComponents\n });\n }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n const nextTheme = next[index];\n return !isEqual(prevTheme, nextTheme, true);\n }));\n return mergedTheme;\n}","import { createContext } from 'react';\nconst RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","import { useEffect, useRef } from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport useResponsiveObserver from '../../_util/responsiveObserver';\nfunction useBreakpoint() {\n let refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n const screensRef = useRef({});\n const forceUpdate = useForceUpdate();\n const responsiveObserver = useResponsiveObserver();\n useEffect(() => {\n const token = responsiveObserver.subscribe(supportScreens => {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Row-Shared ==============================\nconst genGridRowStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n display: 'flex',\n flexFlow: 'row wrap',\n minWidth: 0,\n '&::before, &::after': {\n display: 'flex'\n },\n '&-no-wrap': {\n flexWrap: 'nowrap'\n },\n // The origin of the X-axis\n '&-start': {\n justifyContent: 'flex-start'\n },\n // The center of the X-axis\n '&-center': {\n justifyContent: 'center'\n },\n // The opposite of the X-axis\n '&-end': {\n justifyContent: 'flex-end'\n },\n '&-space-between': {\n justifyContent: 'space-between'\n },\n '&-space-around ': {\n justifyContent: 'space-around'\n },\n // Align at the top\n '&-top': {\n alignItems: 'flex-start'\n },\n // Align at the center\n '&-middle': {\n alignItems: 'center'\n },\n '&-bottom': {\n alignItems: 'flex-end'\n }\n }\n };\n};\n// ============================== Col-Shared ==============================\nconst genGridColStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n position: 'relative',\n maxWidth: '100%',\n // Prevent columns from collapsing when empty\n minHeight: 1\n }\n };\n};\nconst genLoopGridColumnsStyle = (token, sizeCls) => {\n const {\n componentCls,\n gridColumns\n } = token;\n const gridColumnsStyle = {};\n for (let i = gridColumns; i >= 0; i--) {\n if (i === 0) {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'none'\n };\n gridColumnsStyle[`${componentCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineEnd: 0\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: 0\n };\n } else {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'block',\n flex: `0 0 ${i / gridColumns * 100}%`,\n maxWidth: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: i\n };\n }\n }\n return gridColumnsStyle;\n};\nconst genGridStyle = (token, sizeCls) => genLoopGridColumnsStyle(token, sizeCls);\nconst genGridMediaStyle = (token, screenSize, sizeCls) => ({\n [`@media (min-width: ${screenSize}px)`]: Object.assign({}, genGridStyle(token, sizeCls))\n});\n// ============================== Export ==============================\nexport const useRowStyle = genComponentStyleHook('Grid', token => [genGridRowStyle(token)]);\nexport const useColStyle = genComponentStyleHook('Grid', token => {\n const gridToken = mergeToken(token, {\n gridColumns: 24 // Row is divided into 24 parts in Grid\n });\n\n const gridMediaSizesMap = {\n '-sm': gridToken.screenSMMin,\n '-md': gridToken.screenMDMin,\n '-lg': gridToken.screenLGMin,\n '-xl': gridToken.screenXLMin,\n '-xxl': gridToken.screenXXLMin\n };\n return [genGridColStyle(gridToken), genGridStyle(gridToken, ''), genGridStyle(gridToken, '-xs'), Object.keys(gridMediaSizesMap).map(key => genGridMediaStyle(gridToken, gridMediaSizesMap[key], key)).reduce((pre, cur) => Object.assign(Object.assign({}, pre), cur), {})];\n});","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst LocaleReceiver = props => {\n const {\n componentName = 'global',\n defaultLocale,\n children\n } = props;\n const antLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n const getLocaleCode = React.useMemo(() => {\n const localeCode = antLocale && antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [antLocale]);\n return children(getLocale, getLocaleCode, antLocale);\n};\nexport default LocaleReceiver;\nexport const useLocaleReceiver = (componentName, defaultLocale) => {\n const antLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [getLocale];\n};","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","const locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n lang: Object.assign({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\n locale: 'en',\n Pagination,\n DatePicker,\n TimePicker,\n Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Tour: {\n Next: 'Next',\n Previous: 'Previous',\n Finish: 'Finish'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n default: 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n enum: '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n },\n QRCode: {\n expired: 'QR code expired',\n refresh: 'Refresh'\n }\n};\nexport default localeValues;","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = Object.assign(Object.assign({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = Object.assign({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport useResponsiveObserver, { responsiveArray } from '../_util/responsiveObserver';\nimport RowContext from './RowContext';\nimport { useRowStyle } from './style';\nconst RowAligns = ['top', 'middle', 'bottom', 'stretch'];\nconst RowJustify = ['start', 'end', 'center', 'space-around', 'space-between', 'space-evenly'];\nfunction useMergePropByScreen(oriProp, screen) {\n const [prop, setProp] = React.useState(typeof oriProp === 'string' ? oriProp : '');\n const clacMergeAlignOrJustify = () => {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (typeof oriProp !== 'object') {\n return;\n }\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) continue;\n const curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(() => {\n clacMergeAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nconst Row = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n justify,\n align,\n className,\n style,\n children,\n gutter = 0,\n wrap\n } = props,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [screens, setScreens] = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n });\n // to save screens info when responsiveObserve callback had been call\n const [curScreens, setCurScreens] = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n });\n // ================================== calc reponsive data ==================================\n const mergeAlign = useMergePropByScreen(align, curScreens);\n const mergeJustify = useMergePropByScreen(justify, curScreens);\n const supportFlexGap = useFlexGapSupport();\n const gutterRef = React.useRef(gutter);\n const responsiveObserver = useResponsiveObserver();\n // ================================== Effect ==================================\n React.useEffect(() => {\n const token = responsiveObserver.subscribe(screen => {\n setCurScreens(screen);\n const currentGutter = gutterRef.current || 0;\n if (!Array.isArray(currentGutter) && typeof currentGutter === 'object' || Array.isArray(currentGutter) && (typeof currentGutter[0] === 'object' || typeof currentGutter[1] === 'object')) {\n setScreens(screen);\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n // ================================== Render ==================================\n const getGutter = () => {\n const results = [undefined, undefined];\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n const prefixCls = getPrefixCls('row', customizePrefixCls);\n const [wrapSSR, hashId] = useRowStyle(prefixCls);\n const gutters = getGutter();\n const classes = classNames(prefixCls, {\n [`${prefixCls}-no-wrap`]: wrap === false,\n [`${prefixCls}-${mergeJustify}`]: mergeJustify,\n [`${prefixCls}-${mergeAlign}`]: mergeAlign,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n // Add gutter related style\n const rowStyle = {};\n const horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n const verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n [, rowStyle.rowGap] = gutters;\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n const [gutterH, gutterV] = gutters;\n const rowContext = React.useMemo(() => ({\n gutter: [gutterH, gutterV],\n wrap,\n supportFlexGap\n }), [gutterH, gutterV, wrap, supportFlexGap]);\n return wrapSSR( /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes,\n style: Object.assign(Object.assign({}, rowStyle), style),\n ref: ref\n }), children)));\n});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","import { Row } from '../grid';\nexport default Row;","import * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (() => {\n const [flexible, setFlexible] = React.useState(false);\n React.useEffect(() => {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import classNames from 'classnames';\nimport * as React from 'react';\nconst Element = props => {\n const {\n prefixCls,\n className,\n style,\n size,\n shape\n } = props;\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small'\n });\n const shapeCls = classNames({\n [`${prefixCls}-circle`]: shape === 'circle',\n [`${prefixCls}-square`]: shape === 'square',\n [`${prefixCls}-round`]: shape === 'round'\n });\n const sizeStyle = React.useMemo(() => typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: `${size}px`\n } : {}, [size]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(prefixCls, sizeCls, shapeCls, className),\n style: Object.assign(Object.assign({}, sizeStyle), style)\n });\n};\nexport default Element;","import { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst skeletonClsLoading = new Keyframes(`ant-skeleton-loading`, {\n '0%': {\n transform: 'translateX(-37.5%)'\n },\n '100%': {\n transform: 'translateX(37.5%)'\n }\n});\nconst genSkeletonElementCommonSize = size => ({\n height: size,\n lineHeight: `${size}px`\n});\nconst genSkeletonElementAvatarSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonColor = token => ({\n position: 'relative',\n // fix https://github.com/ant-design/ant-design/issues/36444\n // https://monshin.github.io/202109/css/safari-border-radius-overflow-hidden/\n /* stylelint-disable-next-line property-no-vendor-prefix,value-no-vendor-prefix */\n zIndex: 0,\n overflow: 'hidden',\n background: 'transparent',\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: '-150%',\n bottom: 0,\n insetInlineStart: '-150%',\n background: token.skeletonLoadingBackground,\n animationName: skeletonClsLoading,\n animationDuration: token.skeletonLoadingMotionDuration,\n animationTimingFunction: 'ease',\n animationIterationCount: 'infinite',\n content: '\"\"'\n }\n});\nconst genSkeletonElementInputSize = size => Object.assign({\n width: size * 5,\n minWidth: size * 5\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementAvatar = token => {\n const {\n skeletonAvatarCls,\n color,\n controlHeight,\n controlHeightLG,\n controlHeightSM\n } = token;\n return {\n [`${skeletonAvatarCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n };\n};\nconst genSkeletonElementInput = token => {\n const {\n controlHeight,\n borderRadiusSM,\n skeletonInputCls,\n controlHeightLG,\n controlHeightSM,\n color\n } = token;\n return {\n [`${skeletonInputCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color,\n borderRadius: borderRadiusSM\n }, genSkeletonElementInputSize(controlHeight)),\n [`${skeletonInputCls}-lg`]: Object.assign({}, genSkeletonElementInputSize(controlHeightLG)),\n [`${skeletonInputCls}-sm`]: Object.assign({}, genSkeletonElementInputSize(controlHeightSM))\n };\n};\nconst genSkeletonElementImageSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementImage = token => {\n const {\n skeletonImageCls,\n imageSizeBase,\n color,\n borderRadiusSM\n } = token;\n return {\n [`${skeletonImageCls}`]: Object.assign(Object.assign({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'top',\n background: color,\n borderRadius: borderRadiusSM\n }, genSkeletonElementImageSize(imageSizeBase * 2)), {\n [`${skeletonImageCls}-path`]: {\n fill: '#bfbfbf'\n },\n [`${skeletonImageCls}-svg`]: Object.assign(Object.assign({}, genSkeletonElementImageSize(imageSizeBase)), {\n maxWidth: imageSizeBase * 4,\n maxHeight: imageSizeBase * 4\n }),\n [`${skeletonImageCls}-svg${skeletonImageCls}-svg-circle`]: {\n borderRadius: '50%'\n }\n }),\n [`${skeletonImageCls}${skeletonImageCls}-circle`]: {\n borderRadius: '50%'\n }\n };\n};\nconst genSkeletonElementButtonShape = (token, size, buttonCls) => {\n const {\n skeletonButtonCls\n } = token;\n return {\n [`${buttonCls}${skeletonButtonCls}-circle`]: {\n width: size,\n minWidth: size,\n borderRadius: '50%'\n },\n [`${buttonCls}${skeletonButtonCls}-round`]: {\n borderRadius: size\n }\n };\n};\nconst genSkeletonElementButtonSize = size => Object.assign({\n width: size * 2,\n minWidth: size * 2\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementButton = token => {\n const {\n borderRadiusSM,\n skeletonButtonCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n color\n } = token;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n [`${skeletonButtonCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color,\n borderRadius: borderRadiusSM,\n width: controlHeight * 2,\n minWidth: controlHeight * 2\n }, genSkeletonElementButtonSize(controlHeight))\n }, genSkeletonElementButtonShape(token, controlHeight, skeletonButtonCls)), {\n [`${skeletonButtonCls}-lg`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightLG))\n }), genSkeletonElementButtonShape(token, controlHeightLG, `${skeletonButtonCls}-lg`)), {\n [`${skeletonButtonCls}-sm`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightSM))\n }), genSkeletonElementButtonShape(token, controlHeightSM, `${skeletonButtonCls}-sm`));\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n skeletonAvatarCls,\n skeletonTitleCls,\n skeletonParagraphCls,\n skeletonButtonCls,\n skeletonInputCls,\n skeletonImageCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n color,\n padding,\n marginSM,\n borderRadius,\n skeletonTitleHeight,\n skeletonBlockRadius,\n skeletonParagraphLineHeight,\n controlHeightXS,\n skeletonParagraphMarginTop\n } = token;\n return {\n [`${componentCls}`]: {\n display: 'table',\n width: '100%',\n [`${componentCls}-header`]: {\n display: 'table-cell',\n paddingInlineEnd: padding,\n verticalAlign: 'top',\n // Avatar\n [`${skeletonAvatarCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n },\n [`${componentCls}-content`]: {\n display: 'table-cell',\n width: '100%',\n verticalAlign: 'top',\n // Title\n [`${skeletonTitleCls}`]: {\n width: '100%',\n height: skeletonTitleHeight,\n background: color,\n borderRadius: skeletonBlockRadius,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: controlHeightSM\n }\n },\n // paragraph\n [`${skeletonParagraphCls}`]: {\n padding: 0,\n '> li': {\n width: '100%',\n height: skeletonParagraphLineHeight,\n listStyle: 'none',\n background: color,\n borderRadius: skeletonBlockRadius,\n '+ li': {\n marginBlockStart: controlHeightXS\n }\n }\n },\n [`${skeletonParagraphCls}> li:last-child:not(:first-child):not(:nth-child(2))`]: {\n width: '61%'\n }\n },\n [`&-round ${componentCls}-content`]: {\n [`${skeletonTitleCls}, ${skeletonParagraphCls} > li`]: {\n borderRadius\n }\n }\n },\n [`${componentCls}-with-avatar ${componentCls}-content`]: {\n // Title\n [`${skeletonTitleCls}`]: {\n marginBlockStart: marginSM,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: skeletonParagraphMarginTop\n }\n }\n },\n // Skeleton element\n [`${componentCls}${componentCls}-element`]: Object.assign(Object.assign(Object.assign(Object.assign({\n display: 'inline-block',\n width: 'auto'\n }, genSkeletonElementButton(token)), genSkeletonElementAvatar(token)), genSkeletonElementInput(token)), genSkeletonElementImage(token)),\n // Skeleton Block Button, Input\n [`${componentCls}${componentCls}-block`]: {\n width: '100%',\n [`${skeletonButtonCls}`]: {\n width: '100%'\n },\n [`${skeletonInputCls}`]: {\n width: '100%'\n }\n },\n // With active animation\n [`${componentCls}${componentCls}-active`]: {\n [`\n ${skeletonTitleCls},\n ${skeletonParagraphCls} > li,\n ${skeletonAvatarCls},\n ${skeletonButtonCls},\n ${skeletonInputCls},\n ${skeletonImageCls}\n `]: Object.assign({}, genSkeletonColor(token))\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Skeleton', token => {\n const {\n componentCls\n } = token;\n const skeletonToken = mergeToken(token, {\n skeletonAvatarCls: `${componentCls}-avatar`,\n skeletonTitleCls: `${componentCls}-title`,\n skeletonParagraphCls: `${componentCls}-paragraph`,\n skeletonButtonCls: `${componentCls}-button`,\n skeletonInputCls: `${componentCls}-input`,\n skeletonImageCls: `${componentCls}-image`,\n imageSizeBase: token.controlHeight * 1.5,\n skeletonTitleHeight: token.controlHeight / 2,\n skeletonBlockRadius: token.borderRadiusSM,\n skeletonParagraphLineHeight: token.controlHeight / 2,\n skeletonParagraphMarginTop: token.marginLG + token.marginXXS,\n borderRadius: 100,\n skeletonLoadingBackground: `linear-gradient(90deg, ${token.color} 25%, ${token.colorGradientEnd} 37%, ${token.color} 63%)`,\n skeletonLoadingMotionDuration: '1.4s'\n });\n return [genBaseStyle(skeletonToken)];\n}, token => {\n const {\n colorFillContent,\n colorFill\n } = token;\n return {\n color: colorFillContent,\n colorGradientEnd: colorFill\n };\n});","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonAvatar = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n active,\n shape = 'circle',\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls', 'className']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-avatar`,\n shape: shape,\n size: size\n }, otherProps))));\n};\nexport default SkeletonAvatar;","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonButton = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n active,\n block = false,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-button`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonButton;","// This icon file is generated automatically.\nvar DotChartOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"dot-chart\", \"theme\": \"outlined\" };\nexport default DotChartOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DotChartOutlinedSvg from \"@ant-design/icons-svg/es/asn/DotChartOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DotChartOutlined = function DotChartOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DotChartOutlinedSvg\n }));\n};\nDotChartOutlined.displayName = 'DotChartOutlined';\nexport default /*#__PURE__*/React.forwardRef(DotChartOutlined);","import DotChartOutlined from \"@ant-design/icons/es/icons/DotChartOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport useStyle from './style';\nimport { ConfigContext } from '../config-provider';\nconst SkeletonNode = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n active,\n children\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, hashId, className);\n const content = children !== null && children !== void 0 ? children : /*#__PURE__*/React.createElement(DotChartOutlined, null);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, content)));\n};\nexport default SkeletonNode;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst path = 'M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z';\nconst SkeletonImage = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n active\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 1098 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: `${prefixCls}-image-svg`\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: path,\n className: `${prefixCls}-image-path`\n })))));\n};\nexport default SkeletonImage;","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonInput = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n active,\n block,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-input`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonInput;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nconst Paragraph = props => {\n const getWidth = index => {\n const {\n width,\n rows = 2\n } = props;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n };\n const {\n prefixCls,\n className,\n style,\n rows\n } = props;\n const rowList = _toConsumableArray(Array(rows)).map((_, index) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: index,\n style: {\n width: getWidth(index)\n }\n }));\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(prefixCls, className),\n style: style\n }, rowList);\n};\nexport default Paragraph;","/* eslint-disable jsx-a11y/heading-has-content */\nimport classNames from 'classnames';\nimport * as React from 'react';\nconst Title = _ref => {\n let {\n prefixCls,\n className,\n width,\n style\n } = _ref;\n return /*#__PURE__*/React.createElement(\"h3\", {\n className: classNames(prefixCls, className),\n style: Object.assign({\n width\n }, style)\n });\n};\nexport default Title;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonButton from './Button';\nimport SkeletonNode from './Node';\nimport Element from './Element';\nimport SkeletonImage from './Image';\nimport SkeletonInput from './Input';\nimport Paragraph from './Paragraph';\nimport Title from './Title';\nimport useStyle from './style';\nfunction getComponentProps(prop) {\n if (prop && typeof prop === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n // Square avatar\n return {\n size: 'large',\n shape: 'square'\n };\n }\n return {\n size: 'large',\n shape: 'circle'\n };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return {\n width: '38%'\n };\n }\n if (hasAvatar && hasParagraph) {\n return {\n width: '50%'\n };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n const basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n } else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nconst Skeleton = props => {\n const {\n prefixCls: customizePrefixCls,\n loading,\n className,\n style,\n children,\n avatar = false,\n title = true,\n paragraph = true,\n active,\n round\n } = props;\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n if (loading || !('loading' in props)) {\n const hasAvatar = !!avatar;\n const hasTitle = !!title;\n const hasParagraph = !!paragraph;\n // Avatar\n let avatarNode;\n if (hasAvatar) {\n const avatarProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-avatar`\n }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n // We direct use SkeletonElement as avatar in skeleton internal.\n avatarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, /*#__PURE__*/React.createElement(Element, Object.assign({}, avatarProps)));\n }\n let contentNode;\n if (hasTitle || hasParagraph) {\n // Title\n let $title;\n if (hasTitle) {\n const titleProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-title`\n }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n $title = /*#__PURE__*/React.createElement(Title, Object.assign({}, titleProps));\n }\n // Paragraph\n let paragraphNode;\n if (hasParagraph) {\n const paragraphProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-paragraph`\n }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n paragraphNode = /*#__PURE__*/React.createElement(Paragraph, Object.assign({}, paragraphProps));\n }\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, $title, paragraphNode);\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-with-avatar`]: hasAvatar,\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-round`]: round\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: style\n }, avatarNode, contentNode));\n }\n return typeof children !== 'undefined' ? children : null;\n};\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nSkeleton.Image = SkeletonImage;\nSkeleton.Node = SkeletonNode;\nif (process.env.NODE_ENV !== 'production') {\n Skeleton.displayName = 'Skeleton';\n}\nexport default Skeleton;","import Skeleton from './Skeleton';\nexport default Skeleton;","export { operationUnit } from './operationUnit';\nexport { roundedArrow } from './roundedArrow';\nexport { genPresetColor } from './presetColor';\nexport const textEllipsis = {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n};\nexport const resetComponent = token => ({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n color: token.colorText,\n fontSize: token.fontSize,\n // font-variant: @font-variant-base;\n lineHeight: token.lineHeight,\n listStyle: 'none',\n // font-feature-settings: @font-feature-settings-base;\n fontFamily: token.fontFamily\n});\nexport const resetIcon = () => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n fontStyle: 'normal',\n lineHeight: 0,\n textAlign: 'center',\n textTransform: 'none',\n // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n verticalAlign: '-0.125em',\n textRendering: 'optimizeLegibility',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n '> *': {\n lineHeight: 1\n },\n svg: {\n display: 'inline-block'\n },\n '& &-icon': {\n display: 'block'\n }\n});\nexport const clearFix = () => ({\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n '&::before': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/21864\n display: 'table',\n clear: 'both',\n content: '\"\"'\n }\n});\nexport const genLinkStyle = token => ({\n a: {\n color: token.colorLink,\n textDecoration: token.linkDecoration,\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '-webkit-text-decoration-skip': 'objects',\n '&:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n },\n [`&:active,\n &:hover`]: {\n textDecoration: token.linkHoverDecoration,\n outline: 0\n },\n // https://github.com/ant-design/ant-design/issues/22503\n '&:focus': {\n textDecoration: token.linkFocusDecoration,\n outline: 0\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n});\nexport const genCommonStyle = (token, componentPrefixCls) => {\n const {\n fontFamily,\n fontSize\n } = token;\n const rootPrefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n return {\n [rootPrefixSelector]: {\n fontFamily,\n fontSize,\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n },\n [rootPrefixSelector]: {\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n }\n }\n }\n };\n};\nexport const genFocusOutline = token => ({\n outline: `${token.lineWidth * 4}px solid ${token.colorPrimaryBorder}`,\n outlineOffset: 1,\n transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = token => ({\n '&:focus-visible': Object.assign({}, genFocusOutline(token))\n});","const initMotionCommon = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n animationPlayState: 'paused'\n }),\n [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n animationPlayState: 'paused'\n }),\n [`\n ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n `]: {\n animationName: inKeyframes,\n animationPlayState: 'running'\n },\n [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n animationName: outKeyframes,\n animationPlayState: 'running',\n pointerEvents: 'none'\n }\n };\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const slideUpIn = new Keyframes('antSlideUpIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideUpOut = new Keyframes('antSlideUpOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideDownIn = new Keyframes('antSlideDownIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n }\n});\nexport const slideDownOut = new Keyframes('antSlideDownOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n }\n});\nexport const slideLeftIn = new Keyframes('antSlideLeftIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideLeftOut = new Keyframes('antSlideLeftOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideRightIn = new Keyframes('antSlideRightIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n }\n});\nexport const slideRightOut = new Keyframes('antSlideRightOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n }\n});\nconst slideMotion = {\n 'slide-up': {\n inKeyframes: slideUpIn,\n outKeyframes: slideUpOut\n },\n 'slide-down': {\n inKeyframes: slideDownIn,\n outKeyframes: slideDownOut\n },\n 'slide-left': {\n inKeyframes: slideLeftIn,\n outKeyframes: slideLeftOut\n },\n 'slide-right': {\n inKeyframes: slideRightIn,\n outKeyframes: slideRightOut\n }\n};\nexport const initSlideMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = slideMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n opacity: 0,\n animationTimingFunction: token.motionEaseOutQuint\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInQuint\n }\n }];\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n '0%': {\n transform: 'scale(0.2)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.2)',\n opacity: 0\n }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.8)',\n opacity: 0\n }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n }\n});\nconst zoomMotion = {\n zoom: {\n inKeyframes: zoomIn,\n outKeyframes: zoomOut\n },\n 'zoom-big': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-big-fast': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-left': {\n inKeyframes: zoomLeftIn,\n outKeyframes: zoomLeftOut\n },\n 'zoom-right': {\n inKeyframes: zoomRightIn,\n outKeyframes: zoomRightOut\n },\n 'zoom-up': {\n inKeyframes: zoomUpIn,\n outKeyframes: zoomUpOut\n },\n 'zoom-down': {\n inKeyframes: zoomDownIn,\n outKeyframes: zoomDownOut\n }\n};\nexport const initZoomMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = zoomMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc,\n '&-prepare': {\n transform: 'none'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","export const roundedArrow = (width, innerRadius, outerRadius, bgColor, boxShadow) => {\n const unitWidth = width / 2;\n const ax = unitWidth - outerRadius * (Math.sqrt(2) - 1);\n const ay = unitWidth;\n const bx = unitWidth + outerRadius * (1 - 1 / Math.sqrt(2));\n const by = unitWidth - outerRadius * (1 - 1 / Math.sqrt(2));\n const cx = 2 * unitWidth - innerRadius * (1 / Math.sqrt(2));\n const cy = innerRadius * (1 / Math.sqrt(2));\n const dx = 4 * unitWidth - cx;\n const dy = cy;\n const ex = 4 * unitWidth - bx;\n const ey = by;\n const fx = 4 * unitWidth - ax;\n const fy = ay;\n return {\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${innerRadius}px`\n },\n pointerEvents: 'none',\n width: width * 2,\n height: width * 2,\n overflow: 'hidden',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: width / Math.sqrt(2),\n height: width / Math.sqrt(2),\n bottom: 0,\n insetInline: 0,\n margin: 'auto',\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${innerRadius}px 0`\n },\n transform: 'translateY(50%) rotate(-135deg)',\n boxShadow,\n zIndex: 0,\n background: 'transparent'\n },\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: 0,\n width: width * 2,\n height: width / 2,\n background: bgColor,\n clipPath: `path('M ${ax} ${ay} A ${outerRadius} ${outerRadius} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${innerRadius} ${innerRadius} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${outerRadius} ${outerRadius} 0 0 0 ${fx} ${fy} Z')`,\n content: '\"\"'\n }\n };\n};","import { roundedArrow } from './roundedArrow';\nfunction connectArrowCls(classList) {\n let showArrowCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return classList.map(cls => `${showArrowCls}${cls}`).join(',');\n}\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffset(options) {\n const maxVerticalContentRadius = MAX_VERTICAL_CONTENT_RADIUS;\n const {\n sizePopupArrow,\n contentRadius,\n borderRadiusOuter,\n limitVerticalRadius\n } = options;\n const arrowInnerOffset = sizePopupArrow / 2 - Math.ceil(borderRadiusOuter * (Math.sqrt(2) - 1));\n const dropdownArrowOffset = (contentRadius > 12 ? contentRadius + 2 : 12) - arrowInnerOffset;\n const dropdownArrowOffsetVertical = limitVerticalRadius ? maxVerticalContentRadius - arrowInnerOffset : dropdownArrowOffset;\n return {\n dropdownArrowOffset,\n dropdownArrowOffsetVertical\n };\n}\nexport default function getArrowStyle(token, options) {\n const {\n componentCls,\n sizePopupArrow,\n marginXXS,\n borderRadiusXS,\n borderRadiusOuter,\n boxShadowPopoverArrow\n } = token;\n const {\n colorBg,\n showArrowCls,\n contentRadius = token.borderRadiusLG,\n limitVerticalRadius\n } = options;\n const {\n dropdownArrowOffsetVertical,\n dropdownArrowOffset\n } = getArrowOffset({\n sizePopupArrow,\n contentRadius,\n borderRadiusOuter,\n limitVerticalRadius\n });\n const dropdownArrowDistance = sizePopupArrow / 2 + marginXXS;\n return {\n [componentCls]: {\n // ============================ Basic ============================\n [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'block'\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBg, boxShadowPopoverArrow)), {\n '&:before': {\n background: colorBg\n }\n })],\n // ========================== Placement ==========================\n // Here handle the arrow position and rotate stuff\n // >>>>> Top\n [[`&-placement-top ${componentCls}-arrow`, `&-placement-topLeft ${componentCls}-arrow`, `&-placement-topRight ${componentCls}-arrow`].join(',')]: {\n bottom: 0,\n transform: 'translateY(100%) rotate(180deg)'\n },\n [`&-placement-top ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n },\n [`&-placement-topLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-topRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n // >>>>> Bottom\n [[`&-placement-bottom ${componentCls}-arrow`, `&-placement-bottomLeft ${componentCls}-arrow`, `&-placement-bottomRight ${componentCls}-arrow`].join(',')]: {\n top: 0,\n transform: `translateY(-100%)`\n },\n [`&-placement-bottom ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: `translateX(-50%) translateY(-100%)`\n },\n [`&-placement-bottomLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-bottomRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n // >>>>> Left\n [[`&-placement-left ${componentCls}-arrow`, `&-placement-leftTop ${componentCls}-arrow`, `&-placement-leftBottom ${componentCls}-arrow`].join(',')]: {\n right: {\n _skip_check_: true,\n value: 0\n },\n transform: 'translateX(100%) rotate(90deg)'\n },\n [`&-placement-left ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n },\n [`&-placement-leftTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-leftBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n },\n // >>>>> Right\n [[`&-placement-right ${componentCls}-arrow`, `&-placement-rightTop ${componentCls}-arrow`, `&-placement-rightBottom ${componentCls}-arrow`].join(',')]: {\n left: {\n _skip_check_: true,\n value: 0\n },\n transform: 'translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-right ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-rightTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-rightBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n },\n // =========================== Offset ============================\n // Offset the popover to account for the dropdown arrow\n // >>>>> Top\n [connectArrowCls([`&-placement-topLeft`, `&-placement-top`, `&-placement-topRight`], showArrowCls)]: {\n paddingBottom: dropdownArrowDistance\n },\n // >>>>> Bottom\n [connectArrowCls([`&-placement-bottomLeft`, `&-placement-bottom`, `&-placement-bottomRight`], showArrowCls)]: {\n paddingTop: dropdownArrowDistance\n },\n // >>>>> Left\n [connectArrowCls([`&-placement-leftTop`, `&-placement-left`, `&-placement-leftBottom`], showArrowCls)]: {\n paddingRight: {\n _skip_check_: true,\n value: dropdownArrowDistance\n }\n },\n // >>>>> Right\n [connectArrowCls([`&-placement-rightTop`, `&-placement-right`, `&-placement-rightBottom`], showArrowCls)]: {\n paddingLeft: {\n _skip_check_: true,\n value: dropdownArrowDistance\n }\n }\n }\n };\n}","import { PresetColors } from '../theme/internal';\nexport function genPresetColor(token, genCss) {\n return PresetColors.reduce((prev, colorKey) => {\n const lightColor = token[`${colorKey}-1`];\n const lightBorderColor = token[`${colorKey}-3`];\n const darkColor = token[`${colorKey}-6`];\n const textColor = token[`${colorKey}-7`];\n return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n lightColor,\n lightBorderColor,\n darkColor,\n textColor\n }));\n }, {});\n}","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6]\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.88),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(2.71828, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => {\n const height = size + 8;\n return {\n size,\n lineHeight: height / size\n };\n });\n}","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport getAlphaColor from './getAlphaColor';\nimport seedToken from '../themes/seed';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = Object.assign({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n // Generate alias token\n const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n colorLink: mergedToken.colorInfoText,\n colorLinkHover: mergedToken.colorInfoHover,\n colorLinkActive: mergedToken.colorInfoActive,\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n boxShadow: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowSecondary: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n // FIXME: component box-shadow, should be removed\n boxShadowPopoverArrow: '3px 3px 7px rgba(0, 0, 0, 0.1)',\n boxShadowCard: `\n 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n `,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerUp: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n }), overrideTokens);\n return aliasToken;\n}","import { createTheme, useCacheToken, useStyleRegister } from '@ant-design/cssinjs';\nimport React from 'react';\nimport version from '../version';\nimport { PresetColors } from './interface';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nimport genComponentStyleHook from './util/genComponentStyleHook';\nimport statisticToken, { merge as mergeToken, statistic } from './util/statistic';\nconst defaultTheme = createTheme(defaultDerivative);\nexport {\n// colors\nPresetColors,\n// Statistic\nstatistic, statisticToken, mergeToken,\n// hooks\nuseStyleRegister, genComponentStyleHook };\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);\n// ================================== Hook ==================================\nexport function useToken() {\n const {\n token: rootDesignToken,\n hashed,\n theme,\n components\n } = React.useContext(DesignTokenContext);\n const salt = `${version}-${hashed || ''}`;\n const mergedTheme = theme || defaultTheme;\n const [token, hashId] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n salt,\n override: Object.assign({\n override: rootDesignToken\n }, components),\n formatToken\n });\n return [mergedTheme, token, hashed ? hashId : ''];\n}","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\nexport default function derivative(token) {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","import { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, _ref) {\n let {\n generateColorPalettes,\n generateNeutralColorPalettes\n } = _ref;\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n return Object.assign(Object.assign({}, neutralColors), {\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n sizeXL: sizeUnit * (sizeStep + 4),\n sizeLG: sizeUnit * (sizeStep + 2),\n sizeMD: sizeUnit * (sizeStep + 1),\n sizeMS: sizeUnit * sizeStep,\n size: sizeUnit * sizeStep,\n sizeSM: sizeUnit * (sizeStep - 1),\n sizeXS: sizeUnit * (sizeStep - 2),\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return Object.assign({\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","export default '5.1.4';","export const defaultPresetColors = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false\n});\nexport default seedToken;","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { useContext } from 'react';\nimport { genCommonStyle, genLinkStyle } from '../../style';\nimport { ConfigContext } from '../../config-provider/context';\nimport { mergeToken, statisticToken, useToken } from '../internal';\nexport default function genComponentStyleHook(component, styleFn, getDefaultToken) {\n return prefixCls => {\n const [theme, token, hashId] = useToken();\n const {\n getPrefixCls,\n iconPrefixCls\n } = useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n // Generate style for all a tags in antd component.\n useStyleRegister({\n theme,\n token,\n hashId,\n path: ['Shared', rootPrefixCls]\n }, () => [{\n // Link\n '&': genLinkStyle(token)\n }]);\n return [useStyleRegister({\n theme,\n token,\n hashId,\n path: [component, prefixCls, iconPrefixCls]\n }, () => {\n const {\n token: proxyToken,\n flush\n } = statisticToken(token);\n const defaultComponentToken = typeof getDefaultToken === 'function' ? getDefaultToken(proxyToken) : getDefaultToken;\n const mergedComponentToken = Object.assign(Object.assign({}, defaultComponentToken), token[component]);\n const componentCls = `.${prefixCls}`;\n const mergedToken = mergeToken(proxyToken, {\n componentCls,\n prefixCls,\n iconCls: `.${iconPrefixCls}`,\n antCls: `.${rootPrefixCls}`\n }, mergedComponentToken);\n const styleInterpolation = styleFn(mergedToken, {\n hashId,\n prefixCls,\n rootPrefixCls,\n iconPrefixCls,\n overrideComponentToken: token[component]\n });\n flush(component, mergedComponentToken);\n return [genCommonStyle(token, prefixCls), styleInterpolation];\n }), hashId];\n };\n}","const enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nlet recording = true;\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n /* istanbul ignore next */\n if (!enableStatistic) {\n return Object.assign.apply(Object, [{}].concat(objs));\n }\n recording = false;\n const ret = {};\n objs.forEach(obj => {\n const keys = Object.keys(obj);\n keys.forEach(key => {\n Object.defineProperty(ret, key, {\n configurable: true,\n enumerable: true,\n get: () => obj[key]\n });\n });\n });\n recording = true;\n return ret;\n}\n/** @private Internal Usage. Not use in your production. */\nexport const statistic = {};\n/** @private Internal Usage. Not use in your production. */\n// eslint-disable-next-line camelcase\nexport const _statistic_build_ = {};\n/* istanbul ignore next */\nfunction noop() {}\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nexport default function statisticToken(token) {\n let tokenKeys;\n let proxy = token;\n let flush = noop;\n if (enableStatistic) {\n tokenKeys = new Set();\n proxy = new Proxy(token, {\n get(obj, prop) {\n if (recording) {\n tokenKeys.add(prop);\n }\n return obj[prop];\n }\n });\n flush = (componentName, componentToken) => {\n statistic[componentName] = {\n global: Array.from(tokenKeys),\n component: componentToken\n };\n };\n }\n return {\n token: proxy,\n keys: tokenKeys,\n flush\n };\n}","import { placements } from \"rc-tooltip/es/placements\";\nconst autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nconst autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nconst targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return Object.assign(Object.assign({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n const {\n arrowWidth = 4,\n horizontalArrowShift = 16,\n verticalArrowShift = 8,\n autoAdjustOverflow,\n arrowPointAtCenter\n } = config;\n const placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(key => {\n placementMap[key] = arrowPointAtCenter ? Object.assign(Object.assign({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset\n }) : Object.assign(Object.assign({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import { initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genPresetColor, resetComponent } from '../../style';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nconst genTooltipStyle = token => {\n const {\n componentCls,\n // ant-tooltip\n tooltipMaxWidth,\n tooltipColor,\n tooltipBg,\n tooltipBorderRadius,\n zIndexPopup,\n controlHeight,\n boxShadowSecondary,\n paddingSM,\n paddingXS,\n tooltipRadiusOuter\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n zIndex: zIndexPopup,\n display: 'block',\n '&': [{\n width: 'max-content'\n }, {\n width: 'intrinsic'\n }],\n maxWidth: tooltipMaxWidth,\n visibility: 'visible',\n '&-hidden': {\n display: 'none'\n },\n '--antd-arrow-background-color': tooltipBg,\n // Wrapper for the tooltip content\n [`${componentCls}-inner`]: {\n minWidth: controlHeight,\n minHeight: controlHeight,\n padding: `${paddingSM / 2}px ${paddingXS}px`,\n color: tooltipColor,\n textAlign: 'start',\n textDecoration: 'none',\n wordWrap: 'break-word',\n backgroundColor: tooltipBg,\n borderRadius: tooltipBorderRadius,\n boxShadow: boxShadowSecondary\n },\n // Limit left and right placement radius\n [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n [`${componentCls}-inner`]: {\n borderRadius: Math.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n }\n }), genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls}-${colorKey}`]: {\n [`${componentCls}-inner`]: {\n backgroundColor: darkColor\n },\n [`${componentCls}-arrow`]: {\n '--antd-arrow-background-color': darkColor\n }\n }\n };\n })), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Arrow Style\n getArrowStyle(mergeToken(token, {\n borderRadiusOuter: tooltipRadiusOuter\n }), {\n colorBg: 'var(--antd-arrow-background-color)',\n showArrowCls: '',\n contentRadius: tooltipBorderRadius,\n limitVerticalRadius: true\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none'\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Tooltip', token => {\n // Popover use Tooltip as internal component. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n borderRadius,\n colorTextLightSolid,\n colorBgDefault,\n borderRadiusOuter\n } = token;\n const TooltipToken = mergeToken(token, {\n // default variables\n tooltipMaxWidth: 250,\n tooltipColor: colorTextLightSolid,\n tooltipBorderRadius: borderRadius,\n tooltipBg: colorBgDefault,\n tooltipRadiusOuter: borderRadiusOuter > 4 ? 4 : borderRadiusOuter\n });\n return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n }, _ref2 => {\n let {\n zIndexPopupBase,\n colorBgSpotlight\n } = _ref2;\n return {\n zIndexPopup: zIndexPopupBase + 70,\n colorBgDefault: colorBgSpotlight\n };\n });\n return useOriginHook(prefixCls);\n});","/* eslint-disable import/prefer-default-export */\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n const isInternalColor = isPresetColor(color);\n const className = classNames({\n [`${prefixCls}-${color}`]: color && isInternalColor\n });\n const overlayStyle = {};\n const arrowStyle = {};\n if (color && !isInternalColor) {\n overlayStyle.background = color;\n // @ts-ignore\n arrowStyle['--antd-arrow-background-color'] = color;\n }\n return {\n className,\n overlayStyle,\n arrowStyle\n };\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isValidElement, isFragment } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst splitObject = (obj, keys) => {\n const picked = {};\n const omitted = Object.assign({}, obj);\n keys.forEach(key => {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked,\n omitted\n };\n};\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n const elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n const {\n picked,\n omitted\n } = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']);\n const spanStyle = Object.assign(Object.assign({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n const buttonStyle = Object.assign(Object.assign({}, omitted), {\n pointerEvents: 'none'\n });\n const child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, `${prefixCls}-disabled-compatible-wrapper`)\n }, child);\n }\n return element;\n}\nconst Tooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n openClassName,\n getTooltipContainer,\n overlayClassName,\n color,\n overlayInnerStyle,\n children,\n afterOpenChange,\n afterVisibleChange\n } = props;\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`) : void 0;\n });\n }\n const [open, setOpen] = useMergedState(false, {\n value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n });\n const isNoTitle = () => {\n const {\n title,\n overlay\n } = props;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n const onOpenChange = vis => {\n var _a, _b;\n setOpen(isNoTitle() ? false : vis);\n if (!isNoTitle()) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n const getTooltipPlacements = () => {\n const {\n builtinPlacements,\n arrowPointAtCenter = false,\n autoAdjustOverflow = true\n } = props;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter,\n autoAdjustOverflow\n });\n };\n // 动态设置动画点\n const onPopupAlign = (domNode, align) => {\n const placements = getTooltipPlacements();\n // 当前返回的位置\n const placement = Object.keys(placements).find(key => {\n var _a, _b;\n return placements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && placements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (placement) {\n // 根据当前坐标设置动画点\n const rect = domNode.getBoundingClientRect();\n const transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = `${rect.height - align.offset[1]}px`;\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = `${-align.offset[1]}px`;\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = `${rect.width - align.offset[0]}px`;\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = `${-align.offset[0]}px`;\n }\n domNode.style.transformOrigin = `${transformOrigin.left} ${transformOrigin.top}`;\n }\n };\n const getOverlay = () => {\n const {\n title,\n overlay\n } = props;\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n };\n const {\n getPopupContainer,\n placement = 'top',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle\n } = props,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const injectFromPopover = props['data-popover-inject'];\n let tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && isNoTitle()) {\n tempOpen = false;\n }\n const child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n const childProps = child.props;\n const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, {\n [openClassName || `${prefixCls}-open`]: true\n }) : childProps.className;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls, !injectFromPopover);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const arrowContentStyle = colorInfo.arrowStyle;\n const customOverlayClassName = classNames(overlayClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, colorInfo.className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, otherProps, {\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n overlayStyle: Object.assign(Object.assign({}, arrowContentStyle), overlayStyle),\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-arrow-content`\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","import * as React from 'react';\nimport { Popup } from 'rc-tooltip';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n// ant-tooltip css-dev-only-do-not-override-w2s56n ant-tooltip-placement-top ant-tooltip-hidden\nexport default function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls,\n className,\n placement = 'top',\n title,\n color,\n overlayInnerStyle\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, true);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const arrowContentStyle = colorInfo.arrowStyle;\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className),\n style: arrowContentStyle\n }, /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls,\n overlayInnerStyle: formattedOverlayInnerStyle\n }), title)));\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n \r\n var converted = conversions[targetUnit][sourceUnit] * value;\r\n \r\n if (precision !== false) {\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round(converted * precision) / precision;\r\n }\r\n \r\n return converted;\r\n};\r\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","const HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\n\nconst { keys } = Object;\n\ntype Cache = {\n add: (value: any) => void;\n has: (value: any) => boolean;\n};\n\nexport type EqualityComparator = (a: any, b: any, meta?: any) => boolean;\n\n/**\n * are the values passed strictly equal or both NaN\n *\n * @param a the value to compare against\n * @param b the value to test\n * @returns are the values equal by the SameValueZero principle\n */\nexport function sameValueZeroEqual(a: any, b: any) {\n return a === b || (a !== a && b !== b);\n}\n\n/**\n * is the value a plain object\n *\n * @param value the value to test\n * @returns is the value a plain object\n */\nexport function isPlainObject(value: any) {\n return value.constructor === Object || value.constructor == null;\n}\n\n/**\n * is the value promise-like (meaning it is thenable)\n *\n * @param value the value to test\n * @returns is the value promise-like\n */\nexport function isPromiseLike(value: any) {\n return !!value && typeof value.then === 'function';\n}\n\n/**\n * is the value passed a react element\n *\n * @param value the value to test\n * @returns is the value a react element\n */\nexport function isReactElement(value: any) {\n return !!(value && value.$$typeof);\n}\n\n/**\n * in cases where WeakSet is not supported, creates a new custom\n * object that mimics the necessary API aspects for cache purposes\n *\n * @returns the new cache object\n */\nexport function getNewCacheFallback(): Cache {\n const values: any[] = [];\n\n return {\n add(value: any) {\n values.push(value);\n },\n\n has(value: any) {\n return values.indexOf(value) !== -1;\n },\n };\n}\n\n/**\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const getNewCache = ((canUseWeakMap: boolean) => {\n if (canUseWeakMap) {\n return function _getNewCache(): Cache {\n return new WeakSet();\n };\n }\n\n return getNewCacheFallback;\n})(HAS_WEAKSET_SUPPORT);\n\n/**\n * create a custom isEqual handler specific to circular objects\n *\n * @param [isEqual] the isEqual comparator to use instead of isDeepEqual\n * @returns the method to create the `isEqual` function\n */\nexport function createCircularEqualCreator(isEqual?: EqualityComparator) {\n return function createCircularEqual(comparator: EqualityComparator) {\n const _comparator = isEqual || comparator;\n\n return function circularEqual(\n a: any,\n b: any,\n cache: Cache = getNewCache(),\n ) {\n const isCacheableA = !!a && typeof a === 'object';\n const isCacheableB = !!b && typeof b === 'object';\n\n if (isCacheableA || isCacheableB) {\n const hasA = isCacheableA && cache.has(a);\n const hasB = isCacheableB && cache.has(b);\n\n if (hasA || hasB) {\n return hasA && hasB;\n }\n\n if (isCacheableA) {\n cache.add(a);\n }\n\n if (isCacheableB) {\n cache.add(b);\n }\n }\n\n return _comparator(a, b, cache);\n };\n };\n}\n\n/**\n * are the arrays equal in value\n *\n * @param a the array to test\n * @param b the array to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the arrays equal\n */\nexport function areArraysEqual(\n a: any[],\n b: any[],\n isEqual: EqualityComparator,\n meta: any,\n) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!isEqual(a[index], b[index], meta)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * are the maps equal in value\n *\n * @param a the map to test\n * @param b the map to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta map to pass through\n * @returns are the maps equal\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue, aKey) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue, bKey) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch =\n isEqual(aKey, bKey, meta) && isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n\ntype Dictionary = {\n [key: string]: Type;\n [index: number]: Type;\n};\n\nconst OWNER = '_owner';\n\nconst hasOwnProperty = Function.prototype.bind.call(\n Function.prototype.call,\n Object.prototype.hasOwnProperty,\n);\n\n/**\n * are the objects equal in value\n *\n * @param a the object to test\n * @param b the object to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the objects equal\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n isEqual: EqualityComparator,\n meta: any,\n) {\n const keysA = keys(a);\n\n let index = keysA.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n if (index) {\n let key: string;\n\n while (index-- > 0) {\n key = keysA[index];\n\n if (key === OWNER) {\n const reactElementA = isReactElement(a);\n const reactElementB = isReactElement(b);\n\n if (\n (reactElementA || reactElementB) &&\n reactElementA !== reactElementB\n ) {\n return false;\n }\n }\n\n if (!hasOwnProperty(b, key) || !isEqual(a[key], b[key], meta)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * are the regExps equal in value\n *\n * @param a the regExp to test\n * @param b the regExp to test agains\n * @returns are the regExps equal\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp) {\n return (\n a.source === b.source &&\n a.global === b.global &&\n a.ignoreCase === b.ignoreCase &&\n a.multiline === b.multiline &&\n a.unicode === b.unicode &&\n a.sticky === b.sticky &&\n a.lastIndex === b.lastIndex\n );\n}\n\n/**\n * are the sets equal in value\n *\n * @param a the set to test\n * @param b the set to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta set to pass through\n * @returns are the sets equal\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch = isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n","import {\n EqualityComparator,\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areRegExpsEqual,\n areSetsEqual,\n isPlainObject,\n isPromiseLike,\n sameValueZeroEqual,\n} from './utils';\n\nconst HAS_MAP_SUPPORT = typeof Map === 'function';\nconst HAS_SET_SUPPORT = typeof Set === 'function';\n\ntype EqualityComparatorCreator = (fn: EqualityComparator) => EqualityComparator;\n\nexport function createComparator(createIsEqual?: EqualityComparatorCreator) {\n const isEqual: EqualityComparator =\n /* eslint-disable no-use-before-define */\n typeof createIsEqual === 'function'\n ? createIsEqual(comparator)\n : comparator;\n /* eslint-enable */\n\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n *\n * @param a the value to test against\n * @param b the value to test\n * @param [meta] an optional meta object that is passed through to all equality test calls\n * @returns are a and b equivalent in value\n */\n function comparator(a: any, b: any, meta?: any) {\n if (a === b) {\n return true;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (isPlainObject(a) && isPlainObject(b)) {\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n let aShape = Array.isArray(a);\n let bShape = Array.isArray(b);\n\n if (aShape || bShape) {\n return aShape === bShape && areArraysEqual(a, b, isEqual, meta);\n }\n\n aShape = a instanceof Date;\n bShape = b instanceof Date;\n\n if (aShape || bShape) {\n return (\n aShape === bShape && sameValueZeroEqual(a.getTime(), b.getTime())\n );\n }\n\n aShape = a instanceof RegExp;\n bShape = b instanceof RegExp;\n\n if (aShape || bShape) {\n return aShape === bShape && areRegExpsEqual(a, b);\n }\n\n if (isPromiseLike(a) || isPromiseLike(b)) {\n return a === b;\n }\n\n if (HAS_MAP_SUPPORT) {\n aShape = a instanceof Map;\n bShape = b instanceof Map;\n\n if (aShape || bShape) {\n return aShape === bShape && areMapsEqual(a, b, isEqual, meta);\n }\n }\n\n if (HAS_SET_SUPPORT) {\n aShape = a instanceof Set;\n bShape = b instanceof Set;\n\n if (aShape || bShape) {\n return aShape === bShape && areSetsEqual(a, b, isEqual, meta);\n }\n }\n\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n return a !== a && b !== b;\n }\n\n return comparator;\n}\n","import { createComparator } from './comparator';\nimport { createCircularEqualCreator, sameValueZeroEqual } from './utils';\n\nexport { createComparator as createCustomEqual, sameValueZeroEqual };\n\nexport const deepEqual = createComparator();\nexport const shallowEqual = createComparator(() => sameValueZeroEqual);\n\nexport const circularDeepEqual = createComparator(createCircularEqualCreator());\nexport const circularShallowEqual = createComparator(\n createCircularEqualCreator(sameValueZeroEqual),\n);\n","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 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\nmodule.exports = apply;\n","/**\n * A specialized version of `_.every` 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 {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(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 false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\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 baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\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","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\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 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 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 baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\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 `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\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 baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\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 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","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\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 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","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\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","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\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","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\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\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\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\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection 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 baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\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","var trimmedEndIndex = require('./_trimmedEndIndex');\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\nmodule.exports = baseTrim;\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","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\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 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 baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\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 castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\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 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 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 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","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\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","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\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 eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\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\nmodule.exports = isIterateeCall;\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","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 apply = require('./_apply');\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\nmodule.exports = overRest;\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 baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\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\nmodule.exports = setToString;\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\nmodule.exports = shortOut;\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","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\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","/** 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\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\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\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\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\nmodule.exports = debounce;\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 arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\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} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.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 flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\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 baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or 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 boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\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 baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\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 isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\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 `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\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 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","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\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 baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.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 the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\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 baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\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\nmodule.exports = now;\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","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\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} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\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|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\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 debounce = require('./debounce'),\n isObject = require('./isObject');\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\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\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\nmodule.exports = toNumber;\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","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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 = 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","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record;\n\n constructor(\n errors: ValidateError[],\n fields: Record,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise {\n if (option.first) {\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge(target: T, source: Partial): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise;\n validate(source: Values, callback: ValidateCallback): Promise;\n validate(source: Values): Promise;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise).then) {\n (res as Promise).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from './get';\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nfunction cloneDeep(val) {\n if (Array.isArray(val)) {\n return cloneArrayDeep(val);\n } else if (_typeof(val) === 'object' && val !== null) {\n return cloneObjectDeep(val);\n }\n return val;\n}\nfunction cloneObjectDeep(val) {\n if (Object.getPrototypeOf(val) === Object.prototype) {\n var res = {};\n for (var key in val) {\n res[key] = cloneDeep(val[key]);\n }\n return res;\n }\n return val;\n}\nfunction cloneArrayDeep(val) {\n return val.map(function (item) {\n return cloneDeep(item);\n });\n}\nexport default cloneDeep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nimport cloneDeep from '../utils/cloneDeep';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var newStore = set(store, namePath, value, removeIfUndefined);\n return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n if (!values) {\n return newStore;\n }\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key];\n // If both are object (but target is not array), we use recursion to set deep value\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : cloneDeep(value); // Clone deep for arrays\n });\n\n return newStore;\n}\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { setValues } from './valueUtil';\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = setValues({}, defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 9;\n _context2.next = 12;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 12:\n _context2.next = 17;\n break;\n case 14:\n _context2.prev = 14;\n _context2.t0 = _context2[\"catch\"](9);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 17:\n if (!(!result.length && subRuleField)) {\n _context2.next = 22;\n break;\n }\n _context2.next = 20;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 20:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 22:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 25:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[9, 14]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n // Register on init\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n };\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n };\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n onMetaChange === null || onMetaChange === void 0 ? void 0 : onMetaChange(_objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n }));\n };\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n }\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n var filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n };\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n };\n _this.getErrors = function () {\n return _this.errors;\n };\n _this.getWarnings = function () {\n return _this.warnings;\n };\n _this.isListField = function () {\n return _this.props.isListField;\n };\n _this.isList = function () {\n return _this.props.isList;\n };\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath()\n };\n return meta;\n };\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n };\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n };\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n};\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n this.kvs = new Map();\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\", \"errors\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport cloneDeep from './utils/cloneDeep';\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n this.prevWithoutPreserves = null;\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = setValues({}, initialValues, _this.store);\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n };\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n // Not cloneDeep when without `namePath`\n return namePath.length ? cloneDeep(initValue) : initValue;\n };\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n this.watchList = [];\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n _this.watchList.forEach(function (callback) {\n callback(values, namePath);\n });\n }\n };\n this.timeoutId = null;\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n };\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n };\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n };\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n };\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n };\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n };\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(setValues({}, _this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n };\n this.setFields = function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n };\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n };\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n };\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n };\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = setValues(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n };\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n };\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n };\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n // Collect result in promise list\n var promiseList = [];\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n if (\n // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n }\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n return returnPromise;\n };\n this.submit = function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm;\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n }\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { FieldContext } from '.';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n form = args[1];\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (store) {\n var newValue = getValue(store, namePathRef.current);\n var nextValueStr = stringify(newValue);\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n // TODO: We can improve this perf in future\n var initialValue = getValue(getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer'; // Use shared variable to save bundle size\n\nvar UNDEFINED = undefined;\n\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n responsiveDisabled = props.responsiveDisabled,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var mergedHidden = responsive && !display; // ================================ Effect ================================\n\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []); // ================================ Render ================================\n\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n\n var overflowProps = {};\n\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n },\n disabled: responsiveDisabled\n }, itemNode);\n }\n\n return itemNode;\n}\n\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n _excluded2 = [\"className\"],\n _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './Overflow';\n\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext); // Render directly when context not provided\n\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, _excluded);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, _excluded2);\n\n var className = props.className,\n restProps = _objectWithoutProperties(props, _excluded3); // Do not pass context to sub item to avoid multiple measure\n\n\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\n\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport { useBatchFrameState } from './hooks/useBatchFrameState';\nimport RawItem from './RawItem';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\n\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\n\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var createUseState = useBatchFrameState();\n var fullySSR = ssr === 'full';\n\n var _createUseState = createUseState(null),\n _createUseState2 = _slicedToArray(_createUseState, 2),\n containerWidth = _createUseState2[0],\n setContainerWidth = _createUseState2[1];\n\n var mergedContainerWidth = containerWidth || 0;\n\n var _createUseState3 = createUseState(new Map()),\n _createUseState4 = _slicedToArray(_createUseState3, 2),\n itemWidths = _createUseState4[0],\n setItemWidths = _createUseState4[1];\n\n var _createUseState5 = createUseState(0),\n _createUseState6 = _slicedToArray(_createUseState5, 2),\n prevRestWidth = _createUseState6[0],\n setPrevRestWidth = _createUseState6[1];\n\n var _createUseState7 = createUseState(0),\n _createUseState8 = _slicedToArray(_createUseState7, 2),\n restWidth = _createUseState8[0],\n setRestWidth = _createUseState8[1];\n\n var _createUseState9 = createUseState(0),\n _createUseState10 = _slicedToArray(_createUseState9, 2),\n suffixWidth = _createUseState10[0],\n setSuffixWidth = _createUseState10[1];\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\"); // Always use the max width to avoid blink\n\n var mergedRestWidth = Math.max(prevRestWidth, restWidth); // ================================= Data =================================\n\n var isResponsive = maxCount === RESPONSIVE;\n var shouldResponsive = data.length && isResponsive;\n var invalidate = maxCount === INVALIDATE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n\n var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n\n if (shouldResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n\n return items;\n }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n var omittedItems = useMemo(function () {\n if (shouldResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n\n return data.slice(mergedData.length);\n }, [data, mergedData, shouldResponsive, mergedDisplayCount]); // ================================= Item =================================\n\n var getKey = useCallback(function (item, index) {\n var _ref;\n\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n\n function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n // React 18 will sync render even when the value is same in some case.\n // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n // ref: https://github.com/ant-design/ant-design/issues/36559\n if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n return;\n }\n\n setDisplayCount(count);\n\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n\n if (suffixFixedStartVal !== undefined) {\n setSuffixFixedStart(suffixFixedStartVal);\n }\n } // ================================= Size =================================\n\n\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n\n return clone;\n });\n }\n\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n } // ================================ Effect ================================\n\n\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n\n useLayoutEffect(function () {\n if (mergedContainerWidth && mergedRestWidth && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1; // When data count change to 0, reset this since not loop will reach\n\n if (!len) {\n updateDisplayCount(0, null);\n return;\n }\n\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i); // Fully will always render\n\n if (fullySSR) {\n currentItemWidth = currentItemWidth || 0;\n } // Break since data not ready\n\n\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, undefined, true);\n break;\n } // Find best match\n\n\n totalWidth += currentItemWidth;\n\n if ( // Only one means `totalWidth` is the final width\n lastIndex === 0 && totalWidth <= mergedContainerWidth || // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex, null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]); // ================================ Render ================================\n\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n\n if (suffixFixedStart !== null && shouldResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: shouldResponsive,\n component: itemComponent,\n invalidate: invalidate\n }; // >>>>> Choice render fun by `renderRawItem`\n\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n }; // >>>>> Rest node\n\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n responsive: isResponsive,\n responsiveDisabled: !shouldResponsive,\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize,\n disabled: !shouldResponsive\n }, overflowNode);\n }\n\n return overflowNode;\n}\n\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE; // Convert to generic type\n\nexport default ForwardOverflow;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * State generate. Return a `setState` but it will flush all state with one render to save perf.\n * This is not a realization of `unstable_batchedUpdates`.\n */\n\nexport function useBatchFrameState() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var statesRef = useRef([]);\n var walkingIndex = 0;\n var beforeFrameId = 0;\n\n function createState(defaultValue) {\n var myIndex = walkingIndex;\n walkingIndex += 1; // Fill value if not exist yet\n\n if (statesRef.current.length < myIndex + 1) {\n statesRef.current[myIndex] = defaultValue;\n } // Return filled as `setState`\n\n\n var value = statesRef.current[myIndex];\n\n function setValue(val) {\n statesRef.current[myIndex] = typeof val === 'function' ? val(statesRef.current[myIndex]) : val;\n raf.cancel(beforeFrameId); // Flush with batch\n\n beforeFrameId = raf(function () {\n forceUpdate({}, true);\n });\n }\n\n return [value, setValue];\n }\n\n return createState;\n}","import Overflow from './Overflow';\nexport default Overflow;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n/**\n * Get `data-menu-id`\n */\n\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport shallowEqual from 'shallowequal';\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\n\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\n\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !shallowEqual(prev[1], next[1]));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = []; // ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n} // ========================= Path Tracker ==========================\n\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n} // =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from \"../context/IdContext\"; // destruct to reduce minify size\n\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\n\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent'; // Inline enter is special that we use unique operation\n\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n\n case next:\n return {\n offset: 1,\n sibling: true\n };\n\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n\n case children:\n return {\n offset: 1,\n sibling: false\n };\n\n default:\n return null;\n }\n}\n\nfunction findContainerUL(element) {\n var current = element;\n\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n\n current = current.parentElement;\n } // Normally should not reach this line\n\n /* istanbul ignore next */\n\n\n return null;\n}\n/**\n * Find focused element within element set provided\n */\n\n\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n\n current = current.parentElement;\n }\n\n return null;\n}\n/**\n * Get focusable elements from the element set under provided container\n */\n\n\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\n\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n } // List current level menu item elements\n\n\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements); // Find next focus index\n\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n\n focusIndex = (focusIndex + count) % count; // Focus menu item\n\n return sameLevelFocusableMenuElementList[focusIndex];\n}\n\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key; // >>> Wrap as function since we use raf for some case\n\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n\n refreshElements(); // First we should find current focused MenuItem/SubMenu element\n\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which); // Some mode do not have fully arrow operation like inline\n\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n } // Arrow prevent default to avoid page scroll\n\n\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement; // Focus to link instead of menu item if possible\n\n var link = menuElement.querySelector('a');\n\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n } // Get next focus element\n\n\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n } // Focus menu item\n\n\n tryFocus(targetElement); // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey); // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId); // Get sub focusable menu item\n\n var targetElement = getNextFocusElement(subQueryContainer, elements); // Focus menu item\n\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey); // Focus menu item\n\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n } // Pass origin key down event\n\n\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\n\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\n\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\n\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n } // Fill map\n\n\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n\n return keys;\n };\n /**\n * Find current key related child path keys\n */\n\n\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import * as React from 'react';\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\n\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\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 (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n\n var ret = {\n active: activeKey === eventKey\n }; // Skip when disabled\n\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n\n return ret;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\n\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n\n return iconNode || children || null;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n\n if (mode !== 'inline') {\n return null;\n }\n\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport useActive from \"./hooks/useActive\";\nimport { warnItemProp } from \"./utils/warnUtil\";\nimport Icon from \"./Icon\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { useMenuId } from \"./context/IdContext\";\nimport PrivateContext from \"./context/PrivateContext\";\n\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n\n var _super = _createSuper(LegacyMenuItem);\n\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var passedProps = omit(restProps, ['eventKey']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\n\n\nvar InternalMenuItem = function InternalMenuItem(props) {\n var _classNames;\n\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n\n var domDataId = useMenuId(eventKey);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var connectedKeys = useFullPath(eventKey); // ================================ Warn ================================\n\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n } // ============================= Info =============================\n\n\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n }; // ============================= Icon =============================\n\n\n var mergedItemIcon = itemIcon || contextItemIcon; // ============================ Active ============================\n\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3); // ============================ Select ============================\n\n\n var selected = selectedKeys.includes(eventKey); // ======================== DirectionStyle ========================\n\n var directionStyle = useDirectionStyle(connectedKeys.length); // ============================ Events ============================\n\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e); // Legacy. Key will also trigger click event\n\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n\n\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n }; // ============================ Render ============================\n\n\n var optionRoleProps = {};\n\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: elementRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n\n return renderNode;\n};\n\nfunction MenuItem(props) {\n var eventKey = props.eventKey; // ==================== Record KeyPath ====================\n\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey); // eslint-disable-next-line consistent-return\n\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n\n if (measure) {\n return null;\n } // ======================== Render ========================\n\n\n return /*#__PURE__*/React.createElement(InternalMenuItem, props);\n}\n\nexport default MenuItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\n\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className)\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\n\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { Divider, MenuItem, MenuItemGroup, SubMenu } from '..';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n\n return child;\n });\n}\n\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index); // MenuItemGroup & SubMenuItem\n\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n } // Sub Menu\n\n\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n } // MenuItem & Divider\n\n\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\n\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n\n return parseChildren(childNodes, keyPath);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotion), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n }); // Delay to change visible\n\n\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode; // Always use latest mode check\n\n\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode; // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n\n var mergedOpen = sameModeRef.current ? open : false; // ================================= Effect =================================\n // Reset destroy state when mode change back\n\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]); // ================================= Render =================================\n\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions)); // No need appear since nest inlineCollapse changed\n\n\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n } // Hide inline list when mode changed and motion end\n\n\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n\n if (destroy) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/nodeUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\n\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var domDataId = useMenuId(eventKey);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef(); // ================================ Warn ================================\n\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n } // ================================ Icon ================================\n\n\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon; // ================================ Open ================================\n\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen; // =============================== Select ===============================\n\n var childrenSelected = isSubPathKey(selectedKeys, eventKey); // =============================== Active ===============================\n\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2); // Fallback of active check to avoid hover on menu title or disabled item\n\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]); // ========================== DirectionStyle ==========================\n\n var directionStyle = useDirectionStyle(connectedPath.length); // =============================== Events ===============================\n // >>>> Title click\n\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n }); // Trigger open by click when mode is `inline`\n\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n }; // >>>> Context for children click\n\n\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }); // >>>>> Visible change\n\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n\n\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n }; // =============================== Render ===============================\n\n\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\"); // >>>>> Title\n\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n }))); // Cache mode if it change to `inline` which do not have popup motion\n\n var triggerModeRef = React.useRef(mode);\n\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current; // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n } // >>>>> List node\n\n\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n } // >>>>> Render\n\n\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\n\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath); // ==================== Record KeyPath ====================\n\n var measure = useMeasure(); // eslint-disable-next-line consistent-return\n\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode; // ======================== Render ========================\n\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport shallowEqual from 'shallowequal';\nimport { getMenuId, IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n// optimize for render\n\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl'; // ========================= Warn =========================\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n } // ========================= Open =========================\n\n\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1]; // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n\n\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }\n\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n }; // >>>>> Cache & Reset open keys when inlineCollapsed changed\n\n\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n\n var mountRef = React.useRef(false); // ========================= Mode =========================\n\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n\n var isInlineMode = mergedMode === 'inline';\n\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n\n if (!mountRef.current) {\n return;\n } // Synchronously update MergedOpenKeys\n\n\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]); // ====================== Responsive ======================\n\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow; // Cache\n\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []); // ========================= Path =========================\n\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]); // ======================== Active ========================\n\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n }); // ======================== Select ========================\n // >>>>> Select keys\n\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1]; // >>>>> Trigger select\n\n\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n\n setMergedSelectKeys(newSelectKeys); // Trigger event\n\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n } // Whatever selectable, always close it\n\n\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n }; // ========================= Open =========================\n\n /**\n * Click for item. SubMenu do not have selection status\n */\n\n\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n\n if (!shallowEqual(mergedOpenKeys, newOpenKeys)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer); // ==================== Accessibility =====================\n\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown); // ======================== Effect ========================\n\n React.useEffect(function () {\n setMounted(true);\n }, []); // ======================= Context ========================\n\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]); // ======================== Render ========================\n // >>>>> Children\n\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList : // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n }); // >>>>> Container\n\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps)); // >>>>> Render\n\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl // Disabled\n ,\n disabled: disabled // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive // Selection\n ,\n selectedKeys: mergedSelectKeys // Level\n ,\n inlineIndent: inlineIndent // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { parseChildren } from \"./utils/nodeUtil\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\n\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({}, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\n\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n\n if (measure) {\n return childList;\n }\n\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n\n var measure = useMeasure();\n\n if (measure) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider,\n/** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useNextFrame from './useNextFrame';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n function getDomElement() {\n return getElement();\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var currentActive = activeRef.current;\n var canEnd;\n\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []); // Trigger `onVisibleChanged`\n\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n } // Auto inject ref if child node not have `ref` props\n\n\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _motionChildren = motionChildren,\n originNodeRef = _motionChildren.ref;\n\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\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 = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n\n _this.setState({\n keyEntities: nextKeyEntities\n });\n\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n } // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 ? void 0 : onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { observe, unobserve } from '../utils/observerUtil';\nimport DomWrapper from './DomWrapper';\nimport { CollectionContext } from '../Collection';\nexport default function SingleObserver(props) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = React.useMemo(function () {\n return composeRef(originRef, elementRef);\n }, [originRef, elementRef]);\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current);\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from './SingleObserver';\nimport { Collection } from './Collection';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nfunction ResizeObserver(props) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key\n }), child);\n });\n}\nResizeObserver.Collection = Collection;\nexport default ResizeObserver;","import * as React from 'react';\nimport classNames from 'classnames';\nexport default function Popup(props) {\n var showArrow = props.showArrow,\n arrowContent = props.arrowContent,\n children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, showArrow !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Popup from './Popup';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n showArrow = props.showArrow,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n showArrow: showArrow,\n arrowContent: arrowContent,\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nimport Popup from './Popup';\nexport { Popup };\nexport default Tooltip;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var parentRef = useRef();\n var containerRef = useRef();\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, function () {\n return {};\n });\n // Create container in client side with sync to avoid useEffect not get ref\n var initRef = useRef(false);\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n parentRef.current = containerRef.current.parentNode;\n initRef.current = true;\n }\n // [Legacy] Used by `rc-trigger`\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n // Restore container to original place\n // React 18 StrictMode will unmount first and mount back for effect test:\n // https://reactjs.org/blog/2022/03/29/react-v18.html#new-strict-mode-behaviors\n if (containerRef.current.parentNode === null && parentRef.current !== null) {\n parentRef.current.appendChild(containerRef.current);\n }\n return function () {\n var _containerRef$current, _containerRef$current2;\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/legacyUtil\";\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0),\n };\n }\n return {\n x: 0,\n y: 0,\n };\n}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top);\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? Math.floor(elem.getBoundingClientRect().width)\n : Math.floor(elem.getBoundingClientRect().height);\n const isBorderBox = isBorderBoxFn(elem);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which)\n : getPBMWidth(elem, ['margin'], which))\n );\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if (\n (navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n (el !== body &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n const bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n const win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win),\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1]),\n };\n}\n\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let n;\n if (/%$/.test(str)) {\n n = (parseInt(str.substring(0, str.length - 1), 10) / 100) * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport { alignElement, alignPoint } from 'dom-align';\nimport isEqual from \"rc-util/es/isEqual\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useBuffer from \"./hooks/useBuffer\";\nimport { isSamePoint, monitorResize, restoreFocus } from \"./util\";\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n /** Popup node ref */\n\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n var source = nodeRef.current;\n\n if (!latestDisabled && latestTarget && source) {\n var _result;\n\n var _element = getElement(latestTarget);\n\n var _point = getPoint(latestTarget);\n\n cacheRef.current.element = _element;\n cacheRef.current.point = _point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (_element && isVisible(_element)) {\n _result = alignElement(source, _element, latestAlign);\n } else if (_point) {\n _result = alignPoint(source, _point, latestAlign);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && _result) {\n latestOnAlign(source, _result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Handle props change\n\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n point = _React$useState4[0],\n setPoint = _React$useState4[1];\n\n useLayoutEffect(function () {\n setElement(getElement(target));\n setPoint(getPoint(target));\n });\n React.useEffect(function () {\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign();\n }\n }); // Watch popup element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(nodeRef.current, _forceAlign);\n return cancelFn;\n }, [nodeRef.current]); // Watch target element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(element, _forceAlign);\n return cancelFn;\n }, [element]); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n React.useEffect(function () {\n if (monitorWindowResize) {\n var cancelFn = addEventListener(window, 'resize', _forceAlign);\n return cancelFn.remove;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n cancelTrigger();\n\n if (!calledRef.current || force === true) {\n if (callback(force) === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import utils from '../utils';\nimport doAlign from './align';\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","// export this package's api\nimport Align from \"./Align\";\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * Popup should follow the steps for each component work correctly:\n * measure - check for the current stretch size\n * align - let component align the position\n * aligned - re-align again in case additional className changed the size\n * afterAlign - choice next step is trigger motion or finished\n * beforeMotion - should reset motion to invisible so that CSSMotion can do normal motion\n * motion - play the motion\n * stable - everything is done\n */\n\nvar StatusQueue = ['measure', 'alignPre', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function setStatus(nextStatus) {\n setInternalStatus(nextStatus, true);\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from \"./useVisibleStatus\";\nimport { getMotion } from \"../utils/legacyUtil\";\nimport useStretchStyle from \"./useStretchStyle\";\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart,\n onClick = props.onClick;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n /**\n * `alignedClassName` may modify `source` size,\n * which means one time align may not move to the correct position at once.\n *\n * We will reset `alignTimes` for each status switch to `alignPre`\n * and let `rc-align` to align for multiple times to ensure get final stable place.\n * Currently we mark `alignTimes < 2` repeat align, it will increase if user report for align issue.\n * \n * Update:\n * In React 18. `rc-align` effect of align may faster than ref called trigger `forceAlign`.\n * We adjust this to `alignTimes < 2`.\n * We need refactor `rc-align` to support mark of `forceAlign` call if this still happen.\n */\n\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n alignTimes = _useState4[0],\n setAlignTimes = _useState4[1];\n\n var prepareResolveRef = useRef();\n useLayoutEffect(function () {\n if (status === 'alignPre') {\n setAlignTimes(0);\n }\n }, [status]); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n } // We will retry multi times to make sure that the element has been align in the right position.\n\n\n setAlignTimes(function (val) {\n return val + 1;\n });\n\n if (status === 'align') {\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // Delay to go to next status\n\n\n useLayoutEffect(function () {\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignTimes < 3) {\n forceAlign();\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n }\n }, [alignTimes]); // ======================== Motion ========================\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n // Cannot interact with disappearing elements\n // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714\n pointerEvents: !visible && status !== 'stable' ? 'none' : undefined\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if (align !== null && align !== void 0 && align.points && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n var tgtWidth = element.offsetWidth,\n tgtHeight = element.offsetHeight;\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n width = _element$getBoundingC.width,\n height = _element$getBoundingC.height; // Rect is more accurate than offset, use if near\n\n\n if (Math.abs(tgtWidth - width) < 1 && Math.abs(tgtHeight - height) < 1) {\n tgtWidth = width;\n tgtHeight = height;\n }\n\n setTargetSize({\n width: tgtWidth,\n height: tgtHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender,\n onClick = props.onClick;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from \"./Mask\";\nimport PopupInner from \"./PopupInner\";\nimport MobilePopupInner from \"./MobilePopupInner\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from \"./utils/alignUtil\";\nimport Popup from \"./Popup\";\nimport TriggerContext from \"./context\";\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n // ensure `getContainer` will be called only once\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"popupRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"triggerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"portalContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"attachId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"clickOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"touchOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler1\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler2\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mouseDownTimeout\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focusTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preClickTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preTouchTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"delayTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasPopupMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseMove\", function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseEnter\", function () {\n _this.clearDelayTimer();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseLeave\", function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenuClose\", function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseDown\", function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootDomNode\", function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopupClassNameFromAlign\", function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getComponent\", function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender,\n onPopupClick = _this$props2.onPopupClick;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender,\n onClick: onPopupClick\n }), typeof popup === 'function' ? popup() : popup);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"attachParent\", function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getContainer\", function () {\n if (!_this.portalContainer) {\n // In React.StrictMode component will call render multiple time in first mount.\n // When you want to refactor with FC, useRef will also init multiple time and\n // point to different useRef instance which will create multiple element\n // (This multiple render will not trigger effect so you can not clean up this\n // in effect). But this is safe with class component since it always point to same class instance.\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n _this.portalContainer = popupContainer;\n }\n\n _this.attachParent(_this.portalContainer);\n\n return _this.portalContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPoint\", function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePortalUpdate\", function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerContextValue\", {\n onPopupMouseDown: _this.onPopupMouseDown\n });\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n _defineProperty(Trigger, \"contextType\", TriggerContext);\n\n _defineProperty(Trigger, \"defaultProps\", {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n });\n\n return Trigger;\n}\nexport default generateTrigger(Portal);","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from './canUseDom';\nimport contains from './contains';\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n if (csp === null || csp === void 0 ? void 0 : csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if (((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n return ReactDOM.findDOMNode(node);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from './isVisible';\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\n\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof HTMLElement && element.offsetParent) {\n return true;\n }\n if (element instanceof SVGGraphicsElement && element.getBBox) {\n var _element$getBBox = element.getBBox(),\n width = _element$getBBox.width,\n height = _element$getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element instanceof HTMLElement && element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n return false;\n});","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n /**\n * END\n */\n END: 35,\n /**\n * HOME\n */\n HOME: 36,\n /**\n * LEFT\n */\n LEFT: 37,\n /**\n * UP\n */\n UP: 38,\n /**\n * RIGHT\n */\n RIGHT: 39,\n /**\n * DOWN\n */\n DOWN: 40,\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n /**\n * DELETE\n */\n DELETE: 46,\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n /**\n * DASH\n */\n DASH: 189,\n /**\n * EQUALS\n */\n EQUALS: 187,\n /**\n * COMMA\n */\n COMMA: 188,\n /**\n * PERIOD\n */\n PERIOD: 190,\n /**\n * SLASH\n */\n SLASH: 191,\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from '../Dom/canUseDom';\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nexport default useLayoutEffect;\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useLayoutEffect(function () {\n if (!firstMountRef.current) {\n return callback();\n }\n }, deps);\n // We tell react that first mount has passed\n useLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from './useEvent';\nimport { useLayoutUpdateEffect } from './useLayoutEffect';\nimport useState from './useState';\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from './warning';\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};\nexport default wrapperRaf;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nimport useMemo from './hooks/useMemo';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length === next.length && prev.every(function (ref, i) {\n return ref === next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n }\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\n/* eslint-enable */","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'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","/**\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&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(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=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(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=zh(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);th(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=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(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,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();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=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;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;Aj(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;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(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=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&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 Jj(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 Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);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(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(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 Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(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:Lg(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=Oj;Oj=!1;return n}\nfunction Qj(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&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(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 Sj(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 Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(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 Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(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 Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(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(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(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=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=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)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(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)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(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*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=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()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(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);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();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,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(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:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(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=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(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),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(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(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(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=ch(-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);Sg(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);Sg(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}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(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 al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(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 wh(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 yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(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 qj(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 Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(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 bl(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 cl(a,b,c,d,e,f,g,h,k){a=new bl(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};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\n\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n} // See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\n\n\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\n\nvar redacted = \"REDACTED (Potential Email Address)\";\n\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n\n return string;\n}\n\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || \"\";\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\n\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\n\nvar _format = _interopRequireDefault(require(\"./format\"));\n\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"],\n _excluded4 = [\"action\", \"category\", \"label\", \"value\", \"nonInteraction\", \"transport\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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 _typeof(obj) { \"@babel/helpers - typeof\"; 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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 _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\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n\n _classCallCheck(this, GA4);\n\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"https://www.googletagmanager.com/gtag/js?id=\".concat(GA_MEASUREMENT_ID);\n\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n\n _this._hasLoadedGA = true;\n }\n });\n\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n\n return prev;\n }, {});\n return gtagOptions;\n });\n\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n _options$legacyDimens = options.legacyDimensionMetric,\n legacyDimensionMetric = _options$legacyDimens === void 0 ? true : _options$legacyDimens,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode;\n _this._testMode = testMode;\n\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce);\n }\n\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _this._appendCustomMap(_objectSpread(_objectSpread(_objectSpread({\n // https://developers.google.com/analytics/devguides/collection/gtagjs/pages#disable_pageview_measurement\n send_page_view: false\n }, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions), legacyDimensionMetric);\n\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n });\n }\n\n _this.isInitialized = true;\n\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n\n _this._queueGtag = [];\n _this._isQueuing = false;\n\n while (queues.length) {\n var queue = queues.shift();\n\n _this._gtag.apply(_this, _toConsumableArray(queue));\n\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n\n _this._gaCommand(\"set\", fieldsObject);\n });\n\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n\n _this._gaCommandSendPageview(page, rest);\n }\n });\n\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n\n break;\n\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n\n break;\n\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n\n break;\n\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n\n break;\n\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n\n break;\n\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n\n while (queues.length) {\n var queue = queues.shift();\n\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n\n _this._isQueuing = true;\n }\n\n return _this.ga;\n });\n\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport,\n rest = _objectWithoutProperties(optionsOrName, _excluded4);\n\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(rest).filter(function (key) {\n return key.substr(0, \"dimension\".length) === \"dimension\";\n }).forEach(function (key) {\n fieldObject[key] = rest[key];\n });\n Object.keys(rest).filter(function (key) {\n return key.substr(0, \"metric\".length) === \"metric\";\n }).forEach(function (key) {\n fieldObject[key] = rest[key];\n });\n\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n\n _defineProperty(this, \"pageview\", function (path, _, title) {\n var pathTrim = path === null || path === void 0 ? void 0 : path.trim();\n\n if (pathTrim === \"\") {\n console.warn(\"path cannot be an empty string in .pageview()\");\n return;\n }\n\n _this._gaCommand(\"send\", \"pageview\", pathTrim, {\n title: title\n });\n });\n\n this.reset();\n }\n\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }, {\n key: \"_appendCustomMap\",\n value: function _appendCustomMap(options) {\n var legacyDimensionMetric = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!legacyDimensionMetric) {\n return options;\n }\n\n if (!options.custom_map) {\n options.custom_map = {};\n }\n\n for (var i = 1; i <= 200; i++) {\n if (!options.custom_map[\"dimension\".concat(i)]) {\n options.custom_map[\"dimension\".concat(i)] = \"dimension\".concat(i);\n }\n\n if (!options.custom_map[\"metric\".concat(i)]) {\n options.custom_map[\"metric\".concat(i)] = \"metric\".concat(i);\n }\n }\n\n return options;\n }\n /**\n * @since v1.0.2\n * @param {string} [path=\"location.href\"]\n * @param {string[]} [_] unsupported\n * @param {string} [title=\"location.pathname\"]\n * @deprecated Use `.send(\"pageview\")` instead\n */\n\n }, {\n key: \"outboundLink\",\n value:\n /**\n * @since v1.0.6\n * @param {Object} options\n * @param {string} options.label\n * @param {function} hitCallback\n * @deprecated Use `enhanced measurement` feature in Google Analytics.\n */\n function outboundLink(_ref3, hitCallback) {\n var label = _ref3.label;\n\n if (typeof hitCallback !== \"function\") {\n console.warn(\"hitCallback function is required\");\n return;\n }\n\n if (!label) {\n console.warn(\"args.label is required in outboundLink()\");\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: \"event\",\n eventCategory: \"Outbound\",\n eventAction: \"Click\",\n eventLabel: (0, _format[\"default\"])(label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA;\n\n this._gaCommand(\"send\", fieldObject);\n }\n }]);\n\n return GA4;\n}();\n\nexports.GA4 = GA4;\n\nvar _default = new GA4();\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof window !== \"undefined\") {\n var _window;\n\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n\n (_window = window).gtag.apply(_window, args);\n }\n};\n\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\n\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n NavigateOptions,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_enhanceManualRouteObjects as enhanceManualRouteObjects,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HydrationState,\n Router as RemixRouter,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n invariant,\n joinPaths,\n ErrorResponse,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_DataStaticRouterContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_enhanceManualRouteObjects,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware
.\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let href = useHref(to, { relative });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator } = React.useContext(NavigationContext);\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n \n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FormProps extends React.FormHTMLAttributes {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: FormMethod;\n\n /**\n * Normal `
` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\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 * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler;\n}\n\n/**\n * A `@remix-run/router`-aware ``. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef(\n (props, ref) => {\n return ;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n fetcherKey?: string;\n routeId?: string;\n}\n\nconst FormImpl = React.forwardRef(\n (\n {\n reloadDocument,\n replace,\n method = defaultMethod,\n action,\n onSubmit,\n fetcherKey,\n routeId,\n relative,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmitImpl(fetcherKey, routeId);\n let formMethod: FormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as FormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n method: submitMethod,\n replace,\n relative,\n });\n };\n\n return (\n \n );\n }\n);\n\nif (__DEV__) {\n FormImpl.displayName = \"FormImpl\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmitImpl = \"useSubmitImpl\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n getSearchParamsForLocation(\n location.search,\n defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\ntype SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null;\n\n/**\n * Submits a HTML `` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `` to be submitted to the server, a specific\n * `\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**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_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\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\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 className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _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.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This 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 an\n * 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: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\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 * @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 * @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 * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\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 * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\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\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\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\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM 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 * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/types';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var lineCoordinates = [];\n var lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound); // the right line of |--|\n\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n }); // the middle line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n }); // the left line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n\n var _xMin = xMid - width;\n\n var _xMax = xMid + width;\n\n var _yMin = _scale(value - lowBound);\n\n var _yMax = _scale(value + highBound); // the top line\n\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n }); // the middle line\n\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n }); // the bottom line\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","/**\n * @fileOverview Cross\n */\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\n\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n}\n\nfunction renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n}\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\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 _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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n\n var _super = _createSuper(Bar);\n\n function Bar() {\n var _this;\n\n _classCallCheck(this, Bar);\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 = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (onAnimationStart) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = filterProps(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n role: \"img\"\n }), Bar.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n layout = _this$props.layout,\n isAnimationActive = _this$props.isAnimationActive,\n animationBegin = _this$props.animationBegin,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n animationId = _this$props.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props2 = this.props,\n data = _this$props2.data,\n isAnimationActive = _this$props2.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = filterProps(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return Bar.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n data = _this$props3.data,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n layout = _this$props3.layout,\n children = _this$props3.children;\n var errorBarItems = findAllByType(children, ErrorBar.displayName);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n data = _this$props4.data,\n className = _this$props4.className,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n left = _this$props4.left,\n top = _this$props4.top,\n width = _this$props4.width,\n height = _this$props4.height,\n isAnimationActive = _this$props4.isAnimationActive,\n background = _this$props4.background,\n id = _this$props4.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n\n return null;\n }\n }, {\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = /*#__PURE__*/React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(PureComponent);\nBar.displayName = 'Bar';\nBar.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n};\n\nBar.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return null;\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell.displayName);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isFunction from \"lodash/isFunction\";\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 _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 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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var CartesianGrid = /*#__PURE__*/function (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n var _super = _createSuper(CartesianGrid);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n value:\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this.props), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(horizontal, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this2.props), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(vertical, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var roundedSortedVerticalPoints = verticalPoints.map(function (e) {\n return Math.round(e + x - x);\n }).sort(function (a, b) {\n return a - b;\n });\n\n if (x !== roundedSortedVerticalPoints[0]) {\n roundedSortedVerticalPoints.unshift(0);\n }\n\n var items = roundedSortedVerticalPoints.map(function (entry, i) {\n var lastStripe = !roundedSortedVerticalPoints[i + 1];\n var lineWidth = lastStripe ? x + width - entry : roundedSortedVerticalPoints[i + 1] - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: entry,\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var roundedSortedHorizontalPoints = horizontalPoints.map(function (e) {\n return Math.round(e + y - y);\n }).sort(function (a, b) {\n return a - b;\n });\n\n if (y !== roundedSortedHorizontalPoints[0]) {\n roundedSortedHorizontalPoints.unshift(0);\n }\n\n var items = roundedSortedHorizontalPoints.map(function (entry, i) {\n var lastStripe = !roundedSortedHorizontalPoints[i + 1];\n var lineHeight = lastStripe ? y + height - entry : roundedSortedHorizontalPoints[i + 1] - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: entry,\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n lineItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, filterProps(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n};","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var Cross = /*#__PURE__*/function (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n var _super = _createSuper(Cross);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-cross', className),\n d: Cross.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(PureComponent);\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n var _super = _createSuper(Sector);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis(props) {\n var _this;\n\n _classCallCheck(this, CartesianAxis);\n\n _this = _super.call(this, props);\n _this.layerReference = void 0;\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n } // todo Array\n\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref3, preserveEnd) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit,\n fontSize = _ref3.fontSize,\n letterSpacing = _ref3.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref4) {\n var ticks = _ref4.ticks,\n tickFormatter = _ref4.tickFormatter,\n viewBox = _ref4.viewBox,\n orientation = _ref4.orientation,\n minTickGap = _ref4.minTickGap,\n unit = _ref4.unit,\n fontSize = _ref4.fontSize,\n letterSpacing = _ref4.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};","function 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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/types';\n\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n\n if (!data || !data.length) {\n return {};\n }\n\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\n\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\n\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n var _super = _createSuper(Brush);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _super.call(this, props);\n _this.leaveTimer = void 0;\n _this.travellerDragStartHandlers = void 0;\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n\n _this.detachDragEndListener();\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n\n _this.attachDragEndListener();\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\nBrush.displayName = 'Brush';\nBrush.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n};","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\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 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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","import _isFunction from \"lodash/isFunction\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n};\n\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = getCoordinate(props);\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\n\nReferenceDot.renderDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n};","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n}; // TODO: ScaleHelper\n\n\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n};\n\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","import _isFunction from \"lodash/isFunction\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/types';\n\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n};\n\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\n\nReferenceArea.renderRect = function (option, props) {\n var rect;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n};","import { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine.displayName);\n var dots = findAllByType(children, ReferenceDot.displayName);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea.displayName);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { filterProps, adaptEventHandlers } from '../util/types';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n}; // use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\n\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer = // eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear = // eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\n\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n};\n\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n};\n\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n};\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var data = child.props.data;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\n\n\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n\n return null;\n};\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is catrgorical axis\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType, layout);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, layout, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && child.props.domain) {\n var axisDomain = child.props.domain;\n var isDomainValidate = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n\n if (isDomainValidate) {\n domain = axisDomain;\n }\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorical: isCategorical,\n layout: layout // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n};\n\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n\n\nvar createDefaultState = function createDefaultState(props) {\n var _brushItem$props, _brushItem$props2;\n\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush.displayName);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = (brushItem === null || brushItem === void 0 ? void 0 : (_brushItem$props = brushItem.props) === null || _brushItem$props === void 0 ? void 0 : _brushItem$props.endIndex) !== undefined ? brushItem === null || brushItem === void 0 ? void 0 : (_brushItem$props2 = brushItem.props) === null || _brushItem$props2 === void 0 ? void 0 : _brushItem$props2.endIndex : props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\n\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\n\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\n\n\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush.displayName);\n var legendItem = findChildByType(children, Legend.displayName);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\n\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class, _temp;\n\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n\n // 如果是bar,计算bar的位置\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n\n var composedFn = item && item.type && item.type.getComposedData;\n\n if (composedFn) {\n var _objectSpread7;\n\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n\n\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n var _super = _createSuper(CategoricalChartWrapper);\n\n // todo join specific chart propTypes\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _super.call(this, _props);\n _this.uniqueChartId = void 0;\n _this.clipPathId = void 0;\n _this.legendInstance = void 0;\n _this.deferId = void 0;\n _this.container = void 0;\n\n _this.clearDeferId = function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n\n _this.deferId = null;\n };\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n };\n\n _this.handleBrushChange = function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState);\n\n _this.triggerSyncEvent(_nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n\n _this.cancelThrottledTriggerAfterMouseMove();\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n var event = _get(_this.props, \"\".concat(eventName));\n\n if (eventName && _isFunction(event)) {\n var mouse;\n\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n\n var handler = event;\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState2);\n\n _this.triggerSyncEvent(_nextState2);\n\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n\n onMouseDown(_nextState3, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n\n onMouseUp(_nextState4, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.renderCursor = function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n\n var tooltipEventType = _this.getTooltipEventType();\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n };\n\n _this.renderLegend = function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n };\n\n _this.renderTooltip = function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderActivePoints = function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var tooltipEventType = _this.getTooltipEventType();\n\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n };\n\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n _this.state = {};\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip.displayName);\n\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n\n return defaultTooltipEventType;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var tooltipEvents = {};\n\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"]);\n\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n },\n role: \"region\"\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component), _class.displayName = chartName, _class.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps), _class.getDerivedStateFromProps = function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps); // Fixes https://github.com/recharts/recharts/issues/2143\n\n\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n\n return null;\n }, _class.renderActiveDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }, _temp;\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _upperFirst from \"lodash/upperFirst\";\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; 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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\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 = _super.call.apply(_super, [this].concat(args));\n _this.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\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 */\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\nexport function __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\nexport var __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\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\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","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","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root');\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\nmodule.exports = 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\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\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\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\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","/** 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","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 * 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 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 baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\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\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\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\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\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\nmodule.exports = throttle;\n","import debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nexport type patchResizeHandlerType = ReturnType | ReturnType | ResizeObserverCallback;\n\nexport const patchResizeHandler = (\n resizeCallback: ResizeObserverCallback,\n refreshMode: Props['refreshMode'],\n refreshRate: Props['refreshRate'],\n refreshOptions: Props['refreshOptions']\n): patchResizeHandlerType => {\n switch (refreshMode) {\n case 'debounce':\n return debounce(resizeCallback, refreshRate, refreshOptions);\n case 'throttle':\n return throttle(resizeCallback, refreshRate, refreshOptions);\n default:\n return resizeCallback;\n }\n};\n\nexport const isFunction = (fn: any): boolean => typeof fn === 'function';\n\nexport const isSSR = (): boolean => typeof window === 'undefined';\n\nexport const isDOMElement = (element: any): boolean => element instanceof Element || element instanceof HTMLDocument;\n\nexport const createNotifier =\n (\n onResize: Props['onResize'],\n setSize: React.Dispatch>,\n handleWidth: boolean,\n handleHeight: boolean\n ) =>\n ({ width, height }: ReactResizeDetectorDimensions): void => {\n setSize(prev => {\n if (prev.width === width && prev.height === height) {\n // skip if dimensions haven't changed\n return prev;\n }\n\n if ((prev.width === width && !handleHeight) || (prev.height === height && !handleWidth)) {\n // process `handleHeight/handleWidth` props\n return prev;\n }\n\n if (onResize && isFunction(onResize)) {\n onResize(width, height);\n }\n\n return { width, height };\n });\n };\n","import * as React from 'react';\nimport { PureComponent, isValidElement, cloneElement, createRef, ReactNode, ReactElement, RefObject } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport { patchResizeHandler, isFunction, isSSR, isDOMElement, createNotifier } from './utils';\n\nexport interface ReactResizeDetectorDimensions {\n height?: number;\n width?: number;\n}\n\ninterface ChildFunctionProps extends ReactResizeDetectorDimensions {\n targetRef?: RefObject;\n}\n\nexport interface Props {\n /**\n * Function that will be invoked with observable element's width and height.\n * Default: undefined\n */\n onResize?: (width?: number, height?: number) => void;\n /**\n * Trigger update on height change.\n * Default: true\n */\n handleHeight?: boolean;\n /**\n * Trigger onResize on width change.\n * Default: true\n */\n handleWidth?: boolean;\n /**\n * Do not trigger update when a component mounts.\n * Default: false\n */\n skipOnMount?: boolean;\n /**\n * Changes the update strategy. Possible values: \"throttle\" and \"debounce\".\n * See `lodash` docs for more information https://lodash.com/docs/\n * undefined - callback will be fired for every frame.\n * Default: undefined\n */\n refreshMode?: 'throttle' | 'debounce';\n /**\n * Set the timeout/interval for `refreshMode` strategy\n * Default: undefined\n */\n refreshRate?: number;\n /**\n * Pass additional params to `refreshMode` according to lodash docs\n * Default: undefined\n */\n refreshOptions?: { leading?: boolean; trailing?: boolean };\n /**\n * These options will be used as a second parameter of `resizeObserver.observe` method\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/observe\n * Default: undefined\n */\n observerOptions?: ResizeObserverOptions;\n}\n\nexport interface ComponentsProps extends Props {\n /**\n * A selector of an element to observe.\n * You can use this property to attach resize-observer to any DOM element.\n * Please refer to the querySelector docs.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n querySelector?: string;\n /**\n * Valid only for a callback-pattern.\n * Ignored for other render types.\n * Set resize-detector's node type.\n * You can pass any valid React node: string with node's name or element.\n * Can be useful when you need to handle table's or paragraph's resizes.\n * Default: \"div\"\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n nodeType?: keyof JSX.IntrinsicElements; // will be passed to React.createElement()\n /**\n * A DOM element to observe.\n * By default it's a parent element in relation to the ReactResizeDetector component.\n * But you can pass any DOM element to observe.\n * This property is omitted when you pass querySelector.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 6.0.0.\n * Use targetRef instead\n */\n targetDomEl?: ElementT;\n /**\n * A React reference of the element to observe.\n * Pass a reference to the element you want to attach resize handlers to.\n * It must be an instance of React.useRef or React.createRef functions\n * Default: undefined\n */\n targetRef?: RefObject;\n\n render?: (props: ReactResizeDetectorDimensions) => ReactNode;\n\n children?: ReactNode | ((props: ChildFunctionProps) => ReactNode);\n}\n\nclass ResizeDetector extends PureComponent<\n ComponentsProps,\n ReactResizeDetectorDimensions\n> {\n skipOnMount: boolean | undefined;\n targetRef;\n observableElement;\n resizeHandler;\n resizeObserver;\n constructor(props: ComponentsProps) {\n super(props);\n\n const { skipOnMount, refreshMode, refreshRate = 1000, refreshOptions } = props;\n\n this.state = {\n width: undefined,\n height: undefined\n };\n\n this.skipOnMount = skipOnMount;\n this.targetRef = createRef();\n this.observableElement = null;\n\n if (isSSR()) {\n return;\n }\n\n this.resizeHandler = patchResizeHandler(this.createResizeHandler, refreshMode, refreshRate, refreshOptions);\n this.resizeObserver = new window.ResizeObserver(this.resizeHandler);\n }\n\n componentDidMount(): void {\n this.attachObserver();\n }\n\n componentDidUpdate(): void {\n this.attachObserver();\n }\n\n componentWillUnmount(): void {\n if (isSSR()) {\n return;\n }\n this.observableElement = null;\n this.resizeObserver.disconnect();\n this.cancelHandler();\n }\n\n cancelHandler = (): void => {\n if (this.resizeHandler && this.resizeHandler.cancel) {\n // cancel debounced handler\n this.resizeHandler.cancel();\n this.resizeHandler = null;\n }\n };\n\n attachObserver = (): void => {\n const { targetRef, observerOptions } = this.props;\n\n if (isSSR()) {\n return;\n }\n\n if (targetRef && targetRef.current) {\n this.targetRef.current = targetRef.current;\n }\n\n const element = this.getElement();\n if (!element) {\n // can't find element to observe\n return;\n }\n\n if (this.observableElement && this.observableElement === element) {\n // element is already observed\n return;\n }\n\n this.observableElement = element;\n this.resizeObserver.observe(element, observerOptions);\n };\n\n getElement = (): Element | Text | null => {\n const { querySelector, targetDomEl } = this.props;\n\n if (isSSR()) return null;\n\n // in case we pass a querySelector\n if (querySelector) return document.querySelector(querySelector);\n // in case we pass a DOM element\n if (targetDomEl && isDOMElement(targetDomEl)) return targetDomEl;\n // in case we pass a React ref using React.createRef()\n if (this.targetRef && isDOMElement(this.targetRef.current)) return this.targetRef.current;\n\n // the worse case when we don't receive any information from the parent and the library doesn't add any wrappers\n // we have to use a deprecated `findDOMNode` method in order to find a DOM element to attach to\n const currentElement = findDOMNode(this);\n\n if (!currentElement) return null;\n\n const renderType = this.getRenderType();\n switch (renderType) {\n case 'renderProp':\n return currentElement;\n case 'childFunction':\n return currentElement;\n case 'child':\n return currentElement;\n case 'childArray':\n return currentElement;\n default:\n return currentElement.parentElement;\n }\n };\n\n createResizeHandler: ResizeObserverCallback = (entries): void => {\n const { handleWidth = true, handleHeight = true, onResize } = this.props;\n\n if (!handleWidth && !handleHeight) return;\n\n const notifyResize = createNotifier(onResize, this.setState.bind(this), handleWidth, handleHeight);\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !this.skipOnMount && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n this.skipOnMount = false;\n });\n };\n\n getRenderType = (): string => {\n const { render, children } = this.props;\n if (isFunction(render)) {\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'renderProp';\n }\n\n if (isFunction(children)) {\n return 'childFunction';\n }\n\n if (isValidElement(children)) {\n return 'child';\n }\n\n if (Array.isArray(children)) {\n // DEPRECATED. Wrap children with a single parent\n return 'childArray';\n }\n\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'parent';\n };\n\n render() {\n const { render, children, nodeType: WrapperTag = 'div' } = this.props;\n const { width, height } = this.state;\n\n const childProps = { width, height, targetRef: this.targetRef };\n const renderType = this.getRenderType();\n\n let typedChildren: any;\n\n switch (renderType) {\n case 'renderProp':\n return render && render(childProps);\n case 'childFunction':\n typedChildren = children as (props: ChildFunctionProps) => ReactNode;\n return typedChildren(childProps);\n case 'child':\n // @TODO bug prone logic\n typedChildren = children as ReactElement;\n if (typedChildren.type && typeof typedChildren.type === 'string') {\n // child is a native DOM elements such as div, span etc\n const { targetRef, ...nativeProps } = childProps;\n return cloneElement(typedChildren, nativeProps);\n }\n // class or functional component otherwise\n return cloneElement(typedChildren, childProps);\n case 'childArray':\n typedChildren = children as [ReactElement];\n return typedChildren.map((el: ReactElement) => !!el && cloneElement(el, childProps));\n default:\n return ;\n }\n }\n}\n\nexport default ResizeDetector;\n","import { useLayoutEffect, useEffect, useState, useRef, MutableRefObject } from 'react';\n\nimport { patchResizeHandler, createNotifier, isSSR } from './utils';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nconst useEnhancedEffect = isSSR() ? useEffect : useLayoutEffect;\n\ninterface FunctionProps extends Props {\n targetRef?: ReturnType;\n}\n\nfunction useResizeDetector(props: FunctionProps = {}): UseResizeDetectorReturn {\n const {\n skipOnMount = false,\n refreshMode,\n refreshRate = 1000,\n refreshOptions,\n handleWidth = true,\n handleHeight = true,\n targetRef,\n observerOptions,\n onResize\n } = props;\n\n const skipResize: MutableRefObject = useRef(skipOnMount);\n const localRef = useRef(null);\n const ref = (targetRef ?? localRef) as MutableRefObject;\n const resizeHandler = useRef();\n\n const [size, setSize] = useState({\n width: undefined,\n height: undefined\n });\n\n useEnhancedEffect(() => {\n if (isSSR()) {\n return;\n }\n\n const notifyResize = createNotifier(onResize, setSize, handleWidth, handleHeight);\n\n const resizeCallback: ResizeObserverCallback = entries => {\n if (!handleWidth && !handleHeight) return;\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !skipResize.current && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n skipResize.current = false;\n });\n };\n\n resizeHandler.current = patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions);\n\n const resizeObserver = new window.ResizeObserver(resizeHandler.current as ResizeObserverCallback);\n\n if (ref.current) {\n // Something wrong with typings here...\n resizeObserver.observe(ref.current as any, observerOptions);\n }\n\n return () => {\n resizeObserver.disconnect();\n const patchedResizeHandler = resizeHandler.current as any;\n if (patchedResizeHandler && patchedResizeHandler.cancel) {\n patchedResizeHandler.cancel();\n }\n };\n }, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);\n\n return { ref, ...size };\n}\n\nexport default useResizeDetector;\n\nexport interface UseResizeDetectorReturn extends ReactResizeDetectorDimensions {\n ref: MutableRefObject;\n}\n","import _debounce from \"lodash/debounce\";\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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport classNames from 'classnames';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect } from 'react';\nimport ReactResizeDetector from 'react-resize-detector';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n minWidth = _ref.minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className;\n\n var _useState = useState({\n containerWidth: -1,\n containerHeight: -1\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n\n var containerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return containerRef;\n }, [containerRef]);\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n mounted = _useState4[0],\n setMounted = _useState4[1];\n\n var getContainerSize = function getContainerSize() {\n if (!containerRef.current) {\n return null;\n }\n\n return {\n containerWidth: containerRef.current.clientWidth,\n containerHeight: containerRef.current.clientHeight\n };\n };\n\n var updateDimensionsImmediate = function updateDimensionsImmediate() {\n if (!mounted) {\n return;\n }\n\n var newSize = getContainerSize();\n\n if (newSize) {\n var oldWidth = sizes.containerWidth,\n oldHeight = sizes.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n setSizes({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n var handleResize = debounce > 0 ? _debounce(updateDimensionsImmediate, debounce) : updateDimensionsImmediate;\n\n var renderChart = function renderChart() {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n };\n\n useEffect(function () {\n if (mounted) {\n var size = getContainerSize();\n\n if (size) {\n setSizes(size);\n }\n }\n }, [mounted]);\n useEffect(function () {\n setMounted(true);\n }, []);\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return /*#__PURE__*/React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: handleResize,\n targetRef: containerRef\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, id != null ? {\n id: \"\".concat(id)\n } : {}, {\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: containerRef\n }), renderChart()));\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isNil from \"lodash/isNil\";\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport React, { Component } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\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 = _super.call.apply(_super, [this].concat(args));\n _this.state = {};\n return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor,\n fill: textProps.fill.includes('url') ? Text.defaultProps.fill : textProps.fill\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end',\n // Maintain compat with existing charts / default SVG behavior\n fill: '#808080'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n\n if (finalFormatter && value != null && name != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _ref = formatted;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n value = _ref2[0];\n name = _ref2[1];\n } else {\n value = formatted;\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\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 = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1,\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n };\n _this.wrapperNode = void 0;\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n reverseDirection = _this$props.reverseDirection,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var negative = coordinate[key] - tooltipDimension - offset;\n var positive = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n\n if (reverseDirection[key]) {\n var tooltipBoundary = negative;\n var viewBoxBoundary = viewBox[key];\n\n if (tooltipBoundary < viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n\n return Math.max(negative, viewBox[key]);\n } else {\n var _tooltipBoundary = positive + tooltipDimension;\n\n var _viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (_tooltipBoundary > _viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n\n return Math.max(positive, viewBox[key]);\n }\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight,\n dismissed = _this$state.dismissed;\n\n if (dismissed) {\n this.wrapperNode.blur();\n\n if (this.props.coordinate.x !== this.state.dismissedAtCoordinate.x || this.props.coordinate.y !== this.state.dismissedAtCoordinate.y) {\n this.setState({\n dismissed: false\n });\n }\n } else {\n this.wrapperNode.focus({\n preventScroll: true\n });\n }\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return (\n /*#__PURE__*/\n // ESLint is disabled to allow listening to the `Escape` key. Refer to\n // https://github.com/recharts/recharts/pull/2925\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n React.createElement(\"div\", {\n tabIndex: -1,\n role: \"dialog\",\n onKeyDown: function onKeyDown(event) {\n if (event.key === 'Escape') {\n _this2.setState({\n dismissed: true,\n dismissedAtCoordinate: _objectSpread(_objectSpread({}, _this2.state.dismissedAtCoordinate), {}, {\n x: _this2.props.coordinate.x,\n y: _this2.props.coordinate.y\n })\n });\n }\n },\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })))\n );\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n reverseDirection: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\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 _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\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\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 _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\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, true), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), /*#__PURE__*/React.createElement(\"title\", null, props.title), /*#__PURE__*/React.createElement(\"desc\", null, props.desc), children);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\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 = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\n\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (_isNil(axisType)) {\n return true;\n }\n\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n\n return true;\n};\n\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function 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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import _isNil from \"lodash/isNil\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\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\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in \n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcssValueParser = require('postcss-value-parser');\n\nvar _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);\n\nvar _parser = require('./parser');\n\nvar _reducer = require('./lib/reducer');\n\nvar _reducer2 = _interopRequireDefault(_reducer);\n\nvar _stringifier = require('./lib/stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eslint-disable-line\nvar MATCH_CALC = /((?:\\-[a-z]+\\-)?calc)/;\n\nexports.default = function (value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n\n return (0, _postcssValueParser2.default)(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;\n\n // stringify calc expression and produce an AST\n var contents = _postcssValueParser2.default.stringify(node.nodes);\n\n // skip constant() and env()\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents);\n\n // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n var reducedAst = (0, _reducer2.default)(ast, precision);\n\n // stringify AST and write it back\n node.type = 'word';\n node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cssUnitConverter = require('css-unit-converter');\n\nvar _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertNodes(left, right, precision) {\n switch (left.type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n return convertAbsoluteLength(left, right, precision);\n default:\n return { left: left, right: right };\n }\n}\n\nfunction convertAbsoluteLength(left, right, precision) {\n if (right.type === left.type) {\n right = {\n type: left.type,\n value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),\n unit: left.unit\n };\n }\n return { left: left, right: right };\n}\n\nexports.default = convertNodes;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2.default)(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n\n if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);\n\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n\n\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;\n\n // something + 0 => something\n // something - 0 => something\n if (right.value === 0) return left;\n\n // 0 + something => something\n if (left.value === 0 && op === \"+\") return right;\n\n // 0 - something => -something\n if (left.value === 0 && op === \"-\") return flipValue(right);\n\n // value + value\n // value - value\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n }\n\n // value (expr)\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n }\n // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n }\n\n // (expr) value\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n }\n // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n return reduce(node, precision);\n }\n }\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n\n if (node.right.value === 0) throw new Error('Cannot divide by zero');\n\n // (expr) / value\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n return node;\n }\n // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n }\n // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n }\n // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n }\n // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n case \"/\":\n return reduceDivisionExpression(node, precision);\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n return node;\n}\n\nexports.default = reduce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (calc, node, precision) {\n var str = stringify(node, precision);\n\n if (node.type === \"MathExpression\") {\n // if calc expression couldn't be resolved to a single value, re-wrap it as\n // a calc()\n str = calc + \"(\" + str + \")\";\n }\n return str;\n};\n\nvar _reducer = require(\"./reducer\");\n\nvar order = {\n \"*\": 0,\n \"/\": 0,\n \"+\": 1,\n \"-\": 1\n};\n\nfunction round(value, prec) {\n if (prec !== false) {\n var precision = Math.pow(10, prec);\n return Math.round(value * precision) / precision;\n }\n return value;\n}\n\nfunction stringify(node, prec) {\n switch (node.type) {\n case \"MathExpression\":\n {\n var left = node.left,\n right = node.right,\n op = node.operator;\n\n var str = \"\";\n\n if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += \"(\" + stringify(left, prec) + \")\";else str += stringify(left, prec);\n\n str += \" \" + node.operator + \" \";\n\n if (right.type === 'MathExpression' && order[op] < order[right.operator]) {\n str += \"(\" + stringify(right, prec) + \")\";\n } else if (right.type === 'MathExpression' && op === \"-\" && [\"+\", \"-\"].includes(right.operator)) {\n // fix #52 : a-(b+c) = a-b-c\n right.operator = (0, _reducer.flip)(right.operator);\n str += stringify(right, prec);\n } else {\n str += stringify(right, prec);\n }\n\n return str;\n }\n case \"Value\":\n return round(node.value, prec);\n case 'CssVariable':\n if (node.fallback) {\n return \"var(\" + node.value + \", \" + stringify(node.fallback, prec, true) + \")\";\n }\n return \"var(\" + node.value + \")\";\n case 'Calc':\n if (node.prefix) {\n return \"-\" + node.prefix + \"-calc(\" + stringify(node.value, prec) + \")\";\n }\n return \"calc(\" + stringify(node.value, prec) + \")\";\n default:\n return round(node.value, prec) + node.unit;\n }\n}\n\nmodule.exports = exports[\"default\"];","\n/* parser generated by jison 0.6.1-215 */\n\n/*\n * Returns a Parser object of the following structure:\n *\n * Parser: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a derivative/copy of this one,\n * not a direct reference!\n * }\n *\n * Parser.prototype: {\n * yy: {},\n * EOF: 1,\n * TERROR: 2,\n *\n * trace: function(errorMessage, ...),\n *\n * JisonParserError: function(msg, hash),\n *\n * quoteName: function(name),\n * Helper function which can be overridden by user code later on: put suitable\n * quotes around literal IDs in a description string.\n *\n * originalQuoteName: function(name),\n * The basic quoteName handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function\n * at the end of the `parse()`.\n *\n * describeSymbol: function(symbol),\n * Return a more-or-less human-readable description of the given symbol, when\n * available, or the symbol itself, serving as its own 'description' for lack\n * of something better to serve up.\n *\n * Return NULL when the symbol is unknown to the parser.\n *\n * symbols_: {associative list: name ==> number},\n * terminals_: {associative list: number ==> name},\n * nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},\n * terminal_descriptions_: (if there are any) {associative list: number ==> description},\n * productions_: [...],\n *\n * performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `yyval` internal object, which has members (`$` and `_$`)\n * to store/reference the rule value `$$` and location info `@$`.\n *\n * One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets\n * to see the same object via the `this` reference, i.e. if you wish to carry custom\n * data from one reduce action through to the next within a single parse run, then you\n * may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.\n *\n * `this.yy` is a direct reference to the `yy` shared state object.\n *\n * `%parse-param`-specified additional `parse()` arguments have been added to this `yy`\n * object at `parse()` start and are therefore available to the action code via the\n * same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from\n * the %parse-param` list.\n *\n * - `yytext` : reference to the lexer value which belongs to the last lexer token used\n * to match this rule. This is *not* the look-ahead token, but the last token\n * that's actually part of this rule.\n *\n * Formulated another way, `yytext` is the value of the token immediately preceeding\n * the current look-ahead token.\n * Caveats apply for rules which don't require look-ahead, such as epsilon rules.\n *\n * - `yyleng` : ditto as `yytext`, only now for the lexer.yyleng value.\n *\n * - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.\n *\n * - `yyloc` : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.\n *\n * WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead\n * of an empty object when no suitable location info can be provided.\n *\n * - `yystate` : the current parser state number, used internally for dispatching and\n * executing the action code chunk matching the rule currently being reduced.\n *\n * - `yysp` : the current state stack position (a.k.a. 'stack pointer')\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * Also note that you can access this and other stack index values using the new double-hash\n * syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things\n * related to the first rule term, just like you have `$1`, `@1` and `#1`.\n * This is made available to write very advanced grammar action rules, e.g. when you want\n * to investigate the parse state stack in your action code, which would, for example,\n * be relevant when you wish to implement error diagnostics and reporting schemes similar\n * to the work described here:\n *\n * + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.\n * In Journées Francophones des Languages Applicatifs.\n *\n * + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.\n * ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.\n *\n * - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.\n * constructs.\n *\n * - `yylstack`: reference to the parser token location stack. Also accessed via\n * the `@1` etc. constructs.\n *\n * WARNING: since jison 0.4.18-186 this array MAY contain slots which are\n * UNDEFINED rather than an empty (location) object, when the lexer/parser\n * action code did not provide a suitable location info object when such a\n * slot was filled!\n *\n * - `yystack` : reference to the parser token id stack. Also accessed via the\n * `#1` etc. constructs.\n *\n * Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to\n * its numeric token id value, hence that code wouldn't need the `yystack` but *you* might\n * want access this array for your own purposes, such as error analysis as mentioned above!\n *\n * Note that this stack stores the current stack of *tokens*, that is the sequence of\n * already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*\n * (lexer tokens *shifted* onto the stack until the rule they belong to is found and\n * *reduced*.\n *\n * - `yysstack`: reference to the parser state stack. This one carries the internal parser\n * *states* such as the one in `yystate`, which are used to represent\n * the parser state machine in the *parse table*. *Very* *internal* stuff,\n * what can I say? If you access this one, you're clearly doing wicked things\n *\n * - `...` : the extra arguments you specified in the `%parse-param` statement in your\n * grammar definition file.\n *\n * table: [...],\n * State transition table\n * ----------------------\n *\n * index levels are:\n * - `state` --> hash table\n * - `symbol` --> action (number or array)\n *\n * If the `action` is an array, these are the elements' meaning:\n * - index [0]: 1 = shift, 2 = reduce, 3 = accept\n * - index [1]: GOTO `state`\n *\n * If the `action` is a number, it is the GOTO `state`\n *\n * defaultActions: {...},\n *\n * parseError: function(str, hash, ExceptionClass),\n * yyError: function(str, ...),\n * yyRecovering: function(),\n * yyErrOk: function(),\n * yyClearIn: function(),\n *\n * constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this parser kernel in many places; example usage:\n *\n * var infoObj = parser.constructParseErrorInfo('fail!', null,\n * parser.collect_expected_token_set(state), true);\n * var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);\n *\n * originalParseError: function(str, hash, ExceptionClass),\n * The basic `parseError` handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function\n * at the end of the `parse()`.\n *\n * options: { ... parser %options ... },\n *\n * parse: function(input[, args...]),\n * Parse the given `input` and return the parsed value (or `true` when none was provided by\n * the root action, in which case the parser is acting as a *matcher*).\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the jison run-time;\n * when such a collision is detected an exception is thrown to prevent the generated run-time\n * from silently accepting this confusing and potentially hazardous situation!\n *\n * The lexer MAY add its own set of additional parameters (via the `%parse-param` line in\n * the lexer section of the grammar spec): these will be inserted in the `yy` shared state\n * object and any collision with those will be reported by the lexer via a thrown exception.\n *\n * cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API is invoked at the end of the `parse()` call, unless an exception was thrown\n * and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY\n * be invoked by calling user code to ensure the `post_parse` callbacks are invoked and\n * the internal parser gets properly garbage collected under these particular circumstances.\n *\n * yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API can be invoked to calculate a spanning `yylloc` location info object.\n *\n * Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case\n * this function will attempt to obtain a suitable location marker by inspecting the location stack\n * backwards.\n *\n * For more info see the documentation comment further below, immediately above this function's\n * implementation.\n *\n * lexer: {\n * yy: {...}, A reference to the so-called \"shared state\" `yy` once\n * received via a call to the `.setInput(input, yy)` lexer API.\n * EOF: 1,\n * ERROR: 2,\n * JisonLexerError: function(msg, hash),\n * parseError: function(str, hash, ExceptionClass),\n * setInput: function(input, [yy]),\n * input: function(),\n * unput: function(str),\n * more: function(),\n * reject: function(),\n * less: function(n),\n * pastInput: function(n),\n * upcomingInput: function(n),\n * showPosition: function(),\n * test_match: function(regex_match_array, rule_index, ...),\n * next: function(...),\n * lex: function(...),\n * begin: function(condition),\n * pushState: function(condition),\n * popState: function(),\n * topState: function(),\n * _currentRules: function(),\n * stateStackSize: function(),\n * cleanupAfterLex: function()\n *\n * options: { ... lexer %options ... },\n *\n * performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),\n * rules: [...],\n * conditions: {associative list: name ==> set},\n * }\n * }\n *\n *\n * token location info (@$, _$, etc.): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer and\n * parser errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * }\n *\n * parser (grammar) errors will also provide these additional members:\n *\n * {\n * expected: (array describing the set of expected tokens;\n * may be UNDEFINED when we cannot easily produce such a set)\n * state: (integer (or array when the table includes grammar collisions);\n * represents the current internal state of the parser kernel.\n * can, for example, be used to pass to the `collect_expected_token_set()`\n * API to obtain the expected token set)\n * action: (integer; represents the current internal action which will be executed)\n * new_state: (integer; represents the next/planned internal state, once the current\n * action has executed)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * state_stack: (array: the current parser LALR/LR internal state stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * location_stack: (array: the current parser LALR/LR internal location stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * parser: (reference to the current parser instance)\n * }\n *\n * while `this` will reference the current parser instance.\n *\n * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * lexer: (reference to the current lexer instance which reported the error)\n * }\n *\n * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired\n * from either the parser or lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * exception: (reference to the exception thrown)\n * }\n *\n * Please do note that in the latter situation, the `expected` field will be omitted as\n * this type of failure is assumed not to be due to *parse errors* but rather due to user\n * action code in either parser or lexer failing unexpectedly.\n *\n * ---\n *\n * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.\n * These options are available:\n *\n * ### options which are global for all parser instances\n *\n * Parser.pre_parse: function(yy)\n * optional: you can specify a pre_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`.\n * Parser.post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: you can specify a post_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`. When it does not return any value,\n * the parser will return the original `retval`.\n *\n * ### options which can be set up per parser instance\n *\n * yy: {\n * pre_parse: function(yy)\n * optional: is invoked before the parse cycle starts (and before the first\n * invocation of `lex()`) but immediately after the invocation of\n * `parser.pre_parse()`).\n * post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: is invoked when the parse terminates due to success ('accept')\n * or failure (even when exceptions are thrown).\n * `retval` contains the return value to be produced by `Parser.parse()`;\n * this function can override the return value by returning another.\n * When it does not return any value, the parser will return the original\n * `retval`.\n * This function is invoked immediately before `parser.post_parse()`.\n *\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * quoteName: function(name),\n * optional: overrides the default `quoteName` function.\n * }\n *\n * parser.lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this `%option` has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n \n \n var parser = (function () {\n\n\n// See also:\n// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n// with userland code which might access the derived class in a 'classic' way.\nfunction JisonParserError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonParserError'\n });\n\n if (msg == null) msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n\n var stacktrace;\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) { // V8/Chrome engine\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = (new Error(msg)).stack;\n }\n }\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n}\n\nif (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);\n} else {\n JisonParserError.prototype = Object.create(Error.prototype);\n}\nJisonParserError.prototype.constructor = JisonParserError;\nJisonParserError.prototype.name = 'JisonParserError';\n\n\n\n\n // helper: reconstruct the productions[] table\n function bp(s) {\n var rv = [];\n var p = s.pop;\n var r = s.rule;\n for (var i = 0, l = p.length; i < l; i++) {\n rv.push([\n p[i],\n r[i]\n ]);\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the defaultActions[] table\n function bda(s) {\n var rv = {};\n var d = s.idx;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var j = d[i];\n rv[j] = g[i];\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the 'goto' table\n function bt(s) {\n var rv = [];\n var d = s.len;\n var y = s.symbol;\n var t = s.type;\n var a = s.state;\n var m = s.mode;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var n = d[i];\n var q = {};\n for (var j = 0; j < n; j++) {\n var z = y.shift();\n switch (t.shift()) {\n case 2:\n q[z] = [\n m.shift(),\n g.shift()\n ];\n break;\n\n case 0:\n q[z] = a.shift();\n break;\n\n default:\n // type === 1: accept\n q[z] = [\n 3\n ];\n }\n }\n rv.push(q);\n }\n return rv;\n }\n \n\n\n // helper: runlength encoding with increment step: code, length: step (default step = 0)\n // `this` references an array\n function s(c, l, a) {\n a = a || 0;\n for (var i = 0; i < l; i++) {\n this.push(c);\n c += a;\n }\n }\n\n // helper: duplicate sequence from *relative* offset and length.\n // `this` references an array\n function c(i, l) {\n i = this.length - i;\n for (l += i; i < l; i++) {\n this.push(this[i]);\n }\n }\n\n // helper: unpack an array using helpers and data, all passed in an array argument 'a'.\n function u(a) {\n var rv = [];\n for (var i = 0, l = a.length; i < l; i++) {\n var e = a[i];\n // Is this entry a helper function?\n if (typeof e === 'function') {\n i++;\n e.apply(rv, a[i]);\n } else {\n rv.push(e);\n }\n }\n return rv;\n }\n \n\nvar parser = {\n // Code Generator Information Report\n // ---------------------------------\n //\n // Options:\n //\n // default action mode: ............. [\"classic\",\"merge\"]\n // test-compile action mode: ........ \"parser:*,lexer:*\"\n // try..catch: ...................... true\n // default resolve on conflict: ..... true\n // on-demand look-ahead: ............ false\n // error recovery token skip maximum: 3\n // yyerror in parse actions is: ..... NOT recoverable,\n // yyerror in lexer actions and other non-fatal lexer are:\n // .................................. NOT recoverable,\n // debug grammar/output: ............ false\n // has partial LR conflict upgrade: true\n // rudimentary token-stack support: false\n // parser table compression mode: ... 2\n // export debug tables: ............. false\n // export *all* tables: ............. false\n // module type: ..................... commonjs\n // parser engine type: .............. lalr\n // output main() in the module: ..... true\n // has user-specified main(): ....... false\n // has user-specified require()/import modules for main():\n // .................................. false\n // number of expected conflicts: .... 0\n //\n //\n // Parser Analysis flags:\n //\n // no significant actions (parser is a language matcher only):\n // .................................. false\n // uses yyleng: ..................... false\n // uses yylineno: ................... false\n // uses yytext: ..................... false\n // uses yylloc: ..................... false\n // uses ParseError API: ............. false\n // uses YYERROR: .................... false\n // uses YYRECOVERING: ............... false\n // uses YYERROK: .................... false\n // uses YYCLEARIN: .................. false\n // tracks rule values: .............. true\n // assigns rule values: ............. true\n // uses location tracking: .......... false\n // assigns location: ................ false\n // uses yystack: .................... false\n // uses yysstack: ................... false\n // uses yysp: ....................... true\n // uses yyrulelength: ............... false\n // uses yyMergeLocationInfo API: .... false\n // has error recovery: .............. false\n // has error reporting: ............. false\n //\n // --------- END OF REPORT -----------\n\ntrace: function no_op_trace() { },\nJisonParserError: JisonParserError,\nyy: {},\noptions: {\n type: \"lalr\",\n hasPartialLrUpgradeOnConflict: true,\n errorRecoveryTokenDiscardCount: 3\n},\nsymbols_: {\n \"$accept\": 0,\n \"$end\": 1,\n \"ADD\": 3,\n \"ANGLE\": 16,\n \"CHS\": 22,\n \"COMMA\": 14,\n \"CSS_CPROP\": 13,\n \"CSS_VAR\": 12,\n \"DIV\": 6,\n \"EMS\": 20,\n \"EOF\": 1,\n \"EXS\": 21,\n \"FREQ\": 18,\n \"LENGTH\": 15,\n \"LPAREN\": 7,\n \"MUL\": 5,\n \"NESTED_CALC\": 9,\n \"NUMBER\": 11,\n \"PERCENTAGE\": 28,\n \"PREFIX\": 10,\n \"REMS\": 23,\n \"RES\": 19,\n \"RPAREN\": 8,\n \"SUB\": 4,\n \"TIME\": 17,\n \"VHS\": 24,\n \"VMAXS\": 27,\n \"VMINS\": 26,\n \"VWS\": 25,\n \"css_value\": 33,\n \"css_variable\": 32,\n \"error\": 2,\n \"expression\": 29,\n \"math_expression\": 30,\n \"value\": 31\n},\nterminals_: {\n 1: \"EOF\",\n 2: \"error\",\n 3: \"ADD\",\n 4: \"SUB\",\n 5: \"MUL\",\n 6: \"DIV\",\n 7: \"LPAREN\",\n 8: \"RPAREN\",\n 9: \"NESTED_CALC\",\n 10: \"PREFIX\",\n 11: \"NUMBER\",\n 12: \"CSS_VAR\",\n 13: \"CSS_CPROP\",\n 14: \"COMMA\",\n 15: \"LENGTH\",\n 16: \"ANGLE\",\n 17: \"TIME\",\n 18: \"FREQ\",\n 19: \"RES\",\n 20: \"EMS\",\n 21: \"EXS\",\n 22: \"CHS\",\n 23: \"REMS\",\n 24: \"VHS\",\n 25: \"VWS\",\n 26: \"VMINS\",\n 27: \"VMAXS\",\n 28: \"PERCENTAGE\"\n},\nTERROR: 2,\n EOF: 1,\n\n // internals: defined here so the object *structure* doesn't get modified by parse() et al,\n // thus helping JIT compilers like Chrome V8.\n originalQuoteName: null,\n originalParseError: null,\n cleanupAfterParse: null,\n constructParseErrorInfo: null,\n yyMergeLocationInfo: null,\n\n __reentrant_call_depth: 0, // INTERNAL USE ONLY\n __error_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n __error_recovery_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n\n // APIs which will be set up depending on user action code analysis:\n //yyRecovering: 0,\n //yyErrOk: 0,\n //yyClearIn: 0,\n\n // Helper APIs\n // -----------\n\n // Helper function which can be overridden by user code later on: put suitable quotes around\n // literal IDs in a description string.\n quoteName: function parser_quoteName(id_str) {\n return '\"' + id_str + '\"';\n },\n\n // Return the name of the given symbol (terminal or non-terminal) as a string, when available.\n //\n // Return NULL when the symbol is unknown to the parser.\n getSymbolName: function parser_getSymbolName(symbol) {\n if (this.terminals_[symbol]) {\n return this.terminals_[symbol];\n }\n\n // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.\n //\n // An example of this may be where a rule's action code contains a call like this:\n //\n // parser.getSymbolName(#$)\n //\n // to obtain a human-readable name of the current grammar rule.\n var s = this.symbols_;\n for (var key in s) {\n if (s[key] === symbol) {\n return key;\n }\n }\n return null;\n },\n\n // Return a more-or-less human-readable description of the given symbol, when available,\n // or the symbol itself, serving as its own 'description' for lack of something better to serve up.\n //\n // Return NULL when the symbol is unknown to the parser.\n describeSymbol: function parser_describeSymbol(symbol) {\n if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {\n return this.terminal_descriptions_[symbol];\n }\n else if (symbol === this.EOF) {\n return 'end of input';\n }\n var id = this.getSymbolName(symbol);\n if (id) {\n return this.quoteName(id);\n }\n return null;\n },\n\n // Produce a (more or less) human-readable list of expected tokens at the point of failure.\n //\n // The produced list may contain token or token set descriptions instead of the tokens\n // themselves to help turning this output into something that easier to read by humans\n // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,\n // expected terminals and nonterminals is produced.\n //\n // The returned list (array) will not contain any duplicate entries.\n collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {\n var TERROR = this.TERROR;\n var tokenset = [];\n var check = {};\n // Has this (error?) state been outfitted with a custom expectations description text for human consumption?\n // If so, use that one instead of the less palatable token set.\n if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {\n return [\n this.state_descriptions_[state]\n ];\n }\n for (var p in this.table[state]) {\n p = +p;\n if (p !== TERROR) {\n var d = do_not_describe ? p : this.describeSymbol(p);\n if (d && !check[d]) {\n tokenset.push(d);\n check[d] = true; // Mark this token description as already mentioned to prevent outputting duplicate entries.\n }\n }\n }\n return tokenset;\n },\nproductions_: bp({\n pop: u([\n 29,\n s,\n [30, 10],\n 31,\n 31,\n 32,\n 32,\n s,\n [33, 15]\n]),\n rule: u([\n 2,\n s,\n [3, 5],\n 4,\n 7,\n s,\n [1, 4],\n 2,\n 4,\n 6,\n s,\n [1, 14],\n 2\n])\n}),\nperformAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {\n\n /* this == yyval */\n\n // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!\n var yy = this.yy;\n var yyparser = yy.parser;\n var yylexer = yy.lexer;\n\n \n\n switch (yystate) {\ncase 0:\n /*! Production:: $accept : expression $end */\n\n // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)\n break;\n\ncase 1:\n /*! Production:: expression : math_expression EOF */\n\n // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)\n \n \n return yyvstack[yysp - 1];\n break;\n\ncase 2:\n /*! Production:: math_expression : math_expression ADD math_expression */\ncase 3:\n /*! Production:: math_expression : math_expression SUB math_expression */\ncase 4:\n /*! Production:: math_expression : math_expression MUL math_expression */\ncase 5:\n /*! Production:: math_expression : math_expression DIV math_expression */\n\n this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };\n break;\n\ncase 6:\n /*! Production:: math_expression : LPAREN math_expression RPAREN */\n\n this.$ = yyvstack[yysp - 1];\n break;\n\ncase 7:\n /*! Production:: math_expression : NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };\n break;\n\ncase 8:\n /*! Production:: math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };\n break;\n\ncase 9:\n /*! Production:: math_expression : css_variable */\ncase 10:\n /*! Production:: math_expression : css_value */\ncase 11:\n /*! Production:: math_expression : value */\n\n this.$ = yyvstack[yysp];\n break;\n\ncase 12:\n /*! Production:: value : NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };\n break;\n\ncase 13:\n /*! Production:: value : SUB NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };\n break;\n\ncase 14:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };\n break;\n\ncase 15:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };\n break;\n\ncase 16:\n /*! Production:: css_value : LENGTH */\n\n this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 17:\n /*! Production:: css_value : ANGLE */\n\n this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 18:\n /*! Production:: css_value : TIME */\n\n this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 19:\n /*! Production:: css_value : FREQ */\n\n this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 20:\n /*! Production:: css_value : RES */\n\n this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 21:\n /*! Production:: css_value : EMS */\n\n this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };\n break;\n\ncase 22:\n /*! Production:: css_value : EXS */\n\n this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };\n break;\n\ncase 23:\n /*! Production:: css_value : CHS */\n\n this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };\n break;\n\ncase 24:\n /*! Production:: css_value : REMS */\n\n this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };\n break;\n\ncase 25:\n /*! Production:: css_value : VHS */\n\n this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };\n break;\n\ncase 26:\n /*! Production:: css_value : VWS */\n\n this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };\n break;\n\ncase 27:\n /*! Production:: css_value : VMINS */\n\n this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };\n break;\n\ncase 28:\n /*! Production:: css_value : VMAXS */\n\n this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };\n break;\n\ncase 29:\n /*! Production:: css_value : PERCENTAGE */\n\n this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };\n break;\n\ncase 30:\n /*! Production:: css_value : SUB css_value */\n\n var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;\n break;\n\n}\n},\ntable: bt({\n len: u([\n 24,\n 1,\n 5,\n 23,\n 1,\n 18,\n s,\n [0, 3],\n 1,\n s,\n [0, 16],\n s,\n [23, 4],\n c,\n [28, 3],\n 0,\n 0,\n 16,\n 1,\n 6,\n 6,\n s,\n [0, 3],\n 5,\n 1,\n 2,\n c,\n [37, 3],\n c,\n [20, 3],\n 5,\n 0,\n 0\n]),\n symbol: u([\n 4,\n 7,\n 9,\n 11,\n 12,\n s,\n [15, 19, 1],\n 1,\n 1,\n s,\n [3, 4, 1],\n c,\n [30, 19],\n c,\n [29, 4],\n 7,\n 4,\n 10,\n 11,\n c,\n [22, 14],\n c,\n [19, 3],\n c,\n [43, 22],\n c,\n [23, 69],\n c,\n [139, 4],\n 8,\n c,\n [51, 24],\n 4,\n c,\n [138, 15],\n 13,\n c,\n [186, 5],\n 8,\n c,\n [6, 6],\n c,\n [5, 5],\n 9,\n 8,\n 14,\n c,\n [159, 47],\n c,\n [60, 10]\n]),\n type: u([\n s,\n [2, 19],\n s,\n [0, 5],\n 1,\n s,\n [2, 24],\n s,\n [0, 4],\n c,\n [22, 19],\n c,\n [43, 42],\n c,\n [23, 70],\n c,\n [28, 25],\n c,\n [45, 25],\n c,\n [113, 54]\n]),\n state: u([\n 1,\n 2,\n 8,\n 6,\n 7,\n 30,\n c,\n [4, 3],\n 33,\n 37,\n c,\n [5, 3],\n 38,\n c,\n [4, 3],\n 39,\n c,\n [4, 3],\n 40,\n c,\n [4, 3],\n 42,\n c,\n [21, 4],\n 50,\n c,\n [5, 3],\n 51,\n c,\n [4, 3]\n]),\n mode: u([\n s,\n [1, 179],\n s,\n [2, 3],\n c,\n [5, 5],\n c,\n [6, 4],\n s,\n [1, 57]\n]),\n goto: u([\n 5,\n 3,\n 4,\n 24,\n s,\n [9, 15, 1],\n s,\n [25, 5, 1],\n c,\n [24, 19],\n 31,\n 35,\n 32,\n 34,\n c,\n [18, 14],\n 36,\n c,\n [38, 19],\n c,\n [19, 57],\n c,\n [118, 4],\n 41,\n c,\n [24, 19],\n 43,\n 35,\n c,\n [16, 14],\n 44,\n s,\n [2, 3],\n 28,\n 29,\n 2,\n s,\n [3, 3],\n 28,\n 29,\n 3,\n c,\n [53, 4],\n s,\n [45, 5, 1],\n c,\n [100, 42],\n 52,\n c,\n [5, 4],\n 53\n])\n}),\ndefaultActions: bda({\n idx: u([\n 6,\n 7,\n 8,\n s,\n [10, 16, 1],\n 33,\n 34,\n 39,\n 40,\n 41,\n 45,\n 47,\n 52,\n 53\n]),\n goto: u([\n 9,\n 10,\n 11,\n s,\n [16, 14, 1],\n 12,\n 1,\n 30,\n 13,\n s,\n [4, 4, 1],\n 14,\n 15,\n 8\n])\n}),\nparseError: function parseError(str, hash, ExceptionClass) {\n if (hash.recoverable) {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n hash.destroy(); // destroy... well, *almost*!\n } else {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n throw new ExceptionClass(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this;\n var stack = new Array(128); // token stack: stores token which leads to state at the same index (column storage)\n var sstack = new Array(128); // state stack: stores states (column storage)\n\n var vstack = new Array(128); // semantic value stack\n\n var table = this.table;\n var sp = 0; // 'stack pointer': index into the stacks\n\n\n \n\n\n var symbol = 0;\n\n\n\n var TERROR = this.TERROR;\n var EOF = this.EOF;\n var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;\n var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];\n\n var lexer;\n if (this.__lexer__) {\n lexer = this.__lexer__;\n } else {\n lexer = this.__lexer__ = Object.create(this.lexer);\n }\n\n var sharedState_yy = {\n parseError: undefined,\n quoteName: undefined,\n lexer: undefined,\n parser: undefined,\n pre_parse: undefined,\n post_parse: undefined,\n pre_lex: undefined,\n post_lex: undefined // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!\n };\n\n var ASSERT;\n if (typeof assert !== 'function') {\n ASSERT = function JisonAssert(cond, msg) {\n if (!cond) {\n throw new Error('assertion failed: ' + (msg || '***'));\n }\n };\n } else {\n ASSERT = assert;\n }\n\n this.yyGetSharedState = function yyGetSharedState() {\n return sharedState_yy;\n };\n\n\n\n\n\n\n\n\n function shallow_copy_noclobber(dst, src) {\n for (var k in src) {\n if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {\n dst[k] = src[k];\n }\n }\n }\n\n // copy state\n shallow_copy_noclobber(sharedState_yy, this.yy);\n\n sharedState_yy.lexer = lexer;\n sharedState_yy.parser = this;\n\n\n\n\n\n\n // Does the shared state override the default `parseError` that already comes with this instance?\n if (typeof sharedState_yy.parseError === 'function') {\n this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);\n };\n } else {\n this.parseError = this.originalParseError;\n }\n\n // Does the shared state override the default `quoteName` that already comes with this instance?\n if (typeof sharedState_yy.quoteName === 'function') {\n this.quoteName = function quoteNameAlt(id_str) {\n return sharedState_yy.quoteName.call(this, id_str);\n };\n } else {\n this.quoteName = this.originalQuoteName;\n }\n\n // set up the cleanup function; make it an API so that external code can re-use this one in case of\n // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which\n // case this parse() API method doesn't come with a `finally { ... }` block any more!\n //\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `sharedState`, etc. references will be *wrong*!\n this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {\n var rv;\n\n if (invoke_post_methods) {\n var hash;\n\n if (sharedState_yy.post_parse || this.post_parse) {\n // create an error hash info instance: we re-use this API in a **non-error situation**\n // as this one delivers all parser internals ready for access by userland code.\n hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);\n }\n\n if (sharedState_yy.post_parse) {\n rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n if (this.post_parse) {\n rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n\n // cleanup:\n if (hash && hash.destroy) {\n hash.destroy();\n }\n }\n\n if (this.__reentrant_call_depth > 1) return resultValue; // do not (yet) kill the sharedState when this is a reentrant run.\n\n // clean up the lingering lexer structures as well:\n if (lexer.cleanupAfterLex) {\n lexer.cleanupAfterLex(do_not_nuke_errorinfos);\n }\n\n // prevent lingering circular references from causing memory leaks:\n if (sharedState_yy) {\n sharedState_yy.lexer = undefined;\n sharedState_yy.parser = undefined;\n if (lexer.yy === sharedState_yy) {\n lexer.yy = undefined;\n }\n }\n sharedState_yy = undefined;\n this.parseError = this.originalParseError;\n this.quoteName = this.originalQuoteName;\n\n // nuke the vstack[] array at least as that one will still reference obsoleted user values.\n // To be safe, we nuke the other internal stack columns as well...\n stack.length = 0; // fastest way to nuke an array without overly bothering the GC\n sstack.length = 0;\n\n vstack.length = 0;\n sp = 0;\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n this.__error_infos.length = 0;\n\n\n }\n\n return resultValue;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `lexer`, `sharedState`, etc. references will be *wrong*!\n this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {\n var pei = {\n errStr: msg,\n exception: ex,\n text: lexer.match,\n value: lexer.yytext,\n token: this.describeSymbol(symbol) || symbol,\n token_id: symbol,\n line: lexer.yylineno,\n\n expected: expected,\n recoverable: recoverable,\n state: state,\n action: action,\n new_state: newState,\n symbol_stack: stack,\n state_stack: sstack,\n value_stack: vstack,\n\n stack_pointer: sp,\n yy: sharedState_yy,\n lexer: lexer,\n parser: this,\n\n // and make sure the error info doesn't stay due to potential\n // ref cycle via userland code manipulations.\n // These would otherwise all be memory leak opportunities!\n //\n // Note that only array and object references are nuked as those\n // constitute the set of elements which can produce a cyclic ref.\n // The rest of the members is kept intact as they are harmless.\n destroy: function destructParseErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // info.value = null;\n // info.value_stack = null;\n // ...\n var rec = !!this.recoverable;\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n this.recoverable = rec;\n }\n };\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n return pei;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n function getNonTerminalFromCode(symbol) {\n var tokenName = self.getSymbolName(symbol);\n if (!tokenName) {\n tokenName = symbol;\n }\n return tokenName;\n }\n\n\n function stdLex() {\n var token = lexer.lex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n function fastLex() {\n var token = lexer.fastLex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n var lex = stdLex;\n\n\n var state, action, r, t;\n var yyval = {\n $: true,\n _$: undefined,\n yy: sharedState_yy\n };\n var p;\n var yyrulelen;\n var this_production;\n var newState;\n var retval = false;\n\n\n try {\n this.__reentrant_call_depth++;\n\n lexer.setInput(input, sharedState_yy);\n\n // NOTE: we *assume* no lexer pre/post handlers are set up *after* \n // this initial `setInput()` call: hence we can now check and decide\n // whether we'll go with the standard, slower, lex() API or the\n // `fast_lex()` one:\n if (typeof lexer.canIUse === 'function') {\n var lexerInfo = lexer.canIUse();\n if (lexerInfo.fastLex && typeof fastLex === 'function') {\n lex = fastLex;\n }\n } \n\n\n\n vstack[sp] = null;\n sstack[sp] = 0;\n stack[sp] = 0;\n ++sp;\n\n\n\n\n\n if (this.pre_parse) {\n this.pre_parse.call(this, sharedState_yy);\n }\n if (sharedState_yy.pre_parse) {\n sharedState_yy.pre_parse.call(this, sharedState_yy);\n }\n\n newState = sstack[sp - 1];\n for (;;) {\n // retrieve state number from top of stack\n state = newState; // sstack[sp - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = 2;\n newState = this.defaultActions[state];\n } else {\n // The single `==` condition below covers both these `===` comparisons in a single\n // operation:\n //\n // if (symbol === null || typeof symbol === 'undefined') ...\n if (!symbol) {\n symbol = lex();\n }\n // read action for current state and first input\n t = (table[state] && table[state][symbol]) || NO_ACTION;\n newState = t[1];\n action = t[0];\n\n\n\n\n\n\n\n\n\n\n\n // handle parse error\n if (!action) {\n var errStr;\n var errSymbolDescr = (this.describeSymbol(symbol) || symbol);\n var expected = this.collect_expected_token_set(state);\n\n // Report error\n if (typeof lexer.yylineno === 'number') {\n errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';\n } else {\n errStr = 'Parse error: ';\n }\n if (typeof lexer.showPosition === 'function') {\n errStr += '\\n' + lexer.showPosition(79 - 10, 10) + '\\n';\n }\n if (expected.length) {\n errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;\n } else {\n errStr += 'Unexpected ' + errSymbolDescr;\n }\n // we cannot recover from the error!\n p = this.constructParseErrorInfo(errStr, null, expected, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n\n\n }\n\n\n\n\n\n\n\n\n\n\n switch (action) {\n // catch misc. parse failures:\n default:\n // this shouldn't happen, unless resolve defaults are off\n if (action instanceof Array) {\n p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n // Another case of better safe than sorry: in case state transitions come out of another error recovery process\n // or a buggy LUT (LookUp Table):\n p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n\n // shift:\n case 1:\n stack[sp] = symbol;\n vstack[sp] = lexer.yytext;\n\n sstack[sp] = newState; // push state\n\n ++sp;\n symbol = 0;\n\n\n\n\n // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:\n\n\n\n\n continue;\n\n // reduce:\n case 2:\n\n\n\n this_production = this.productions_[newState - 1]; // `this.productions_[]` is zero-based indexed while states start from 1 upwards...\n yyrulelen = this_production[1];\n\n\n\n\n\n\n\n\n\n\n r = this.performAction.call(yyval, newState, sp - 1, vstack);\n\n if (typeof r !== 'undefined') {\n retval = r;\n break;\n }\n\n // pop off stack\n sp -= yyrulelen;\n\n // don't overwrite the `symbol` variable: use a local var to speed things up:\n var ntsymbol = this_production[0]; // push nonterminal (reduce)\n stack[sp] = ntsymbol;\n vstack[sp] = yyval.$;\n\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[sstack[sp - 1]][ntsymbol];\n sstack[sp] = newState;\n ++sp;\n\n\n\n\n\n\n\n\n\n continue;\n\n // accept:\n case 3:\n if (sp !== -2) {\n retval = true;\n // Return the `$accept` rule's `$$` result, if available.\n //\n // Also note that JISON always adds this top-most `$accept` rule (with implicit,\n // default, action):\n //\n // $accept: $end\n // %{ $$ = $1; @$ = @1; %}\n //\n // which, combined with the parse kernel's `$accept` state behaviour coded below,\n // will produce the `$$` value output of the rule as the parse result,\n // IFF that result is *not* `undefined`. (See also the parser kernel code.)\n //\n // In code:\n //\n // %{\n // @$ = @1; // if location tracking support is included\n // if (typeof $1 !== 'undefined')\n // return $1;\n // else\n // return true; // the default parse result if the rule actions don't produce anything\n // %}\n sp--;\n if (typeof vstack[sp] !== 'undefined') {\n retval = vstack[sp];\n }\n }\n break;\n }\n\n // break out of loop: we accept or fail with error\n break;\n }\n } catch (ex) {\n // report exceptions through the parseError callback too, but keep the exception intact\n // if it is a known parser or lexer error which has been thrown by parseError() already:\n if (ex instanceof this.JisonParserError) {\n throw ex;\n }\n else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {\n throw ex;\n }\n\n p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);\n retval = false;\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n } finally {\n retval = this.cleanupAfterParse(retval, true, true);\n this.__reentrant_call_depth--;\n } // /finally\n\n return retval;\n}\n};\nparser.originalParseError = parser.parseError;\nparser.originalQuoteName = parser.quoteName;\n/* lexer generated by jison-lex 0.6.1-215 */\n\n/*\n * Returns a Lexer object of the following structure:\n *\n * Lexer: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a direct reference!\n *\n * This \"shared context\" object was passed to the lexer by way of \n * the `lexer.setInput(str, yy)` API before you may use it.\n *\n * This \"shared context\" object is passed to the lexer action code in `performAction()`\n * so userland code in the lexer actions may communicate with the outside world \n * and/or other lexer rules' actions in more or less complex ways.\n *\n * }\n *\n * Lexer.prototype: {\n * EOF: 1,\n * ERROR: 2,\n *\n * yy: The overall \"shared context\" object reference.\n *\n * JisonLexerError: function(msg, hash),\n *\n * performAction: function lexer__performAction(yy, yyrulenumber, YY_START),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `lexer` instance. \n * `yy_` is an alias for `this` lexer instance reference used internally.\n *\n * - `yy` : a reference to the `yy` \"shared state\" object which was passed to the lexer\n * by way of the `lexer.setInput(str, yy)` API before.\n *\n * Note:\n * The extra arguments you specified in the `%parse-param` statement in your\n * **parser** grammar definition file are passed to the lexer via this object\n * reference as member variables.\n *\n * - `yyrulenumber` : index of the matched lexer rule (regex), used internally.\n *\n * - `YY_START`: the current lexer \"start condition\" state.\n *\n * parseError: function(str, hash, ExceptionClass),\n *\n * constructLexErrorInfo: function(error_message, is_recoverable),\n * Helper function.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this lexer kernel in many places; example usage:\n *\n * var infoObj = lexer.constructParseErrorInfo('fail!', true);\n * var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);\n *\n * options: { ... lexer %options ... },\n *\n * lex: function(),\n * Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the **parser** or the jison run-time; \n * when such a collision is detected an exception is thrown to prevent the generated run-time \n * from silently accepting this confusing and potentially hazardous situation! \n *\n * cleanupAfterLex: function(do_not_nuke_errorinfos),\n * Helper function.\n *\n * This helper API is invoked when the **parse process** has completed: it is the responsibility\n * of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. \n *\n * This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.\n *\n * setInput: function(input, [yy]),\n *\n *\n * input: function(),\n *\n *\n * unput: function(str),\n *\n *\n * more: function(),\n *\n *\n * reject: function(),\n *\n *\n * less: function(n),\n *\n *\n * pastInput: function(n),\n *\n *\n * upcomingInput: function(n),\n *\n *\n * showPosition: function(),\n *\n *\n * test_match: function(regex_match_array, rule_index),\n *\n *\n * next: function(),\n *\n *\n * begin: function(condition),\n *\n *\n * pushState: function(condition),\n *\n *\n * popState: function(),\n *\n *\n * topState: function(),\n *\n *\n * _currentRules: function(),\n *\n *\n * stateStackSize: function(),\n *\n *\n * performAction: function(yy, yy_, yyrulenumber, YY_START),\n *\n *\n * rules: [...],\n *\n *\n * conditions: {associative list: name ==> set},\n * }\n *\n *\n * token location info (`yylloc`): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * }\n *\n * while `this` will reference the current lexer instance.\n *\n * When `parseError` is invoked by the lexer, the default implementation will\n * attempt to invoke `yy.parser.parseError()`; when this callback is not provided\n * it will try to invoke `yy.parseError()` instead. When that callback is also not\n * provided, a `JisonLexerError` exception will be thrown containing the error\n * message and `hash`, as constructed by the `constructLexErrorInfo()` API.\n *\n * Note that the lexer's `JisonLexerError` error class is passed via the\n * `ExceptionClass` argument, which is invoked to construct the exception\n * instance to be thrown, so technically `parseError` will throw the object\n * produced by the `new ExceptionClass(str, hash)` JavaScript expression.\n *\n * ---\n *\n * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.\n * These options are available:\n *\n * (Options are permanent.)\n * \n * yy: {\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * }\n *\n * lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * WARNING: the next set of options are not meant to be changed. They echo the abilities of\n * the lexer as per when it was compiled!\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this %option has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n\nvar lexer = function() {\n /**\n * See also:\n * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n * with userland code which might access the derived class in a 'classic' way.\n *\n * @public\n * @constructor\n * @nocollapse\n */\n function JisonLexerError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonLexerError'\n });\n\n if (msg == null)\n msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n var stacktrace;\n\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) {\n // V8\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = new Error(msg).stack;\n }\n }\n\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n }\n\n if (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);\n } else {\n JisonLexerError.prototype = Object.create(Error.prototype);\n }\n\n JisonLexerError.prototype.constructor = JisonLexerError;\n JisonLexerError.prototype.name = 'JisonLexerError';\n\n var lexer = {\n \n// Code Generator Information Report\n// ---------------------------------\n//\n// Options:\n//\n// backtracking: .................... false\n// location.ranges: ................. false\n// location line+column tracking: ... true\n//\n//\n// Forwarded Parser Analysis flags:\n//\n// uses yyleng: ..................... false\n// uses yylineno: ................... false\n// uses yytext: ..................... false\n// uses yylloc: ..................... false\n// uses lexer values: ............... true / true\n// location tracking: ............... false\n// location assignment: ............. false\n//\n//\n// Lexer Analysis flags:\n//\n// uses yyleng: ..................... ???\n// uses yylineno: ................... ???\n// uses yytext: ..................... ???\n// uses yylloc: ..................... ???\n// uses ParseError API: ............. ???\n// uses yyerror: .................... ???\n// uses location tracking & editing: ???\n// uses more() API: ................. ???\n// uses unput() API: ................ ???\n// uses reject() API: ............... ???\n// uses less() API: ................. ???\n// uses display APIs pastInput(), upcomingInput(), showPosition():\n// ............................. ???\n// uses describeYYLLOC() API: ....... ???\n//\n// --------- END OF REPORT -----------\n\nEOF: 1,\n ERROR: 2,\n\n // JisonLexerError: JisonLexerError, /// <-- injected by the code generator\n\n // options: {}, /// <-- injected by the code generator\n\n // yy: ..., /// <-- injected by setInput()\n\n __currentRuleSet__: null, /// INTERNAL USE ONLY: internal rule set cache for the current lexer state \n\n __error_infos: [], /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup \n __decompressed: false, /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use \n done: false, /// INTERNAL USE ONLY \n _backtrack: false, /// INTERNAL USE ONLY \n _input: '', /// INTERNAL USE ONLY \n _more: false, /// INTERNAL USE ONLY \n _signaled_error_token: false, /// INTERNAL USE ONLY \n conditionStack: [], /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()` \n match: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely! \n matched: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far \n matches: false, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt \n yytext: '', /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API. \n offset: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far \n yyleng: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`) \n yylineno: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located \n yylloc: null, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction \n\n /**\n * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.\n * \n * @public\n * @this {RegExpLexer}\n */\n constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {\n msg = '' + msg;\n\n // heuristic to determine if the error message already contains a (partial) source code dump\n // as produced by either `showPosition()` or `prettyPrintRange()`:\n if (show_input_position == undefined) {\n show_input_position = !(msg.indexOf('\\n') > 0 && msg.indexOf('^') > 0);\n }\n\n if (this.yylloc && show_input_position) {\n if (typeof this.prettyPrintRange === 'function') {\n var pretty_src = this.prettyPrintRange(this.yylloc);\n\n if (!/\\n\\s*$/.test(msg)) {\n msg += '\\n';\n }\n\n msg += '\\n Erroneous area:\\n' + this.prettyPrintRange(this.yylloc);\n } else if (typeof this.showPosition === 'function') {\n var pos_str = this.showPosition();\n\n if (pos_str) {\n if (msg.length && msg[msg.length - 1] !== '\\n' && pos_str[0] !== '\\n') {\n msg += '\\n' + pos_str;\n } else {\n msg += pos_str;\n }\n }\n }\n }\n\n /** @constructor */\n var pei = {\n errStr: msg,\n recoverable: !!recoverable,\n text: this.match, // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'... \n token: null,\n line: this.yylineno,\n loc: this.yylloc,\n yy: this.yy,\n lexer: this,\n\n /**\n * and make sure the error info doesn't stay due to potential\n * ref cycle via userland code manipulations.\n * These would otherwise all be memory leak opportunities!\n * \n * Note that only array and object references are nuked as those\n * constitute the set of elements which can produce a cyclic ref.\n * The rest of the members is kept intact as they are harmless.\n * \n * @public\n * @this {LexErrorInfo}\n */\n destroy: function destructLexErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // ...\n var rec = !!this.recoverable;\n\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n\n this.recoverable = rec;\n }\n };\n\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n\n return pei;\n },\n\n /**\n * handler which is invoked when a lexer error occurs.\n * \n * @public\n * @this {RegExpLexer}\n */\n parseError: function lexer_parseError(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonLexerError;\n }\n\n if (this.yy) {\n if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {\n return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n } else if (typeof this.yy.parseError === 'function') {\n return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n }\n }\n\n throw new ExceptionClass(str, hash);\n },\n\n /**\n * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.\n * \n * @public\n * @this {RegExpLexer}\n */\n yyerror: function yyError(str /*, ...args */) {\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': ' + str,\n this.options.lexerErrorsAreRecoverable\n );\n\n // Add any extra args to the hash under the name `extra_error_attributes`:\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (args.length) {\n p.extra_error_attributes = args;\n }\n\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n },\n\n /**\n * final cleanup function for when we have completed lexing the input;\n * make it an API so that external code can use this one once userland\n * code has decided it's time to destroy any lingering lexer error\n * hash object instances and the like: this function helps to clean\n * up these constructs, which *may* carry cyclic references which would\n * otherwise prevent the instances from being properly and timely\n * garbage-collected, i.e. this function helps prevent memory leaks!\n * \n * @public\n * @this {RegExpLexer}\n */\n cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {\n // prevent lingering circular references from causing memory leaks:\n this.setInput('', {});\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n\n this.__error_infos.length = 0;\n }\n\n return this;\n },\n\n /**\n * clear the lexer token context; intended for internal use only\n * \n * @public\n * @this {RegExpLexer}\n */\n clear: function lexer_clear() {\n this.yytext = '';\n this.yyleng = 0;\n this.match = '';\n\n // - DO NOT reset `this.matched`\n this.matches = false;\n\n this._more = false;\n this._backtrack = false;\n var col = (this.yylloc ? this.yylloc.last_column : 0);\n\n this.yylloc = {\n first_line: this.yylineno + 1,\n first_column: col,\n last_line: this.yylineno + 1,\n last_column: col,\n range: [this.offset, this.offset]\n };\n },\n\n /**\n * resets the lexer, sets new input\n * \n * @public\n * @this {RegExpLexer}\n */\n setInput: function lexer_setInput(input, yy) {\n this.yy = yy || this.yy || {};\n\n // also check if we've fully initialized the lexer instance,\n // including expansion work to be done to go from a loaded\n // lexer to a usable lexer:\n if (!this.__decompressed) {\n // step 1: decompress the regex list:\n var rules = this.rules;\n\n for (var i = 0, len = rules.length; i < len; i++) {\n var rule_re = rules[i];\n\n // compression: is the RE an xref to another RE slot in the rules[] table?\n if (typeof rule_re === 'number') {\n rules[i] = rules[rule_re];\n }\n }\n\n // step 2: unfold the conditions[] set to make these ready for use:\n var conditions = this.conditions;\n\n for (var k in conditions) {\n var spec = conditions[k];\n var rule_ids = spec.rules;\n var len = rule_ids.length;\n var rule_regexes = new Array(len + 1); // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! \n var rule_new_ids = new Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n var idx = rule_ids[i];\n var rule_re = rules[idx];\n rule_regexes[i + 1] = rule_re;\n rule_new_ids[i + 1] = idx;\n }\n\n spec.rules = rule_new_ids;\n spec.__rule_regexes = rule_regexes;\n spec.__rule_count = len;\n }\n\n this.__decompressed = true;\n }\n\n this._input = input || '';\n this.clear();\n this._signaled_error_token = false;\n this.done = false;\n this.yylineno = 0;\n this.matched = '';\n this.conditionStack = ['INITIAL'];\n this.__currentRuleSet__ = null;\n\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n this.offset = 0;\n return this;\n },\n\n /**\n * edit the remaining input via user-specified callback.\n * This can be used to forward-adjust the input-to-parse, \n * e.g. inserting macro expansions and alike in the\n * input which has yet to be lexed.\n * The behaviour of this API contrasts the `unput()` et al\n * APIs as those act on the *consumed* input, while this\n * one allows one to manipulate the future, without impacting\n * the current `yyloc` cursor location or any history. \n * \n * Use this API to help implement C-preprocessor-like\n * `#include` statements, etc.\n * \n * The provided callback must be synchronous and is\n * expected to return the edited input (string).\n *\n * The `cpsArg` argument value is passed to the callback\n * as-is.\n *\n * `callback` interface: \n * `function callback(input, cpsArg)`\n * \n * - `input` will carry the remaining-input-to-lex string\n * from the lexer.\n * - `cpsArg` is `cpsArg` passed into this API.\n * \n * The `this` reference for the callback will be set to\n * reference this lexer instance so that userland code\n * in the callback can easily and quickly access any lexer\n * API. \n *\n * When the callback returns a non-string-type falsey value,\n * we assume the callback did not edit the input and we\n * will using the input as-is.\n *\n * When the callback returns a non-string-type value, it\n * is converted to a string for lexing via the `\"\" + retval`\n * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html \n * -- that way any returned object's `toValue()` and `toString()`\n * methods will be invoked in a proper/desirable order.)\n * \n * @public\n * @this {RegExpLexer}\n */\n editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {\n var rv = callback.call(this, this._input, cpsArg);\n\n if (typeof rv !== 'string') {\n if (rv) {\n this._input = '' + rv;\n } \n // else: keep `this._input` as is. \n } else {\n this._input = rv;\n }\n\n return this;\n },\n\n /**\n * consumes and returns one char from the input\n * \n * @public\n * @this {RegExpLexer}\n */\n input: function lexer_input() {\n if (!this._input) {\n //this.done = true; -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <> tokens and perform user action code for a <> match, but only does so *once*)\n return null;\n }\n\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n\n // Count the linenumber up when we hit the LF (or a stand-alone CR).\n // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo\n // and we advance immediately past the LF as well, returning both together as if\n // it was all a single 'character' only.\n var slice_len = 1;\n\n var lines = false;\n\n if (ch === '\\n') {\n lines = true;\n } else if (ch === '\\r') {\n lines = true;\n var ch2 = this._input[1];\n\n if (ch2 === '\\n') {\n slice_len++;\n ch += ch2;\n this.yytext += ch2;\n this.yyleng++;\n this.offset++;\n this.match += ch2;\n this.matched += ch2;\n this.yylloc.range[1]++;\n }\n }\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n this.yylloc.last_column = 0;\n } else {\n this.yylloc.last_column++;\n }\n\n this.yylloc.range[1]++;\n this._input = this._input.slice(slice_len);\n return ch;\n },\n\n /**\n * unshifts one char (or an entire string) into the input\n * \n * @public\n * @this {RegExpLexer}\n */\n unput: function lexer_unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.yyleng = this.yytext.length;\n this.offset -= len;\n this.match = this.match.substr(0, this.match.length - len);\n this.matched = this.matched.substr(0, this.matched.length - len);\n\n if (lines.length > 1) {\n this.yylineno -= lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n\n // Get last entirely matched line into the `pre_lines[]` array's\n // last index slot; we don't mind when other previously \n // matched lines end up in the array too. \n var pre = this.match;\n\n var pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n\n if (pre_lines.length === 1) {\n pre = this.matched;\n pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n }\n\n this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;\n } else {\n this.yylloc.last_column -= len;\n }\n\n this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;\n this.done = false;\n return this;\n },\n\n /**\n * cache matched text and append it on next action\n * \n * @public\n * @this {RegExpLexer}\n */\n more: function lexer_more() {\n this._more = true;\n return this;\n },\n\n /**\n * signal the lexer that this rule fails to match the input, so the\n * next matching rule (regex) should be tested instead.\n * \n * @public\n * @this {RegExpLexer}\n */\n reject: function lexer_reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n // when the `parseError()` call returns, we MUST ensure that the error is registered.\n // We accomplish this by signaling an 'error' token to be produced for the current\n // `.lex()` run.\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',\n false\n );\n\n this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n\n return this;\n },\n\n /**\n * retain first n characters of the match\n * \n * @public\n * @this {RegExpLexer}\n */\n less: function lexer_less(n) {\n return this.unput(this.match.slice(n));\n },\n\n /**\n * return (part of the) already matched input, i.e. for error\n * messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of\n * input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n * \n * @public\n * @this {RegExpLexer}\n */\n pastInput: function lexer_pastInput(maxSize, maxLines) {\n var past = this.matched.substring(0, this.matched.length - this.match.length);\n\n if (maxSize < 0)\n maxSize = past.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = past.length; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substr` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n past = past.substr(-maxSize * 2 - 2);\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = past.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(-maxLines);\n past = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis prefix...\n if (past.length > maxSize) {\n past = '...' + past.substr(-maxSize);\n }\n\n return past;\n },\n\n /**\n * return (part of the) upcoming input, i.e. for error messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n *\n * > ### NOTE ###\n * >\n * > *\"upcoming input\"* is defined as the whole of the both\n * > the *currently lexed* input, together with any remaining input\n * > following that. *\"currently lexed\"* input is the input \n * > already recognized by the lexer but not yet returned with\n * > the lexer token. This happens when you are invoking this API\n * > from inside any lexer rule action code block. \n * >\n * \n * @public\n * @this {RegExpLexer}\n */\n upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {\n var next = this.match;\n\n if (maxSize < 0)\n maxSize = next.length + this._input.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = maxSize; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substring` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n if (next.length < maxSize * 2 + 2) {\n next += this._input.substring(0, maxSize * 2 + 2); // substring is faster on Chrome/V8 \n }\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = next.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(0, maxLines);\n next = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis postfix...\n if (next.length > maxSize) {\n next = next.substring(0, maxSize) + '...';\n }\n\n return next;\n },\n\n /**\n * return a string which displays the character position where the\n * lexing error occurred, i.e. for error messages\n * \n * @public\n * @this {RegExpLexer}\n */\n showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {\n var pre = this.pastInput(maxPrefix).replace(/\\s/g, ' ');\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput(maxPostfix).replace(/\\s/g, ' ') + '\\n' + c + '^';\n },\n\n /**\n * return an YYLLOC info object derived off the given context (actual, preceding, following, current).\n * Use this method when the given `actual` location is not guaranteed to exist (i.e. when\n * it MAY be NULL) and you MUST have a valid location info object anyway:\n * then we take the given context of the `preceding` and `following` locations, IFF those are available,\n * and reconstruct the `actual` location info from those.\n * If this fails, the heuristic is to take the `current` location, IFF available.\n * If this fails as well, we assume the sought location is at/around the current lexer position\n * and then produce that one as a response. DO NOTE that these heuristic/derived location info\n * values MAY be inaccurate!\n *\n * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just\n * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).\n * \n * @public\n * @this {RegExpLexer}\n */\n deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {\n var loc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n if (actual) {\n loc.first_line = actual.first_line | 0;\n loc.last_line = actual.last_line | 0;\n loc.first_column = actual.first_column | 0;\n loc.last_column = actual.last_column | 0;\n\n if (actual.range) {\n loc.range[0] = actual.range[0] | 0;\n loc.range[1] = actual.range[1] | 0;\n }\n }\n\n if (loc.first_line <= 0 || loc.last_line < loc.first_line) {\n // plan B: heuristic using preceding and following:\n if (loc.first_line <= 0 && preceding) {\n loc.first_line = preceding.last_line | 0;\n loc.first_column = preceding.last_column | 0;\n\n if (preceding.range) {\n loc.range[0] = actual.range[1] | 0;\n }\n }\n\n if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {\n loc.last_line = following.first_line | 0;\n loc.last_column = following.first_column | 0;\n\n if (following.range) {\n loc.range[1] = actual.range[0] | 0;\n }\n }\n\n // plan C?: see if the 'current' location is useful/sane too:\n if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {\n loc.first_line = current.first_line | 0;\n loc.first_column = current.first_column | 0;\n\n if (current.range) {\n loc.range[0] = current.range[0] | 0;\n }\n }\n\n if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {\n loc.last_line = current.last_line | 0;\n loc.last_column = current.last_column | 0;\n\n if (current.range) {\n loc.range[1] = current.range[1] | 0;\n }\n }\n }\n\n // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter\n // or plan D heuristics to produce a 'sensible' last_line value:\n if (loc.last_line <= 0) {\n if (loc.first_line <= 0) {\n loc.first_line = this.yylloc.first_line;\n loc.last_line = this.yylloc.last_line;\n loc.first_column = this.yylloc.first_column;\n loc.last_column = this.yylloc.last_column;\n loc.range[0] = this.yylloc.range[0];\n loc.range[1] = this.yylloc.range[1];\n } else {\n loc.last_line = this.yylloc.last_line;\n loc.last_column = this.yylloc.last_column;\n loc.range[1] = this.yylloc.range[1];\n }\n }\n\n if (loc.first_line <= 0) {\n loc.first_line = loc.last_line;\n loc.first_column = 0; // loc.last_column; \n loc.range[1] = loc.range[0];\n }\n\n if (loc.first_column < 0) {\n loc.first_column = 0;\n }\n\n if (loc.last_column < 0) {\n loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);\n }\n\n return loc;\n },\n\n /**\n * return a string which displays the lines & columns of input which are referenced \n * by the given location info range, plus a few lines of context.\n * \n * This function pretty-prints the indicated section of the input, with line numbers \n * and everything!\n * \n * This function is very useful to provide highly readable error reports, while\n * the location range may be specified in various flexible ways:\n * \n * - `loc` is the location info object which references the area which should be\n * displayed and 'marked up': these lines & columns of text are marked up by `^`\n * characters below each character in the entire input range.\n * \n * - `context_loc` is the *optional* location info object which instructs this\n * pretty-printer how much *leading* context should be displayed alongside\n * the area referenced by `loc`. This can help provide context for the displayed\n * error, etc.\n * \n * When this location info is not provided, a default context of 3 lines is\n * used.\n * \n * - `context_loc2` is another *optional* location info object, which serves\n * a similar purpose to `context_loc`: it specifies the amount of *trailing*\n * context lines to display in the pretty-print output.\n * \n * When this location info is not provided, a default context of 1 line only is\n * used.\n * \n * Special Notes:\n * \n * - when the `loc`-indicated range is very large (about 5 lines or more), then\n * only the first and last few lines of this block are printed while a\n * `...continued...` message will be printed between them.\n * \n * This serves the purpose of not printing a huge amount of text when the `loc`\n * range happens to be huge: this way a manageable & readable output results\n * for arbitrary large ranges.\n * \n * - this function can display lines of input which whave not yet been lexed.\n * `prettyPrintRange()` can access the entire input!\n * \n * @public\n * @this {RegExpLexer}\n */\n prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {\n loc = this.deriveLocationInfo(loc, context_loc, context_loc2);\n const CONTEXT = 3;\n const CONTEXT_TAIL = 1;\n const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;\n var input = this.matched + this._input;\n var lines = input.split('\\n');\n var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));\n var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));\n var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;\n var ws_prefix = new Array(lineno_display_width).join(' ');\n var nonempty_line_indexes = [];\n\n var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {\n var lno = index + l0;\n var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);\n var rv = lno_pfx + ': ' + line;\n var errpfx = new Array(lineno_display_width + 1).join('^');\n var offset = 2 + 1;\n var len = 0;\n\n if (lno === loc.first_line) {\n offset += loc.first_column;\n\n len = Math.max(\n 2,\n ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1\n );\n } else if (lno === loc.last_line) {\n len = Math.max(2, loc.last_column + 1);\n } else if (lno > loc.first_line && lno < loc.last_line) {\n len = Math.max(2, line.length + 1);\n }\n\n if (len) {\n var lead = new Array(offset).join('.');\n var mark = new Array(len).join('^');\n rv += '\\n' + errpfx + lead + mark;\n\n if (line.trim().length > 0) {\n nonempty_line_indexes.push(index);\n }\n }\n\n rv = rv.replace(/\\t/g, ' ');\n return rv;\n });\n\n // now make sure we don't print an overly large amount of error area: limit it \n // to the top and bottom line count:\n if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {\n var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;\n var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;\n var intermediate_line = new Array(lineno_display_width + 1).join(' ') + ' (...continued...)';\n intermediate_line += '\\n' + new Array(lineno_display_width + 1).join('-') + ' (---------------)';\n rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);\n }\n\n return rv.join('\\n');\n },\n\n /**\n * helper function, used to produce a human readable description as a string, given\n * the input `yylloc` location object.\n * \n * Set `display_range_too` to TRUE to include the string character index position(s)\n * in the description if the `yylloc.range` is available.\n * \n * @public\n * @this {RegExpLexer}\n */\n describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {\n var l1 = yylloc.first_line;\n var l2 = yylloc.last_line;\n var c1 = yylloc.first_column;\n var c2 = yylloc.last_column;\n var dl = l2 - l1;\n var dc = c2 - c1;\n var rv;\n\n if (dl === 0) {\n rv = 'line ' + l1 + ', ';\n\n if (dc <= 1) {\n rv += 'column ' + c1;\n } else {\n rv += 'columns ' + c1 + ' .. ' + c2;\n }\n } else {\n rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';\n }\n\n if (yylloc.range && display_range_too) {\n var r1 = yylloc.range[0];\n var r2 = yylloc.range[1] - 1;\n\n if (r2 <= r1) {\n rv += ' {String Offset: ' + r1 + '}';\n } else {\n rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';\n }\n }\n\n return rv;\n },\n\n /**\n * test the lexed token: return FALSE when not a match, otherwise return token.\n * \n * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`\n * contains the actually matched text string.\n * \n * Also move the input cursor forward and update the match collectors:\n * \n * - `yytext`\n * - `yyleng`\n * - `match`\n * - `matches`\n * - `yylloc`\n * - `offset`\n * \n * @public\n * @this {RegExpLexer}\n */\n test_match: function lexer_test_match(match, indexed_rule) {\n var token, lines, backup, match_str, match_str_len;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.yylloc.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column,\n range: this.yylloc.range.slice(0)\n },\n\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n\n //_signaled_error_token: this._signaled_error_token,\n yy: this.yy,\n\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n }\n\n match_str = match[0];\n match_str_len = match_str.length;\n\n // if (match_str.indexOf('\\n') !== -1 || match_str.indexOf('\\r') !== -1) {\n lines = match_str.split(/(?:\\r\\n?|\\n)/g);\n\n if (lines.length > 1) {\n this.yylineno += lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n this.yylloc.last_column = lines[lines.length - 1].length;\n } else {\n this.yylloc.last_column += match_str_len;\n }\n\n // }\n this.yytext += match_str;\n\n this.match += match_str;\n this.matched += match_str;\n this.matches = match;\n this.yyleng = this.yytext.length;\n this.yylloc.range[1] += match_str_len;\n\n // previous lex rules MAY have invoked the `more()` API rather than producing a token:\n // those rules will already have moved this `offset` forward matching their match lengths,\n // hence we must only add our own match length now:\n this.offset += match_str_len;\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match_str_len);\n\n // calling this method:\n //\n // function lexer__performAction(yy, yyrulenumber, YY_START) {...}\n token = this.performAction.call(\n this,\n this.yy,\n indexed_rule,\n this.conditionStack[this.conditionStack.length - 1] /* = YY_START */\n );\n\n // otherwise, when the action codes are all simple return token statements:\n //token = this.simpleCaseActionClusters[indexed_rule];\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n this.__currentRuleSet__ = null;\n return false; // rule action called reject() implying the next rule should be tested instead. \n } else if (this._signaled_error_token) {\n // produce one 'error' token as `.parseError()` in `reject()`\n // did not guarantee a failure signal by throwing an exception!\n token = this._signaled_error_token;\n\n this._signaled_error_token = false;\n return token;\n }\n\n return false;\n },\n\n /**\n * return next match in input\n * \n * @public\n * @this {RegExpLexer}\n */\n next: function lexer_next() {\n if (this.done) {\n this.clear();\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.clear();\n }\n\n var spec = this.__currentRuleSet__;\n\n if (!spec) {\n // Update the ruleset cache as we apparently encountered a state change or just started lexing.\n // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will\n // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps\n // speed up those activities a tiny bit.\n spec = this.__currentRuleSet__ = this._currentRules();\n\n // Check whether a *sane* condition has been pushed before: this makes the lexer robust against\n // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19\n if (!spec || !spec.rules) {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name \"' + this.topState() + '\"; this is a fatal error and should be reported to the application programmer team!',\n false\n );\n\n // produce one 'error' token until this situation has been resolved, most probably by parse termination!\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n }\n\n var rule_ids = spec.rules;\n var regexes = spec.__rule_regexes;\n var len = spec.__rule_count;\n\n // Note: the arrays are 1-based, while `len` itself is a valid index,\n // hence the non-standard less-or-equal check in the next loop condition!\n for (var i = 1; i <= len; i++) {\n tempMatch = this._input.match(regexes[i]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rule_ids[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = undefined;\n continue; // rule action called reject() implying a rule MISmatch. \n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rule_ids[index]);\n\n if (token !== false) {\n return token;\n }\n\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n\n if (!this._input) {\n this.done = true;\n this.clear();\n return this.EOF;\n } else {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': Unrecognized text.',\n this.options.lexerErrorsAreRecoverable\n );\n\n var pendingInput = this._input;\n var activeCondition = this.topState();\n var conditionStackDepth = this.conditionStack.length;\n token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n\n if (token === this.ERROR) {\n // we can try to recover from a lexer error that `parseError()` did not 'recover' for us\n // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`\n // has not consumed/modified any pending input or changed state in the error handler:\n if (!this.matches && // and make sure the input has been modified/consumed ...\n pendingInput === this._input && // ...or the lexer state has been modified significantly enough\n // to merit a non-consuming error handling action right now.\n activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {\n this.input();\n }\n }\n\n return token;\n }\n },\n\n /**\n * return next match that has a token\n * \n * @public\n * @this {RegExpLexer}\n */\n lex: function lexer_lex() {\n var r;\n\n // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:\n if (typeof this.pre_lex === 'function') {\n r = this.pre_lex.call(this, 0);\n }\n\n if (typeof this.options.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.pre_lex.call(this, r) || r;\n }\n\n if (this.yy && typeof this.yy.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.pre_lex.call(this, r) || r;\n }\n\n while (!r) {\n r = this.next();\n }\n\n if (this.yy && typeof this.yy.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.post_lex.call(this, r) || r;\n }\n\n if (typeof this.options.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.post_lex.call(this, r) || r;\n }\n\n if (typeof this.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.post_lex.call(this, r) || r;\n }\n\n return r;\n },\n\n /**\n * return next match that has a token. Identical to the `lex()` API but does not invoke any of the \n * `pre_lex()` nor any of the `post_lex()` callbacks.\n * \n * @public\n * @this {RegExpLexer}\n */\n fastLex: function lexer_fastLex() {\n var r;\n\n while (!r) {\n r = this.next();\n }\n\n return r;\n },\n\n /**\n * return info about the lexer state that can help a parser or other lexer API user to use the\n * most efficient means available. This API is provided to aid run-time performance for larger\n * systems which employ this lexer.\n * \n * @public\n * @this {RegExpLexer}\n */\n canIUse: function lexer_canIUse() {\n var rv = {\n fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'\n };\n\n return rv;\n },\n\n /**\n * backwards compatible alias for `pushState()`;\n * the latter is symmetrical with `popState()` and we advise to use\n * those APIs in any modern lexer code, rather than `begin()`.\n * \n * @public\n * @this {RegExpLexer}\n */\n begin: function lexer_begin(condition) {\n return this.pushState(condition);\n },\n\n /**\n * activates a new lexer condition state (pushes the new lexer\n * condition state onto the condition stack)\n * \n * @public\n * @this {RegExpLexer}\n */\n pushState: function lexer_pushState(condition) {\n this.conditionStack.push(condition);\n this.__currentRuleSet__ = null;\n return this;\n },\n\n /**\n * pop the previously active lexer condition state off the condition\n * stack\n * \n * @public\n * @this {RegExpLexer}\n */\n popState: function lexer_popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n this.__currentRuleSet__ = null;\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n /**\n * return the currently active lexer condition state; when an index\n * argument is provided it produces the N-th previous condition state,\n * if available\n * \n * @public\n * @this {RegExpLexer}\n */\n topState: function lexer_topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n\n /**\n * (internal) determine the lexer rule set which is active for the\n * currently active lexer condition state\n * \n * @public\n * @this {RegExpLexer}\n */\n _currentRules: function lexer__currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]];\n } else {\n return this.conditions['INITIAL'];\n }\n },\n\n /**\n * return the number of states currently on the stack\n * \n * @public\n * @this {RegExpLexer}\n */\n stateStackSize: function lexer_stateStackSize() {\n return this.conditionStack.length;\n },\n\n options: {\n trackPosition: true\n },\n\n JisonLexerError: JisonLexerError,\n\n performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {\n var yy_ = this;\n var YYSTATE = YY_START;\n\n switch (yyrulenumber) {\n case 1:\n /*! Conditions:: INITIAL */\n /*! Rule:: \\s+ */\n /* skip whitespace */\n break;\n\n default:\n return this.simpleCaseActionClusters[yyrulenumber];\n }\n },\n\n simpleCaseActionClusters: {\n /*! Conditions:: INITIAL */\n /*! Rule:: (--[0-9a-z-A-Z-]*) */\n 0: 13,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\* */\n 2: 5,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\/ */\n 3: 6,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\+ */\n 4: 3,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: - */\n 5: 4,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)px\\b */\n 6: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)cm\\b */\n 7: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)mm\\b */\n 8: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)in\\b */\n 9: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pt\\b */\n 10: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pc\\b */\n 11: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)deg\\b */\n 12: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)grad\\b */\n 13: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rad\\b */\n 14: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)turn\\b */\n 15: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)s\\b */\n 16: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ms\\b */\n 17: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)Hz\\b */\n 18: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)kHz\\b */\n 19: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpi\\b */\n 20: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpcm\\b */\n 21: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dppx\\b */\n 22: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)em\\b */\n 23: 20,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ex\\b */\n 24: 21,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ch\\b */\n 25: 22,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rem\\b */\n 26: 23,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vw\\b */\n 27: 25,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vh\\b */\n 28: 24,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmin\\b */\n 29: 26,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmax\\b */\n 30: 27,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)% */\n 31: 28,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)\\b */\n 32: 11,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (calc) */\n 33: 9,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (var) */\n 34: 12,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([a-z]+) */\n 35: 10,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\( */\n 36: 7,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\) */\n 37: 8,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: , */\n 38: 14,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: $ */\n 39: 1\n },\n\n rules: [\n /* 0: */ /^(?:(--[\\d\\-A-Za-z]*))/,\n /* 1: */ /^(?:\\s+)/,\n /* 2: */ /^(?:\\*)/,\n /* 3: */ /^(?:\\/)/,\n /* 4: */ /^(?:\\+)/,\n /* 5: */ /^(?:-)/,\n /* 6: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)px\\b)/,\n /* 7: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)cm\\b)/,\n /* 8: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)mm\\b)/,\n /* 9: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)in\\b)/,\n /* 10: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pt\\b)/,\n /* 11: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pc\\b)/,\n /* 12: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)deg\\b)/,\n /* 13: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)grad\\b)/,\n /* 14: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rad\\b)/,\n /* 15: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)turn\\b)/,\n /* 16: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)s\\b)/,\n /* 17: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ms\\b)/,\n /* 18: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)Hz\\b)/,\n /* 19: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)kHz\\b)/,\n /* 20: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpi\\b)/,\n /* 21: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpcm\\b)/,\n /* 22: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dppx\\b)/,\n /* 23: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)em\\b)/,\n /* 24: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ex\\b)/,\n /* 25: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ch\\b)/,\n /* 26: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rem\\b)/,\n /* 27: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vw\\b)/,\n /* 28: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vh\\b)/,\n /* 29: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmin\\b)/,\n /* 30: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmax\\b)/,\n /* 31: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)%)/,\n /* 32: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)\\b)/,\n /* 33: */ /^(?:(calc))/,\n /* 34: */ /^(?:(var))/,\n /* 35: */ /^(?:([a-z]+))/,\n /* 36: */ /^(?:\\()/,\n /* 37: */ /^(?:\\))/,\n /* 38: */ /^(?:,)/,\n /* 39: */ /^(?:$)/\n ],\n\n conditions: {\n 'INITIAL': {\n rules: [\n 0,\n 1,\n 2,\n 3,\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 ],\n\n inclusive: true\n }\n }\n };\n\n return lexer;\n}();\nparser.lexer = lexer;\n\n\n\nfunction Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;\n\nreturn new Parser();\n})();\n\n \n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n \n}\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.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';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _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}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"16\":\"c375e479\",\"27\":\"cd74ba55\",\"70\":\"6ff5e487\",\"109\":\"c0fba452\",\"136\":\"8d6488b7\",\"195\":\"c3a1ab0a\",\"211\":\"cbc36164\",\"278\":\"c4f351ed\",\"331\":\"64fa811c\",\"417\":\"7adc401f\",\"467\":\"fa60eb76\",\"506\":\"c7c46f82\",\"517\":\"dc6c8022\",\"554\":\"f798199b\",\"733\":\"1954fa18\",\"757\":\"14e24a57\",\"787\":\"36cec030\",\"794\":\"8a1519c7\",\"806\":\"f8143ef4\",\"823\":\"5868cd50\",\"826\":\"5128bc45\",\"923\":\"f1ca0697\",\"927\":\"ef6abeca\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"orthographe:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkorthographe\"] = self[\"webpackChunkorthographe\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext('default');\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst genBaseStyle = token => {\n const {\n antCls,\n componentCls,\n iconCls,\n avatarBg,\n avatarColor,\n avatarSizeBase,\n avatarSizeLG,\n avatarSizeSM,\n avatarFontSizeBase,\n avatarFontSizeLG,\n avatarFontSizeSM,\n borderRadius,\n borderRadiusLG,\n borderRadiusSM,\n lineWidth,\n lineType\n } = token;\n // Avatar size style\n const avatarSizeStyle = (size, fontSize, radius) => ({\n width: size,\n height: size,\n lineHeight: `${size - lineWidth * 2}px`,\n borderRadius: '50%',\n [`&${componentCls}-square`]: {\n borderRadius: radius\n },\n [`${componentCls}-string`]: {\n position: 'absolute',\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transformOrigin: '0 center'\n },\n [`&${componentCls}-icon`]: {\n fontSize,\n [`> ${iconCls}`]: {\n margin: 0\n }\n }\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n overflow: 'hidden',\n color: avatarColor,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n verticalAlign: 'middle',\n background: avatarBg,\n border: `${lineWidth}px ${lineType} transparent`,\n [`&-image`]: {\n background: 'transparent'\n },\n [`${antCls}-image-img`]: {\n display: 'block'\n }\n }), avatarSizeStyle(avatarSizeBase, avatarFontSizeBase, borderRadius)), {\n [`&-lg`]: Object.assign({}, avatarSizeStyle(avatarSizeLG, avatarFontSizeLG, borderRadiusLG)),\n [`&-sm`]: Object.assign({}, avatarSizeStyle(avatarSizeSM, avatarFontSizeSM, borderRadiusSM)),\n '> img': {\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'cover'\n }\n })\n };\n};\nconst genGroupStyle = token => {\n const {\n componentCls,\n avatarGroupBorderColor,\n avatarGroupSpace\n } = token;\n return {\n [`${componentCls}-group`]: {\n display: 'inline-flex',\n [`${componentCls}`]: {\n borderColor: avatarGroupBorderColor\n },\n [`> *:not(:first-child)`]: {\n marginInlineStart: avatarGroupSpace\n }\n }\n };\n};\nexport default genComponentStyleHook('Avatar', token => {\n const {\n colorTextLightSolid,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n fontSize,\n fontSizeLG,\n fontSizeXL,\n fontSizeHeading3,\n marginXS,\n colorBorderBg,\n colorTextPlaceholder\n } = token;\n const avatarToken = mergeToken(token, {\n avatarBg: colorTextPlaceholder,\n avatarColor: colorTextLightSolid,\n avatarSizeBase: controlHeight,\n avatarSizeLG: controlHeightLG,\n avatarSizeSM: controlHeightSM,\n avatarFontSizeBase: Math.round((fontSizeLG + fontSizeXL) / 2),\n avatarFontSizeLG: fontSizeHeading3,\n avatarFontSizeSM: fontSize,\n avatarGroupSpace: -marginXS,\n avatarGroupBorderColor: colorBorderBg\n });\n return [genBaseStyle(avatarToken), genGroupStyle(avatarToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { responsiveArray } from '../_util/responsiveObserver';\nimport warning from '../_util/warning';\nimport SizeContext from './SizeContext';\nimport useStyle from './style';\nconst InternalAvatar = (props, ref) => {\n const groupSize = React.useContext(SizeContext);\n const [scale, setScale] = React.useState(1);\n const [mounted, setMounted] = React.useState(false);\n const [isImgExist, setIsImgExist] = React.useState(true);\n const avatarNodeRef = React.useRef(null);\n const avatarChildrenRef = React.useRef(null);\n const avatarNodeMergeRef = composeRef(ref, avatarNodeRef);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const setScaleParam = () => {\n if (!avatarChildrenRef.current || !avatarNodeRef.current) {\n return;\n }\n const childrenWidth = avatarChildrenRef.current.offsetWidth; // offsetWidth avoid affecting be transform scale\n const nodeWidth = avatarNodeRef.current.offsetWidth;\n // denominator is 0 is no meaning\n if (childrenWidth !== 0 && nodeWidth !== 0) {\n const {\n gap = 4\n } = props;\n if (gap * 2 < nodeWidth) {\n setScale(nodeWidth - gap * 2 < childrenWidth ? (nodeWidth - gap * 2) / childrenWidth : 1);\n }\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n setIsImgExist(true);\n setScale(1);\n }, [props.src]);\n React.useEffect(() => {\n setScaleParam();\n }, [props.gap]);\n const handleImgLoadError = () => {\n const {\n onError\n } = props;\n const errorFlag = onError ? onError() : undefined;\n if (errorFlag !== false) {\n setIsImgExist(false);\n }\n };\n const {\n prefixCls: customizePrefixCls,\n shape = 'circle',\n size: customSize = 'default',\n src,\n srcSet,\n icon,\n className,\n alt,\n draggable,\n children,\n crossOrigin\n } = props,\n others = __rest(props, [\"prefixCls\", \"shape\", \"size\", \"src\", \"srcSet\", \"icon\", \"className\", \"alt\", \"draggable\", \"children\", \"crossOrigin\"]);\n const size = customSize === 'default' ? groupSize : customSize;\n const needResponsive = Object.keys(typeof size === 'object' ? size || {} : {}).some(key => ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].includes(key));\n const screens = useBreakpoint(needResponsive);\n const responsiveSizeStyle = React.useMemo(() => {\n if (typeof size !== 'object') {\n return {};\n }\n const currentBreakpoint = responsiveArray.find(screen => screens[screen]);\n const currentSize = size[currentBreakpoint];\n return currentSize ? {\n width: currentSize,\n height: currentSize,\n lineHeight: `${currentSize}px`,\n fontSize: icon ? currentSize / 2 : 18\n } : {};\n }, [screens, size]);\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Avatar', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n const prefixCls = getPrefixCls('avatar', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small'\n });\n const hasImageElement = /*#__PURE__*/React.isValidElement(src);\n const classString = classNames(prefixCls, sizeCls, {\n [`${prefixCls}-${shape}`]: !!shape,\n [`${prefixCls}-image`]: hasImageElement || src && isImgExist,\n [`${prefixCls}-icon`]: !!icon\n }, className, hashId);\n const sizeStyle = typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: `${size}px`,\n fontSize: icon ? size / 2 : 18\n } : {};\n let childrenToRender;\n if (typeof src === 'string' && isImgExist) {\n childrenToRender = /*#__PURE__*/React.createElement(\"img\", {\n src: src,\n draggable: draggable,\n srcSet: srcSet,\n onError: handleImgLoadError,\n alt: alt,\n crossOrigin: crossOrigin\n });\n } else if (hasImageElement) {\n childrenToRender = src;\n } else if (icon) {\n childrenToRender = icon;\n } else if (mounted || scale !== 1) {\n const transformString = `scale(${scale}) translateX(-50%)`;\n const childrenStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString\n };\n const sizeChildrenStyle = typeof size === 'number' ? {\n lineHeight: `${size}px`\n } : {};\n childrenToRender = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: setScaleParam\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-string`,\n ref: avatarChildrenRef,\n style: Object.assign(Object.assign({}, sizeChildrenStyle), childrenStyle)\n }, children));\n } else {\n childrenToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-string`,\n style: {\n opacity: 0\n },\n ref: avatarChildrenRef\n }, children);\n }\n // The event is triggered twice from bubbling up the DOM tree.\n // see https://codesandbox.io/s/kind-snow-9lidz\n delete others.onError;\n delete others.gap;\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({}, others, {\n style: Object.assign(Object.assign(Object.assign({}, sizeStyle), responsiveSizeStyle), others.style),\n className: classString,\n ref: avatarNodeMergeRef\n }), childrenToRender));\n};\nconst Avatar = /*#__PURE__*/React.forwardRef(InternalAvatar);\nif (process.env.NODE_ENV !== 'production') {\n Avatar.displayName = 'Avatar';\n}\nexport default Avatar;","export const getRenderPropValue = propValue => {\n if (!propValue) {\n return null;\n }\n if (typeof propValue === 'function') {\n return propValue();\n }\n return propValue;\n};","import { initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken, PresetColors } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nimport getArrowStyle from '../../style/placementArrow';\nconst genBaseStyle = token => {\n const {\n componentCls,\n popoverBg,\n popoverColor,\n width,\n fontWeightStrong,\n popoverPadding,\n boxShadowSecondary,\n colorTextHeading,\n borderRadiusLG: borderRadius,\n zIndexPopup,\n marginXS,\n colorBgElevated\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: 0,\n // use `left` to fix https://github.com/ant-design/ant-design/issues/39195\n left: {\n _skip_check_: true,\n value: 0\n },\n zIndex: zIndexPopup,\n fontWeight: 'normal',\n whiteSpace: 'normal',\n textAlign: 'start',\n cursor: 'auto',\n userSelect: 'text',\n '--antd-arrow-background-color': colorBgElevated,\n '&-rtl': {\n direction: 'rtl'\n },\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n },\n [`${componentCls}-inner`]: {\n backgroundColor: popoverBg,\n backgroundClip: 'padding-box',\n borderRadius,\n boxShadow: boxShadowSecondary,\n padding: popoverPadding\n },\n [`${componentCls}-title`]: {\n minWidth: width,\n marginBottom: marginXS,\n color: colorTextHeading,\n fontWeight: fontWeightStrong\n },\n [`${componentCls}-inner-content`]: {\n color: popoverColor\n }\n })\n },\n // Arrow Style\n getArrowStyle(token, {\n colorBg: 'var(--antd-arrow-background-color)'\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n [`${componentCls}-content`]: {\n display: 'inline-block'\n }\n }\n }];\n};\nconst genColorStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: PresetColors.map(colorKey => {\n const lightColor = token[`${colorKey}-6`];\n return {\n [`&${componentCls}-${colorKey}`]: {\n '--antd-arrow-background-color': lightColor,\n [`${componentCls}-inner`]: {\n backgroundColor: lightColor\n },\n [`${componentCls}-arrow`]: {\n background: 'transparent'\n }\n }\n };\n })\n };\n};\nconst genWireframeStyle = token => {\n const {\n componentCls,\n lineWidth,\n lineType,\n colorSplit,\n paddingSM,\n controlHeight,\n fontSize,\n lineHeight,\n padding\n } = token;\n const titlePaddingBlockDist = controlHeight - Math.round(fontSize * lineHeight);\n const popoverTitlePaddingBlockTop = titlePaddingBlockDist / 2;\n const popoverTitlePaddingBlockBottom = titlePaddingBlockDist / 2 - lineWidth;\n const popoverPaddingHorizontal = padding;\n return {\n [componentCls]: {\n [`${componentCls}-inner`]: {\n padding: 0\n },\n [`${componentCls}-title`]: {\n margin: 0,\n padding: `${popoverTitlePaddingBlockTop}px ${popoverPaddingHorizontal}px ${popoverTitlePaddingBlockBottom}px`,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n [`${componentCls}-inner-content`]: {\n padding: `${paddingSM}px ${popoverPaddingHorizontal}px`\n }\n }\n };\n};\nexport default genComponentStyleHook('Popover', token => {\n const {\n colorBgElevated,\n colorText,\n wireframe\n } = token;\n const popoverToken = mergeToken(token, {\n popoverBg: colorBgElevated,\n popoverColor: colorText,\n popoverPadding: 12 // Fixed Value\n });\n\n return [genBaseStyle(popoverToken), genColorStyle(popoverToken), wireframe && genWireframeStyle(popoverToken), initZoomMotion(popoverToken, 'zoom-big')];\n}, _ref => {\n let {\n zIndexPopupBase\n } = _ref;\n return {\n zIndexPopup: zIndexPopupBase + 30,\n width: 177\n };\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nexport const getOverlay = (prefixCls, title, content) => {\n if (!title && !content) return undefined;\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`\n }, getRenderPropValue(content)));\n};\nexport function RawPurePanel(props) {\n const {\n hashId,\n prefixCls,\n className,\n style,\n placement = 'top',\n title,\n content,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className),\n style: style\n }, /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls\n }), children || getOverlay(prefixCls, title, content)));\n}\nexport default function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls\n } = props,\n restProps = __rest(props, [\"prefixCls\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(RawPurePanel, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n hashId: hashId\n })));\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nimport PurePanel from './PurePanel';\n// CSSINJS\nimport useStyle from './style';\nconst Overlay = _ref => {\n let {\n title,\n content,\n prefixCls\n } = _ref;\n if (!title && !content) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`\n }, getRenderPropValue(content)));\n};\nconst Popover = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n title,\n content,\n overlayClassName,\n placement = 'top',\n trigger = 'hover',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle = {}\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"title\", \"content\", \"overlayClassName\", \"placement\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const rootPrefixCls = getPrefixCls();\n const overlayCls = classNames(overlayClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n placement: placement,\n trigger: trigger,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayStyle: overlayStyle\n }, otherProps, {\n prefixCls: prefixCls,\n overlayClassName: overlayCls,\n ref: ref,\n overlay: /*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: title,\n content: content\n }),\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName),\n \"data-popover-inject\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popover.displayName = 'Popover';\n}\nPopover._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Popover;","import classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Popover from '../popover';\nimport { cloneElement } from '../_util/reactNode';\nimport Avatar from './avatar';\nimport { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nconst Group = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className = '',\n maxCount,\n maxStyle,\n size\n } = props;\n const prefixCls = getPrefixCls('avatar', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(groupPrefixCls, {\n [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n const {\n children,\n maxPopoverPlacement = 'top',\n maxPopoverTrigger = 'hover'\n } = props;\n const childrenWithProps = toArray(children).map((child, index) => cloneElement(child, {\n key: `avatar-key-${index}`\n }));\n const numOfChildren = childrenWithProps.length;\n if (maxCount && maxCount < numOfChildren) {\n const childrenShow = childrenWithProps.slice(0, maxCount);\n const childrenHidden = childrenWithProps.slice(maxCount, numOfChildren);\n childrenShow.push( /*#__PURE__*/React.createElement(Popover, {\n key: \"avatar-popover-key\",\n content: childrenHidden,\n trigger: maxPopoverTrigger,\n placement: maxPopoverPlacement,\n overlayClassName: `${groupPrefixCls}-popover`\n }, /*#__PURE__*/React.createElement(Avatar, {\n style: maxStyle\n }, `+${numOfChildren - maxCount}`)));\n return wrapSSR( /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenShow)));\n }\n return wrapSSR( /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenWithProps)));\n};\nexport default Group;","import InternalAvatar from './avatar';\nimport Group from './group';\nexport { Group };\nconst Avatar = InternalAvatar;\nAvatar.Group = Group;\nexport default Avatar;","import React, { Component } from 'react';\r\nimport withRouter from './withRouter';\r\nimport { Row, Col, Card, Avatar } from 'antd';\r\nimport obtenirDonneesJeu from '../../data/AccesDonnees';\r\nimport laurier from '../../images/laurier.png'\r\nimport borderHonneur from '../../images/borderHonneur.png';\r\n\r\n\r\nconst { Meta } = Card;\r\nclass Tableau extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { resultats: [] }\r\n this.type = props.type;\r\n if (this.type === undefined) this.type = 'dictee';\r\n }\r\n\r\n chercherTitre = (noExo) => {\r\n\r\n this.donnees = obtenirDonneesJeu(noExo, this.type);\r\n if (this.donnees != null) {\r\n let titre = this.donnees.titre;\r\n return titre.length > 38 ? titre.slice(0, 38) + '...' : titre;\r\n }\r\n\r\n return '';\r\n\r\n }\r\n\r\n componentDidMount() {\r\n \r\n\r\n let url = new URL(process.env.REACT_APP_URL_TABLEAU);\r\n var data = new FormData();\r\n data.append('type', this.type);\r\n fetch(url, {\r\n method: \"POST\",\r\n body: data\r\n }).then(res => res.json())\r\n .then(res => {\r\n this.setState({ resultats: res });\r\n }\r\n );\r\n\r\n\r\n }\r\n render() {\r\n return
\r\n
\r\n\r\n

Le tableau d'honneur

\r\n
\"bordure\"
\r\n
\r\n \r\n {this.state.resultats.map((info, i) => \r\n }\r\n title={{info.prenom.length > 15 ? info.prenom.slice(0, 15) : info.prenom}}\r\n />\r\n

0 faute

\r\n

{this.chercherTitre(info.noExo)}

\r\n

le {info.date}

\r\n
)}\r\n
\r\n
\r\n }\r\n}\r\n\r\nexport default withRouter(Tableau);\r\n","import React from 'react';\r\nimport { LineChart,Bar,BarChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';\r\n\r\nexport default function GraphiqueCM()\r\n{\r\n const data = [\r\n {\r\n name: '< 2 fautes',\r\n an1987: 12.9,\r\n an2021: 1.9,\r\n site: 9.1\r\n \r\n },\r\n {\r\n name: '2-5 fautes',\r\n an1987: 17.8,\r\n an2021: 5.1,\r\n site : 12.5\r\n },\r\n {\r\n name: '5-10 fautes',\r\n an1987: 27.4,\r\n an2021: 12.7,\r\n site: 11.7\r\n },\r\n {\r\n name: '10-15 fautes',\r\n an1987: 15.7,\r\n an2021: 15.1, \r\n site : 22.5\r\n },\r\n {\r\n name: '15-25 fautes',\r\n an1987: 19.3,\r\n an2021: 35.5,\r\n site: 19.2\r\n \r\n \r\n },\r\n {\r\n name: '≥25 fautes',\r\n an1987: 6.9,\r\n an2007: 13.2,\r\n an2015: 22.7,\r\n an2021: 27.5,\r\n site: 25\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 \r\n\r\n}","import SousMenu from './SousMenu';\r\nimport React, { Component } from 'react';\r\nimport { Row, Col, Card } from 'antd';\r\nimport Ad from '../commun/adSense';\r\nimport { Link } from 'react-router-dom';\r\nimport border from '../../images/border.png'\r\nimport fleur from '../../images/fleur.png'\r\nimport presentation from '../../images/presentation.webp'\r\nimport { Helmet } from 'react-helmet';\r\nimport Tableau from '../commun/Tableau';\r\nimport GraphiqueCM from '../commun/Graph';\r\n\r\n\r\n\r\nexport default class Presentation extends Component\r\n{\r\n\r\n constructor()\r\n {\r\n super();\r\n this.state = {\r\n afficherGraphiqueCM : false\r\n }\r\n }\r\n\r\n graphiqueCM = () => {\r\n\r\n this.setState({ afficherGraphiqueCM: true })\r\n\r\n}\r\n \r\n render()\r\n {\r\n return(\r\n
\r\n \r\n Jeux et quiz d'orthographe gratuits en ligne\r\n \r\n \r\n

S'amuser avec des jeux d'orthographe

\r\n
evalquiz : le site numéro 1 du divertissement intelligent en France
\r\n \r\n

Améliorez votre orthographe grâce à des dizaines de quiz et de jeux dans différents styles. Tous sont gratuits et ne nécessitent aucune inscription.\r\n La difficulté des tests est indiquée la plupart du temps, tout le monde peut jouer de 9 à 99 ans, les adultes comme les enfants. Amusez-vous bien !

\r\n
\"fleur\"
\r\n\r\n

La grande dictée

\r\n

Ce test est une dictée ludique pour évaluer son orthographe. Le texte de cette dictée est donné régulièrement aux élèves de CM2 par l'Éducation nationale pour évaluer le niveau d'orthographe des jeunes au cours du temps. Vous pourrez donc comparer vos résultats avec ceux des élèves de CM2.

\r\n

En trente-quatre ans, le nombre d'erreurs a augmenté de manière régulière, pour passer de 10,7 fautes en moyenne en 1987 à 19,4 en 2021.

\r\n

Les résultats officiels des élèves de CM2 et de notre site

\r\n

Lecture du tableau : En 1987, 19,3 % des élèves de CM2 faisaient entre 10 et 15 fautes avec la dictée de référence. En 2021, le pourcentage a augmenté pour passer à 35,5 % des élèves avec 10-15 fautes. Sur notre site, le pourcentage est actuellement de 19,2 % des utilisateurs avec 10-15 fautes.

\r\n\r\n

Peux-tu faire mieux que les élèves ?

\r\n \r\n
1. La phrase pour s'entrainer
\r\n
2. Commencer le test d'orthographe de référence
\r\n\r\n
\"bordure\"
\r\n

Autres jeux et tests sur l'orthographe et la grammaire

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

Les concours

\r\n

Les concours sont nos jeux les plus difficiles, ils exigent beaucoup d'attention pour réaliser de bons scores.

\r\n

Chaque concours a un système de classement qui vous permet de vous évaluer par rapport aux autres.

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

Les évaluations de l'Éducation nationale

\r\n

Le 2 concours sur la conjugaison

\r\n

Le test de l'orthographe en 64 étapes

\r\n

Les 3 concours sur le vocabulaire français

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

La farandole des mots

\r\n

Le Scrabble solitaire

\r\n

Le challenge des jeux de lettres

\r\n

Le concours du mot le plus long

\r\n
\r\n \r\n \r\n \r\n
\"bordure\"
\r\n \r\n \r\n

Les défis

\r\n

Un défi est un ensemble de petits jeux (quiz, dictée, phrase à trou, conjugaison...), chaque jeu a un objectif qu'il faut impérativement atteindre pour passer au jeu suivant. Si vous réussissez tous les jeux du défi, vous gagnez le défi.

\r\n

Seul les meilleur(e)s peuvent réussir un défi à la première tentative, ceux qui réussissent cet exploit verront leurs noms inscrits sur notre tableau d'honneur.

\r\n

Pour vous préparer aux défis, n'hésitez pas à vous entrainer avec tous les exercices et quiz présents sur notre site.

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\"bordure\"
\r\n
Les tests
\r\n \r\n
Les dictées
\r\n
Grammaire / Orthographe
\r\n
Conjugaison
\r\n
Jouer avec les mots
\r\n
\r\n\r\n
\"presentation\"
\r\n \r\n \r\n \r\n
Les défis
\r\n

1500 personnes ont déjà réussi à inscrire leurs noms au tableau d'honneur. Les 5 meilleurs de tous les temps : Gwendal, Valérie, Marie, Yasmina et Sylvie.

\r\n
\r\n \r\n \r\n \r\n
\"bordure\"
\r\n\r\n \r\n \r\n

Quelquefois plusieurs orthographes sont possibles pour un mot, le programme ne prend en compte qu'une seule orthographe. Le problème se pose particulièrement avec les accents circonflexes sur les u et i.\r\n Nous essayons sur ce site de ne prendre en compte que la nouvelle orthographe sans accent circonflexe (plus simple sur un clavier).

\r\n

L'orthographe n'est pas une science exacte et l'homme n'est pas infaillible, vous pouvez nous contacter directement si vous avez des remarques ou des propositions en consultant la page des mentions légales.

\r\n
\r\n

Crédits

\r\n

Les icônes de bordure sont l'oeuvre d'Olena Panasovska.

\r\n

L'icône des lauriers est l'oeuvre d'Alice Noir.

\r\n

Photo de présentation d'Alexandr Podvalny provenant de Pexels

\r\n \r\n \r\n \r\n
)\r\n }\r\n\r\n}\r\n","import { useEffect, useRef } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nfunction ScrollToAnchor() {\r\n const location = useLocation();\r\n const lastHash = useRef('');\r\n\r\n // listen to location change using useEffect with location as dependency\r\n // https://jasonwatmore.com/react-router-v6-listen-to-location-route-change-without-history-listen\r\n useEffect(() => {\r\n if (location.hash) {\r\n lastHash.current = location.hash.slice(1); // safe hash for further use after navigation\r\n }\r\n\r\n if (lastHash.current && document.getElementById(lastHash.current)) {\r\n setTimeout(() => {\r\n document\r\n .getElementById(lastHash.current)\r\n ?.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n lastHash.current = '';\r\n }, 100);\r\n }\r\n }, [location]);\r\n\r\n return null;\r\n}\r\n\r\nexport default ScrollToAnchor;","import SousMenu from './SousMenu';\r\nimport React, { Component } from 'react';\r\nimport { Row, Col } from 'antd';\r\nimport Ad from '../commun/adSense';\r\nimport border from '../../images/border.png';\r\nimport Tableau from '../commun/Tableau';\r\n\r\nimport { Helmet } from 'react-helmet';\r\n\r\n\r\nexport default class Dictee extends Component\r\n{\r\n\r\n constructor()\r\n {\r\n super();\r\n \r\n }\r\n \r\n render()\r\n {\r\n return(\r\n
\r\n \r\n \r\n Les tests d'orthographe : les dictées \r\n \r\n \r\n
Tests d'orthographe et de grammaire
\r\n
evalquiz : le site numéro 1 du divertissement intelligent
\r\n

Les dictées

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

Les dictées

\r\n

Choisissez votre dictée en fonction de la difficulté.

\r\n

La correction est automatique. Tapez le texte normalement et la correction s'effectuera automatiquement.

\r\n

Vous pouvez écouter la dictée autant de fois que vous le désirez. Il suffit de revenir en arrière avec le lecteur audio.

\r\n

La correction prend en compte la ponctuation et les espaces entre les éléments de ponctuation.

\r\n

Réviser les espaces et la ponctuation.

\r\n

Si vous réalisez un sans-faute, votre prénom sera inscrit au tableau d'honneur des dictées.

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\"bordure\"
\r\n \r\n \r\n

Connaitre l'orthographe des mots

\r\n

Testez-vous en écrivant correctement les mots sans faute d'orthographe.

\r\n

Les verbes sont toujours à l'infinitif et les mots au singulier.

\r\n

Il y a toujours 5 mots à orthographier. Vous pouvez les réécouter autant de fois que vous le désirez.

\r\n

Si vous réalisez un sans-faute, votre prénom sera inscrit au tableau d'honneur de l'orthographe.

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\"bordure\"
\r\n \r\n
)\r\n }\r\n\r\n}\r\n","import SousMenu from './SousMenu';\r\nimport React, { Component } from 'react';\r\nimport { Row, Col, Card } from 'antd';\r\nimport Ad from '../commun/adSense';\r\n\r\nimport { Helmet } from 'react-helmet';\r\nimport border from '../../images/border.png';\r\n\r\n\r\nexport default class Grammaire extends Component\r\n{\r\n\r\n constructor()\r\n {\r\n super();\r\n \r\n }\r\n \r\n render()\r\n {\r\n return(\r\n
\r\n \r\n Les tests d'orthographe : la grammaire \r\n \r\n \r\n
Tests d'orthographe et de grammaire
\r\n
evalquiz : le site numéro 1 du divertissement intelligent
\r\n

L'orthographe et la grammaire

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

Les tests rapides

\r\n

Des exercices simples sur l'orthographe où il n'y a que 2 choix possibles.

\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
\"bordure\"
\r\n \r\n \r\n

QCM de grammaire

\r\n

Des exercices simples de grammaire où vous devez choisir la bonne proposition parmi plusieurs.

\r\n \r\n \r\n \r\n \r\n
\r\n
\"bordure\"
\r\n \r\n \r\n

Phrases à compléter

\r\n

Un autre test d'orthographe où il s'agit de compléter une phrase en ajoutant les mots manquants.

\r\n

Pour valider la correction il suffit d'appuyer sur Entrée.

\r\n

Les mots manquants sont quelquefois écrits en phonétique française.

\r\n \r\n \r\n \r\n \r\n
\r\n
\"bordure\"
\r\n \r\n
\"bordure\"
\r\n \r\n \r\n

Texte à corriger

\r\n

Vous devez retrouver les mots contenant des fautes d'orthographe puis ensuite apporter une correction.Le nombre de fautes dans le texte est indiqué.\r\n Les exercices sont classés par ordre de difficulté.\r\n

\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\"bordure\"
\r\n \r\n \r\n

Tester sa mémoire et améliorer son orthographe

\r\n

Regardez pendant quelques secondes une image contenant des mots.

\r\n

Mémorisez les mots présents.

\r\n

Répondez aux questions qui vous sont posées.

\r\n

Si vous devez écrire plusieurs mots ceux-ci doivent être séparés par un retour à la ligne.

\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","import SousMenu from './SousMenu';\r\nimport React, { Component } from 'react';\r\nimport { Row, Col } from 'antd';\r\nimport Ad from '../commun/adSense';\r\nimport border from '../../images/border.png';\r\nimport image1 from '../../images/pyramide.jpg';\r\nimport { Helmet } from 'react-helmet';\r\n\r\n\r\nexport default class JeuxMots extends Component\r\n{\r\n\r\n constructor()\r\n {\r\n super();\r\n \r\n }\r\n \r\n render()\r\n {\r\n return(\r\n
\r\n \r\n Les tests d'orthographe : jouer avec les mots \r\n \r\n \r\n
Les mots et l'orthographe
\r\n
evalquiz : le site numéro 1 du divertissement intelligent
\r\n

Jeux de lettres et de mots

\r\n
\"bordure\"
\r\n
\"jeu
\r\n \r\n \r\n

La pyramide des mots

\r\n

Un jeu simple mais très amusant dans lequel vous devez retrouver un mot à partir de sa définition.

\r\n

Chaque nouveau mot trouvé permet de découvrir de nouvelles lettres dans les autres mots.

\r\n

Ce jeu est inspiré par d'autres jeux de mots comme Slam, les mots croisés... Le but est toujours d'apprendre en s'amusant !

\r\n

Les images libres de droit proviennent du site pexels.com.

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\"bordure\"
\r\n \r\n \r\n

Le jeu des 6 mots

\r\n

Un jeu de lettres où vous devez trouver 6 mots à partir de 7 lettres qui n'est pas sans rappeler le jeu du Boogle de notre enfance, les mots doivent obligatoirement contenir la lettre centrale.

\r\n

Tous les mots sont acceptés s'ils sont répertoriés dans notre dictionnaire, vous avez aussi le droit d'utiliser des verbes conjugués.

\r\n

Un jeu de lettres amusant et rapidement addictif.

\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\"bordure\"
\r\n \r\n \r\n

La culture générale mélangée

\r\n

Dans ce jeu de culture générale vous devez répondre aux questions en remettant les réponses dans l'ordre.

\r\n

Un jeu qui s'intéresse surtout à l'orthographe des noms propres, il n'est pas toujours facile de savoir écrire les noms russes ou allemands.\r\n

\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\"bordure\"
\r\n \r\n \r\n

Lettres en désordre

\r\n

Dans ce jeu vous devez retrouver des mots parmi des lettres en désordre.

\r\n

Tous les mots sont acceptés s'ils sont répertoriés dans notre dictionnaire, vous avez aussi le droit d'utiliser des verbes conjugués. \r\n

\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\"bordure\"
\r\n \r\n \r\n

Motus et Wordle revisités

\r\n

Un jeu qui n'est pas sans rappeler le jeu de France 2 \"Motus\" pour les plus anciens ou l'application Wordle pour les plus jeunes.

\r\n

Dans ce petit jeu vous devez retrouver un mot choisi par l'ordinateur, vous avez le droit de proposer 6 mots en tout. \r\n À chaque fois l'ordinateur vous indique le nombre de lettres bien placées et le nombre de lettres mal placées.

\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\"bordure\"
\r\n \r\n \r\n

Le mot à partir de sa définition

\r\n

Des définitions issues du dictionnaire sont affichées, à vous de retrouver le plus rapidement possible le mot correspondant à la définition. \r\n Pour vous aider une lettre du mot est affichée toutes les 3 secondes. Le but est de retrouver le mot le plus rapidement possible. Pour chaque test 5 définitions sont affichées.

\r\n

Ce test permet d'améliorer son vocabulaire, son orthographe et sa capacité de concentration.

\r\n \r\n \r\n \r\n \r\n
\r\n
\"bordure\"
\r\n \r\n \r\n

Le challenge des mots

\r\n

Vous aimez les jeux de lettres et de mots comme le Boogle, le Scrabble, Motus, les anagrammes ? Alors vous devez essayer notre nouveau challenge des lettres et des mots.

\r\n

Les jeux sont ouvert à tous (junior ou senior) et ils ne nécessitent pas d'inscription.

\r\n

Arrivez-vous à réussir les 32 étapes de notre challenge ?

\r\n\r\n \r\n
\r\n \r\n
\"bordure\"
\r\n \r\n
)\r\n }\r\n\r\n}\r\n","import SousMenu from './SousMenu';\r\nimport React, { Component } from 'react';\r\nimport { Row, Col } from 'antd';\r\nimport Ad from '../commun/adSense';\r\n\r\nimport { Helmet } from 'react-helmet';\r\nimport border from '../../images/border.png';\r\nimport Tableau from '../commun/Tableau';\r\n\r\n\r\nexport default class Conjugaison extends Component\r\n{\r\n\r\n constructor()\r\n {\r\n super();\r\n\r\n }\r\n \r\n render()\r\n {\r\n return(\r\n
\r\n \r\n Les tests d'orthographe : la conjugaison\r\n \r\n \r\n
Tests d'orthographe et de grammaire
\r\n
evalquiz : le site numéro 1 du divertissement intelligent
\r\n

La conjugaison

\r\n
\"bordure\"
\r\n \r\n \r\n

Les conjugaisons

\r\n

Dans ces tests vous devez conjuguer un verbe.

\r\n

Vous pouvez réviser vos conjugaisons sur ce site.

\r\n

Si vous réalisez un sans-faute, votre prénom sera inscrit au tableau d'honneur de la conjugaison.

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\"bordure\"
\r\n \r\n
)\r\n }\r\n\r\n}\r\n","const genCollapseMotion = token => ({\n [token.componentCls]: {\n // For common/openAnimation\n [`${token.antCls}-motion-collapse-legacy`]: {\n overflow: 'hidden',\n '&-active': {\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n },\n [`${token.antCls}-motion-collapse`]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n }\n});\nexport default genCollapseMotion;","const getHorizontalStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n menuHorizontalHeight,\n colorSplit,\n lineWidth,\n lineType,\n menuItemPaddingInline\n } = token;\n return {\n [`${componentCls}-horizontal`]: {\n lineHeight: `${menuHorizontalHeight}px`,\n border: 0,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n boxShadow: 'none',\n '&::after': {\n display: 'block',\n clear: 'both',\n height: 0,\n content: '\"\\\\20\"'\n },\n // ======================= Item =======================\n [`${componentCls}-item, ${componentCls}-submenu`]: {\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'bottom',\n paddingInline: menuItemPaddingInline\n },\n [`> ${componentCls}-item:hover,\n > ${componentCls}-item-active,\n > ${componentCls}-submenu ${componentCls}-submenu-title:hover`]: {\n backgroundColor: 'transparent'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`].join(',')\n },\n // ===================== Sub Menu =====================\n [`${componentCls}-submenu-arrow`]: {\n display: 'none'\n }\n }\n };\n};\nexport default getHorizontalStyle;","const getRTLStyle = _ref => {\n let {\n componentCls,\n menuArrowOffset\n } = _ref;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-submenu-rtl`]: {\n transformOrigin: '100% 0'\n },\n // Vertical Arrow\n [`${componentCls}-rtl${componentCls}-vertical,\n ${componentCls}-submenu-rtl ${componentCls}-vertical`]: {\n [`${componentCls}-submenu-arrow`]: {\n '&::before': {\n transform: `rotate(-45deg) translateY(-${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(45deg) translateY(${menuArrowOffset})`\n }\n }\n }\n };\n};\nexport default getRTLStyle;","import { genFocusOutline } from '../../style';\nconst accessibilityFocus = token => Object.assign({}, genFocusOutline(token));\nconst getThemeStyle = (token, themeSuffix) => {\n const {\n componentCls,\n colorItemText,\n colorItemTextSelected,\n colorGroupTitle,\n colorItemBg,\n colorSubItemBg,\n colorItemBgSelected,\n colorActiveBarHeight,\n colorActiveBarWidth,\n colorActiveBarBorderSize,\n motionDurationSlow,\n motionEaseInOut,\n motionEaseOut,\n menuItemPaddingInline,\n motionDurationMid,\n colorItemTextHover,\n lineType,\n colorSplit,\n // Disabled\n colorItemTextDisabled,\n // Danger\n colorDangerItemText,\n colorDangerItemTextHover,\n colorDangerItemTextSelected,\n colorDangerItemBgActive,\n colorDangerItemBgSelected,\n colorItemBgHover,\n menuSubMenuBg,\n // Horizontal\n colorItemTextSelectedHorizontal,\n colorItemBgSelectedHorizontal\n } = token;\n return {\n [`${componentCls}-${themeSuffix}`]: {\n color: colorItemText,\n background: colorItemBg,\n [`&${componentCls}-root:focus-visible`]: Object.assign({}, accessibilityFocus(token)),\n // ======================== Item ========================\n [`${componentCls}-item-group-title`]: {\n color: colorGroupTitle\n },\n [`${componentCls}-submenu-selected`]: {\n [`> ${componentCls}-submenu-title`]: {\n color: colorItemTextSelected\n }\n },\n // Disabled\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n color: `${colorItemTextDisabled} !important`\n },\n // Hover\n [`${componentCls}-item:hover, ${componentCls}-submenu-title:hover`]: {\n [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n color: colorItemTextHover\n }\n },\n [`&:not(${componentCls}-horizontal)`]: {\n [`${componentCls}-item:not(${componentCls}-item-selected)`]: {\n '&:hover': {\n backgroundColor: colorItemBgHover\n },\n '&:active': {\n backgroundColor: colorItemBgSelected\n }\n },\n [`${componentCls}-submenu-title`]: {\n '&:hover': {\n backgroundColor: colorItemBgHover\n },\n '&:active': {\n backgroundColor: colorItemBgSelected\n }\n }\n },\n // Danger - only Item has\n [`${componentCls}-item-danger`]: {\n color: colorDangerItemText,\n [`&${componentCls}-item:hover`]: {\n [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n color: colorDangerItemTextHover\n }\n },\n [`&${componentCls}-item:active`]: {\n background: colorDangerItemBgActive\n }\n },\n [`${componentCls}-item a`]: {\n '&, &:hover': {\n color: 'inherit'\n }\n },\n [`${componentCls}-item-selected`]: {\n color: colorItemTextSelected,\n // Danger\n [`&${componentCls}-item-danger`]: {\n color: colorDangerItemTextSelected\n },\n [`a, a:hover`]: {\n color: 'inherit'\n }\n },\n [`& ${componentCls}-item-selected`]: {\n backgroundColor: colorItemBgSelected,\n // Danger\n [`&${componentCls}-item-danger`]: {\n backgroundColor: colorDangerItemBgSelected\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n [`&:not(${componentCls}-item-disabled):focus-visible`]: Object.assign({}, accessibilityFocus(token))\n },\n [`&${componentCls}-submenu > ${componentCls}`]: {\n backgroundColor: menuSubMenuBg\n },\n [`&${componentCls}-popup > ${componentCls}`]: {\n backgroundColor: colorItemBg\n },\n // ====================== Horizontal ======================\n [`&${componentCls}-horizontal`]: Object.assign(Object.assign({}, themeSuffix === 'dark' ? {\n borderBottom: 0\n } : {}), {\n [`> ${componentCls}-item, > ${componentCls}-submenu`]: {\n top: colorActiveBarBorderSize,\n marginTop: -colorActiveBarBorderSize,\n marginBottom: 0,\n borderRadius: 0,\n '&::after': {\n position: 'absolute',\n insetInline: menuItemPaddingInline,\n bottom: 0,\n borderBottom: `${colorActiveBarHeight}px solid transparent`,\n transition: `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n content: '\"\"'\n },\n [`&:hover, &-active, &-open`]: {\n '&::after': {\n borderBottomWidth: colorActiveBarHeight,\n borderBottomColor: colorItemTextSelectedHorizontal\n }\n },\n [`&-selected`]: {\n color: colorItemTextSelectedHorizontal,\n backgroundColor: colorItemBgSelectedHorizontal,\n '&::after': {\n borderBottomWidth: colorActiveBarHeight,\n borderBottomColor: colorItemTextSelectedHorizontal\n }\n }\n }\n }),\n // ================== Inline & Vertical ===================\n //\n [`&${componentCls}-root`]: {\n [`&${componentCls}-inline, &${componentCls}-vertical`]: {\n borderInlineEnd: `${colorActiveBarBorderSize}px ${lineType} ${colorSplit}`\n }\n },\n // ======================== Inline ========================\n [`&${componentCls}-inline`]: {\n // Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n background: colorSubItemBg\n },\n // Item\n [`${componentCls}-item, ${componentCls}-submenu-title`]: colorActiveBarBorderSize && colorActiveBarWidth ? {\n width: `calc(100% + ${colorActiveBarBorderSize}px)`\n } : {},\n [`${componentCls}-item`]: {\n position: 'relative',\n '&::after': {\n position: 'absolute',\n insetBlock: 0,\n insetInlineEnd: 0,\n borderInlineEnd: `${colorActiveBarWidth}px solid ${colorItemTextSelected}`,\n transform: 'scaleY(0.0001)',\n opacity: 0,\n transition: [`transform ${motionDurationMid} ${motionEaseOut}`, `opacity ${motionDurationMid} ${motionEaseOut}`].join(','),\n content: '\"\"'\n },\n // Danger\n [`&${componentCls}-item-danger`]: {\n '&::after': {\n borderInlineEndColor: colorDangerItemTextSelected\n }\n }\n },\n [`${componentCls}-selected, ${componentCls}-item-selected`]: {\n '&::after': {\n transform: 'scaleY(1)',\n opacity: 1,\n transition: [`transform ${motionDurationMid} ${motionEaseInOut}`, `opacity ${motionDurationMid} ${motionEaseInOut}`].join(',')\n }\n }\n }\n }\n };\n};\nexport default getThemeStyle;","import { textEllipsis } from '../../style';\nconst getVerticalInlineStyle = token => {\n const {\n componentCls,\n menuItemHeight,\n itemMarginInline,\n padding,\n menuArrowSize,\n marginXS,\n marginXXS\n } = token;\n const paddingWithArrow = padding + menuArrowSize + marginXS;\n return {\n [`${componentCls}-item`]: {\n position: 'relative'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n height: menuItemHeight,\n lineHeight: `${menuItemHeight}px`,\n paddingInline: padding,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginInline: itemMarginInline,\n marginBlock: marginXXS,\n width: `calc(100% - ${itemMarginInline * 2}px)`\n },\n // disable margin collapsed\n [`${componentCls}-submenu`]: {\n paddingBottom: 0.02\n },\n [`> ${componentCls}-item,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n height: menuItemHeight,\n lineHeight: `${menuItemHeight}px`\n },\n [`${componentCls}-item-group-list ${componentCls}-submenu-title,\n ${componentCls}-submenu-title`]: {\n paddingInlineEnd: paddingWithArrow\n }\n };\n};\nconst getVerticalStyle = token => {\n const {\n componentCls,\n iconCls,\n menuItemHeight,\n colorTextLightSolid,\n dropdownWidth,\n controlHeightLG,\n motionDurationMid,\n motionEaseOut,\n paddingXL,\n fontSizeSM,\n fontSizeLG,\n motionDurationSlow,\n paddingXS,\n boxShadowSecondary\n } = token;\n const inlineItemStyle = {\n height: menuItemHeight,\n lineHeight: `${menuItemHeight}px`,\n listStylePosition: 'inside',\n listStyleType: 'disc'\n };\n return [{\n [componentCls]: {\n [`&-inline, &-vertical`]: Object.assign({\n [`&${componentCls}-root`]: {\n boxShadow: 'none'\n }\n }, getVerticalInlineStyle(token))\n },\n [`${componentCls}-submenu-popup`]: {\n [`${componentCls}-vertical`]: Object.assign(Object.assign({}, getVerticalInlineStyle(token)), {\n boxShadow: boxShadowSecondary\n })\n }\n },\n // Vertical only\n {\n [`${componentCls}-submenu-popup ${componentCls}-vertical${componentCls}-sub`]: {\n minWidth: dropdownWidth,\n maxHeight: `calc(100vh - ${controlHeightLG * 2.5}px)`,\n padding: '0',\n overflow: 'hidden',\n borderInlineEnd: 0,\n // https://github.com/ant-design/ant-design/issues/22244\n // https://github.com/ant-design/ant-design/issues/26812\n \"&:not([class*='-active'])\": {\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n },\n // Inline Only\n {\n [`${componentCls}-inline`]: {\n width: '100%',\n // Motion enhance for first level\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n display: 'flex',\n alignItems: 'center',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationMid} ${motionEaseOut}`].join(','),\n [`> ${componentCls}-title-content`]: {\n flex: 'auto',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n '> *': {\n flex: 'none'\n }\n }\n },\n // >>>>> Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n padding: 0,\n border: 0,\n borderRadius: 0,\n boxShadow: 'none',\n [`& > ${componentCls}-submenu > ${componentCls}-submenu-title`]: inlineItemStyle,\n [`& ${componentCls}-item-group-title`]: {\n paddingInlineStart: paddingXL\n }\n },\n // >>>>> Item\n [`${componentCls}-item`]: inlineItemStyle\n }\n },\n // Inline Collapse Only\n {\n [`${componentCls}-inline-collapsed`]: {\n width: menuItemHeight * 2,\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu ${componentCls}-submenu-title`]: {\n [`> ${componentCls}-inline-collapsed-noicon`]: {\n fontSize: fontSizeLG,\n textAlign: 'center'\n }\n }\n },\n [`> ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-submenu > ${componentCls}-submenu-title,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n insetInlineStart: 0,\n paddingInline: `calc(50% - ${fontSizeSM}px)`,\n textOverflow: 'clip',\n [`\n ${componentCls}-submenu-arrow,\n ${componentCls}-submenu-expand-icon\n `]: {\n opacity: 0\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n margin: 0,\n fontSize: fontSizeLG,\n lineHeight: `${menuItemHeight}px`,\n '+ span': {\n display: 'inline-block',\n opacity: 0\n }\n }\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'inline-block'\n },\n '&-tooltip': {\n pointerEvents: 'none',\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'none'\n },\n 'a, a:hover': {\n color: colorTextLightSolid\n }\n },\n [`${componentCls}-item-group-title`]: Object.assign(Object.assign({}, textEllipsis), {\n paddingInline: paddingXS\n })\n }\n }];\n};\nexport default getVerticalStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genCollapseMotion, initSlideMotion, initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport getHorizontalStyle from './horizontal';\nimport getRTLStyle from './rtl';\nimport getThemeStyle from './theme';\nimport getVerticalStyle from './vertical';\nimport { clearFix, resetComponent, resetIcon } from '../../style';\nconst genMenuItemStyle = token => {\n const {\n componentCls,\n fontSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n motionEaseOut,\n iconCls,\n controlHeightSM\n } = token;\n return {\n // >>>>> Item\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n position: 'relative',\n display: 'block',\n margin: 0,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n [`${componentCls}-item-icon, ${iconCls}`]: {\n minWidth: fontSize,\n fontSize,\n transition: [`font-size ${motionDurationMid} ${motionEaseOut}`, `margin ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow}`].join(','),\n '+ span': {\n marginInlineStart: controlHeightSM - fontSize,\n opacity: 1,\n transition: [`opacity ${motionDurationSlow} ${motionEaseInOut}`, `margin ${motionDurationSlow}`, `color ${motionDurationSlow}`].join(',')\n }\n },\n [`${componentCls}-item-icon`]: Object.assign({}, resetIcon()),\n [`&${componentCls}-item-only-child`]: {\n [`> ${iconCls}, > ${componentCls}-item-icon`]: {\n marginInlineEnd: 0\n }\n }\n },\n // Disabled state sets text to gray and nukes hover/tab effects\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n background: 'none !important',\n cursor: 'not-allowed',\n '&::after': {\n borderColor: 'transparent !important'\n },\n a: {\n color: 'inherit !important'\n },\n [`> ${componentCls}-submenu-title`]: {\n color: 'inherit !important',\n cursor: 'not-allowed'\n }\n }\n };\n};\nconst genSubMenuArrowStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n motionEaseInOut,\n borderRadius,\n menuArrowSize,\n menuArrowOffset\n } = token;\n return {\n [`${componentCls}-submenu`]: {\n [`&-expand-icon, &-arrow`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: token.margin,\n width: menuArrowSize,\n color: 'currentcolor',\n transform: 'translateY(-50%)',\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}, opacity ${motionDurationSlow}`\n },\n '&-arrow': {\n // →\n '&::before, &::after': {\n position: 'absolute',\n width: menuArrowSize * 0.6,\n height: menuArrowSize * 0.15,\n backgroundColor: 'currentcolor',\n borderRadius,\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `transform ${motionDurationSlow} ${motionEaseInOut}`, `top ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n content: '\"\"'\n },\n '&::before': {\n transform: `rotate(45deg) translateY(-${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(-45deg) translateY(${menuArrowOffset})`\n }\n }\n }\n };\n};\n// =============================== Base ===============================\nconst getBaseStyle = token => {\n const {\n antCls,\n componentCls,\n fontSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n lineHeight,\n paddingXS,\n padding,\n colorSplit,\n lineWidth,\n zIndexPopup,\n borderRadiusLG,\n radiusSubMenuItem,\n menuArrowSize,\n menuArrowOffset,\n lineType,\n menuPanelMaskInset\n } = token;\n return [\n // Misc\n {\n '': {\n [`${componentCls}`]: Object.assign(Object.assign({}, clearFix()), {\n // Hidden\n [`&-hidden`]: {\n display: 'none'\n }\n })\n },\n [`${componentCls}-submenu-hidden`]: {\n display: 'none'\n }\n }, {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), clearFix()), {\n marginBottom: 0,\n paddingInlineStart: 0,\n // Override default ul/ol\n fontSize,\n lineHeight: 0,\n listStyle: 'none',\n outline: 'none',\n transition: [`background ${motionDurationSlow}`,\n // Magic cubic here but smooth transition\n `width ${motionDurationSlow} cubic-bezier(0.2, 0, 0, 1) 0s`].join(','),\n [`ul, ol`]: {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n // Overflow ellipsis\n [`&-overflow`]: {\n display: 'flex',\n [`${componentCls}-item`]: {\n flex: 'none'\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu, ${componentCls}-submenu-title`]: {\n borderRadius: token.radiusItem\n },\n [`${componentCls}-item-group-title`]: {\n padding: `${paddingXS}px ${padding}px`,\n fontSize,\n lineHeight,\n transition: `all ${motionDurationSlow}`\n },\n [`&-horizontal ${componentCls}-submenu`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu, ${componentCls}-submenu-inline`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationMid} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu ${componentCls}-sub`]: {\n cursor: 'initial',\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-title-content`]: {\n transition: `color ${motionDurationSlow}`\n },\n [`${componentCls}-item a`]: {\n '&::before': {\n position: 'absolute',\n inset: 0,\n backgroundColor: 'transparent',\n content: '\"\"'\n }\n },\n // Removed a Badge related style seems it's safe\n // https://github.com/ant-design/ant-design/issues/19809\n // >>>>> Divider\n [`${componentCls}-item-divider`]: {\n overflow: 'hidden',\n lineHeight: 0,\n borderColor: colorSplit,\n borderStyle: lineType,\n borderTopWidth: lineWidth,\n marginBlock: lineWidth,\n padding: 0,\n '&-dashed': {\n borderStyle: 'dashed'\n }\n }\n }), genMenuItemStyle(token)), {\n [`${componentCls}-item-group`]: {\n [`${componentCls}-item-group-list`]: {\n margin: 0,\n padding: 0,\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n paddingInline: `${fontSize * 2}px ${padding}px`\n }\n }\n },\n // ======================= Sub Menu =======================\n '&-submenu': {\n '&-popup': {\n position: 'absolute',\n zIndex: zIndexPopup,\n background: 'transparent',\n borderRadius: borderRadiusLG,\n boxShadow: 'none',\n transformOrigin: '0 0',\n // https://github.com/ant-design/ant-design/issues/13955\n '&::before': {\n position: 'absolute',\n inset: `${menuPanelMaskInset}px 0 0`,\n zIndex: -1,\n width: '100%',\n height: '100%',\n opacity: 0,\n content: '\"\"'\n }\n },\n // https://github.com/ant-design/ant-design/issues/13955\n '&-placement-rightTop::before': {\n top: 0,\n insetInlineStart: menuPanelMaskInset\n },\n [`> ${componentCls}`]: Object.assign(Object.assign(Object.assign({\n borderRadius: borderRadiusLG\n }, genMenuItemStyle(token)), genSubMenuArrowStyle(token)), {\n [`${componentCls}-item, ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n borderRadius: radiusSubMenuItem\n },\n [`${componentCls}-submenu-title::after`]: {\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}`\n }\n })\n }\n }), genSubMenuArrowStyle(token)), {\n [`&-inline-collapsed ${componentCls}-submenu-arrow,\n &-inline ${componentCls}-submenu-arrow`]: {\n // ↓\n '&::before': {\n transform: `rotate(-45deg) translateX(${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(45deg) translateX(-${menuArrowOffset})`\n }\n },\n [`${componentCls}-submenu-open${componentCls}-submenu-inline > ${componentCls}-submenu-title > ${componentCls}-submenu-arrow`]: {\n // ↑\n transform: `translateY(-${menuArrowSize * 0.2}px)`,\n '&::after': {\n transform: `rotate(-45deg) translateX(-${menuArrowOffset})`\n },\n '&::before': {\n transform: `rotate(45deg) translateX(${menuArrowOffset})`\n }\n }\n })\n },\n // Integration with header element so menu items have the same height\n {\n [`${antCls}-layout-header`]: {\n [componentCls]: {\n lineHeight: 'inherit'\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Menu', (token, _ref) => {\n let {\n overrideComponentToken\n } = _ref;\n // Dropdown will handle menu style self. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n colorBgElevated,\n colorPrimary,\n colorError,\n colorErrorHover,\n colorTextLightSolid\n } = token;\n const {\n controlHeightLG,\n fontSize\n } = token;\n const menuArrowSize = fontSize / 7 * 5;\n // Menu Token\n const menuToken = mergeToken(token, {\n menuItemHeight: controlHeightLG,\n menuItemPaddingInline: token.margin,\n menuArrowSize,\n menuHorizontalHeight: controlHeightLG * 1.15,\n menuArrowOffset: `${menuArrowSize * 0.25}px`,\n menuPanelMaskInset: -7,\n menuSubMenuBg: colorBgElevated\n });\n const colorTextDark = new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString();\n const menuDarkToken = mergeToken(menuToken, {\n colorItemText: colorTextDark,\n colorItemTextHover: colorTextLightSolid,\n colorGroupTitle: colorTextDark,\n colorItemTextSelected: colorTextLightSolid,\n colorItemBg: '#001529',\n colorSubItemBg: '#000c17',\n colorItemBgActive: 'transparent',\n colorItemBgSelected: colorPrimary,\n colorActiveBarWidth: 0,\n colorActiveBarHeight: 0,\n colorActiveBarBorderSize: 0,\n // Disabled\n colorItemTextDisabled: new TinyColor(colorTextLightSolid).setAlpha(0.25).toRgbString(),\n // Danger\n colorDangerItemText: colorError,\n colorDangerItemTextHover: colorErrorHover,\n colorDangerItemTextSelected: colorTextLightSolid,\n colorDangerItemBgActive: colorError,\n colorDangerItemBgSelected: colorError,\n menuSubMenuBg: '#001529',\n // Horizontal\n colorItemTextSelectedHorizontal: colorTextLightSolid,\n colorItemBgSelectedHorizontal: colorPrimary\n }, Object.assign({}, overrideComponentToken));\n return [\n // Basic\n getBaseStyle(menuToken),\n // Horizontal\n getHorizontalStyle(menuToken),\n // Vertical\n getVerticalStyle(menuToken),\n // Theme\n getThemeStyle(menuToken, 'light'), getThemeStyle(menuDarkToken, 'dark'),\n // RTL\n getRTLStyle(menuToken),\n // Motion\n genCollapseMotion(menuToken), initSlideMotion(menuToken, 'slide-up'), initSlideMotion(menuToken, 'slide-down'), initZoomMotion(menuToken, 'zoom-big')];\n }, token => {\n const {\n colorPrimary,\n colorError,\n colorTextDisabled,\n colorErrorBg,\n colorText,\n colorTextDescription,\n colorBgContainer,\n colorFillAlter,\n colorFillContent,\n lineWidth,\n lineWidthBold,\n controlItemBgActive,\n colorBgTextHover\n } = token;\n return {\n dropdownWidth: 160,\n zIndexPopup: token.zIndexPopupBase + 50,\n radiusItem: token.borderRadiusLG,\n radiusSubMenuItem: token.borderRadiusSM,\n colorItemText: colorText,\n colorItemTextHover: colorText,\n colorItemTextHoverHorizontal: colorPrimary,\n colorGroupTitle: colorTextDescription,\n colorItemTextSelected: colorPrimary,\n colorItemTextSelectedHorizontal: colorPrimary,\n colorItemBg: colorBgContainer,\n colorItemBgHover: colorBgTextHover,\n colorItemBgActive: colorFillContent,\n colorSubItemBg: colorFillAlter,\n colorItemBgSelected: controlItemBgActive,\n colorItemBgSelectedHorizontal: 'transparent',\n colorActiveBarWidth: 0,\n colorActiveBarHeight: lineWidthBold,\n colorActiveBarBorderSize: lineWidth,\n // Disabled\n colorItemTextDisabled: colorTextDisabled,\n // Danger\n colorDangerItemText: colorError,\n colorDangerItemTextHover: colorError,\n colorDangerItemTextSelected: colorError,\n colorDangerItemBgActive: colorErrorBg,\n colorDangerItemBgSelected: colorErrorBg,\n itemMarginInline: token.marginXXS\n };\n });\n return useOriginHook(prefixCls);\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nconst OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport const OverrideProvider = props => {\n const {\n children\n } = props,\n restProps = __rest(props, [\"children\"]);\n const override = React.useContext(OverrideContext);\n const context = React.useMemo(() => Object.assign(Object.assign({}, override), restProps), [override, restProps.prefixCls,\n // restProps.expandIcon, Not mark as deps since this is a ReactNode\n restProps.mode, restProps.selectable\n // restProps.validator, Not mark as deps since this is a function\n ]);\n\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: context\n }, children);\n};\nexport default OverrideContext;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nconst MenuDivider = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n dashed\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"dashed\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu', customizePrefixCls);\n const classString = classNames({\n [`${prefixCls}-item-divider-dashed`]: !!dashed\n }, className);\n return /*#__PURE__*/React.createElement(Divider, Object.assign({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport isNumeric from '../_util/isNumeric';\nimport { LayoutContext } from './layout';\nconst dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport const SiderContext = /*#__PURE__*/React.createContext({});\nconst generateId = (() => {\n let i = 0;\n return function () {\n let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return `${prefix}${i}`;\n };\n})();\nconst Sider = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n className,\n trigger,\n children,\n defaultCollapsed = false,\n theme = 'dark',\n style = {},\n collapsible = false,\n reverseArrow = false,\n width = 200,\n collapsedWidth = 80,\n zeroWidthTriggerStyle,\n breakpoint,\n onCollapse,\n onBreakpoint\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n const {\n siderHook\n } = useContext(LayoutContext);\n const [collapsed, setCollapsed] = useState('collapsed' in props ? props.collapsed : defaultCollapsed);\n const [below, setBelow] = useState(false);\n useEffect(() => {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n const handleSetCollapsed = (value, type) => {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n };\n // ========================= Responsive =========================\n const responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = mql => {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n useEffect(() => {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n let mql;\n if (typeof window !== 'undefined') {\n const {\n matchMedia\n } = window;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(`(max-width: ${dimensionMaxMap[breakpoint]})`);\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return () => {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n useEffect(() => {\n const uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return () => siderHook.removeSider(uniqueId);\n }, []);\n const toggle = () => {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const renderSider = () => {\n const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n const divProps = omit(props, ['collapsed']);\n const rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n const siderWidth = isNumeric(rawWidth) ? `${rawWidth}px` : String(rawWidth);\n // special trigger when collapsedWidth == 0\n const zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(`${prefixCls}-zero-width-trigger`, `${prefixCls}-zero-width-trigger-${reverseArrow ? 'right' : 'left'}`),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null)) : null;\n const iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n const status = collapsed ? 'collapsed' : 'expanded';\n const defaultTrigger = iconObj[status];\n const triggerDom = trigger !== null ? zeroWidthTrigger || /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-trigger`,\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger) : null;\n const divStyle = Object.assign(Object.assign({}, style), {\n flex: `0 0 ${siderWidth}`,\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n const siderCls = classNames(prefixCls, `${prefixCls}-${theme}`, {\n [`${prefixCls}-collapsed`]: !!collapsed,\n [`${prefixCls}-has-trigger`]: collapsible && trigger !== null && !zeroWidthTrigger,\n [`${prefixCls}-below`]: !!below,\n [`${prefixCls}-zero-width`]: parseFloat(siderWidth) === 0\n }, className);\n return /*#__PURE__*/React.createElement(\"aside\", Object.assign({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-children`\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n const contextValue = React.useMemo(() => ({\n siderCollapsed: collapsed\n }), [collapsed]);\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider());\n});\nif (process.env.NODE_ENV !== 'production') {\n Sider.displayName = 'Sider';\n}\nexport default Sider;","import { createContext } from 'react';\nconst MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst MenuItem = props => {\n var _a;\n const {\n className,\n children,\n icon,\n title,\n danger\n } = props;\n const {\n prefixCls,\n firstLevel,\n direction,\n disableMenuItemTitleTooltip,\n inlineCollapsed: isInlineCollapsed\n } = React.useContext(MenuContext);\n const renderItemChildren = inlineCollapsed => {\n const wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, children);\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inline-collapsed-noicon`\n }, children.charAt(0));\n }\n }\n return wrapNode;\n };\n const {\n siderCollapsed\n } = React.useContext(SiderContext);\n let tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n const tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !isInlineCollapsed) {\n tooltipProps.title = null;\n // Reset `open` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.open = false;\n }\n const childrenLength = toArray(children).length;\n let returnNode = /*#__PURE__*/React.createElement(Item, Object.assign({}, omit(props, ['title', 'icon', 'danger']), {\n className: classNames({\n [`${prefixCls}-item-danger`]: danger,\n [`${prefixCls}-item-only-child`]: (icon ? childrenLength + 1 : childrenLength) === 1\n }, className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n }), renderItemChildren(isInlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: `${prefixCls}-inline-collapsed-tooltip`\n }), returnNode);\n }\n return returnNode;\n};\nexport default MenuItem;","import classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst SubMenu = props => {\n var _a;\n const {\n popupClassName,\n icon,\n title,\n theme: customTheme\n } = props;\n const context = React.useContext(MenuContext);\n const {\n prefixCls,\n inlineCollapsed,\n theme: contextTheme,\n mode\n } = context;\n const parentPath = useFullPath();\n let titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inline-collapsed-noicon`\n }, title.charAt(0)) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, title);\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n const titleIsSpan = isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, title));\n }\n const contextValue = React.useMemo(() => Object.assign(Object.assign({}, context), {\n firstLevel: false\n }), [context]);\n const popupOffset = mode === 'horizontal' ? [0, 8] : [10, 0];\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, Object.assign({\n popupOffset: popupOffset\n }, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, popupClassName, `${prefixCls}-${customTheme || contextTheme}`)\n })));\n};\nexport default SubMenu;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport MenuDivider from '../MenuDivider';\nimport MenuItem from '../MenuItem';\nimport SubMenu from '../SubMenu';\nfunction convertItemsToNodes(list) {\n return (list || []).map((opt, index) => {\n if (opt && typeof opt === 'object') {\n const _a = opt,\n {\n label,\n children,\n key,\n type\n } = _a,\n restProps = __rest(_a, [\"label\", \"children\", \"key\", \"type\"]);\n const mergedKey = key !== null && key !== void 0 ? key : `tmp-${index}`;\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(ItemGroup, Object.assign({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, Object.assign({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(MenuDivider, Object.assign({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, Object.assign({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(opt => opt);\n}\n// FIXME: Move logic here in v5\n/**\n * We simply convert `items` to ReactNode for reuse origin component logic. But we need move all the\n * logic from component into this hooks when in v5\n */\nexport default function useItems(items) {\n return React.useMemo(() => {\n if (!items) {\n return items;\n }\n return convertItemsToNodes(items);\n }, [items]);\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport RcMenu from 'rc-menu';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport omit from \"rc-util/es/omit\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport classNames from 'classnames';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport warning from '../_util/warning';\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport OverrideContext from './OverrideContext';\nimport useItems from './hooks/useItems';\nimport MenuContext from './MenuContext';\nconst InternalMenu = /*#__PURE__*/forwardRef((props, ref) => {\n var _a, _b;\n const override = React.useContext(OverrideContext);\n const overrideObj = override || {};\n const {\n getPrefixCls,\n getPopupContainer,\n direction\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const {\n prefixCls: customizePrefixCls,\n className,\n theme = 'light',\n expandIcon,\n _internalDisableMenuItemTitleTooltip,\n inlineCollapsed,\n siderCollapsed,\n items,\n children,\n rootClassName,\n mode,\n selectable,\n onClick\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"items\", \"children\", \"rootClassName\", \"mode\", \"selectable\", \"onClick\"]);\n const passedProps = omit(restProps, ['collapsedWidth']);\n // ========================= Items ===========================\n const mergedChildren = useItems(items) || children;\n // ======================== Warning ==========================\n process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning('items' in props && !children, 'Menu', '`children` will be removed in next major version. Please use `items` instead.') : void 0;\n (_a = overrideObj.validator) === null || _a === void 0 ? void 0 : _a.call(overrideObj, {\n mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n const onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = overrideObj.onClick) === null || _a === void 0 ? void 0 : _a.call(overrideObj);\n });\n // ========================== Mode ===========================\n const mergedMode = overrideObj.mode || mode;\n // ======================= Selectable ========================\n const mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : overrideObj.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n const mergedInlineCollapsed = React.useMemo(() => {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n const defaultMotions = {\n horizontal: {\n motionName: `${rootPrefixCls}-slide-up`\n },\n inline: initCollapseMotion(rootPrefixCls),\n other: {\n motionName: `${rootPrefixCls}-zoom-big`\n }\n };\n const prefixCls = getPrefixCls('menu', customizePrefixCls || overrideObj.prefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, !override);\n const menuClassName = classNames(`${prefixCls}-${theme}`, className);\n // ====================== Expand Icon ========================\n let mergedExpandIcon;\n if (typeof expandIcon === 'function') {\n mergedExpandIcon = expandIcon;\n } else {\n const beClone = expandIcon || overrideObj.expandIcon;\n mergedExpandIcon = cloneElement(beClone, {\n className: classNames(`${prefixCls}-submenu-expand-icon`, (_b = beClone === null || beClone === void 0 ? void 0 : beClone.props) === null || _b === void 0 ? void 0 : _b.className)\n });\n }\n // ======================== Context ==========================\n const contextValue = React.useMemo(() => ({\n prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n direction,\n firstLevel: true,\n theme,\n mode: mergedMode,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n }), [prefixCls, mergedInlineCollapsed, direction, _internalDisableMenuItemTitleTooltip, theme]);\n // ========================= Render ==========================\n return wrapSSR( /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, Object.assign({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: `${prefixCls}-${theme}`,\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref,\n rootClassName: classNames(rootClassName, hashId)\n }), mergedChildren))));\n});\nexport default InternalMenu;","import { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport InternalMenu from './menu';\nimport { SiderContext } from '../layout/Sider';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport SubMenu from './SubMenu';\nconst Menu = /*#__PURE__*/forwardRef((props, ref) => {\n const menuRef = useRef(null);\n const context = React.useContext(SiderContext);\n useImperativeHandle(ref, () => ({\n menu: menuRef.current,\n focus: options => {\n var _a;\n (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.focus(options);\n }\n }));\n return /*#__PURE__*/React.createElement(InternalMenu, Object.assign({\n ref: menuRef\n }, props, context));\n});\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.Divider = MenuDivider;\nMenu.ItemGroup = ItemGroup;\nif (process.env.NODE_ENV !== 'production') {\n Menu.displayName = 'Menu';\n}\nexport default Menu;","// This icon file is generated automatically.\nvar HomeFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M946.5 505L534.6 93.4a31.93 31.93 0 00-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z\" } }] }, \"name\": \"home\", \"theme\": \"filled\" };\nexport default HomeFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport HomeFilledSvg from \"@ant-design/icons-svg/es/asn/HomeFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar HomeFilled = function HomeFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: HomeFilledSvg\n }));\n};\nHomeFilled.displayName = 'HomeFilled';\nexport default /*#__PURE__*/React.forwardRef(HomeFilled);","import { HomeFilled} from '@ant-design/icons';\r\nconst itemsMenu = [\r\n {\r\n label: ( evalquiz\r\n ),\r\n key: 'evalquiz',\r\n icon: ,\r\n },\r\n {\r\n label: ( \r\n Orthographe\r\n \r\n ),\r\n key: 'orthographe'\r\n },\r\n {\r\n label: ( \r\n Challenge\r\n \r\n ),\r\n key: 'challenge'\r\n },\r\n {\r\n label: ( \r\n Culture\r\n \r\n ),\r\n key: 'culture'\r\n },\r\n {\r\n label: ( \r\n QuizRoyal\r\n \r\n ),\r\n key: 'quizRoyal'\r\n },\r\n {\r\n label: ( \r\n Calcul\r\n \r\n ),\r\n key: 'calcul'\r\n },\r\n {\r\n label: ( \r\n QI\r\n \r\n ),\r\n key: 'logique'\r\n }, \r\n {\r\n label: ( \r\n Anglais\r\n \r\n ),\r\n key: 'anglais'\r\n },\r\n {\r\n label: ( \r\n Entrainement cérébral\r\n \r\n ),\r\n key: 'cerebral'\r\n },\r\n\r\n ];\r\n\r\n export {itemsMenu}","export default function pageFaute()\r\n{\r\n return
Désolé, nous avons rencontré un problème.
\r\n \r\n
\r\n} ","\r\nimport React from 'react';\r\nimport { ScrollRestoration, createBrowserRouter, Outlet } from \"react-router-dom\";\r\nimport Presentation from './Presentation';\r\nimport ScrollToAnchor from '../commun/ScrollToAnchor';\r\n\r\n//import PhraseTrou from '../../jeux/phraseTrou/PhraseTrou';\r\n//import PhraseErreur from '../../jeux/phraseErreur/PhraseErreur';\r\n//import VerbeConjugaison from '../../jeux/VerbeConjugaison/VerbeConjugaison';\r\n//import OrthographeMot from '../../jeux/OrthographeMot/OrthographeMot';\r\n//import MemoireJeu from '../../jeux/memoire/MemoireJeu';\r\n//import MotDefinition from '../../jeux/motDefinition/MotDefinition';\r\n//import ListeMots from '../../jeux/listeMots/ListeMots';\r\n//import DebutEtape from '../../jeux/concours/DebutEtape';\r\n//import MasterJeu from '../../jeux/masterMot/MasterJeu';\r\n//import JeuDesordre from '../../jeux/desordre/JeuDesordre';\r\n//import Boogle from '../../jeux/boogle/JeuBoogle';\r\n//import JeuQcmMelange from '../../jeux/culture/JeuQcmMelange';\r\n//import JeuQcm from '../../jeux/qcm/jeuQcm';\r\n\r\nimport Dictee from './Dictee';\r\nimport Grammaire from './Grammaire';\r\nimport JeuxMots from './JeuxMots';\r\nimport Conjugaison from './Conjugaison';\r\nimport { Menu } from 'antd';\r\nimport { itemsMenu } from './menu';\r\nimport PageFaute from '../commun/PageFaute';\r\n\r\n\r\n\r\nconst JeuxDictee = React.lazy(() => import('../../jeux/dictee/JeuxDictee'));\r\nconst PhraseTrou = React.lazy(() => import('../../jeux/phraseTrou/PhraseTrou'));\r\nconst PhraseErreur = React.lazy(() => import('../../jeux/phraseErreur/PhraseErreur'));\r\nconst VerbeConjugaison = React.lazy(() => import('../../jeux/VerbeConjugaison/VerbeConjugaison'));\r\nconst OrthographeMot = React.lazy(() => import('../../jeux/OrthographeMot/OrthographeMot'));\r\nconst Orthographe = React.lazy(() => import('../../jeux/orthographe/mot/JeuMot'));\r\nconst MemoireJeu = React.lazy(() => import('../../jeux/memoire/MemoireJeu'));\r\nconst MotDefinition = React.lazy(() => import('../../jeux/motDefinition/MotDefinition'));\r\nconst ListeMots = React.lazy(() => import('../../jeux/listeMots/ListeMots'));\r\nconst DebutEtape = React.lazy(() => import('../../jeux/concours/DebutEtape'));\r\nconst MasterJeu = React.lazy(() => import('../../jeux/masterMot/MasterJeu'));\r\nconst JeuDesordre = React.lazy(() => import('../../jeux/desordre/JeuDesordre'));\r\nconst Boogle = React.lazy(() => import('../../jeux/boogle/JeuBoogle'));\r\nconst JeuQcmMelange = React.lazy(() => import('../../jeux/culture/JeuQcmMelange'));\r\nconst JeuQcm = React.lazy(() => import('../../jeux/qcm/jeuQcm'));\r\nconst JeuTrou = React.lazy(() => import('../../jeux/trou/JeuTrou'));\r\n //const CreerMot = React.lazy(() => import('../../jeux/motDefinition/creerMot'));\r\n\r\n\r\n\r\n\r\n\r\nconst router = createBrowserRouter([\r\n {\r\n path: '/',\r\n element:
\r\n
\r\n
,\r\n errorElement: ,\r\n children: [\r\n\r\n {\r\n index: true,\r\n element: ,\r\n },\r\n {\r\n path: \"jeu\",\r\n element: ,\r\n },\r\n {\r\n path: 'dictees',\r\n element: ,\r\n },\r\n {\r\n path: 'conjugaison',\r\n element: ,\r\n },\r\n {\r\n path: 'grammaire-orthographe',\r\n element: ,\r\n },\r\n {\r\n path: 'jeux-mots',\r\n element: ,\r\n },\r\n {\r\n path: 'dictee/:id',\r\n element: ,\r\n },\r\n {\r\n path: 'phrasetrou/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'phraseerreur/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'verbeconjugaison/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'textetrou/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'orthographe/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'orthographemot/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'memoire/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'motdefinition/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'listemots/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'mastermind-mot/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'desordre/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'qcmmelange/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'boogle/:id',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'defiorthographe/:no',\r\n element: ,\r\n\r\n },\r\n {\r\n path: 'qcm/:id',\r\n element: ,\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 { router }","\nimport React, { Component, Suspense } from 'react';\nimport { ConfigProvider } from 'antd';\n\n\nimport ReactGA4 from \"react-ga4\";\nimport { Helmet } from 'react-helmet';\nimport { router } from './Routeur';\nimport { RouterProvider,} from \"react-router-dom\";\nimport '../../style/style.css'\n\n\n\nexport default class App extends Component {\n\n constructor() {\n super();\n \n ReactGA4.initialize(\"G-916D7SW5D6\", { legacyDimensionMetric: false, gtagOptions: { send_page_view: true } })\n\n }\n\n \n\n render() {\n return (\n
\n \n \n Les tests d'orthographe\n \n \n \n \n \n \n {/*
*/}\n \n \n En cours de chargement...
}>\n \n \n \n \n
\n \n );\n }\n}\n\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport App from './components/principal/App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n <>\n \n ,\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["Ad","window","adsbygoogle","push","className","style","display","textAlign","Component","addGame","name","value","localStorage","getItem","tab","setItem","JSON","stringify","parse","includes","readLocalStorage","addFirstName","readFirstName","addGameContest","contest","level","attempt","newValue","find","x","undefined","addAttemptGameContest","readGameContest","tabContest","readInfoContest","withRouter","props","location","useLocation","navigate","useNavigate","params","useParams","router","genTagStatusStyle","token","status","cssVariableType","str","capitalizedCssVariableType","charAt","toUpperCase","slice","componentCls","color","background","borderColor","genPresetStyle","genPresetColor","colorKey","_ref","textColor","lightBorderColor","lightColor","darkColor","colorTextLightSolid","genBaseStyle","paddingXXS","lineWidth","paddingInline","tagPaddingHorizontal","iconMarginInline","Object","assign","resetComponent","height","marginInlineEnd","marginXS","fontSize","tagFontSize","lineHeight","tagLineHeight","whiteSpace","tagDefaultBg","border","lineType","colorBorder","borderRadius","borderRadiusSM","opacity","transition","motionDurationMid","direction","tagDefaultColor","marginInlineStart","colorTextDescription","tagIconSize","cursor","colorTextHeading","iconCls","backgroundColor","colorPrimary","colorFillSecondary","colorPrimaryHover","colorPrimaryActive","genComponentStyleHook","fontSizeIcon","tagHeight","Math","round","fontSizeSM","colorFillAlter","colorText","tagToken","mergeToken","__rest","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","_a","customizePrefixCls","prefixCls","checked","onChange","onClick","restProps","getPrefixCls","React","ConfigContext","useStyle","wrapSSR","hashId","cls","classNames","InternalTag","ref","children","icon","onClose","closeIcon","closable","visible","setVisible","isInternalColor","isPresetColor","isPresetStatusColor","tagStyle","tagClassName","handleCloseClick","stopPropagation","defaultPrevented","isNeedWave","type","iconNode","kids","tagNode","CloseOutlined","Wave","Tag","CheckableTag","SousMenu","donnees","donneesSuivantType","dejaFait","this","title","titre","map","v","supprimer","id","reloadDocument","to","defaultProps","fichier","aide","texte","temps","liste","definition","mot","explication","image","time","exo","typeQuestion","question","reponse","ordre","test","phrase","niveau","extrait","taille","sujet","verbe","lettres","info","motsLongueur","reponses","DonneeDictee","DonneesListeMots","DonneeMemoire","DonneesMots","DonneeOrthographeMot","DonneePhraseErreur","DonneePhraseTrou","DonneeVerbeConjugaison","DonneesJeuxConcours","DonneesConcoursJeux","DonneesConcoursOrthographe","DonneesConcours","DonneeMasterMot","DonneeDesordre","DonneeQcmMelange","DonneeBoogle","DonneeQcm","obtenirDonneesJeu","idTest","concours","jeux","console","log","donneesConcours","donneesConcoursJeux","donneesConcoursOrthographe","idConcours","qualifTemps","qualifScore","qualifFaute","darkColorMap","index","toHsv","r","g","b","hsv","rgbToHsv","h","toHex","_ref2","concat","rgbToHex","mix","rgb1","rgb2","amount","getHue","light","hue","getSaturation","saturation","Number","toFixed","getValue","generate","opts","arguments","patterns","pColor","inputToRGB","colorString","_i","_hsv","_colorString","theme","_ref3","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","blue","geekblue","purple","magenta","grey","presetPalettes","presetDarkPalettes","keys","forEach","key","primary","k","len","charCodeAt","toString","Entity","_classCallCheck","_defineProperty","Map","_createClass","cache","get","join","valueFn","path","nextValue","delete","set","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","CSS_IN_JS_INSTANCE_ID","random","createCache","document","head","body","styles","querySelectorAll","firstChild","Array","from","insertBefore","styleHash","_style$parentNode","hash","getAttribute","parentNode","removeChild","CacheEntity","StyleContext","hashPriority","defaultCache","useClientCache","prefix","keyPath","cacheFn","onCacheRemove","globalCache","fullPath","_toConsumableArray","useHMR","update","prevCache","_slicedToArray","_ref2$","_ref4","_ref4$","times","flattenToken","_typeof","token2key","salt","layerKey","Date","now","replace","layerWidth","canLayer","supportLayer","styleStr","handleElement","canUseDom","_ele$parentNode","updateCSS","_ele","createElement","position","left","top","appendChild","support","getComputedStyle","width","removeCSS","supportSelector","ele","EMPTY_OVERRIDE","tokenKeys","recordCleanToken","tokenKey","cleanTokenStyle","tokenKeyList","cleanableKeyList","filter","removeStyleTags","useCacheToken","tokens","option","_option$salt","_option$override","override","formatToken","mergedToken","apply","tokenStr","overrideTokenStr","cachedToken","useGlobalCache","derivativeToken","getDerivativeToken","mergedDerivativeToken","_objectSpread","_tokenKey","_hashId","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","COMMENT","RULESET","DECLARATION","abs","String","fromCharCode","trim","pattern","replacement","indexof","search","charat","substr","begin","end","strlen","sizeof","append","array","serialize","callback","output","element","return","line","column","character","characters","node","root","parent","prev","next","peek","caret","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","y","z","isClientSide","normalizeStyle","isCompoundCSSProperty","injectSelectorHash","hashClassName","hashSelector","split","_firstPath$match","firstPath","htmlElement","match","globalEffectStyleKeys","Set","parseStyle","interpolation","config","parentSelectors","injectHash","layer","_config$transformers","transformers","linters","effectStyle","parseKeyframes","keyframes","animationName","getName","_parseStyle","_parsedStr","flattenList","list","fullList","item","isArray","flattenStyleList","originStyle","_keyframe","mergedStyle","reduce","trans","_trans$visit","visit","_value","actualValue","process","styleName","toLowerCase","formatValue","unitless","subInjectHash","mergedKey","nextRoot","startsWith","_parseStyle3","_parseStyle4","_parsedStr2","childEffectStyle","layerCells","layerName","Empty","useStyleRegister","styleFn","_React$useContext","autoClear","mock","container","ssrInline","isMergedClientSide","_useGlobalCache","styleObj","_parseStyle5","_parseStyle6","parsedStyle","styleId","uniqueHash","mark","prepend","attachTo","setAttribute","effectKey","has","add","fromHMR","_useGlobalCache2","cachedStyleStr","cachedTokenKey","cachedStyleId","styleNode","_extends","dangerouslySetInnerHTML","__html","Keyframe","ThemeCache","cacheCallTimes","derivativeOption","_cache2","_cache3","updateCallTimes","derivative","_cache","_cache$map","_this$internalGet","internalGet","_this","MAX_CACHE_SIZE","MAX_CACHE_OFFSET","_this$keys$reduce","result","callTimes","targetKey","cacheValue","currentCache","derivatives","_cache$value","deleteByPath","right","sameDerivativeOption","uuid","Theme","warning","cacheThemes","createTheme","derivativeArr","noSplit","notSplit","isIconDefinition","target","normalizeAttrs","attrs","acc","val","class","rootProps","tag","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","_excluded","twoToneColorPalette","secondaryColor","calculated","IconBase","valid","message","_objectWithoutProperties","colors","csp","useContext","IconContext","useEffect","useInsertStyles","warn","fill","displayName","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","ReactIcon","Icon","_classNames","spin","rotate","tabIndex","Context","_React$useContext$pre","rootClassName","classString","iconTabIndex","svgStyle","msTransform","transform","role","getTwoToneColor","createContext","AntdIcon","CloseOutlinedSvg","EllipsisOutlined","EllipsisOutlinedSvg","rgbToRgb","bound01","rgbToHsl","max","min","l","d","hue2rgb","q","hslToRgb","hsvToRgb","floor","f","mod","allow3Char","hex","pad2","rgbaToHex","a","allow4Char","convertDecimalToHex","parseFloat","convertHexToDecimal","parseIntFromHex","parseInt","numberInputToObject","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","rgb","ok","format","named","matchers","exec","rgba","hsl","hsla","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","convertToPercentage","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","Boolean","TinyColor","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","isMonochrome","toHsl","toHsvString","toHslString","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","entries","_b","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","clamp01","brighten","darken","tint","shade","desaturate","saturate","greyscale","analogous","results","slices","part","ret","complement","monochromatic","res","modification","splitcomplement","onBackground","fg","bg","triad","polyad","tetrad","n","increment","equals","isOnePointZero","isPercent","isPercentage","isNaN","c","_construct","Parent","args","Class","isNativeReflectConstruct","Reflect","construct","bind","instance","Function","setPrototypeOf","_wrapNativeSuper","fn","TypeError","Wrapper","getPrototypeOf","constructor","create","enumerable","writable","configurable","Action","ResultType","PopStateEventType","createBrowserHistory","options","getUrlBasedHistory","globalHistory","createLocation","pathname","state","usr","createPath","invariant","Error","getHistoryState","current","parsePath","parsedPath","hashIndex","searchIndex","createClientSideURL","base","origin","href","URL","getLocation","createHref","validateLocation","defaultView","v5Compat","history","action","Pop","listener","handlePop","listen","addEventListener","removeEventListener","encodeLocation","url","Push","historyState","pushState","error","Replace","replaceState","go","convertRoutesToDataRoutes","routes","parentPath","allIds","route","treePath","isIndexRoute","matchRoutes","locationArg","basename","stripBasename","branches","flattenRoutes","sort","score","siblings","every","compareIndexes","routesMeta","meta","childrenIndex","rankRouteBranches","matches","matchRouteBranch","safelyDecodeURI","parentsMeta","flattenRoute","relativePath","caseSensitive","joinPaths","computeScore","_route$path","explodeOptionalSegments","exploded","segments","first","rest","isOptional","endsWith","required","restExploded","subpath","paramRe","isSplat","initialScore","some","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","paramNames","regexpSource","_","paramName","matcher","compilePath","captureGroups","memo","splatValue","decodeURIComponent","safelyDecodeURIComponent","decodeURI","startIndex","nextChar","cond","getInvalidPathError","char","field","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","shift","fromPathname","pop","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","AbortedDeferredError","DeferredData","data","reject","pendingKeys","subscriber","abortPromise","Promise","controller","AbortController","onAbort","unlistenAbortSignal","signal","trackPromise","promise","race","then","onSettle","catch","defineProperty","aborted","done","subscribe","cancel","abort","resolve","_tracked","isTrackedPromise","_error","_data","unwrapTrackedPromise","ErrorResponse","statusText","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","formData","IDLE_FETCHER","isServer","createRouter","init","dataRoutes","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","pendingNavigationController","initialized","m","loader","historyAction","navigation","restoreScrollPosition","preventScrollReset","revalidation","loaderData","actionData","errors","fetchers","pendingAction","HistoryAction","pendingPreventScrollReset","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeDeferreds","updateState","newState","completeNavigation","isActionReload","isMutationMethod","_isRedirect","mergeLoaderData","getSavedScrollPosition","normalizeNavigateOptions","submission","userReplace","startNavigation","pendingError","startUninterruptedRevalidation","saveScrollPosition","loadingNavigation","overrideNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","request","createClientSideRequest","findNearestBoundary","handleAction","actionOutput","shortCircuited","pendingActionData","pendingActionError","Request","handleLoaders","interruptActiveLoads","actionMatch","getTargetMatch","method","routeId","callLoaderOrAction","isRedirectResult","startRedirectNavigation","isErrorResult","boundaryMatch","isDeferredResult","activeSubmission","getMatchesToLoad","matchesToLoad","revalidatingFetchers","fetcher","revalidatingFetcher","callLoadersAndMaybeResolveData","fetcherResults","loaderResults","redirect","findRedirect","processLoaderData","deferredData","markFetchRedirectsDone","didAbortFetchLoads","abortStaleFetchLoads","getFetcher","requestMatches","setFetcherError","existingFetcher","abortController","fetchRequest","actionResult","loadingFetcher","isFetchActionRedirect","nextLocation","revalidationRequest","loadId","loadFetcher","staleKey","doneFetcher","resolveDeferredData","_temp","revalidate","redirectLocation","_isFetchActionRedirect","_window","newOrigin","redirectHistoryAction","currentMatches","fetchersToLoad","all","fetchMatches","resolveDeferredResults","abortFetcher","deleteFetcher","markFetchersDone","doneKeys","landedId","yeetedKeys","predicate","cancelledRouteIds","dfd","userMatches","createUseMatchesMatch","initialize","enableScrollRestoration","positions","getPosition","getKey","fetch","handleFetcherAction","handleFetcherLoader","dispose","clear","_internalFetchControllers","_internalActiveDeferreds","isFetcher","isSubmissionNavigation","isValidMethod","stripHashFromPath","searchParams","convertFormDataToSearchParams","hasNakedIndexQuery","getLoaderMatchesUntilBoundary","boundaryId","boundaryMatches","findIndex","values","navigationMatches","currentLoaderData","currentMatch","isNew","isMissingData","isNewLoader","shouldRevalidateLoader","isNewRouteInstance","currentPath","currentLocation","currentUrl","currentParams","nextUrl","nextParams","defaultShouldRevalidate","shouldRevalidate","routeChoice","isStaticRequest","isRouteRequest","requestContext","onReject","handler","context","resultType","isResponse","headers","activeMatches","resolvedLocation","response","contentType","json","text","statusCode","deferred","URLSearchParams","processRouteLoaderData","foundError","loaderHeaders","newLoaderData","mergedLoaderData","reverse","hasErrorBoundary","_temp4","errorMessage","isRevalidatingLoader","unwrap","resolveData","unwrappedData","getAll","handle","pathMatches","inverseColors","PresetColors","PresetStatusColorTypes","includeInverse","useForceUpdate","getCollapsedHeight","getRealHeight","scrollHeight","getCurrentHeight","offsetHeight","skipOpacityTransition","event","deadline","propertyName","getTransitionName","rootPrefixCls","motion","transitionName","rootCls","motionName","onAppearStart","onEnterStart","onAppearActive","onEnterActive","onLeaveStart","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","motionDeadline","isValidElement","isFragment","cloneElement","replaceElement","responsiveArray","useResponsiveObserver","useToken","responsiveMap","xs","screenXSMax","sm","screenSM","md","screenMD","lg","screenLG","xl","screenXL","xxl","screenXXL","getResponsiveMap","indexableToken","revBreakpoints","breakpoint","breakpointUpper","screenMin","screen","screenMax","nextBreakpointUpperMin","nextScreenMin","validateBreakpoints","subUid","screens","matchHandlers","dispatch","pointMap","func","register","unsubscribe","paramToken","unregister","matchMediaQuery","mql","removeListener","matchMedia","addListener","flexGapSupported","canUseDocElement","documentElement","detectFlexGapSupported","flexDirection","rowGap","genWaveStyle","pointerEvents","boxSizing","boxShadow","motionEaseOutCirc","isValidWaveColor","isNotGrey","WaveEffect","divRef","setWaveColor","setBorderRadius","setLeft","setTop","setWidth","setHeight","enabled","setEnabled","waveStyle","radius","syncPos","nodeStyle","borderTopColor","getTargetWaveColor","offsetLeft","offsetTop","offsetWidth","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","resizeObserver","raf","ResizeObserver","observe","disconnect","CSSMotion","motionAppear","holder","parentElement","unmount","motionClassName","useWave","nodeRef","render","showWaveEffect","disabled","containerRef","useRef","showWave","nodeType","tagName","isVisible","supportRef","composeRef","PlusOutlined","PlusOutlinedSvg","TabPane","active","tabKey","TabPanelList","activeKey","animated","tabPosition","destroyInactiveTabPane","TabContext","tabs","tabPaneAnimated","tabPane","tabPanePrefixCls","forceRender","paneStyle","paneClassName","restTabProps","removeOnLeave","leavedClassName","tabPaneMotion","motionStyle","DEFAULT_SIZE","useRaf","rafRef","removedRef","_len","_key","useSyncState","defaultState","stateRef","_React$useState","forceUpdate","updater","SPEED_OFF_MULTIPLE","obj","tgt","AddButton","editable","locale","showAdd","addAriaLabel","onEdit","addIcon","content","extra","assertExtra","autoAdjustOverflow","adjustX","adjustY","targetOffset","topLeft","overflow","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","ESC","KeyCode","TAB","Dropdown","_props$arrow","arrow","_props$prefixCls","animation","align","_props$placement","placement","_props$placements","placements","Placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","_props$trigger","trigger","autoFocus","otherProps","_React$useState2","triggerVisible","setTriggerVisible","mergedVisible","triggerRef","onVisibleChange","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current","_triggerRef$current$t","_triggerRef$current$t2","_triggerRef$current$t3","focus","focusMenu","_triggerRef$current2","_triggerRef$current2$","_triggerRef$current2$2","_triggerRef$current2$3","firstElement","getFocusNodeList","popupRef","getElement","handleKeyDown","keyCode","focusResult","preventDefault","useAccessibility","getMenuElement","overlayElement","overlay","getOverlayElement","triggerHideAction","Trigger","builtinPlacements","popupClassName","popupStyle","popupPlacement","popupAlign","popupTransitionName","popupAnimation","popupVisible","stretch","minOverlayWidthMatchTrigger","alignPoint","getMinOverlayWidthMatchTrigger","popup","onPopupVisibleChange","newVisible","onVisibleChangeProp","onPopupClick","onOverlayClick","childrenProps","childClassName","openClassName","getOpenClassName","renderChildren","OperationNode","mobile","_ref$moreIcon","moreIcon","moreTransitionName","tabBarGutter","rtl","removeAriaLabel","onTabClick","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","selectedKey","setSelectedKey","popupId","dropdownPrefix","selectedItemId","dropdownAriaLabel","menu","Menu","domEvent","selectedKeys","removable","MenuItem","label","removeIcon","selectOffset","enabledTabs","selectedIndex","getElementById","scrollIntoView","moreStyle","visibility","moreNode","mouseEnterDelay","mouseLeaveDelay","onKeyDown","which","_ref$tab","renderWrapper","onFocus","tabPrefix","onInternalClick","getSize","refObj","_ref$offsetWidth","_ref$offsetHeight","getUnitValue","tabPositionTopOrBottom","TabNavList","onTabScroll","extraLeftRef","extraRightRef","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","containerExcludeExtraSize","setContainerExcludeExtraSize","tabContentSize","setTabContentSize","_useState5","_useState6","addSize","setAddSize","_useState7","_useState8","operationSize","setOperationSize","_useRafState","batchRef","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","useMemo","_tabs$","lastOffset","rightOffset","_tabs","entity","useOffsets","containerExcludeExtraSizeValue","tabContentSizeValue","addSizeValue","operationSizeValue","visibleTabContentValue","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState9","_useState10","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","clearTimeout","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","motionRef","lastWheelDirectionRef","touchEventsRef","onTouchStart","_e$touches$","touches","screenX","screenY","clearInterval","onTouchMove","_e$touches$2","offsetX","offsetY","onTouchEnd","distanceX","distanceY","absX","absY","currentX","currentY","setInterval","onWheel","deltaX","deltaY","mixed","onProxyTouchMove","onProxyTouchEnd","passive","useTouchMove","doMove","setState","setTimeout","_useVisibleRange","addNodeSizeValue","operationNodeSizeValue","charUnit","transformSize","endIndex","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","scrollToTab","tabOffset","newTransform","_newTransform","tabNodeStyle","marginTop","tabNodes","TabNode","scrollLeft","scrollTop","updateTabSizes","newSizes","_tabListRef$current","btnNode","querySelector","onListHolderResize","containerSize","extraLeftSize","extraRightSize","newAddSize","newOperationSize","tabContentFullSize","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState11","_useState12","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","onResize","useComposeRef","ExtraContent","inkBar","tabMoving","_excluded2","TabNavListWrapper","renderTabBar","panes","Tabs","_ref$prefixCls","items","defaultActiveKey","_ref$tabPosition","tabBarStyle","tabBarExtraContent","mergedAnimated","useAnimateConfig","setMobile","isMobile","_useMergedState","useMergedState","defaultValue","_useMergedState2","mergedActiveKey","setMergedActiveKey","activeIndex","setActiveIndex","_tabs$newActiveIndex","newActiveIndex","_useMergedState3","_useMergedState4","mergedId","setMergedId","sharedProps","tabNavBarProps","isActiveChanged","Provider","tabNavBar","motionEnter","motionLeave","motionDurationSlow","inset","initSlideMotion","genCardStyle","tabsCardHorizontalPadding","tabsCardHeadBackground","tabsCardGutter","colorSplit","margin","padding","motionEaseInOut","colorBgContainer","marginLeft","_skip_check_","borderRadiusLG","borderBottomColor","borderRightColor","borderLeftColor","genDropdownStyle","tabsHoverColor","dropdownEdgeChildVerticalPadding","zIndexPopup","maxHeight","tabsDropdownHeight","overflowX","overflowY","listStyleType","backgroundClip","outline","textEllipsis","alignItems","minWidth","tabsDropdownWidth","paddingSM","marginSM","controlItemBgHover","colorTextDisabled","genPositionStyle","borderBottom","lineWidthBold","bottom","controlHeight","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","marginBottom","paddingXS","paddingLG","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","borderLeft","paddingLeft","marginRight","borderRight","paddingRight","genSizeStyle","fontSizeLG","genRtlStyle","tabsHorizontalGutter","rtlCls","marginXXS","genTabsStyle","tabsCardHeight","tabsActiveColor","alignSelf","controlHeightLG","genFocusStyle","tabCls","textShadow","tabsActiveTextShadow","genTabStyle","minHeight","justifyContent","tabsToken","genMotionStyle","zIndexPopupBase","propSize","hideAdd","centered","editType","mergedItems","toArray","useLegacyItems","contextSize","SizeContext","RcTabs","hoverable","cardShadow","cardHeadPadding","colorBorderSecondary","cardPaddingBase","antCls","cardHeadHeight","cardHeadTabsMarginBottom","fontWeightStrong","clearFix","insetInlineStart","genCardHeadStyle","genCardGridStyle","img","cardActionsLiMargin","cardActionsIconSize","listStyle","borderTop","borderInlineEnd","genCardActionsStyle","paddingInlineEnd","genCardMetaStyle","flexWrap","marginBlockStart","paddingTop","genCardTypeInnerStyle","userSelect","genCardLoadingStyle","genCardSizeStyle","cardPaddingSM","cardHeadHeightSM","cardToken","boxShadowCard","lineHeightLG","avatar","description","others","avatarDom","titleDom","descriptionDom","MetaDetail","Card","headStyle","bodyStyle","loading","bordered","customizeSize","cover","actions","tabList","activeTabKey","defaultActiveTabKey","tabProps","loadingBlock","Skeleton","paragraph","rows","hasActiveTabKey","extraProps","onTabChange","coverDom","actionDom","getAction","divProps","omit","mergedSize","containGrid","Grid","isContainGrid","Meta","sizes","RowContext","gutter","wrap","supportFlexGap","span","pull","useColStyle","sizeClassObj","sizeProps","classes","horizontalGutter","verticalGutter","paddingBottom","parseFlex","DisabledContext","DisabledContextProvider","originDisabled","SizeContextProvider","originSize","defaultIconPrefixCls","suffixCls","iconPrefixCls","ConfigConsumer","Consumer","_ANT_MARK__","changeConfirmLocale","Modal","getMemoizedContextValue","exist","LocaleContext","dynamicStyleMark","registerTheme","globalPrefixCls","variables","formatColor","fillColor","colorVal","baseColor","colorPalettes","primaryColors","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","getStyle","globalIconPrefixCls","resetIcon","PASSED_PROPS","getGlobalPrefixCls","getGlobalIconPrefixCls","globalConfig","getIconPrefixCls","getRootPrefixCls","ProviderChildren","customCsp","autoInsertSpaceInButton","form","componentSize","space","virtual","dropdownMatchSelectWidth","legacyLocale","parentContext","customIconPrefixCls","componentDisabled","mergedPrefixCls","shouldWrapSSR","mergedTheme","parentTheme","themeConfig","parentThemeConfig","inherit","defaultConfig","mergedComponents","components","componentName","prevTheme","nextTheme","isEqual","useTheme","baseConfig","propName","propValue","memoedConfig","prevConfig","currentConfig","prevKeys","currentKeys","memoIconContextValue","childNode","validateMessages","Form","defaultValidateMessages","defaultLocale","RcFormProvider","LocaleProvider","memoTheme","algorithm","themeObj","defaultSeedToken","DesignTokenContext","ConfigProvider","LocaleReceiver","__","refreshOnChange","screensRef","responsiveObserver","supportScreens","genGridRowStyle","flexFlow","genGridColStyle","maxWidth","genGridStyle","sizeCls","gridColumns","gridColumnsStyle","insetInlineEnd","genLoopGridColumnsStyle","useRowStyle","gridToken","gridMediaSizesMap","screenSMMin","screenMDMin","screenLGMin","screenXLMin","screenXXLMin","screenSize","genGridMediaStyle","pre","cur","antLocale","defaultLocaleData","localeFromContext","localeCode","today","backToToday","month","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","Pagination","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","DatePicker","TimePicker","Calendar","global","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","Tour","Next","Previous","Finish","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","remove","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Text","edit","copy","copied","PageHeader","back","optional","default","enum","date","invalid","types","string","object","number","boolean","integer","float","regexp","email","range","mismatch","Image","preview","QRCode","expired","refresh","runtimeLocale","newLocale","getConfirmLocale","useMergePropByScreen","oriProp","prop","setProp","curVal","clacMergeAlignOrJustify","justify","setScreens","curScreens","setCurScreens","mergeAlign","mergeJustify","flexible","setFlexible","useFlexGapSupport","gutterRef","currentGutter","gutters","getGutter","rowStyle","gutterH","gutterV","rowContext","shape","shapeCls","sizeStyle","skeletonClsLoading","Keyframes","genSkeletonElementCommonSize","genSkeletonElementAvatarSize","genSkeletonElementInputSize","genSkeletonElementImageSize","genSkeletonElementButtonShape","buttonCls","skeletonButtonCls","genSkeletonElementButtonSize","skeletonAvatarCls","skeletonTitleCls","skeletonParagraphCls","skeletonInputCls","skeletonImageCls","controlHeightSM","skeletonTitleHeight","skeletonBlockRadius","skeletonParagraphLineHeight","controlHeightXS","skeletonParagraphMarginTop","verticalAlign","genSkeletonElementButton","genSkeletonElementAvatar","genSkeletonElementInput","imageSizeBase","genSkeletonElementImage","skeletonLoadingBackground","animationDuration","skeletonLoadingMotionDuration","animationTimingFunction","genSkeletonColor","skeletonToken","marginLG","colorGradientEnd","colorFillContent","colorFill","Element","block","DotChartOutlined","DotChartOutlinedSvg","viewBox","xmlns","getWidth","rowList","getComponentProps","avatarNode","contentNode","hasAvatar","hasTitle","hasParagraph","avatarProps","getAvatarBasicProps","$title","paragraphNode","titleProps","getTitleBasicProps","Title","paragraphProps","basicProps","getParagraphBasicProps","Paragraph","Button","SkeletonButton","Avatar","SkeletonAvatar","Input","SkeletonInput","SkeletonImage","Node","SkeletonNode","textOverflow","fontFamily","fontStyle","textTransform","textRendering","svg","genLinkStyle","colorLink","textDecoration","linkDecoration","colorLinkHover","colorLinkActive","linkHoverDecoration","linkFocusDecoration","genCommonStyle","componentPrefixCls","rootPrefixSelector","genFocusOutline","colorPrimaryBorder","outlineOffset","initMotionCommon","duration","animationFillMode","initMotionCommonLeave","initMotion","motionCls","inKeyframes","outKeyframes","sameLevel","sameLevelPrefix","animationPlayState","slideMotion","transformOrigin","motionEaseOutQuint","motionEaseInQuint","zoomIn","zoomOut","zoomBigIn","zoomBigOut","zoomUpIn","zoomUpOut","zoomMotion","initZoomMotion","motionDurationFast","motionEaseInOutCirc","roundedArrow","innerRadius","outerRadius","bgColor","unitWidth","ax","sqrt","ay","bx","by","cx","cy","dx","dy","ex","ey","fx","fy","insetInline","clipPath","connectArrowCls","classList","showArrowCls","MAX_VERTICAL_CONTENT_RADIUS","getArrowStyle","sizePopupArrow","borderRadiusXS","borderRadiusOuter","boxShadowPopoverArrow","colorBg","contentRadius","maxVerticalContentRadius","limitVerticalRadius","arrowInnerOffset","ceil","dropdownArrowOffset","dropdownArrowOffsetVertical","getArrowOffset","dropdownArrowDistance","genCss","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","getAlphaColor","getSolidColor","brightness","generateColorPalettes","generateNeutralColorPalettes","bgBaseColor","textBaseColor","colorBgBase","colorTextBase","colorTextSecondary","colorTextTertiary","colorTextQuaternary","colorFillTertiary","colorFillQuaternary","colorBgLayout","colorBgElevated","colorBgSpotlight","fontSizePairs","fontSizes","baseSize","intSize","genFontSizes","pair","lineHeights","fontSizeXL","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontSizeHeading5","lineHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","lineHeightHeading5","isStableColor","frontColor","fR","fG","fB","bR","bG","bB","fA","restToken","overrideTokens","seedToken","colorInfoText","colorInfoHover","colorInfoActive","colorFillContentHover","colorBgContainerDisabled","colorBorderBg","colorTextPlaceholder","colorTextLabel","colorWhite","colorHighlight","colorError","colorBgTextHover","colorBgTextActive","colorIcon","colorIconHover","colorErrorOutline","colorErrorBg","colorWarningOutline","colorWarningBg","controlOutlineWidth","controlInteractiveSize","controlItemBgActive","colorPrimaryBg","controlItemBgActiveHover","colorPrimaryBgHover","controlItemBgActiveDisabled","controlTmpOutline","controlOutline","opacityLoading","controlPaddingHorizontal","controlPaddingHorizontalSM","sizeXXS","sizeXS","sizeSM","paddingMD","sizeMD","sizeLG","paddingXL","sizeXL","paddingContentHorizontalLG","paddingContentVerticalLG","sizeMS","paddingContentHorizontal","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginMD","marginXL","marginXXL","sizeXXL","boxShadowSecondary","screenXS","screenXSMin","screenSMMax","screenMDMax","screenLGMax","screenXLMax","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","defaultTheme","defaultPresetColors","seed","colorSuccessBase","colorSuccess","colorWarningBase","colorWarning","colorErrorBase","colorInfoBase","colorInfo","colorPrimaryBase","successColors","warningColors","errorColors","infoColors","neutralColors","colorPrimaryBorderHover","colorPrimaryTextHover","colorPrimaryText","colorPrimaryTextActive","colorSuccessBg","colorSuccessBgHover","colorSuccessBorder","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorBgHover","colorErrorBorder","colorErrorBorderHover","colorErrorHover","colorErrorActive","colorErrorTextHover","colorErrorText","colorErrorTextActive","colorWarningBgHover","colorWarningBorder","colorWarningBorderHover","colorWarningHover","colorWarningActive","colorWarningTextHover","colorWarningText","colorWarningTextActive","colorInfoBg","colorInfoBgHover","colorInfoBorder","colorInfoBorderHover","colorInfoTextHover","colorInfoTextActive","colorBgMask","genColorMapToken","genFontMapToken","sizeUnit","sizeStep","genSizeMapToken","genControlHeight","motionUnit","motionBase","genRadius","genCommonMapToken","hashed","rootDesignToken","motionEaseOut","motionEaseOutBack","motionEaseInBack","zIndexBase","opacityImage","wireframe","component","getDefaultToken","statisticToken","proxyToken","flush","defaultComponentToken","mergedComponentToken","styleInterpolation","overrideComponentToken","enableStatistic","CSSINJS_STATISTIC","recording","merge","objs","statistic","noop","proxy","Proxy","componentToken","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","genTooltipStyle","tooltipMaxWidth","tooltipColor","tooltipBg","tooltipBorderRadius","tooltipRadiusOuter","wordWrap","injectStyle","colorBgDefault","TooltipToken","useOriginHook","parseColor","arrowStyle","getDisabledCompatibleChildren","elementType","__ANT_BUTTON","__ANT_SWITCH","__ANT_RADIO","picked","omitted","splitObject","spanStyle","buttonStyle","Tooltip","getTooltipContainer","overlayInnerStyle","afterOpenChange","afterVisibleChange","getContextPopupContainer","defaultOpen","defaultVisible","isNoTitle","getTooltipPlacements","arrowPointAtCenter","arrowWidth","horizontalArrowShift","verticalArrowShift","placementMap","leftTop","rightTop","rightBottom","leftBottom","ignoreShake","getPlacements","injectFromPopover","tempOpen","childProps","childCls","formattedOverlayInnerStyle","arrowContentStyle","customOverlayClassName","RcTooltip","getOverlay","vis","onOpenChange","onPopupAlign","domNode","rect","getBoundingClientRect","arrowContent","_InternalPanelDoNotUseOrYouWillBeFired","Popup","hasOwn","arg","argType","inner","module","exports","conversions","PI","sourceUnit","targetUnit","precision","converted","pi","tau","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","w","start","stop","step","band","bandwidth","scale","ordinal","unknown","domain","ordinalRange","r0","r1","paddingInner","paddingOuter","rescale","sequence","rangeRound","initRange","pointish","point","initInterpolator","interpolator","implicit","Symbol","globalScope","ONE","MAX_DIGITS","Decimal","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","carry","xd","yd","Ctor","pr","unshift","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","wpr","ln","minus","sub","subtract","modulo","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","squareRoot","toExponential","mul","rL","toDecimalPlaces","todp","rm","toInteger","toint","toPower","sign","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","toJSON","multiplyInteger","temp","compare","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c0","numerator","parseDecimal","substring","rd","doRound","xdi","xe","xLTy","isExp","arr","ps","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","define","_interopRequireDefault","require","__esModule","_hasClass","baseVal","contains","replaceClassName","origClass","classToRemove","Events","EE","once","emitter","evt","_events","_eventsCount","clearEvent","EventEmitter","__proto__","eventNames","events","listeners","handlers","ee","listenerCount","emit","a2","a3","a4","a5","on","removeAllListeners","off","prefixed","HAS_WEAKSET_SUPPORT","WeakSet","sameValueZeroEqual","isPlainObject","isPromiseLike","isReactElement","$$typeof","getNewCacheFallback","getNewCache","createCircularEqualCreator","comparator","_comparator","isCacheableA","isCacheableB","hasA","hasB","areArraysEqual","areMapsEqual","isValueEqual","matchedIndices_1","aValue","aKey","hasMatch_1","matchIndex_1","bValue","bKey","OWNER","areObjectsEqual","keysA","reactElementA","reactElementB","areRegExpsEqual","source","ignoreCase","multiline","unicode","sticky","lastIndex","areSetsEqual","matchedIndices_2","hasMatch_2","matchIndex_2","HAS_MAP_SUPPORT","HAS_SET_SUPPORT","createComparator","createIsEqual","aShape","bShape","getTime","deepEqual","shallowEqual","circularDeepEqual","circularShallowEqual","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","Uint8Array","WeakMap","thisArg","resIndex","baseIndexOf","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","baseForOwn","baseEach","createBaseEach","collection","isSymbol","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","other","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","nativeCeil","nativeMax","overRest","setToString","constant","baseSetToString","comparer","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","isCommon","seen","outer","seenIndex","stringToPath","baseSlice","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","coreJsData","eachFunc","iterable","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","findIndexFunc","baseRange","isIterateeCall","toFinite","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolValueOf","byteLength","byteOffset","buffer","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","hasFunc","reHasUnicode","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","splice","getMapData","memoize","overArg","freeExports","freeModule","freeProcess","nodeUtil","binding","otherArgs","freeSelf","self","shortOut","nativeNow","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","quote","subString","reWhitespace","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","nativeMin","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arrayEvery","baseEvery","guard","createFind","baseHasIn","hasPath","baseIsArguments","stubFalse","Buffer","isNumber","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseAssignValue","baseExtremum","baseGt","resolver","memoized","Cache","baseLt","baseProperty","basePropertyDeep","createRange","baseSome","baseOrderBy","baseRest","sortBy","debounce","INFINITY","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseUniq","upperFirst","createCaseFirst","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","err","shouldUseNative","symbols","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","submit","getInternalHooks","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","formatRegExp","convertFieldsError","fields","template","isEmptyValue","isNativeStringType","asyncSerialArray","original","AsyncValidationError","_inheritsLoose","asyncMap","objArr","pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","total","asyncParallelArray","complementError","oe","fieldValue","fullFields","fullField","deepMerge","urlReg","messages","getMonth","getYear","word","includeBoundaries","v4","v6seg","v6","v46Exact","v4exact","v6exact","ip","ipv4","ipv6","getUrlRegex","ENUM","ruleType","num","dateObject","newMessages","cloned","Schema","descriptor","_messages","defaultMessages","validate","source_","o","oc","series","_this2","validator","getValidationMethod","getType","errorFields","doIt","deep","defaultField","addFullField","schema","cb","errorList","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","asyncValidator","suppressValidatorError","complete","validators","messageIndex","internalSet","removeIfUndefined","_paths","_toArray","restPath","cloneDeep","cloneArrayDeep","cloneObjectDeep","getNamePath","store","namePath","setValue","newStore","cloneByNamePathList","namePathList","containsNamePath","matchNamePath","internalSetValues","prevValue","recursive","setValues","restValues","changedNamePath","nameUnit","defaultGetValueFromEvent","valuePropName","move","moveIndex","toIndex","diff","AsyncValidator","RawAsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","_asyncToGenerator","_regeneratorRuntime","_callee2","messageVariables","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","_context2","ruleIndex","t0","mergedMessage","subValue","sent","abrupt","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","w1","warningOnly","i1","w2","i2","_callee","_context","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_ref5","_callee4","_context4","ruleError","EMPTY_ERRORS","requireUpdate","shouldUpdate","Field","_React$Component","_inherits","_super","_createSuper","resetCount","cancelRegisterFunc","mounted","touched","dirty","validatePromise","prevValidating","warnings","cancelRegister","_this$props","preserve","isListField","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3","_this$props3$rules","triggerMetaEvent","destroy","onMetaChange","getMeta","onStoreChange","prevStore","_this$props4","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","reRender","validating","dependency","relatedFields","currentValue","rootPromise","_this$props5","_this$props5$validate","triggerName","filteredRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref3$errors","isFieldDirty","initialValue","getErrors","getWarnings","isList","isPreserve","getOnlyChild","getControlled","childList","toChildrenArray","_this$props6","getValueFromEvent","normalize","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","validateTriggerList","originTrigger","_assertThisInitialized","_this$props7","returnChildNode","_this$getOnlyChild","contextType","FieldContext","keyManager","parentPrefixName","listContext","pathName","ListContext","_ref3$value","getNewValue","operations","indexSet","keysIndex","valueIndex","_move","listValue","SPLIT","cell","NameMap","kvs","cells","_cell$match","_cell$match2","unit","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","callbacks","lastValidatePromise","getForm","_init","prevWithoutPreserves","_this$prevWithoutPres","nextStore","updateStore","getFieldEntities","isMergedPreserve","initValue","watchList","notifyWatch","timeoutId","warningUnhooked","pure","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","entities","namePathListEntities","testField","resetWithFieldInitialValue","records","requiredFieldEntities","resetWithFields","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","fieldPreserve","mergedPreserve","subNamePath","_prevStore","triggerDependenciesUpdate","updateValue","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","fieldName","provideNameList","promiseList","mergedErrors","mergedWarnings","_ref6","hasError","allPromiseFinish","resultNamePathList","_ref7","returnPromise","outOfDate","onFinish","onFinishFailed","formRef","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","useForm","formInstance","_formInstance$getInte","childrenNode","mountRef","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","_restProps$onReset","_args$","valueStr","valueStrRef","isValidForm","namePathRef","nextValueStr","RefForm","FieldForm","List","useWatch","UNDEFINED","InternalItem","invalidate","renderItem","responsive","responsiveDisabled","registerSize","itemKey","_props$component","mergedHidden","internalRegisterSize","overflowStyle","overflowProps","itemNode","Item","_excluded3","InternalRawItem","OverflowContext","_restProps","contextClassName","restContext","RawItem","RESPONSIVE","INVALIDATE","defaultRenderRest","omittedItems","Overflow","_props$data","renderRawItem","_props$itemWidth","itemWidth","ssr","maxCount","renderRest","renderRawRest","suffix","itemComponent","createUseState","statesRef","walkingIndex","beforeFrameId","myIndex","useBatchFrameState","fullySSR","_createUseState","_createUseState2","containerWidth","setContainerWidth","mergedContainerWidth","_createUseState3","_createUseState4","itemWidths","setItemWidths","_createUseState5","_createUseState6","prevRestWidth","setPrevRestWidth","_createUseState7","_createUseState8","restWidth","setRestWidth","_createUseState9","_createUseState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","displayCount","setDisplayCount","mergedDisplayCount","restReady","setRestReady","itemPrefixCls","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedData","useCallback","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","useLayoutEffect","totalWidth","currentItemWidth","displayRest","suffixStyle","restNode","itemSharedProps","internalRenderItemNode","restContextProps","mergedRenderRest","overflowNode","clientWidth","ForwardOverflow","IdContext","getMenuId","eventKey","useMenuId","MenuContext","InheritableContextProvider","locked","inheritableContext","mergeProps","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","PathUserContext","LEFT","RIGHT","UP","DOWN","ENTER","HOME","END","ArrowKeys","getFocusableElements","elements","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","mode","isRtl","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","activeRef","cleanRaf","key2element","element2key","refreshElements","activeElement","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_inline","_horizontal","_vertical","_offsets","inlineTrigger","inline","horizontal","vertical","inlineSub","horizontalSub","verticalSub","sibling","getOffset","tryFocus","menuElement","focusTargetElement","link","targetElement","focusableElements","findContainerUL","controlId","parentKey","parentMenuElement","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","_React$useState3","_React$useState4","overflowKeys","setOverflowKeys","updateRef","destroyRef","registerPath","connectedPath","unregisterPath","refreshOverflowKeys","includeOverflow","isSubPathKey","pathKeys","pathKey","getSubPathKeys","useMemoCallback","funRef","_funRef$current","uniquePrefix","internalId","useActive","onMouseEnter","onMouseLeave","onActive","onInactive","warnItemProp","restInfo","useDirectionStyle","inlineIndent","LegacyMenuItem","attribute","elementRef","passedProps","InternalMenuItem","warnKey","itemIcon","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","_internalRenderMenuItem","PrivateContext","itemCls","legacyMenuItemRef","mergedDisabled","connectedKeys","getEventInfo","mergedItemIcon","_useActive","activeProps","selected","directionStyle","optionRoleProps","renderNode","isSelected","measure","connectedKeyPath","InternalSubMenuList","SubMenuList","parseChildren","_eventKey","_child$props","cloneProps","convertItemsToNodes","opt","MenuItemGroup","SubMenu","Divider","parseItems","childNodes","placementsRtl","getMotion","defaultMotions","popupPlacementMap","PopupTrigger","popupOffset","subMenuOpenDelay","subMenuCloseDelay","triggerSubMenuAction","forceSubMenuRender","innerVisible","setInnerVisible","targetMotion","mergedMotion","visibleRef","popupMotion","InlineSubMenuList","fixedMode","sameModeRef","setDestroy","mergedOpen","originOnVisibleChanged","onVisibleChanged","MenuContextProvider","InternalSubMenu","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","_internalRenderSubMenuItem","subMenuPrefixCls","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","titleNode","isOpen","isSubMenu","triggerModeRef","triggerMode","listNode","EMPTY_LIST","_childList$","_ref$tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","selectable","_ref$multiple","multiple","defaultSelectedKeys","onSelect","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","setMounted","setUUID","newId","useUUID","postState","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","forceFlush","doUpdate","flushSync","inlineCacheOpenKeys","setInlineCacheOpenKeys","_React$useMemo","_React$useMemo2","mergedMode","mergedInlineCollapsed","isInlineMode","_React$useState5","_React$useState6","internalMode","setInternalMode","_React$useState7","_React$useState8","internalInlineCollapsed","setInternalInlineCollapsed","_React$useState9","_React$useState10","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","registerPathContext","pathUserContext","useImperativeHandle","_childList$find","_containerRef$current","_containerRef$current2","_containerRef$current3","shouldFocusKey","_useMergedState5","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","newSelectKeys","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","getInternalPopupContainer","onInternalKeyDown","nextOpen","privateContext","wrappedChildList","dir","omitItems","originOmitItems","newLastIndex","InternalMenuItemGroup","groupPrefixCls","ExportMenu","ItemGroup","makePrefixMap","styleProp","eventName","prefixes","vendorPrefixes","domSupport","win","animationend","transitionend","getVendorPrefixes","canUseDOM","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","transitionType","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_QUEUE","isActive","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrame","delay","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","useIsomorphicLayoutEffect","nextStep","doNext","useStatus","supportMotion","_ref$motionEnter","_ref$motionAppear","_ref$motionLeave","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","asyncVisible","setAsyncVisible","setStatus","setStyle","mountedRef","deadlineRef","getDomElement","onInternalMotionEnd","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","isMounted","firstMountChangeRef","DomWrapper","transitionSupport","isSupportTransition","_props$visible","_props$removeOnLeave","eventProps","wrapperNodeRef","_useStatus","HTMLElement","findDOMNode","_useStatus2","statusStep","statusStyle","renderedRef","motionChildren","setNodeRef","fillRef","mergedProps","statusSuffix","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","diffKeys","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","OriginCSSMotion","CSSMotionList","keyEntities","removeKey","nextKeyEntities","_onVisibleChanged","onAllRemoved","motionProps","changedVisible","parsedKeyObjects","prevEntity","elementListeners","_elementListeners$get","CollectionContext","SingleObserver","wrapperRef","onCollectionResize","isRenderProps","mergedChildren","sizeRef","canRef","originRef","mergedRef","propsRef","onInternalResize","_propsRef$current","_target$getBoundingCl","fixedWidth","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","sizeInfo","currentElement","unobserve","Collection","onBatchResize","resizeIdRef","resizeInfosRef","currentId","showArrow","_props$mouseEnterDela","_props$mouseLeaveDela","_props$align","_props$destroyTooltip","destroyTooltipOnHide","domRef","destroyTooltip","autoDestroy","keepParent","afterPopupVisibleChange","defaultPopupVisible","destroyPopupOnHide","forwardRef","addEventListenerWrap","eventType","ReactDOM","didUpdate","getContainer","parentRef","initRef","isPointsEq","isAlignPoint","Mask","mask","maskMotion","maskAnimation","maskTransitionName","vendorPrefix","jsCssMap","Webkit","Moz","ms","O","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","setTransform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","elem","originalStyle","css","el","getScroll","getScrollLeft","getScrollTop","pos","box","doc","ownerDocument","docElem","clientLeft","clientTop","getClientPosition","parentWindow","isWindow","getDocument","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","getOffsetDirection","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","originalXY","getPropertyValue","matrix","getTransformXY","resultXY","xy","match2d","setTransformXY","each","isBorderBoxFn","cs","computedStyle","rsLeft","pixelLeft","BOX_MODELS","swap","getPBMWidth","cssProp","domUtils","getParent","host","getWH","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","getWHIgnoreDisplay","includeMargin","utils","getWindow","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","setOffset","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","positionStyle","nodeName","getVisibleRectForElement","alwaysByViewport","visibleRect","Infinity","navigator","userAgent","clientHeight","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","innerWidth","innerHeight","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","outerWidth","outerHeight","getAlignOffset","region","V","H","getElFuturePos","elRegion","refNodeRegion","p1","p2","isFailX","elFuturePos","isFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","isCompleteFailX","isCompleteFailY","isStillFailX","isStillFailY","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","isTargetNotOutOfVisible","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevWidth","prevHeight","getPoint","Align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","forceAlignPropsRef","_useBuffer","calledRef","timeoutRef","cancelTrigger","force","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestAlign","latestOnAlign","_result","_element","_point","tgtPoint","pageX","pageY","clientX","clientY","pointInView","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","setElement","setPoint","forceAlign","RcAlign","StatusQueue","PopupInner","getRootDomNode","getClassNameFromAlign","onMouseDown","alignRef","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","tgtWidth","tgtHeight","_element$getBoundingC","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","setInternalStatus","cancelRaf","useVisibleStatus","_useVisibleStatus2","goNextStatus","alignTimes","setAlignTimes","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","alignDisabled","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","_props$mobile$popupMo","popupRender","serInnerVisible","inMobile","setInMobile","popupNode","returnEmptyString","returnDocument","ALL_HANDLERS","PortalComponent","_popupVisible","fireEvents","delaySetPopupVisible","clearDelayTimer","_this$popupRef$curren","relatedTarget","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","setPopupVisible","isContextMenuToShow","close","preTime","isClickToShow","isClickToHide","nextVisible","_this$context","hasPopupMouseDown","mouseDownTimeout","onPopupMouseDown","maskClosable","getPopupDomNode","isContextMenuOnly","getTriggerDOMNode","getPopupClassNameFromAlign","getAlignPopupClassName","_this$state","getPopupAlign","mouseProps","isMouseEnterToShow","onPopupMouseEnter","isMouseLeaveToHide","onPopupMouseLeave","popupContainer","attachId","mountNode","attachParent","portalContainer","prevPopupVisible","componentDidUpdate","currentDocument","clickOutsideHandler","onDocumentClick","touchOutsideHandler","contextMenuOutsideHandler1","onContextMenuClose","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","placementStr","baseAlign","getAlignFromPlacement","delayS","delayTimer","childPros","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","newChildProps","onContextMenu","createTwoChains","onMouseMove","onBlur","childrenClassName","portal","handlePortalUpdate","getComponent","TriggerContext","triggerContextValue","prevState","Portal","keepEmpty","APPEND_ORDER","MARK_KEY","containerCache","getMark","getOrder","findStyles","injectCSS","nonce","innerHTML","existStyle","nextSibling","findExistNode","existNode","syncRealContainer","cachedRealContainer","placeholderStyle","_option$csp","_option$csp2","_option$csp3","newNode","focusable","includePositive","isFocusableElement","isContentEditable","tabIndexAttr","tabIndexNum","offsetParent","SVGGraphicsElement","getBBox","_element$getBBox","_width","_height","MAC_ENTER","BACKSPACE","NUM_CENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","SPACE","PAGE_UP","PAGE_DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","E","F","G","I","J","K","L","M","N","Q","R","S","T","U","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","altKey","ctrlKey","metaKey","isCharacterKey","createRoot","fullClone","version","reactRender","unmountComponentAtNode","toggleWarning","skip","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","legacyUnmount","_unmount","useEvent","fnRef","memoFn","_fnRef$current","useLayoutUpdateEffect","deps","firstMountRef","condition","hasValue","defaultStateValue","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","setPrevValue","ignoreDestroy","useSafeState","obj1","obj2","shallow","refSet","circular","newLevel","agent","vendor","opera","caf","requestAnimationFrame","cancelAnimationFrame","rafUUID","rafIds","cleanup","wrapperRaf","callRef","leftTimes","realId","refs","refList","_len2","_key2","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isMemo","warned","for","u","aa","ca","encodeURIComponent","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","removeAttribute","setAttributeNS","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","_payload","Ra","Sa","Ta","Va","_valueTracker","getOwnPropertyDescriptor","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","ab","bb","db","eb","fb","defaultSelected","gb","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","aspectRatio","gridArea","lineClamp","qb","rb","sb","setProperty","tb","menuitem","area","br","col","embed","hr","input","keygen","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","flags","Wb","memoizedState","dehydrated","Xb","Zb","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","clz32","pc","qc","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","hd","Uc","jd","kd","ld","nd","od","charCode","pd","_reactName","_targetInst","currentTarget","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","shiftKey","getModifierState","zd","button","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Shift","Pd","Qd","code","repeat","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","ge","he","ie","le","datetime","password","tel","week","me","ne","pe","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","setStart","removeAllRanges","addRange","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationiteration","animationstart","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","sf","capture","tf","uf","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","gg","hg","jg","kg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","bh","ch","eventTime","lane","payload","dh","eh","fh","gh","hh","ih","jh","kh","nh","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","hi","ii","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","qi","ri","si","ti","ui","vi","wi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useInsertionEffect","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","createElementNS","createTextNode","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","nk","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unstable_scheduleHydration","tl","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","unstable_strictMode","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","hasElementType","hasMap","hasSet","hasArrayBuffer","isView","equal","it","titleCase","redactingEmail","_str","toTitleCase","redactEmail","smallWords","GA4","_gtag","_format","_excluded4","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptors","defineProperties","_arrayWithHoles","_s","_e","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","minLen","arr2","_defineProperties","Constructor","isInitialized","_testMode","_currentMeasurementId","_hasLoadedGA","_isQueuing","_queueGtag","GA_MEASUREMENT_ID","script","async","dataLayer","gtag","gaOptions","mapFields","cookieUpdate","cookieExpires","cookieDomain","cookieFlags","userId","clientId","anonymizeIp","contentGroup1","contentGroup2","contentGroup3","contentGroup4","contentGroup5","allowAdFeatures","allowAdPersonalizationSignals","nonInteraction","hitCallback","initConfigs","trackingId","gtagOptions","_options$legacyDimens","legacyDimensionMetric","_options$testMode","testMode","_loadGA","mergedGtagOptions","_appendCustomMap","send_page_view","_toGtagOptions","queues","fieldsObject","_gaCommand","eventCategory","eventAction","eventLabel","eventValue","event_category","event_label","non_interaction","_gaCommandSendEvent","hitType","timingCategory","timingVar","timingValue","timingLabel","_this$_toGtagOptions","page_path","page_title","page_location","_len3","_key3","_gaCommandSendPageview","_args$2","_len4","_key4","_gaCommandSendEventParameters","_gaCommandSendPageviewParameters","_gaCommandSendTiming","_len5","_key5","command","_len6","_key6","_gaCommandSend","_gaCommandSet","_len7","_key7","readyCallback","ga","optionsOrName","category","transport","fieldObject","pathTrim","reset","protoProps","staticProps","custom_map","safetyCallbackCalled","_default","_ga","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","cacheBabelInterop","cacheNodeInterop","ATTRIBUTE_NAMES","TAG_NAMES","BODY","HEAD","HTML","LINK","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","ReferenceError","encodeSpecialCharacters","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","objectAssign","rafPolyfill","clock","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","tags","headElement","tagNodes","indexToDelete","newElement","styleSheet","cssText","existingTag","isEqualNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","noscript","HelmetExport","_class","HelmetWrapper","subClass","superClass","inherits","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","initAttributes","convertReactPropstoHtmlAttributes","_props","propTypes","defaultTitle","defer","titleTemplate","rewind","mappedState","Helmet","withSideEffect","renderStatic","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","createBrowserRouter","parseHydrationData","enhanceManualRouteObjects","__staticRouterHydrationData","deserializeErrors","serialized","__type","Link","relative","useHref","internalOnClick","replaceProp","useResolvedPath","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","DataRouterHook","DataRouterStateHook","ScrollRestoration","_temp3","storageKey","useDataRouterContext","UseScrollRestoration","useDataRouterState","useMatches","useNavigation","scrollRestoration","sessionStorage","SCROLL_RESTORATION_STORAGE_KEY","sessionPositions","disableScrollRestoration","scrollTo","useScrollRestoration","hookName","ctx","DataRouterContext","DataRouterStateContext","checkIfSnapshotChanged","inst","latestGetSnapshot","DataStaticRouterContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","RouteErrorContext","useInRouterContext","joinedPathname","routePathnamesJson","OutletContext","routeMatch","_temp2","DefaultErrorElement","UseRouteError","useCurrentRouteId","useRouteError","preStyles","codeStyles","RenderErrorBoundary","errorInfo","routeContext","RenderedRoute","dataStaticRouterContext","errorElement","_deepestRenderedBoundaryId","_renderMatches","parentMatches","dataRouterState","renderedMatches","errorIndex","reduceRight","getChildren","useRouteContext","thisRoute","UseNavigation","UseMatches","AwaitRenderStatus","RouterProvider","fallbackElement","useSyncExternalStoreShim","static","Router","navigationType","Routes","Navigate","Outlet","useOutlet","Route","basenameProp","locationProp","NavigationType","staticProp","navigationContext","trailingPathname","dataRouterContext","dataRouterStateContext","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","useRoutes","createRoutesFromChildren","neverSettledPromise","routeClone","React__default","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","PureComponent","getDisplayName","setRafTimeout","timeout","currTime","createAnimateManager","handleChange","shouldStop","_style","_styles","curr","restStyles","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","mapObject","translateStyle","isTransition","camelName","styleVal","generatePrefixStyle","getTransitionVal","easing","ACCURACY","cubicBezierFactor","c1","c2","multyTime","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","needContinue","calStepperVals","preVals","steps","nextStepVals","_easing2","velocity","preObj","nextObj","beginTime","interKeys","timingStyle","stepperStyle","cafId","currStyle","finalStyle","_setPrototypeOf","Derived","hasNativeReflectConstruct","sham","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","Animate","handleStyleChange","changeStyle","canBegin","runAnimation","shouldReAnimate","isTriggered","manager","stopJSAnimation","_newState","unSubscribe","onAnimationEnd","onAnimationStart","startAnimation","configUpdate","configEasing","_this3","_steps$","initialStyle","_steps$$duration","initialTime","nextItem","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","newStyle","propsTo","runStepAnimation","onAnimationReStart","Children","stateStyle","cloneContainer","_container$props","_container$props$styl","isFinite","parseDurationOfSingleTransition","AnimateGroupChild","_Component","handleEnter","isAppearing","appearOptions","enterOptions","handleStyleActive","handleExit","leaveOptions","Transition","onEnter","onExit","parseTimeout","AnimateGroup","appear","enter","leave","TransitionGroup","_addClass","_removeClass","_react","_Transition","addClass","removeClass","CSSTransition","appearing","getClassNames","removeClasses","onEntering","activeClassName","reflowAndAddClass","onEntered","appearClassName","doneClassName","enterClassName","onExiting","onExited","isStringClassNames","_this$getClassNames6","_reactDom","_TransitionGroup","ReplaceTransition","_args","handleLifecycle","handleEntering","handleEntered","handleExiting","handleExited","idx","originalArgs","inProp","in","_React$Children$toArr","second","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","_reactLifecyclesCompat","initialStatus","parentGroup","transitionGroup","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","updateStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","timeouts","enterTimeout","safeSetState","onTransitionEnd","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","only","_propTypes","_ChildMapping","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","_CSSTransition","_ReplaceTransition","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","getValueForKey","nextKeysPending","prevKey","childMapping","nextKey","pendingNextKey","classNamesShape","timeoutsShape","__self","__source","Fragment","jsx","jsxs","escape","_status","Profiler","StrictMode","Suspense","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","lazy","startTransition","unstable_act","ErrorBar","layout","dataKey","dataPointFormatter","xAxis","yAxis","svgProps","filterProps","errorBars","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","Layer","coordinates","stroke","Cell","valueAccessor","_isArray","_last","LabelList","clockWise","textBreakAll","_isNil","getValueByDataKey","idProps","Label","parentViewBox","parseLabelList","_isFunction","_isObject","renderCallByParent","parentProps","ckeckPropsLabel","explicitChilren","findAllByType","implicitLabelList","Bar","isAnimationFinished","uniqueId","handleAnimationEnd","handleAnimationStart","animationId","prevAnimationId","curData","prevData","Rectangle","baseProps","adaptEventsOfChild","renderRectangle","isAnimationActive","animationBegin","animationEasing","stepData","interpolatorX","interpolateNumber","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","_isEqual","renderRectanglesWithAnimation","backgroundProps","errorBarItems","dataPoint","hide","layerClass","needClip","allowDataOverflow","clipPathId","renderBackground","renderRectangles","renderErrorBar","xAxisId","yAxisId","legendType","minPointSize","Global","getComposedData","barPosition","bandSize","xAxisTicks","yAxisTicks","stackedData","dataStartIndex","displayedData","findPositionOfBar","_item$props","numericAxis","stackedDomain","baseValue","getBaseValueOfBar","rects","truncateByDomain","getCateCoordinateOfBar","axis","ticks","delta","mathSign","tooltipPayload","getTooltipItem","tooltipPosition","CartesianGrid","lineItem","horizontalPoints","renderLineItem","verticalPoints","verticalFill","roundedSortedVerticalPoints","colorIndex","horizontalFill","roundedSortedHorizontalPoints","horizontalCoordinatesGenerator","verticalCoordinatesGenerator","chartWidth","chartHeight","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","XAxis","allowDecimals","orientation","mirror","tickCount","reversed","allowDuplicatedCategory","YAxis","that","Basis","BasisClosed","BasisOpen","LinearClosed","Linear","slope3","h0","h1","s0","s1","slope2","t1","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","areaStart","_line","areaEnd","NaN","lineStart","lineEnd","_y2","_y3","_y4","_t0","_y","px","py","i0","defined","curve","curveLinear","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","Curve","lineFunction","baseLine","connectNulls","curveFactory","_upperFirst","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","pathRef","realPath","getPath","adaptEventHandlers","Cross","getTangentCircle","angle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","RADIAN","centerAngle","lineTangencyAngle","center","polarToCartesian","circleTangency","lineTangency","getSectorPath","startAngle","endAngle","getDeltaAngle","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","Sector","forceCornerRadius","deltaRadius","cr","getPercentValue","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","Dot","CartesianAxis","layerReference","letterSpacing","viewBoxOld","restPropsOld","htmlLayer","tick","getElementsByClassName","tx","ty","tickSize","tickMargin","finalTickSize","tickCoord","coordinate","textAnchor","verticalAnchor","axisLine","needHeight","needWidth","_get","tickLine","tickFormatter","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this2$getTickLineCoo","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","ticksGenerator","noTicksProps","renderAxisLine","renderTicks","minTickGap","interval","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","getStringSize","tailContent","tailSize","tailGap","isShow","gap","isTouch","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","attachDragEndListener","startX","handleTravellerDragStart","endX","lineY","renderDefaultTraveller","travellerWidth","updateId","prevUpdateId","prevTravellerWidth","prevX","scalePoint","_range","scaleValues","createScale","middle","minIndex","getIndexInRange","maxIndex","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","_this$state2","isFullGap","chartElement","compact","travellerX","traveller","travellerProps","renderTraveller","_this$state3","getTextOfTick","alwaysShowText","_this$state4","isPanoramic","renderPanorama","renderSlide","renderTravellerLayer","renderText","ifOverflowMatches","alwaysShow","ifOverflow","rectWithPoints","ScaleHelper","bandAware","_offset","_offset2","EPS","createLabeledScales","scales","coord","_mapValues","isInRange","_every","ReferenceDot","isX","isNumOrStr","isY","getCoordinate","dotProps","renderDot","isFront","ReferenceLine","fixedX","fixedY","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","yCoord","xCoord","_orientation","_coord","_points","_points2","_some","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","getRect","renderRect","detectReferenceElementsDomain","axisId","axisType","specifiedTicks","lines","dots","areas","idKey","valueKey","finalDomain","key1","key2","value1","value2","eventCenter","setMaxListeners","SYNC_EVENT","ORIENT_MAP","originCoordinate","isFinit","setImmediate","deferClear","clearImmediate","getDisplayedData","graphicalItems","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeLabel","tooltipAxis","findEntryInArray","getTooltipData","rangeObj","rangeData","chartX","chartY","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","calculateActiveTickIndex","activePayload","activeCoordinate","_angle","_radius","getActiveCoordinate","activeTooltipIndex","getAxisMap","_ref4$axisType","AxisComp","stackGroups","axisIdKey","axes","axisMap","stackOffset","isCategorical","isCategoricalAxis","duplicateDomain","categoricalDomain","getDomainOfDataByKey","duplicate","hasDuplicate","parseDomainOfCategoryAxis","errorBarsDomain","parseErrorBarsOfAxis","hasStack","getDomainOfStackGroups","getDomainOfItemsWithSameAxis","parseSpecifiedDomain","axisDomain","originalDomain","getAxisMapByAxes","Axis","getAxisMapByItems","createDefaultState","_brushItem$props","_brushItem$props2","defaultShowTooltip","brushItem","findChildByType","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","BarChart","chartName","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","legendContent","formatAxisMap","getFormatItems","currentState","barSize","barGap","barCategoryGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasBar","hasGraphicalBarItem","sizeList","getBarSizeList","formattedItems","childMaxBarSize","numericAxisId","cateAxisId","axisObj","_objectSpread6","getTicksOfAxis","cateAxis","cateTicks","getStackedDataOfItem","itemIsBar","getBandSizeOfAxis","_getBandSizeOfAxis","barBandSize","getBarPosition","_objectSpread7","composedFn","childIndex","parseChildIndex","updateStateOfAxisMapsOffsetAndStackGroups","_ref8","validateWidthHeight","reverseStackOrder","_getAxisNameByLayout2","getStackGroupsByAxisId","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","legendItem","Legend","offsetH","offsetV","brushBottom","appendOffsetOfLegend","calculateOffset","legendBBox","ticksObj","getAnyElementOfObject","_sortBy","tooltipAxisBandSize","tooltipTicksGenerator","formattedGraphicalItems","CategoricalChartWrapper","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","_nextState","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","handleItemMouseLeave","handleMouseMove","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","getReactEventByType","handleClick","_nextState2","handleMouseDown","handleMouseUp","onMouseUp","handleTouchStart","handleTouchEnd","_ref10","getCoordinatesOfGrid","_ref11","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","_find","renderPolarGrid","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","renderLegend","legendWidth","getLegendProps","legend","onBBoxUpdate","renderTooltip","tooltipItem","_this$state5","renderBrush","_this$state6","combineEventHandlers","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","isRange","_item$item$props","activeDot","getMainColorOfGraphicItem","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$props2","_item$item$props2","hasActive","itemEvents","onCLick","graphicalItem","specifiedKey","renderCustomized","throttleDelay","_throttle","_isBoolean","containerOffset","calculateChartCoordinate","inRange","_this$state9","xScale","yScale","xValue","invert","yValue","toolTipData","_this$state10","halfSize","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","inRangeOfSector","tooltipEvents","_maxListeners","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","isInRectangle","_activeBarItem","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","Surface","renderClipPath","renderByOrder","parseEventsOfWrapper","prevLayout","prevStackOffset","prevMargin","prevChildren","_defaultState","keepFromPrevState","updatesToState","isChildrenEqual","newUpdateId","dot","generateCategoricalChart","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","_axis$padding","offsetKey","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","parseScale","realScaleType","checkDomainOfScale","getTicksOfScale","finalAxis","renderRadialLabel","labelProps","labelAngle","deltaAngle","startPoint","endPoint","dominantBaseline","_props$className","formatter","getLabel","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","_polarToCartesian2","getAttrsOfPolarLabel","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","breakAll","parseViewBox","labelViewBox","parseLabel","checkPropsLabel","explicitChildren","implicitLabel","atan2","draw","tan30","tan30_2","kr","kx","ky","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","Symbols","sizeType","symbolFactory","getSymbolFactory","circle","shapeSymbol","calculateAreaSize","registerSymbol","factory","SIZE","DefaultLegendContent","inactiveColor","sixthSize","thirdSize","inactive","legendIcon","iconProps","iconSize","itemStyle","finalFormatter","renderIcon","renderItems","defaultUniqBy","getUniqPayload","_uniqBy","boxWidth","boxHeight","updateBBox","hPos","vPos","getBBoxSnapshot","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","renderContent","extendStatics","__extends","require$$0","require$$1","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","throttle","isSSR","isDOMElement","HTMLDocument","createNotifier","setSize","handleWidth","handleHeight","resizeHandler","targetRef","observerOptions","observableElement","targetDomEl","getRenderType","_c","notifyResize","contentRect","skipOnMount","createResizeHandler","ResizeDetector","attachObserver","cancelHandler","typedChildren","WrapperTag","nativeProps","ResponsiveContainer","aspect","_ref$width","_ref$height","_ref$debounce","containerHeight","setSizes","getContainerSize","updateDimensionsImmediate","newSize","oldWidth","oldHeight","handleResize","_debounce","ReactResizeDetector","calculatedWidth","calculatedHeight","renderChart","BREAKING_SPACES","calculateWordWidths","words","wordsWithComputedWidth","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","shouldLimitLines","maxLines","calculate","currentLine","newLine","originalResult","trimmedResult","checkOverflow","tempText","doesOverflow","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","capHeight","textProps","startDy","reduceCSSCalc","transforms","defaultFormatter","DefaultTooltipContent","separator","itemSorter","finalItemStyle","formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","dismissed","dismissedAtCoordinate","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","reverseDirection","negative","positive","blur","preventScroll","translateX","translateY","filterNull","finalPayload","hasPayload","useTranslate3d","cursorStyle","svgView","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","minX","maxX","minY","maxY","totalLength","getTotalLength","isUpdateAnimationActive","currWidth","currHeight","currY","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","compose","fns","firstFn","tailsFn","lastResult","rangeStep","getDigitCount","newA","uninterpolateNumber","uninterpolateTruncation","getValidInterval","validMin","validMax","getFormatStep","roughStep","correctionFactor","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","absVal","middleIndex","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_getValidInterval3","_getValidInterval4","_getValidInterval5","_getValidInterval6","e10","e5","e2","tickIncrement","power","tickStep","step0","step1","lo","mid","ascending","ascendingComparator","numbers","valueof","ascendingBisect","bisector","bisectRight","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","m1","m2","basis","v0","v1","v2","v3","t2","t3","channels","displayable","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","genericArray","setTime","reA","reB","am","bm","bs","one","zero","numberArray","bimap","interpolate","d0","d1","polymap","bisect","clamp","transformer","untransform","piecewise","interpolateValue","clamper","interpolateRound","continuous","prefixExponent","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","coefficient","toLocaleString","formatRounded","formatPrefix","grouping","thousands","group","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log10","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","formatLocale","transformPow","transformSqrt","transformSquare","powish","square","unsquare","radial","squared","quickselect","newLeft","newRight","quantile","Float64Array","value0","subarray","quantileSorted","thresholds","threshold","invertExtent","quantiles","quantize","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","newInterval","floori","offseti","millisecond","getMilliseconds","getUTCSeconds","minute","getSeconds","getMinutes","hour","getHours","day","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","setMonth","getFullYear","setFullYear","utcMinute","setUTCSeconds","getUTCMinutes","utcHour","setUTCMinutes","getUTCHours","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcYear","setUTCFullYear","ticker","tickIntervals","tickInterval","utcWeek","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","utcParse","stackValue","stackSeries","filterNil","flattenData","_flatMap","_min","_max","_ticks$length","unsortedTicks","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","legendData","sectors","iconType","globalSize","_ref5$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","barItems","selfSize","cateId","stackList","_ref6$sizeList","realBarGap","useFull","fullBarSize","newRes","originalSize","legendBox","legendProps","getDomainOfErrorBars","errorBarChild","isErrorBarRelevantForAxis","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","domains","hasMin","hasMax","isGrid","isAll","offsetForBand","niceTicks","scaleContent","defaultHandler","parentHandler","childHandler","customizedHandler","arg2","arg3","arg4","chartType","d3Scales","_isString","STACK_OFFSET_MAP","_isNaN","none","stackOffsetNone","silhouette","wiggle","s2","sij0","s3","getStackedData","stackItems","offsetType","dataKeys","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","_items","_item$props3","stackId","childGroup","scaleType","tickValues","calculateDomainOfTicks","_domain","itemIndex","MIN_VALUE_REG","MAX_VALUE_REG","specifiedDomain","dataDomain","isBar","bandWidth","orderedTicks","calculatedDomain","axisChild","_graphicalItem$props","tooltipType","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","styleString","cacheKey","measurementSpan","measurementSpanStyle","styleKey","html","pageYOffset","pageXOffset","_isNumber","idCounter","totalValue","ary","numberA","numberB","specifiedValue","isSsr","radianToDegree","angleInRadian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startCnt","endCnt","sector","_getAngleOfPoint","_formatAngleOfSector","formatAngleOfSector","formatAngle","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","Comp","lastChildren","childType","_el$props","SVG_TAGS","isSvgElement","nextChildren","isSingleChildEqual","nextChild","renderMap","record","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","includeEvents","isSvg","inputProps","newHandler","originalHandler","getEventHandlerOfChild","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","walk","contents","nodes","ast","parser","reducedAst","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","_convert","_convert2","operator","convertMathExpression","_node","op","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","calc","_reducer","prec","JisonParserError","stacktrace","exception","ex2","captureStackTrace","rv","trace","yy","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","TERROR","EOF","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","check","state_descriptions_","table","productions_","bp","performAction","yystate","yysp","yyvstack","lexer","$","goto","bt","defaultActions","bda","parseError","ExceptionClass","recoverable","sstack","vstack","sp","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","assert","yyGetSharedState","dst","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","expected","pei","errStr","yytext","token_id","yylineno","new_state","symbol_stack","state_stack","value_stack","stack_pointer","rec","yyrulelen","this_production","lex","yyval","_$","retval","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","ERROR","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","matched","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","loc","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","last_column","first_line","first_column","last_line","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","slice_len","ch2","unput","pre_lines","more","backtrack_lexer","less","pastInput","maxSize","past","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","actual","preceding","following","context_loc","context_loc2","l0","l1","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","describeYYLLOC","display_range_too","l2","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","regexes","pendingInput","activeCondition","conditionStackDepth","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","inclusive","Parser","ValueParser","bubble","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","colon","star","escapePos","whitespacePos","balanced","sourceIndex","unclosed","stringifyNode","custom","buf","customResult","EXP","dotted","sciPos","containsNumber","MapShim","class_1","__entries__","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","resolvePending","timeoutCallback","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","broadcastActive","characterData","subtree","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGElement","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","sortIndex","performance","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","objA","objB","compareContext","keysB","bHasOwnProperty","valueA","valueB","asyncGeneratorStep","gen","_next","_throw","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","_e2","assertThisInitialized","_objectSpread2","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","arrayWithHoles","_r","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","iterableToArray","_toPropertyKey","hint","prim","toPrimitive","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","leafPrototypes","ns","def","chunkId","promises","miniCssF","globalThis","inProgress","dataWebpackPrefix","needAttach","scripts","nc","onScriptComplete","onerror","onload","doneFns","nmd","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","avatarBg","avatarColor","avatarSizeBase","avatarSizeLG","avatarSizeSM","avatarFontSizeBase","avatarFontSizeLG","avatarFontSizeSM","avatarSizeStyle","objectFit","genGroupStyle","avatarGroupBorderColor","avatarGroupSpace","avatarToken","InternalAvatar","groupSize","setScale","isImgExist","setIsImgExist","avatarNodeRef","avatarChildrenRef","avatarNodeMergeRef","setScaleParam","childrenWidth","nodeWidth","childrenToRender","customSize","srcSet","alt","draggable","crossOrigin","needResponsive","useBreakpoint","responsiveSizeStyle","currentBreakpoint","currentSize","hasImageElement","transformString","childrenStyle","WebkitTransform","sizeChildrenStyle","getRenderPropValue","popoverBg","popoverColor","popoverPadding","genColorStyle","genWireframeStyle","titlePaddingBlockDist","popoverTitlePaddingBlockTop","popoverTitlePaddingBlockBottom","popoverPaddingHorizontal","popoverToken","RawPurePanel","Overlay","Popover","overlayCls","maxStyle","maxPopoverPlacement","maxPopoverTrigger","childrenWithProps","numOfChildren","childrenShow","childrenHidden","Group","Tableau","chercherTitre","noExo","resultats","FormData","prenom","GraphiqueCM","an1987","an2021","site","an2007","an2015","Presentation","graphiqueCM","afficherGraphiqueCM","fleur","presentation","lastHash","behavior","Dictee","rel","Grammaire","JeuxMots","image1","Conjugaison","menuHorizontalHeight","menuItemPaddingInline","menuArrowOffset","accessibilityFocus","themeSuffix","colorItemText","colorItemTextSelected","colorGroupTitle","colorItemBg","colorSubItemBg","colorItemBgSelected","colorActiveBarHeight","colorActiveBarWidth","colorActiveBarBorderSize","colorItemTextHover","colorItemTextDisabled","colorDangerItemText","colorDangerItemTextHover","colorDangerItemTextSelected","colorDangerItemBgActive","colorDangerItemBgSelected","colorItemBgHover","menuSubMenuBg","colorItemTextSelectedHorizontal","colorItemBgSelectedHorizontal","borderBottomWidth","insetBlock","borderInlineEndColor","getVerticalInlineStyle","menuItemHeight","itemMarginInline","menuArrowSize","paddingWithArrow","marginInline","marginBlock","dropdownWidth","inlineItemStyle","listStylePosition","paddingInlineStart","genMenuItemStyle","genSubMenuArrowStyle","getBaseStyle","radiusSubMenuItem","menuPanelMaskInset","radiusItem","borderStyle","borderTopWidth","menuToken","colorTextDark","menuDarkToken","colorItemBgActive","getHorizontalStyle","getVerticalStyle","getThemeStyle","getRTLStyle","genCollapseMotion","colorItemTextHoverHorizontal","OverrideContext","dashed","SiderContext","firstLevel","danger","disableMenuItemTitleTooltip","isInlineCollapsed","siderCollapsed","tooltipTitle","tooltipProps","childrenLength","returnNode","wrapNode","renderItemChildren","customTheme","contextTheme","titleIsSpan","contextValue","RcSubMenu","MenuDivider","useItems","InternalMenu","overrideObj","_internalDisableMenuItemTitleTooltip","mergedSelectable","initCollapseMotion","menuClassName","beClone","RcMenu","menuRef","HomeFilled","HomeFilledSvg","itemsMenu","pageFaute","JeuxDictee","PhraseTrou","PhraseErreur","VerbeConjugaison","OrthographeMot","Orthographe","MemoireJeu","MotDefinition","ListeMots","DebutEtape","MasterJeu","JeuDesordre","Boogle","JeuQcmMelange","JeuQcm","JeuTrou","App","ReactGA4","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","reportWebVitals"],"sourceRoot":""}