{"version":3,"file":"static/js/main.8b78ea81.js","mappings":"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AM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,YALV,UAOE,iBACED,KAAK,UACLE,EAAE,8RAIT,ECED,MAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,YALV,UAOE,iBACED,KAAK,UACLE,EAAE,6LAIT,w+BCED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,YALV,UAOE,iBACED,KAAK,UACLE,EAAE,kvBAIT,kLCED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,wiKAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,YALV,UAOE,iBACED,KAAK,UACLE,EAAE,soEAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,sgJAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,6jKAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,giJAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,YALV,UAOE,iBACED,KAAK,UACLE,EAAE,8xEAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,w+IAIT,sKCED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,mxWAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,2seAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,uuWAIT,yFCED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,q0GAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,03GAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,0nGAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,moHAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,iyGAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,20GAIT,gJCED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,6vWAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,2seAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,qvWAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,kxWAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,2seAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,0uWAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,q1QAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,47QAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,o9QAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,MACPC,KAAK,OACLC,QAAQ,cALV,UAOE,iBACED,KAAK,UACLE,EAAE,uzQAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,MACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,aALV,UAOE,iBACED,KAAK,UACLE,EAAE,ikFAIT,ECED,OAjBA,WACE,OACE,gBACEL,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,YALV,UAO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,OACLG,KAAM,aACNV,KAAM,8LAER,CACEO,IAAK,OACLG,KAAM,sBAIZ,CACEJ,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,+EAER,CACEH,IAAK,OACLP,KAAM,kDACNU,KAAM,SAIZ,CACEJ,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,2CAER,CACEH,IAAK,OACLG,KAAM,cACNV,KAAM,mGAER,CACEO,IAAK,OACLG,KAAM,yBAMhB,CACEH,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,qDAER,CACEH,IAAK,OACLG,KAAM,QACNyD,KAAM,mFAER,CACE5D,IAAK,OACLG,KAAM,oJAER,CACEH,IAAK,OACLG,KAAM,SACNyD,KAAM,kFAER,CACE5D,IAAK,OACLG,KAAM,iFAIZ,CACEH,IAAK,IACLG,KAAM,oOAER,CACEH,IAAK,IACLG,KAAM,yBAKZ,CACExD,MAAO,0CACPqG,GAAI,0CACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,kJAER,CACEH,IAAK,IACLG,KAAM,gNAER,CACEH,IAAK,OACLsD,SAAU,CACR,CACE3G,MAAO,YACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,8DAER,CACEH,IAAK,OACLG,KAAM,6BACNV,KAAM,mDAER,CACEO,IAAK,OACLG,KAAM,gDAIZ,CACExD,MAAO,qBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,0DAER,CACEH,IAAK,OACLG,KAAM,SACNV,KAAM,gEAER,CACEO,IAAK,OACLG,KAAM,oEAIZ,CACExD,MAAO,kBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,6BAER,CACEH,IAAK,OACLG,KAAM,YACNV,KAAM,6BAER,CACEO,IAAK,OACLG,KAAM,2IASpB,CACExD,MAAO,6BACPqG,GAAI,6BACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,uDAER,CACEH,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,6DAER,CACEH,IAAK,OACLG,KAAM,OACNyD,KAAM,gDAER,CACE5D,IAAK,OACLG,KAAM,gJA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R,CACEH,IAAK,IACLG,KAAM,wMAER,CACEH,IAAK,IACLG,KAAM,uMAKZ,CACExD,MAAO,uDACPqG,GAAI,uDACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,uLAER,CACEH,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,qCAER,CACEH,IAAK,OACLG,KAAM,gCACNyD,KAAM,qDAER,CACE5D,IAAK,OACLG,KAAM,yHAOhB,CACExD,MAAO,qDACPqG,GAAI,qDACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,2HAER,CACEH,IAAK,IACLG,KAAM,2PAIZ,CACExD,MAAO,yCACPqG,GAAI,yCACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,gNAER,CACEH,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,wCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,yPAIZ,CACExD,MAAO,uCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,2PAIZ,CACExD,MAAO,qDACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kSAQpB,CACExD,MAAO,0EACPqG,GAAI,0EACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,uSAER,CACEH,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,eACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,oQAIZ,CACExD,MAAO,qCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,yCAER,CACEH,IAAK,OACLG,KAAM,qCACNV,KAAM,8GAER,CACEO,IAAK,OACLG,KAAM,sIAIZ,CACExD,MAAO,kBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,2RAIZ,CACExD,MAAO,6CACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,+FAER,CACEH,IAAK,OACLG,KAAM,6BACNV,KAAM,yEAER,CACEO,IAAK,OACLG,KAAM,wJAIZ,CACExD,MAAO,qBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,2PAIZ,CACExD,MAAO,qBACPoD,SAAU,CACR,CACEC,IAAK,OAC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KAAM,+EAER,CACE5D,IAAK,OACLG,KAAM,6GAER,CACEH,IAAK,OACLG,KAAM,mBACNyD,KAAM,oDAER,CACE5D,IAAK,OACLG,KAAM,4LAIZ,CACEH,IAAK,IACLG,KAAM,oNAER,CACEH,IAAK,IACLG,KAAM,uOAER,CACEH,IAAK,IACLG,KAAM,wRAER,CACEH,IAAK,IACLG,KAAM,yZAER,CACEH,IAAK,IACLG,KAAM,+YAER,CACEH,IAAK,IACLG,KAAM,kKAIZ,CACExD,MAAO,8BACPqG,GAAI,8BACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,8NAER,CACEH,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,oBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,8OAIZ,CACExD,MAAO,mEACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,8OAIZ,CACExD,MAAO,oBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,wUAIZ,CACExD,MAAO,sBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,oSAIZ,CACExD,MAAO,oBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,yQAIZ,CACExD,MAAO,8BACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,0PAQpB,CACExD,MAAO,mDACPqG,GAAI,mDACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,4MAER,CACEH,IAAK,QACLG,KAAM,kCAER,CACEH,IAAK,IACLG,KAAM,oUAER,CACEH,IAAK,IACLG,KAAM,iOAER,CACEH,IAAK,QACLG,KAAM,mCAER,CACEH,IAAK,IACLG,KAAM,oKAER,CACEH,IAAK,IACLG,KAAM,2RAER,CACEH,IAAK,QACLG,KAAM,8BAER,CACEH,IAAK,IACLG,KAAM,0PAER,CACEH,IAAK,IACLG,KAAM,kOAIZ,CACExD,MAAO,6BACPqG,GAAI,6BACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,ySAER,CACEH,IAAK,8BACLsD,SAAU,CACR,CACE3G,MAAO,+BACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAA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D,KAAM,2BAER,CACEH,IAAK,OACLG,KAAM,mFAIZ,CACEH,IAAK,IACLG,KAAM,qHAER,CACEH,IAAK,IACLG,KAAM,0JAIZ,CACExD,MAAO,8BACPqG,GAAI,8BACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,wJAER,CACEH,IAAK,IACLG,KAAM,2MAER,CACEH,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,iCACNyD,KAAM,8DACNtD,eAAe,GAEjB,CACEN,IAAK,OACLG,KAAM,4FAMhB,CACE6C,GAAI,+BACJrG,MAAO,+BACPuG,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,8JAER,CACEH,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,8CACPoD,SAAU,CACR,CACEI,KAAM,uPACNH,IAAK,UAIX,CACErD,MAAO,kBACPoD,SAAU,CACR,CACEI,KAAM,oOACNH,IAAK,UAIX,CACErD,MAAO,aACPoD,SAAU,CACR,CACEI,KAAM,sZACNH,IAAK,cAQnB,CACErD,MAAO,2BACPqG,GAAI,2BACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,8HAER,CACEH,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,6BACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,wSAMhB,CACEH,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,aAER,CACEH,IAAK,OACLG,KAAM,SACNyD,KAAM,0BAER,CACE5D,IAAK,OACLG,KAAM,aACNyD,KAAM,8BAER,CACE5D,IAAK,OACLG,KAAM,eACNyD,KAAM,+CAIZ,CACE5D,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,qCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,yTAMhB,CACEH,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,aAER,CACEH,IAAK,OACLG,KAAM,oBACNyD,KAAM,iCAER,CACE5D,IAAK,OACLG,KAAM,UACNyD,KAAM,2BAER,CACE5D,IAAK,OACLG,KAAM,aACNyD,KAAM,6BAIZ,CACE5D,IAAK,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ACEjH,MAAO,oCACPqG,GAAI,oCACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,yIAER,CACEH,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,WACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,sLAIZ,CACExD,MAAO,UACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kMAIZ,CACExD,MAAO,YACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,6KAIZ,CACExD,MAAO,iBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,oOAQpB,CACExD,MAAO,2DACPqG,GAAI,2DACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,uHAER,CACEH,IAAK,8BACLsD,SAAU,CACR,CACE3G,MAAO,4BACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,0OAIZ,CACExD,MAAO,2CACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,wOAIZ,CACExD,MAAO,6BACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,uOAIZ,CACExD,MAAO,kBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,yQAIZ,CACExD,MAAO,mCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,sPAQpB,CACExD,MAAO,+EACPqG,GAAI,+EACJE,QAAS,CACP,CACElD,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,6DAER,CACEH,IAAK,OACLG,KAAM,0BACNyD,KAAM,uCAER,CACE5D,IAAK,OACLG,KAAM,wFAIZ,CACEH,IAAK,OACLsD,SAAU,CACR,CACEvD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,qDAER,CACEH,IAAK,OACLG,KAAM,+BACNV,KAAM,aACNa,eAAe,GAEjB,CACEN,IAAK,OACLG,KAAM,6GAER,CACEH,IAAK,OACLG,KAAM,cACNV,KAAM,sEAER,CACEO,IAAK,OACLG,KAAM,OAER,CACEH,IAAK,OACLG,KAAM,sBACNV,KAAM,0DAIZ,CACEM,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,oIAIZ,CACEJ,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,2PAIZ,CACEJ,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,mKAIZ,CACEJ,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,uIAMhB,CACEH,IAAK,IACLG,KAAM,2NAER,CACEH,IAAK,eACL2D,aAAc,CACZ,CACE3D,IAAK,OACLG,KAAM,yIAER,CACEH,IAAK,OACLG,KAAM,oDACNyD,KAAM,2DASPmR,GAAkC,CAC7CpY,MAAO,oFACPiX,SAAU,0HACVD,mBAAoB,gHACpBE,KAAM,oBACNpU,KAAM,8BACNsU,WAAY,EACZC,OAAQgB,GACRlB,UAAW,oBACXI,aAAce,GACd/S,OAAQ,CACNxC,KAAM,uBACNlE,YAAa,0KACbuH,SAAU,kCACVN,MAAO2R,GACP1R,aAAc,CACZ,CACEG,OAAQ,EACRpD,KAAM,+CAER,CACEoD,OAAQ,EACRpD,KAAM,wCAIZ4U,QAAS,CACP,CACE1X,MAAO,kCACPnB,YAAa,2QAEf,CACEmB,MAAO,qCACPnB,YAAa,oZAEf,CACEmB,MAAO,4CACPnB,YAAa,+WAEf,CACEmB,MAAO,qDACPnB,YAAa,2SAEf,CACEmB,MAAO,0CACPnB,YAAa,iUAGjB8Y,aAAc,CACZ,CACEpR,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,oFACNiD,QAAS,CACP3B,WAAY,MAGhB,CACEzB,IAAK,IACLG,KAAM,gMAER,CACEH,IAAK,IACLG,KAAM,+KAER,CACEH,IAAK,IACLG,KAAM,6HAIZ,CACExD,MAAO,0DACPqG,GAAI,0DACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,mQAER,CACEH,IAAK,uCACLF,UAAW,aACXwD,SAAU,CACR,CACE3G,MAAO,mBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,sSAIZ,CACExD,MAAO,kBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,+XAIZ,CACExD,MAAO,cACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,iQAIZ,CACExD,MAAO,oBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,6UAIZ,CACExD,MAAO,mBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kPAIZ,CACExD,MAAO,oCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,4eAIZ,CACExD,MAAO,gBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,sTAIZ,CACExD,MAAO,kBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,4MAMhB,CACEH,IAAK,uCACLF,UAAW,gBACXwD,SAAU,CACR,CACE3G,MAAO,mCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,8WAIZ,CACExD,MAAO,kCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,oIAIZ,CACExD,MAAO,iCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kVAIZ,CACExD,MAAO,0BACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,6PAIZ,CACExD,MAAO,kCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,iTAQpB,CACExD,MAAO,0CACPqG,GAAI,0CACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,oMAER,CACEH,IAAK,uCACLF,UAAW,aACXwD,SAAU,CACR,CACE3G,MAAO,wCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kOAIZ,CACExD,MAAO,sCACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,6VAIZ,CACExD,MAAO,cACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,wUAMhB,CACEH,IAAK,uCACLF,UAAW,gBACXwD,SAAU,CACR,CACE3G,MAAO,aACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,iSAIZ,CACExD,MAAO,wBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,gQAIZ,CACExD,MAAO,oBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,+YAQpB,CACExD,MAAO,4CACPqG,GAAI,4CACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,6RAER,CACEH,IAAK,uCACLF,UAAW,aACXwD,SAAU,CACR,CACE3G,MAAO,kBACPoD,SAAU,CACR,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CE5D,IAAK,OACLG,KAAM,UACNyD,KAAM,2BAER,CACE5D,IAAK,OACLG,KAAM,OAER,CACEH,IAAK,OACLG,KAAM,UACNyD,KAAM,6BAIZ,CACE5D,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,gBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kBAER,CACEH,IAAK,OACLG,KAAM,2BACNV,KAAM,2DACNQ,aAAa,GAEf,CACED,IAAK,OACLG,KAAM,oNAIZ,CACExD,MAAO,iBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,iBAER,CACEH,IAAK,OACLG,KAAM,8IACNF,aAAa,GAEf,CACED,IAAK,OACLG,KAAM,+BACNV,KAAM,sHAER,CACEO,IAAK,OACLG,KAAM,mQAER,CACEH,IAAK,OACLG,KAAM,gBACNV,KAAM,iHAIZ,CACE9C,MAAO,iBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,mBAER,CACEH,IAAK,OACLC,aAAa,EACbE,KAAM,2QAIZ,CACExD,MAAO,gBACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kBAER,CACEH,IAAK,OACLC,aAAa,EACbE,KAAM,6LAIZ,CACExD,MAAO,SACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kBAER,CACEH,IAAK,OACLC,aAAa,EACbE,KAAM,sLAIZ,CACExD,MAAO,OACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,kBAER,CACEH,IAAK,OACLC,aAAa,EACbE,KAAM,oQAQpB,CACExD,MAAO,2CACPqG,GAAI,2CACJE,QAAS,CACP,CACElD,IAAK,IACLG,KAAM,sKAER,CACEH,IAAK,uCACLsD,SAAU,CACR,CACE3G,MAAO,aACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,8BAER,CACEH,IAAK,OACLG,KAAM,wCACNV,KAAM,8FAER,CACEO,IAAK,OACLG,KAAM,yJAER,CACEH,IAAK,OACLG,KAAM,uBACNV,KAAM,sFAIZ,CACE9C,MAAO,SACPoD,SAAU,CACR,CACEC,IAAK,OACLG,KAAM,2KAER,CACEH,IAAK,O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wzE,EAAmB,kBAAaD,EAAqBvzE,EAAK5hB,EAAShI,GAAAA,WAAAA,EAAAA,WAAAA,EAAAA,OAGzEo9F,EAAiBC,WAAa,YAAAC,OAC5BJ,EAAqBC,EAAsBvzE,EAAAA,EAAAA,CAAAA,EAAU5hB,EAAAA,CAAAA,EAAYs1F,GAAAA,EAGnEF,EAAiBtC,MAAQ,YAAAA,OACvBoC,EAAqBC,EAAsBvzE,EAAAA,EAAAA,CAAAA,EACtC5hB,EAAAA,CACH8yF,MAAOl6F,MAAMC,UAAUmf,OAAOhY,EAAQ8yF,MAAOA,GAAOj5F,OAAO8wE,WAAAA,EAGxDyqB,CDzBuBF,CAAhBtzE,CAAqC2zE,GAAiB3zE,EAAAA,EDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIUzC,SAAQ,YAClBznB,GAAO89F,GAAc99F,GAAO89F,EAAAA,KELTC,WAAAA,SAAAA,EAOPnN,EAAgB8E,GAAAA,KACrB9E,MAAQA,EAAAA,KACR8E,YAAcA,EAAAA,KACdG,SAAWN,EAAc3E,GAI9BqD,EAAWK,WAAWv2E,KAAK23E,YAAc,uBAG3CsI,aAAA,SACEt0D,EACAusD,EACAzgC,EACA0gC,GAAAA,IAGM51F,EAAM41F,EADIE,GAAQr4E,KAAK6yE,MAAOqF,EAAkBzgC,EAAY0gC,GACvCvgD,KAAK,IAAK,IAC/BztC,EAAK6V,KAAK23E,YAAchsD,EAG9B8rB,EAAWm7B,YAAYzoF,EAAIA,EAAI5H,EAAAA,EAAAA,EAGjC29F,aAAA,SAAav0D,EAAkB8rB,GAC7BA,EAAWs/B,WAAW/2E,KAAK23E,YAAchsD,EAAAA,EAAAA,EAG3Cw0D,aAAA,SACEx0D,EACAusD,EACAzgC,EACA0gC,GAEIxsD,EAAW,GAAGuqD,EAAWK,WAAWv2E,KAAK23E,YAAchsD,GAAAA,KAGtDu0D,aAAav0D,EAAU8rB,GAAAA,KACvBwoC,aAAat0D,EAAUusD,EAAkBzgC,EAAY0gC,EAAAA,CAAAA,CA7CzC6H,ICOAI,WAAAA,SAAAA,IAAAA,IAAAA,EAAAA,KAAAA,KAYnBC,cAAgB,eACR99F,EAAMg0D,EAAK5qB,SAAS/b,WAAAA,IACrBrtB,EAAK,MAAO,OAEX0yF,EAAQR,IAAAA,MAAAA,UACA,CAACQ,GAAAA,UAAmBA,EAAAA,IAAalD,EAAAA,UAAqBuO,+BAC7Cl8F,OAAO8wE,SAASt9B,KAAK,SAEfr1C,EAAAA,UAAAA,EAAAA,KAW/Bg+F,aAAe,kBACThqC,EAAKiqC,OACAvN,EAAiB,GAGnB18B,EAAK8pC,eAAAA,EAAAA,KAGdI,gBAAkB,oBACZlqC,EAAKiqC,OAAAA,OACAvN,EAAiB,OAGpB/wF,IAAAA,EAAAA,CAAAA,GACH6vF,GAAU,GAAAtuE,EpChDc,uBACLuxE,QAAAA,EoCiDpBjmE,wBAAyB,CACvB+e,OAAQyoB,EAAK5qB,SAAS/b,YAAAA,GAIpBqlE,EAAQR,IAAAA,OACVQ,IACD/yF,EAAY+yF,MAAQA,GAIhB,CAAC7gC,EAAAA,cAAAA,QAAAA,EAAAA,CAAAA,EAAWlyD,EAAAA,CAAOiF,IAAI,mBAsDhCu5F,KAAO,WACLnqC,EAAKiqC,QAAAA,CAAS,OAzGT70D,SAAW,IAAIuqD,EAAW,CAAEF,UAAU,SACtCwK,QAAAA,CAAS,qBAchBG,cAAA,SAAc3xE,GAAAA,OACRhP,KAAKwgF,OACAvN,EAAiB,GAGnB7+B,EAAAA,cAACwmC,GAAAA,CAAkB7zB,MAAO/mD,KAAK2rB,UAAW3c,EAAAA,EAAAA,EAkCnD4xE,yBAAA,SAAyB/sE,GAAAA,OAEdo/D,EAAiB,IAhETmN,GCaQvN,IC2Ba,2ICrD1C,IAAIgO,EAAU,gBAEd,SAASC,IACP,aAGA9+E,EAAO1E,QAAUwjF,EAAsB,WACrC,OAAOxjF,CACT,EAAG0E,EAAO1E,QAAQmnD,YAAa,EAAMziD,EAAO1E,QAAiB,QAAI0E,EAAO1E,QACxE,IAAIA,EAAU,CAAC,EACXyjF,EAAKjxF,OAAO1M,UACZ49F,EAASD,EAAGjhF,eACZmhF,EAAU,mBAAqBr+E,OAASA,OAAS,CAAC,EAClDs+E,EAAiBD,EAAQ31E,UAAY,aACrC61E,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQK,aAAe,gBAE/C,SAASC,EAAO9jF,EAAKtW,EAAKuX,GACxB,OAAO5O,OAAO4R,eAAejE,EAAKtW,EAAK,CACrCuX,MAAOA,EACPuO,YAAY,EACZD,cAAc,EACd03C,UAAU,IACRjnD,EAAItW,EACV,CAEA,IACEo6F,EAAO,CAAC,EAAG,GAKb,CAJE,MAAO16E,GACP06E,EAAS,SAAgB9jF,EAAKtW,EAAKuX,GACjC,OAAOjB,EAAItW,GAAOuX,CACpB,CACF,CAEA,SAAS8iF,EAAKC,EAASC,EAASC,EAAMC,GACpC,IAAIC,EAAiBH,GAAWA,EAAQt+F,qBAAqB0+F,EAAYJ,EAAUI,EAC/EC,EAAYjyF,OAAOysC,OAAOslD,EAAez+F,WACzC0wC,EAAU,IAAI8iB,EAAQgrC,GAAe,IACzC,OAAOG,EAAUC,QAAU,SAAUP,EAASE,EAAM7tD,GAClD,IAAI+C,EAAQ,iBACZ,OAAO,SAAUorD,EAAQ9Q,GACvB,GAAI,cAAgBt6C,EAAO,MAAM,IAAI/wB,MAAM,gCAE3C,GAAI,cAAgB+wB,EAAO,CACzB,GAAI,UAAYorD,EAAQ,MAAM9Q,EAC9B,OAAO+Q,GACT,CAEA,IAAKpuD,EAAQmuD,OAASA,EAAQnuD,EAAQq9C,IAAMA,IAAO,CACjD,IAAIgR,EAAWruD,EAAQquD,SAEvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUruD,GAEnD,GAAIsuD,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,CACT,CACF,CAEA,GAAI,SAAWtuD,EAAQmuD,OAAQnuD,EAAQyuD,KAAOzuD,EAAQ0uD,MAAQ1uD,EAAQq9C,SAAS,GAAI,UAAYr9C,EAAQmuD,OAAQ,CAC7G,GAAI,mBAAqBprD,EAAO,MAAMA,EAAQ,YAAa/C,EAAQq9C,IACnEr9C,EAAQ2uD,kBAAkB3uD,EAAQq9C,IACpC,KAAO,WAAar9C,EAAQmuD,QAAUnuD,EAAQ4uD,OAAO,SAAU5uD,EAAQq9C,KACvEt6C,EAAQ,YACR,IAAI8rD,EAASC,EAASnB,EAASE,EAAM7tD,GAErC,GAAI,WAAa6uD,EAAOz+F,KAAM,CAC5B,GAAI2yC,EAAQ/C,EAAQuE,KAAO,YAAc,iBAAkBsqD,EAAOxR,MAAQmR,EAAkB,SAC5F,MAAO,CACL5jF,MAAOikF,EAAOxR,IACd94C,KAAMvE,EAAQuE,KAElB,CAEA,UAAYsqD,EAAOz+F,OAAS2yC,EAAQ,YAAa/C,EAAQmuD,OAAS,QAASnuD,EAAQq9C,IAAMwR,EAAOxR,IAClG,CACF,CACF,CAxC2B,CAwCzBsQ,EAASE,EAAM7tD,GAAUiuD,CAC7B,CAEA,SAASa,EAASx4B,EAAI3sD,EAAK0zE,GACzB,IACE,MAAO,CACLjtF,KAAM,SACNitF,IAAK/mB,EAAG9mE,KAAKma,EAAK0zE,GAOtB,CALE,MAAOtqE,GACP,MAAO,CACL3iB,KAAM,QACNitF,IAAKtqE,EAET,CACF,CAEAvJ,EAAQkkF,KAAOA,EACf,IAAIc,EAAmB,CAAC,EAExB,SAASR,IAAa,CAEtB,SAASe,IAAqB,CAE9B,SAASC,IAA8B,CAEvC,IAAIC,EAAoB,CAAC,EACzBxB,EAAOwB,EAAmB7B,GAAgB,WACxC,OAAOlhF,IACT,IACA,IAAIgjF,EAAWlzF,OAAOgS,eAClBmhF,EAA0BD,GAAYA,EAASA,EAASjzF,EAAO,MACnEkzF,GAA2BA,IAA4BlC,GAAMC,EAAO19F,KAAK2/F,EAAyB/B,KAAoB6B,EAAoBE,GAC1I,IAAIC,EAAKJ,EAA2B1/F,UAAY0+F,EAAU1+F,UAAY0M,OAAOysC,OAAOwmD,GAEpF,SAASI,EAAsB//F,GAC7B,CAAC,OAAQ,QAAS,UAAUsmB,SAAQ,SAAUu4E,GAC5CV,EAAOn+F,EAAW6+F,GAAQ,SAAU9Q,GAClC,OAAOnxE,KAAKgiF,QAAQC,EAAQ9Q,EAC9B,GACF,GACF,CAEA,SAASiS,EAAcrB,EAAWsB,GAChC,SAASC,EAAOrB,EAAQ9Q,EAAK9iD,EAAS+9C,GACpC,IAAIuW,EAASC,EAASb,EAAUE,GAASF,EAAW5Q,GAEpD,GAAI,UAAYwR,EAAOz+F,KAAM,CAC3B,IAAI4gE,EAAS69B,EAAOxR,IAChBzyE,EAAQomD,EAAOpmD,MACnB,OAAOA,GAAS,UAAYmiF,EAAQniF,IAAUsiF,EAAO19F,KAAKob,EAAO,WAAa2kF,EAAYh1D,QAAQ3vB,EAAM6kF,SAASj1D,MAAK,SAAU5vB,GAC9H4kF,EAAO,OAAQ5kF,EAAO2vB,EAAS+9C,EACjC,IAAG,SAAUvlE,GACXy8E,EAAO,QAASz8E,EAAKwnB,EAAS+9C,EAChC,IAAKiX,EAAYh1D,QAAQ3vB,GAAO4vB,MAAK,SAAUk1D,GAC7C1+B,EAAOpmD,MAAQ8kF,EAAWn1D,EAAQy2B,EACpC,IAAG,SAAUj/C,GACX,OAAOy9E,EAAO,QAASz9E,EAAOwoB,EAAS+9C,EACzC,GACF,CAEAA,EAAOuW,EAAOxR,IAChB,CAEA,IAAIsS,EAEJzjF,KAAKgiF,QAAU,SAAUC,EAAQ9Q,GAC/B,SAASuS,IACP,OAAO,IAAIL,GAAY,SAAUh1D,EAAS+9C,GACxCkX,EAAOrB,EAAQ9Q,EAAK9iD,EAAS+9C,EAC/B,GACF,CAEA,OAAOqX,EAAkBA,EAAkBA,EAAgBn1D,KAAKo1D,EAA4BA,GAA8BA,GAC5H,CACF,CAEA,SAASrB,EAAoBF,EAAUruD,GACrC,IAAImuD,EAASE,EAAS72E,SAASwoB,EAAQmuD,QAEvC,QAAI9jF,IAAc8jF,EAAQ,CACxB,GAAInuD,EAAQquD,SAAW,KAAM,UAAYruD,EAAQmuD,OAAQ,CACvD,GAAIE,EAAS72E,SAAiB,SAAMwoB,EAAQmuD,OAAS,SAAUnuD,EAAQq9C,SAAMhzE,EAAWkkF,EAAoBF,EAAUruD,GAAU,UAAYA,EAAQmuD,QAAS,OAAOK,EACpKxuD,EAAQmuD,OAAS,QAASnuD,EAAQq9C,IAAM,IAAI3zE,UAAU,iDACxD,CAEA,OAAO8kF,CACT,CAEA,IAAIK,EAASC,EAASX,EAAQE,EAAS72E,SAAUwoB,EAAQq9C,KACzD,GAAI,UAAYwR,EAAOz+F,KAAM,OAAO4vC,EAAQmuD,OAAS,QAASnuD,EAAQq9C,IAAMwR,EAAOxR,IAAKr9C,EAAQquD,SAAW,KAAMG,EACjH,IAAI93B,EAAOm4B,EAAOxR,IAClB,OAAO3mB,EAAOA,EAAKnyB,MAAQvE,EAAQquD,EAASwB,YAAcn5B,EAAK9rD,MAAOo1B,EAAQE,KAAOmuD,EAASyB,QAAS,WAAa9vD,EAAQmuD,SAAWnuD,EAAQmuD,OAAS,OAAQnuD,EAAQq9C,SAAMhzE,GAAY21B,EAAQquD,SAAW,KAAMG,GAAoB93B,GAAQ12B,EAAQmuD,OAAS,QAASnuD,EAAQq9C,IAAM,IAAI3zE,UAAU,oCAAqCs2B,EAAQquD,SAAW,KAAMG,EACrW,CAEA,SAASuB,EAAaC,GACpB,IAAI/9F,EAAQ,CACVg+F,OAAQD,EAAK,IAEf,KAAKA,IAAS/9F,EAAMi+F,SAAWF,EAAK,IAAK,KAAKA,IAAS/9F,EAAMk+F,WAAaH,EAAK,GAAI/9F,EAAMm+F,SAAWJ,EAAK,IAAK9jF,KAAKmkF,WAAWhvE,KAAKpvB,EACrI,CAEA,SAASq+F,EAAcr+F,GACrB,IAAI48F,EAAS58F,EAAMs+F,YAAc,CAAC,EAClC1B,EAAOz+F,KAAO,gBAAiBy+F,EAAOxR,IAAKprF,EAAMs+F,WAAa1B,CAChE,CAEA,SAAS/rC,EAAQgrC,GACf5hF,KAAKmkF,WAAa,CAAC,CACjBJ,OAAQ,SACNnC,EAAYl4E,QAAQm6E,EAAc7jF,MAAOA,KAAKskF,OAAM,EAC1D,CAEA,SAASv0F,EAAOw0F,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASrD,GAC9B,GAAIsD,EAAgB,OAAOA,EAAelhG,KAAKihG,GAC/C,GAAI,mBAAqBA,EAASvwD,KAAM,OAAOuwD,EAE/C,IAAK3lF,MAAM2lF,EAASjiG,QAAS,CAC3B,IAAID,GAAK,EACL2xC,EAAO,SAASA,IAClB,OAAS3xC,EAAIkiG,EAASjiG,QACpB,GAAI0+F,EAAO19F,KAAKihG,EAAUliG,GAAI,OAAO2xC,EAAKt1B,MAAQ6lF,EAASliG,GAAI2xC,EAAKqE,MAAO,EAAIrE,EAGjF,OAAOA,EAAKt1B,WAAQP,EAAW61B,EAAKqE,MAAO,EAAIrE,CACjD,EAEA,OAAOA,EAAKA,KAAOA,CACrB,CACF,CAEA,MAAO,CACLA,KAAMkuD,EAEV,CAEA,SAASA,IACP,MAAO,CACLxjF,WAAOP,EACPk6B,MAAM,EAEV,CAEA,OAAOwqD,EAAkBz/F,UAAY0/F,EAA4BvB,EAAO2B,EAAI,cAAeJ,GAA6BvB,EAAOuB,EAA4B,cAAeD,GAAoBA,EAAkBriF,YAAc+gF,EAAOuB,EAA4BzB,EAAmB,qBAAsB/jF,EAAQmnF,oBAAsB,SAAUC,GAChV,IAAIC,EAAO,mBAAqBD,GAAUA,EAAO53E,YACjD,QAAS63E,IAASA,IAAS9B,GAAqB,uBAAyB8B,EAAKnkF,aAAemkF,EAAK99F,MACpG,EAAGyW,EAAQsnF,KAAO,SAAUF,GAC1B,OAAO50F,OAAO+0F,eAAiB/0F,OAAO+0F,eAAeH,EAAQ5B,IAA+B4B,EAAOvuB,UAAY2sB,EAA4BvB,EAAOmD,EAAQrD,EAAmB,sBAAuBqD,EAAOthG,UAAY0M,OAAOysC,OAAO2mD,GAAKwB,CAC5O,EAAGpnF,EAAQwnF,MAAQ,SAAU3T,GAC3B,MAAO,CACLoS,QAASpS,EAEb,EAAGgS,EAAsBC,EAAchgG,WAAYm+F,EAAO6B,EAAchgG,UAAW+9F,GAAqB,WACtG,OAAOnhF,IACT,IAAI1C,EAAQ8lF,cAAgBA,EAAe9lF,EAAQynF,MAAQ,SAAUtD,EAASC,EAASC,EAAMC,EAAayB,QACxG,IAAWA,IAAgBA,EAAcn1D,SACzC,IAAI82D,EAAO,IAAI5B,EAAc5B,EAAKC,EAASC,EAASC,EAAMC,GAAcyB,GACxE,OAAO/lF,EAAQmnF,oBAAoB/C,GAAWsD,EAAOA,EAAKhxD,OAAO1F,MAAK,SAAUw2B,GAC9E,OAAOA,EAAOzsB,KAAOysB,EAAOpmD,MAAQsmF,EAAKhxD,MAC3C,GACF,EAAGmvD,EAAsBD,GAAK3B,EAAO2B,EAAI7B,EAAmB,aAAcE,EAAO2B,EAAIhC,GAAgB,WACnG,OAAOlhF,IACT,IAAIuhF,EAAO2B,EAAI,YAAY,WACzB,MAAO,oBACT,IAAI5lF,EAAQgF,KAAO,SAAUgF,GAC3B,IAAIhF,EAAO,GAEX,IAAK,IAAInb,KAAOmgB,EACdhF,EAAK6S,KAAKhuB,GAGZ,OAAOmb,EAAKsvC,UAAW,SAAS5d,IAC9B,KAAO1xB,EAAKhgB,QAAS,CACnB,IAAI6E,EAAMmb,EAAKm/C,MACf,GAAIt6D,KAAOmgB,EAAQ,OAAO0sB,EAAKt1B,MAAQvX,EAAK6sC,EAAKqE,MAAO,EAAIrE,CAC9D,CAEA,OAAOA,EAAKqE,MAAO,EAAIrE,CACzB,CACF,EAAG12B,EAAQvN,OAASA,EAAQ6mD,EAAQxzD,UAAY,CAC9C0pB,YAAa8pC,EACb0tC,MAAO,SAAeW,GACpB,GAAIjlF,KAAK+oD,KAAO,EAAG/oD,KAAKg0B,KAAO,EAAGh0B,KAAKuiF,KAAOviF,KAAKwiF,WAAQrkF,EAAW6B,KAAKq4B,MAAO,EAAIr4B,KAAKmiF,SAAW,KAAMniF,KAAKiiF,OAAS,OAAQjiF,KAAKmxE,SAAMhzE,EAAW6B,KAAKmkF,WAAWz6E,QAAQ06E,IAAiBa,EAAe,IAAK,IAAIp+F,KAAQmZ,KAC/N,MAAQnZ,EAAKusB,OAAO,IAAM4tE,EAAO19F,KAAK0c,KAAMnZ,KAAU+X,OAAO/X,EAAKxD,MAAM,MAAQ2c,KAAKnZ,QAAQsX,EAEjG,EACA+mF,KAAM,WACJllF,KAAKq4B,MAAO,EACZ,IAAI8sD,EAAanlF,KAAKmkF,WAAW,GAAGE,WACpC,GAAI,UAAYc,EAAWjhG,KAAM,MAAMihG,EAAWhU,IAClD,OAAOnxE,KAAKolF,IACd,EACA3C,kBAAmB,SAA2B4C,GAC5C,GAAIrlF,KAAKq4B,KAAM,MAAMgtD,EACrB,IAAIvxD,EAAU9zB,KAEd,SAASslF,EAAOC,EAAKC,GACnB,OAAO7C,EAAOz+F,KAAO,QAASy+F,EAAOxR,IAAMkU,EAAWvxD,EAAQE,KAAOuxD,EAAKC,IAAW1xD,EAAQmuD,OAAS,OAAQnuD,EAAQq9C,SAAMhzE,KAAcqnF,CAC5I,CAEA,IAAK,IAAInjG,EAAI2d,KAAKmkF,WAAW7hG,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI0D,EAAQia,KAAKmkF,WAAW9hG,GACxBsgG,EAAS58F,EAAMs+F,WACnB,GAAI,SAAWt+F,EAAMg+F,OAAQ,OAAOuB,EAAO,OAE3C,GAAIv/F,EAAMg+F,QAAU/jF,KAAK+oD,KAAM,CAC7B,IAAI08B,EAAWzE,EAAO19F,KAAKyC,EAAO,YAC9B2/F,EAAa1E,EAAO19F,KAAKyC,EAAO,cAEpC,GAAI0/F,GAAYC,EAAY,CAC1B,GAAI1lF,KAAK+oD,KAAOhjE,EAAMi+F,SAAU,OAAOsB,EAAOv/F,EAAMi+F,UAAU,GAC9D,GAAIhkF,KAAK+oD,KAAOhjE,EAAMk+F,WAAY,OAAOqB,EAAOv/F,EAAMk+F,WACxD,MAAO,GAAIwB,GACT,GAAIzlF,KAAK+oD,KAAOhjE,EAAMi+F,SAAU,OAAOsB,EAAOv/F,EAAMi+F,UAAU,OACzD,CACL,IAAK0B,EAAY,MAAM,IAAI5/E,MAAM,0CACjC,GAAI9F,KAAK+oD,KAAOhjE,EAAMk+F,WAAY,OAAOqB,EAAOv/F,EAAMk+F,WACxD,CACF,CACF,CACF,EACAvB,OAAQ,SAAgBx+F,EAAMitF,GAC5B,IAAK,IAAI9uF,EAAI2d,KAAKmkF,WAAW7hG,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI0D,EAAQia,KAAKmkF,WAAW9hG,GAE5B,GAAI0D,EAAMg+F,QAAU/jF,KAAK+oD,MAAQi4B,EAAO19F,KAAKyC,EAAO,eAAiBia,KAAK+oD,KAAOhjE,EAAMk+F,WAAY,CACjG,IAAI0B,EAAe5/F,EACnB,KACF,CACF,CAEA4/F,IAAiB,UAAYzhG,GAAQ,aAAeA,IAASyhG,EAAa5B,QAAU5S,GAAOA,GAAOwU,EAAa1B,aAAe0B,EAAe,MAC7I,IAAIhD,EAASgD,EAAeA,EAAatB,WAAa,CAAC,EACvD,OAAO1B,EAAOz+F,KAAOA,EAAMy+F,EAAOxR,IAAMA,EAAKwU,GAAgB3lF,KAAKiiF,OAAS,OAAQjiF,KAAKg0B,KAAO2xD,EAAa1B,WAAY3B,GAAoBtiF,KAAK4lF,SAASjD,EAC5J,EACAiD,SAAU,SAAkBjD,EAAQuB,GAClC,GAAI,UAAYvB,EAAOz+F,KAAM,MAAMy+F,EAAOxR,IAC1C,MAAO,UAAYwR,EAAOz+F,MAAQ,aAAey+F,EAAOz+F,KAAO8b,KAAKg0B,KAAO2uD,EAAOxR,IAAM,WAAawR,EAAOz+F,MAAQ8b,KAAKolF,KAAOplF,KAAKmxE,IAAMwR,EAAOxR,IAAKnxE,KAAKiiF,OAAS,SAAUjiF,KAAKg0B,KAAO,OAAS,WAAa2uD,EAAOz+F,MAAQggG,IAAalkF,KAAKg0B,KAAOkwD,GAAW5B,CACtQ,EACAuD,OAAQ,SAAgB5B,GACtB,IAAK,IAAI5hG,EAAI2d,KAAKmkF,WAAW7hG,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI0D,EAAQia,KAAKmkF,WAAW9hG,GAC5B,GAAI0D,EAAMk+F,aAAeA,EAAY,OAAOjkF,KAAK4lF,SAAS7/F,EAAMs+F,WAAYt+F,EAAMm+F,UAAWE,EAAcr+F,GAAQu8F,CACrH,CACF,EACA,MAAS,SAAgByB,GACvB,IAAK,IAAI1hG,EAAI2d,KAAKmkF,WAAW7hG,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI0D,EAAQia,KAAKmkF,WAAW9hG,GAE5B,GAAI0D,EAAMg+F,SAAWA,EAAQ,CAC3B,IAAIpB,EAAS58F,EAAMs+F,WAEnB,GAAI,UAAY1B,EAAOz+F,KAAM,CAC3B,IAAI4hG,EAASnD,EAAOxR,IACpBiT,EAAcr+F,EAChB,CAEA,OAAO+/F,CACT,CACF,CAEA,MAAM,IAAIhgF,MAAM,wBAClB,EACAigF,cAAe,SAAuBxB,EAAUZ,EAAYC,GAC1D,OAAO5jF,KAAKmiF,SAAW,CACrB72E,SAAUvb,EAAOw0F,GACjBZ,WAAYA,EACZC,QAASA,GACR,SAAW5jF,KAAKiiF,SAAWjiF,KAAKmxE,SAAMhzE,GAAYmkF,CACvD,GACChlF,CACL,CAEA0E,EAAO1E,QAAUwjF,EAAqB9+E,EAAO1E,QAAQmnD,YAAa,EAAMziD,EAAO1E,QAAiB,QAAI0E,EAAO1E,0BCjW3G,SAASujF,EAAQpjF,GAGf,OAAQuE,EAAO1E,QAAUujF,EAAU,mBAAqBj+E,QAAU,iBAAmBA,OAAO0I,SAAW,SAAU7N,GAC/G,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBmF,QAAUnF,EAAIqP,cAAgBlK,QAAUnF,IAAQmF,OAAOxf,UAAY,gBAAkBqa,CAC1H,EAAGuE,EAAO1E,QAAQmnD,YAAa,EAAMziD,EAAO1E,QAAiB,QAAI0E,EAAO1E,QAAUujF,EAAQpjF,EAC5F,CAEAuE,EAAO1E,QAAUujF,EAAS7+E,EAAO1E,QAAQmnD,YAAa,EAAMziD,EAAO1E,QAAiB,QAAI0E,EAAO1E,0CCVhF,SAAS0oF,EAAkBr6B,EAAK6lB,IAClC,MAAPA,GAAeA,EAAM7lB,EAAIrpE,UAAQkvF,EAAM7lB,EAAIrpE,QAE/C,IAAK,IAAID,EAAI,EAAG4jG,EAAO,IAAI9iG,MAAMquF,GAAMnvF,EAAImvF,EAAKnvF,IAC9C4jG,EAAK5jG,GAAKspE,EAAItpE,GAGhB,OAAO4jG,CACT,oECRe,SAASC,EAAuBvE,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIwE,eAAe,6DAG3B,OAAOxE,CACT,oECNe,SAASyE,EAAgBz6D,EAAU06D,GAChD,KAAM16D,aAAoB06D,GACxB,MAAM,IAAI7oF,UAAU,oCAExB,oECJA,SAAS8oF,EAAkBtgG,EAAQ9D,GACjC,IAAK,IAAIG,EAAI,EAAGA,EAAIH,EAAMI,OAAQD,IAAK,CACrC,IAAIqgB,EAAaxgB,EAAMG,GACvBqgB,EAAWuK,WAAavK,EAAWuK,aAAc,EACjDvK,EAAWsK,cAAe,EACtB,UAAWtK,IAAYA,EAAWgiD,UAAW,GACjD50D,OAAO4R,eAAe1b,EAAQ0c,EAAWvb,IAAKub,EAChD,CACF,CAEe,SAAS6jF,EAAaF,EAAaG,EAAYC,GAM5D,OALID,GAAYF,EAAkBD,EAAYjjG,UAAWojG,GACrDC,GAAaH,EAAkBD,EAAaI,GAChD32F,OAAO4R,eAAe2kF,EAAa,YAAa,CAC9C3hC,UAAU,IAEL2hC,CACT,sICde,SAASK,EAAaC,GACnC,IAAIC,GAA4B,SAChC,OAAO,WACL,IACI9hC,EADA+hC,GAAQ,OAAeF,GAG3B,GAAIC,EAA2B,CAC7B,IAAIE,GAAY,OAAe9mF,MAAM8M,YACrCg4C,EAAS94C,QAAQC,UAAU46E,EAAOjnF,UAAWknF,EAC/C,MACEhiC,EAAS+hC,EAAM9mF,MAAMC,KAAMJ,WAG7B,OAAO,OAA0BI,KAAM8kD,EACzC,CACF,qCClBe,SAASiiC,EAAgBtpF,EAAKtW,EAAKuX,GAYhD,OAXIvX,KAAOsW,EACT3N,OAAO4R,eAAejE,EAAKtW,EAAK,CAC9BuX,MAAOA,EACPuO,YAAY,EACZD,cAAc,EACd03C,UAAU,IAGZjnD,EAAItW,GAAOuX,EAGNjB,CACT,oECbe,SAASupF,EAAgB1iC,GAItC,OAHA0iC,EAAkBl3F,OAAO+0F,eAAiB/0F,OAAOgS,eAAenC,OAAS,SAAyB2kD,GAChG,OAAOA,EAAE6R,WAAarmE,OAAOgS,eAAewiD,EAC9C,EACO0iC,EAAgB1iC,EACzB,iHCJe,SAAS2iC,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI3pF,UAAU,sDAGtB0pF,EAAS9jG,UAAY0M,OAAOysC,OAAO4qD,GAAcA,EAAW/jG,UAAW,CACrE0pB,YAAa,CACXpO,MAAOwoF,EACPxiC,UAAU,EACV13C,cAAc,KAGlBld,OAAO4R,eAAewlF,EAAU,YAAa,CAC3CxiC,UAAU,IAERyiC,IAAY,OAAeD,EAAUC,EAC3C,qCCjBe,SAASC,IACtB,GAAuB,qBAAZp7E,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUo7E,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADApyB,QAAQ9xE,UAAUusB,QAAQrsB,KAAK0oB,QAAQC,UAAUipD,QAAS,IAAI,WAAa,MACpE,CAGT,CAFE,MAAOz1D,GACP,OAAO,CACT,CACF,kHCTA,SAAS8nF,EAAQjgF,EAAQkgF,GACvB,IAAIllF,EAAOxS,OAAOwS,KAAKgF,GAEvB,GAAIxX,OAAO8R,sBAAuB,CAChC,IAAI6lF,EAAU33F,OAAO8R,sBAAsB0F,GAC3CkgF,IAAmBC,EAAUA,EAAQrjG,QAAO,SAAUsjG,GACpD,OAAO53F,OAAO+R,yBAAyByF,EAAQogF,GAAKz6E,UACtD,KAAK3K,EAAK6S,KAAKpV,MAAMuC,EAAMmlF,EAC7B,CAEA,OAAOnlF,CACT,CAEe,SAASqlF,EAAe3hG,GACrC,IAAK,IAAI3D,EAAI,EAAGA,EAAIud,UAAUtd,OAAQD,IAAK,CACzC,IAAIwd,EAAS,MAAQD,UAAUvd,GAAKud,UAAUvd,GAAK,CAAC,EACpDA,EAAI,EAAIklG,EAAQz3F,OAAO+P,IAAS,GAAI6J,SAAQ,SAAUviB,IACpD,OAAenB,EAAQmB,EAAK0Y,EAAO1Y,GACrC,IAAK2I,OAAO83F,0BAA4B93F,OAAO+3F,iBAAiB7hG,EAAQ8J,OAAO83F,0BAA0B/nF,IAAW0nF,EAAQz3F,OAAO+P,IAAS6J,SAAQ,SAAUviB,GAC5J2I,OAAO4R,eAAe1b,EAAQmB,EAAK2I,OAAO+R,yBAAyBhC,EAAQ1Y,GAC7E,GACF,CAEA,OAAOnB,CACT,6FCxBe,SAAS8hG,EAA2BnG,EAAMr+F,GACvD,GAAIA,IAA2B,YAAlB,OAAQA,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIka,UAAU,4DAGtB,OAAO,OAAsBmkF,EAC/B,qCCVe,SAASoG,EAAgBzjC,EAAGhhD,GAKzC,OAJAykF,EAAkBj4F,OAAO+0F,eAAiB/0F,OAAO+0F,eAAellF,OAAS,SAAyB2kD,EAAGhhD,GAEnG,OADAghD,EAAE6R,UAAY7yD,EACPghD,CACT,EACOyjC,EAAgBzjC,EAAGhhD,EAC5B,gHCFe,SAAS0kF,EAAer8B,EAAKtpE,GAC1C,OCLa,SAAyBspE,GACtC,GAAIxoE,MAAMsrB,QAAQk9C,GAAM,OAAOA,CACjC,CDGS,CAAeA,IELT,SAA+BA,EAAKtpE,GACjD,IAAI4lG,EAAY,MAAPt8B,EAAc,KAAyB,qBAAX/oD,QAA0B+oD,EAAI/oD,OAAO0I,WAAaqgD,EAAI,cAE3F,GAAU,MAANs8B,EAAJ,CACA,IAIIC,EAAIxiC,EAJJyiC,EAAO,GACPC,GAAK,EACL5iC,GAAK,EAIT,IACE,IAAKyiC,EAAKA,EAAG3kG,KAAKqoE,KAAQy8B,GAAMF,EAAKD,EAAGj0D,QAAQqE,QAC9C8vD,EAAKhzE,KAAK+yE,EAAGxpF,QAETrc,GAAK8lG,EAAK7lG,SAAWD,GAH4B+lG,GAAK,GAc9D,CATE,MAAOvhF,GACP2+C,GAAK,EACLE,EAAK7+C,CACP,CAAE,QACA,IACOuhF,GAAsB,MAAhBH,EAAW,QAAWA,EAAW,QAG9C,CAFE,QACA,GAAIziC,EAAI,MAAME,CAChB,CACF,CAEA,OAAOyiC,CAxBe,CAyBxB,CFvBgC,CAAqBx8B,EAAKtpE,KAAM,EAAAgmG,EAAA,GAA2B18B,EAAKtpE,IGLjF,WACb,MAAM,IAAImb,UAAU,4IACtB,CHGsG,EACtG,oCINe,SAAS8qF,EAAuBhX,EAASiX,GAKtD,OAJKA,IACHA,EAAMjX,EAAQjuF,MAAM,IAGfyM,OAAO4hF,OAAO5hF,OAAO+3F,iBAAiBvW,EAAS,CACpDiX,IAAK,CACH7pF,MAAO5O,OAAO4hF,OAAO6W,MAG3B,8HCNe,SAASC,EAAmB78B,GACzC,OCJa,SAA4BA,GACzC,GAAIxoE,MAAMsrB,QAAQk9C,GAAM,OAAO,EAAA88B,EAAA,GAAiB98B,EAClD,CDES,CAAkBA,IELZ,SAA0Bq5B,GACvC,GAAsB,qBAAXpiF,QAAmD,MAAzBoiF,EAAKpiF,OAAO0I,WAA2C,MAAtB05E,EAAK,cAAuB,OAAO7hG,MAAMg+D,KAAK6jC,EACtH,CFGmC,CAAgBr5B,KAAQ,EAAA08B,EAAA,GAA2B18B,IGLvE,WACb,MAAM,IAAInuD,UAAU,uIACtB,CHG8F,EAC9F,qCINe,SAASqjF,EAAQpjF,GAG9B,OAAOojF,EAAU,mBAAqBj+E,QAAU,iBAAmBA,OAAO0I,SAAW,SAAU7N,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBmF,QAAUnF,EAAIqP,cAAgBlK,QAAUnF,IAAQmF,OAAOxf,UAAY,gBAAkBqa,CAC1H,EAAGojF,EAAQpjF,EACb,gHCPe,SAASirF,EAA4BpkC,EAAGqkC,GACrD,GAAKrkC,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,OAAiBA,EAAGqkC,GACtD,IAAItlF,EAAIvT,OAAO1M,UAAUwsB,SAAStsB,KAAKghE,GAAGjhE,MAAM,GAAI,GAEpD,MADU,WAANggB,GAAkBihD,EAAEx3C,cAAazJ,EAAIihD,EAAEx3C,YAAYjmB,MAC7C,QAANwc,GAAqB,QAANA,EAAoBlgB,MAAMg+D,KAAKmD,GACxC,cAANjhD,GAAqB,2CAA2C5E,KAAK4E,IAAW,OAAiBihD,EAAGqkC,QAAxG,CALc,CAMhB,2UCNA,IAAMC,EAAc,IAAI9tE,IASlB+tE,EAA+C,IAAI1pD,QACrD2pD,EAAS,EAETC,OAAwC5qF,EA6BtC,SAAU6qF,EAAYz+F,GACnBuF,OAAAA,OAAOwS,KAAK/X,GAChB8zD,OACAj6D,QAAQ+C,SAAAA,GAAD,YAA0BgX,IAAjB5T,EAAQpD,EAAjB,IACP1D,KAAK0D,SAAAA,GACJ,MAAO,GAAP,OAAUA,EAAV,YACU,SAARA,GAnBW8hG,EAmBgB1+F,EAAQ0+F,OAjBrCJ,EAAQ98D,IAAIk9D,KAChBH,GAAU,EACVD,EAAQ98E,IAAIk9E,EAAMH,EAAOl5E,aAFKi5E,EAAQ97E,IAAIk8E,IADxB,IAkB+B1+F,EAAQpD,IAnB3D,IAAmB8hG,CAcV,IAQJr5E,UACJ,CAED,SAASs5E,EAAe3+F,GAEtB,IAAIJ,EAAK6+F,EAAYz+F,GACjBohC,EAAWi9D,EAAY77E,IAAI5iB,GAE3B,IAACwhC,EAAU,CAEb,IACIw9D,EADEC,EAAW,IAAItuE,IAGfuuE,EAAW,IAAIC,sBAAsB1tC,SAAAA,GACzCA,EAAQlyC,SAAS3jB,SAAAA,GAAS,MAGlBD,EACJC,EAAMwjG,gBACNJ,EAAWzxC,MAAM/xD,SAAAA,GAAD,OAAeI,EAAMyjG,mBAAqB7jG,CAA1C,IAGd4E,EAAQk/F,iBAA8C,qBAApB1jG,EAAMkrE,YAG1ClrE,EAAMkrE,UAAYnrE,GAGQ4jB,OAA5B0/E,EAAAA,EAASr8E,IAAIhnB,EAAMC,UAAS0jB,EAAAA,SAAS0rB,SAAAA,GACnCA,EAAStvC,EAAQC,EADnB,GAdF,GADe,GAmBdwE,GAGH4+F,EACEE,EAASF,aACRhmG,MAAMsrB,QAAQlkB,EAAQ5E,WACnB4E,EAAQ5E,UACR,CAAC4E,EAAQ5E,WAAa,IAE5BgmC,EAAW,CACTxhC,GAAAA,EACAk/F,SAAAA,EACAD,SAAAA,GAGFR,EAAY78E,IAAI5hB,EAAIwhC,EACrB,CAED,OAAOA,CACR,CASe,SAAA+9D,EACd/hF,EACAytB,GAEiC,IADjC7qC,EACiC,uDADG,CAAC,EACrCo/F,EAAiC,uDAAhBZ,EAGf,GAAuC,qBAAhC19F,OAAOi+F,2BACKnrF,IAAnBwrF,EACA,CACA,IAAMC,EAASjiF,EAAQkiF,wBAWvB,OAVAz0D,EAASu0D,EAAgB,CACvBJ,eAAgBI,EAChB3jG,OAAQ2hB,EACR6hF,kBAC+B,kBAAtBj/F,EAAQ5E,UAAyB4E,EAAQ5E,UAAY,EAC9DigC,KAAM,EACNkkE,mBAAoBF,EACpBG,iBAAkBH,EAClBI,WAAYJ,IAEP,WAAP,CAjB+B,CAsB3B,MAA6BV,EAAe3+F,GAA1CJ,EAAF,EAAEA,GAAIk/F,EAAN,EAAMA,SAAUD,EAAhB,EAAgBA,SAGlBa,EAAYb,EAASr8E,IAAIpF,IAAY,GAQlC,OAPFyhF,EAASr9D,IAAIpkB,IAChByhF,EAASr9E,IAAIpE,EAASsiF,GAGxBA,EAAU90E,KAAKigB,GACfi0D,EAASK,QAAQ/hF,GAEV,WAELsiF,EAAU99C,OAAO89C,EAAUjsF,QAAQo3B,GAAW,GAErB,IAArB60D,EAAU3nG,SAEZ8mG,EAASjuE,OAAOxT,GAChB0hF,EAASa,UAAUviF,IAGC,IAAlByhF,EAASzlD,OAEX0lD,EAASc,aACTvB,EAAYztE,OAAOhxB,GAbvB,CAgBD,oJC5JD,SAASigG,EACPloG,GAEA,MAAiC,oBAAnBA,EAAM8sB,QACrB,KAmDYq7E,EAAAA,SAAAA,iCAIXv9E,SAAAA,EAAY5qB,GAAqD,6BAC/D,cAAMA,IA2BR4lB,KAAuB,KACvBwiF,EAAAA,aAAoC,KAoCpCC,EAAAA,WAAcziF,SAAAA,GACR,EAAKA,OAEP,EAAKoiF,YAEApiF,GAAS,EAAK5lB,MAAMsoG,aAAgB,EAAKtoG,MAAMuoG,MAElD,EAAKruC,SAAS,CAAEt2D,SAAU,EAAK5D,MAAMwoG,cAAe3kG,WAAOoY,KAI/D,EAAK2J,KAAOA,GAAc,KAC1B,EAAK6iF,aA7E0D,IAgFjEC,aAAe,SAAC9kG,EAAiBC,GAC3BD,GAAU,EAAK5D,MAAMsoG,aAEvB,EAAKN,YAEFE,EAAgB,EAAKloG,QAGxB,EAAKk6D,SAAS,CAAEt2D,OAAAA,EAAQC,MAAAA,IAEtB,EAAK7D,MAAM2D,UAEb,EAAK3D,MAAM2D,SAASC,EAAQC,EA5FiC,EAE/D,EAAK8wC,MAAQ,CACX/wC,SAAU5D,EAAMwoG,cAChB3kG,WAAOoY,GAJsD,CAMhE,kDAEDijC,SAAmB6nB,GAGfA,EAAU7+D,aAAe4V,KAAK9d,MAAMkI,YACpC6+D,EAAUggC,OAASjpF,KAAK9d,MAAM+mG,MAC9BhgC,EAAUtjE,YAAcqa,KAAK9d,MAAMyD,WACnCsjE,EAAUwhC,OAASzqF,KAAK9d,MAAMuoG,MAC9BxhC,EAAUwgC,kBAAoBzpF,KAAK9d,MAAMunG,iBACzCxgC,EAAU6mB,QAAU9vE,KAAK9d,MAAM4tF,QAE/B9vE,KAAKkqF,YACLlqF,KAAK2qF,cAER,qCAEDhlD,WACE3lC,KAAKkqF,YACApiF,KAAAA,KAAO,IACb,4BAKD6iF,WACM,GAAC3qF,KAAK8H,OAAQ9H,KAAK9d,MAAMuoG,KAAzB,CACE,MAOFzqF,KAAK9d,MANPyD,EADI,EACJA,UACAsjG,EAFI,EAEJA,KACA7+F,EAHI,EAGJA,WACAq/F,EAJI,EAIJA,gBACA3Z,EALI,EAKJA,MACA6Z,EANI,EAMJA,eAGGW,KAAAA,aAAeZ,EAClB1pF,KAAK8H,KACL9H,KAAK4qF,aACL,CACEjlG,UAAAA,EACAsjG,KAAAA,EACA7+F,WAAAA,EAEAq/F,gBAAAA,EAEA3Z,MAAAA,GAEF6Z,EAtBuC,CAwB1C,0BAEDO,WACMlqF,KAAKsqF,eACPtqF,KAAKsqF,eACAA,KAAAA,aAAe,KAEvB,uBAiCDzhG,WACE,IAAKuhG,EAAgBpqF,KAAK9d,OAAQ,CAC1B,MAAoB8d,KAAK62B,MAAvB/wC,EAAF,EAAEA,OAAQC,EAAV,EAAUA,MAChB,OAAOia,KAAK9d,MAAM8sB,SAAS,CAAElpB,OAAAA,EAAQC,MAAAA,EAAOyxC,IAAKx3B,KAAKuqF,YACvD,CAED,MAcIvqF,KAAK9d,MAbP8sB,EADF,EACEA,SACAppB,EAFF,EAEEA,GAWG1D,sIAbL,MAgBA,OAAOkyD,EAAAA,cACLxuD,GAAM,MADDwuD,EAAAA,CAEH5c,IAAKx3B,KAAKuqF,YAAeroG,GAC3B8sB,EAEH,OA/HUq7E,CAAej2C,EAAAA,aC/DxBy2C,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB5sF,IAAjB6sF,EACH,OAAOA,EAAa1tF,QAGrB,IAAI0E,EAAS6oF,EAAyBE,GAAY,CACjD5gG,GAAI4gG,EACJE,QAAQ,EACR3tF,QAAS,CAAC,GAUX,OANA4tF,EAAoBH,GAAUznG,KAAK0e,EAAO1E,QAAS0E,EAAQA,EAAO1E,QAASwtF,GAG3E9oF,EAAOipF,QAAS,EAGTjpF,EAAO1E,OACf,CAGAwtF,EAAoB1nF,EAAI8nF,EC3BxBJ,EAAoBznF,EAAI,SAASrB,GAChC,IAAImpF,EAASnpF,GAAUA,EAAOyiD,WAC7B,WAAa,OAAOziD,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADA8oF,EAAoB/oG,EAAEopG,EAAQ,CAAEpnF,EAAGonF,IAC5BA,CACR,ECNAL,EAAoB/oG,EAAI,SAASub,EAAS8tF,GACzC,IAAI,IAAIjkG,KAAOikG,EACXN,EAAoBxmC,EAAE8mC,EAAYjkG,KAAS2jG,EAAoBxmC,EAAEhnD,EAASnW,IAC5E2I,OAAO4R,eAAepE,EAASnW,EAAK,CAAE8lB,YAAY,EAAMF,IAAKq+E,EAAWjkG,IAG3E,ECPA2jG,EAAoB/nF,EAAI,CAAC,EAGzB+nF,EAAoBrrF,EAAI,SAAS4rF,GAChC,OAAOn9D,QAAQ0+C,IAAI98E,OAAOwS,KAAKwoF,EAAoB/nF,GAAGguC,QAAO,SAASu6C,EAAUnkG,GAE/E,OADA2jG,EAAoB/nF,EAAE5b,GAAKkkG,EAASC,GAC7BA,CACR,GAAG,IACJ,ECPAR,EAAoB9mF,EAAI,SAASqnF,GAEhC,MAAO,aAAeA,EAAU,IAAM,CAAC,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,WACxyB,ECHAP,EAAoBS,SAAW,SAASF,GAEvC,MAAO,cAAgBA,EAAU,IAAM,CAAC,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,YACxb,ECJAP,EAAoB9nF,EAAI,WACvB,GAA0B,kBAAfwoF,WAAyB,OAAOA,WAC3C,IACC,OAAOxrF,MAAQ,IAAIyrF,SAAS,cAAb,EAGhB,CAFE,MAAOhsF,GACR,GAAsB,kBAAXpU,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBy/F,EAAoBxmC,EAAI,SAAS7mD,EAAK4zE,GAAQ,OAAOvhF,OAAO1M,UAAU0c,eAAexc,KAAKma,EAAK4zE,EAAO,aCAtG,IAAIqa,EAAa,CAAC,EACdC,EAAoB,aAExBb,EAAoB3nF,EAAI,SAASrV,EAAKuqC,EAAMlxC,EAAKkkG,GAChD,GAAGK,EAAW59F,GAAQ49F,EAAW59F,GAAKqnB,KAAKkjB,OAA3C,CACA,IAAI0d,EAAQ61C,EACZ,QAAWztF,IAARhX,EAEF,IADA,IAAI0kG,EAAUtoG,SAASw0D,qBAAqB,UACpC11D,EAAI,EAAGA,EAAIwpG,EAAQvpG,OAAQD,IAAK,CACvC,IAAImzD,EAAIq2C,EAAQxpG,GAChB,GAAGmzD,EAAEyC,aAAa,QAAUnqD,GAAO0nD,EAAEyC,aAAa,iBAAmB0zC,EAAoBxkG,EAAK,CAAE4uD,EAASP,EAAG,KAAO,CACpH,CAEGO,IACH61C,GAAa,GACb71C,EAASxyD,SAASulB,cAAc,WAEzBsnC,QAAU,QACjB2F,EAAOs2B,QAAU,IACbye,EAAoBgB,IACvB/1C,EAAO5rC,aAAa,QAAS2gF,EAAoBgB,IAElD/1C,EAAO5rC,aAAa,eAAgBwhF,EAAoBxkG,GACxD4uD,EAAOvwD,IAAMsI,GAEd49F,EAAW59F,GAAO,CAACuqC,GACnB,IAAI0zD,EAAmB,SAAShjC,EAAM9iC,GAErC8vB,EAAOi2C,QAAUj2C,EAAOk2C,OAAS,KACjC9gG,aAAakhF,GACb,IAAI6f,EAAUR,EAAW59F,GAIzB,UAHO49F,EAAW59F,GAClBioD,EAAOrhC,YAAcqhC,EAAOrhC,WAAW5E,YAAYimC,GACnDm2C,GAAWA,EAAQxiF,SAAQ,SAAS0gD,GAAM,OAAOA,EAAGnkC,EAAQ,IACzD8iC,EAAM,OAAOA,EAAK9iC,EACtB,EAEIomD,EAAUjhF,WAAW2gG,EAAiBpsF,KAAK,UAAMxB,EAAW,CAAEja,KAAM,UAAW8B,OAAQ+vD,IAAW,MACtGA,EAAOi2C,QAAUD,EAAiBpsF,KAAK,KAAMo2C,EAAOi2C,SACpDj2C,EAAOk2C,OAASF,EAAiBpsF,KAAK,KAAMo2C,EAAOk2C,QACnDL,GAAcroG,SAAS4zD,KAAKpnC,YAAYgmC,EApCkB,CAqC3D,KCxCA+0C,EAAoBtnF,EAAI,SAASlG,GACX,qBAAXsF,QAA0BA,OAAO0+E,aAC1CxxF,OAAO4R,eAAepE,EAASsF,OAAO0+E,YAAa,CAAE5iF,MAAO,WAE7D5O,OAAO4R,eAAepE,EAAS,aAAc,CAAEoB,OAAO,GACvD,ECNAosF,EAAoBqB,IAAM,SAASnqF,GAGlC,OAFAA,EAAO+/C,MAAQ,GACV//C,EAAOgN,WAAUhN,EAAOgN,SAAW,IACjChN,CACR,ECJA8oF,EAAoBxnF,EAAI,eCAxB,IAyCI8oF,EAAiB,SAASf,GAC7B,OAAO,IAAIn9D,SAAQ,SAASG,EAAS+9C,GACpC,IAAIjmF,EAAO2kG,EAAoBS,SAASF,GACpCgB,EAAWvB,EAAoBxnF,EAAInd,EACvC,GAlBmB,SAASA,EAAMkmG,GAEnC,IADA,IAAIC,EAAmB/oG,SAASw0D,qBAAqB,QAC7C11D,EAAI,EAAGA,EAAIiqG,EAAiBhqG,OAAQD,IAAK,CAChD,IACIkqG,GADApgF,EAAMmgF,EAAiBjqG,IACR41D,aAAa,cAAgB9rC,EAAI8rC,aAAa,QACjE,GAAe,eAAZ9rC,EAAI/lB,MAAyBmmG,IAAapmG,GAAQomG,IAAaF,GAAW,OAAOlgF,CACrF,CACA,IAAIqgF,EAAoBjpG,SAASw0D,qBAAqB,SACtD,IAAQ11D,EAAI,EAAGA,EAAImqG,EAAkBlqG,OAAQD,IAAK,CACjD,IAAI8pB,EAEJ,IADIogF,GADApgF,EAAMqgF,EAAkBnqG,IACT41D,aAAa,gBAChB9xD,GAAQomG,IAAaF,EAAU,OAAOlgF,CACvD,CACD,CAKKsgF,CAAetmG,EAAMkmG,GAAW,OAAOh+D,KA7CrB,SAASg9D,EAASgB,EAAUh+D,EAAS+9C,GAC3D,IAAIsgB,EAAUnpG,SAASulB,cAAc,QAErC4jF,EAAQtmG,IAAM,aACdsmG,EAAQxoG,KAAO,WAiBfwoG,EAAQV,QAAUU,EAAQT,OAhBL,SAAShmE,GAG7B,GADAymE,EAAQV,QAAUU,EAAQT,OAAS,KAChB,SAAfhmE,EAAM/hC,KACTmqC,QACM,CACN,IAAIs+D,EAAY1mE,IAAyB,SAAfA,EAAM/hC,KAAkB,UAAY+hC,EAAM/hC,MAChE0oG,EAAW3mE,GAASA,EAAMjgC,QAAUigC,EAAMjgC,OAAOG,MAAQkmG,EACzDxlF,EAAM,IAAIf,MAAM,qBAAuBulF,EAAU,cAAgBuB,EAAW,KAChF/lF,EAAIic,KAAO,wBACXjc,EAAI3iB,KAAOyoG,EACX9lF,EAAIgmF,QAAUD,EACdF,EAAQh4E,WAAW5E,YAAY48E,GAC/BtgB,EAAOvlE,EACR,CACD,EAEA6lF,EAAQvmG,KAAOkmG,EAEf9oG,SAAS4zD,KAAKpnC,YAAY28E,EAE3B,CAoBEI,CAAiBzB,EAASgB,EAAUh+D,EAAS+9C,EAC9C,GACD,EAEI2gB,EAAqB,CACxB,IAAK,GAGNjC,EAAoB/nF,EAAEiqF,QAAU,SAAS3B,EAASC,GAE9CyB,EAAmB1B,GAAUC,EAASn2E,KAAK43E,EAAmB1B,IACzB,IAAhC0B,EAAmB1B,IAFX,CAAC,GAAK,EAAE,GAAK,EAAE,GAAK,EAAE,GAAK,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,GAE5IA,IACtDC,EAASn2E,KAAK43E,EAAmB1B,GAAWe,EAAef,GAAS/8D,MAAK,WACxEy+D,EAAmB1B,GAAW,CAC/B,IAAG,SAAS5rF,GAEX,aADOstF,EAAmB1B,GACpB5rF,CACP,IAEF,gBC5DA,IAAIwtF,EAAkB,CACrB,IAAK,GAGNnC,EAAoB/nF,EAAEmqF,EAAI,SAAS7B,EAASC,GAE1C,IAAI6B,EAAqBrC,EAAoBxmC,EAAE2oC,EAAiB5B,GAAW4B,EAAgB5B,QAAWltF,EACtG,GAA0B,IAAvBgvF,EAGF,GAAGA,EACF7B,EAASn2E,KAAKg4E,EAAmB,QAC3B,CAGL,IAAIhhB,EAAU,IAAIj+C,SAAQ,SAASG,EAAS+9C,GAAU+gB,EAAqBF,EAAgB5B,GAAW,CAACh9D,EAAS+9C,EAAS,IACzHkf,EAASn2E,KAAKg4E,EAAmB,GAAKhhB,GAGtC,IAAIr+E,EAAMg9F,EAAoBxnF,EAAIwnF,EAAoB9mF,EAAEqnF,GAEpDxlF,EAAQ,IAAIC,MAgBhBglF,EAAoB3nF,EAAErV,GAfH,SAASm4B,GAC3B,GAAG6kE,EAAoBxmC,EAAE2oC,EAAiB5B,KAEf,KAD1B8B,EAAqBF,EAAgB5B,MACR4B,EAAgB5B,QAAWltF,GACrDgvF,GAAoB,CACtB,IAAIR,EAAY1mE,IAAyB,SAAfA,EAAM/hC,KAAkB,UAAY+hC,EAAM/hC,MAChEkpG,EAAUnnE,GAASA,EAAMjgC,QAAUigC,EAAMjgC,OAAOR,IACpDqgB,EAAMg5B,QAAU,iBAAmBwsD,EAAU,cAAgBsB,EAAY,KAAOS,EAAU,IAC1FvnF,EAAMhf,KAAO,iBACbgf,EAAM3hB,KAAOyoG,EACb9mF,EAAMgnF,QAAUO,EAChBD,EAAmB,GAAGtnF,EACvB,CAEF,GACyC,SAAWwlF,EAASA,EAE/D,CAEH,EAaA,IAAIgC,EAAuB,SAASC,EAA4B1qG,GAC/D,IAKImoG,EAAUM,EALVkC,EAAW3qG,EAAK,GAChB4qG,EAAc5qG,EAAK,GACnB6qG,EAAU7qG,EAAK,GAGIP,EAAI,EAC3B,GAAGkrG,EAAS71C,MAAK,SAASvtD,GAAM,OAA+B,IAAxB8iG,EAAgB9iG,EAAW,IAAI,CACrE,IAAI4gG,KAAYyC,EACZ1C,EAAoBxmC,EAAEkpC,EAAazC,KACrCD,EAAoB1nF,EAAE2nF,GAAYyC,EAAYzC,IAGhD,GAAG0C,EAAsBA,EAAQ3C,EAClC,CAEA,IADGwC,GAA4BA,EAA2B1qG,GACrDP,EAAIkrG,EAASjrG,OAAQD,IACzBgpG,EAAUkC,EAASlrG,GAChByoG,EAAoBxmC,EAAE2oC,EAAiB5B,IAAY4B,EAAgB5B,IACrE4B,EAAgB5B,GAAS,KAE1B4B,EAAgB5B,GAAW,CAG7B,EAEIqC,EAAqB/L,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1F+L,EAAmBhkF,QAAQ2jF,EAAqB1tF,KAAK,KAAM,IAC3D+tF,EAAmBv4E,KAAOk4E,EAAqB1tF,KAAK,KAAM+tF,EAAmBv4E,KAAKxV,KAAK+tF,6GCrF1EC,EAAe1rG,EAAAA,GAAAA,IAAH,kvDCAZ2rG,EAAe3rG,EAAAA,GAAAA,OAAH,gzQCAlB,IAAM4rG,EAAmB5rG,EAAAA,GAAAA,IAAH,u0DCmE7B,MA9DA,YAA8F,IAAxE6rG,EAAuE,EAAvEA,OAAQC,EAA+D,EAA/DA,cAC5B,GAAsDlrG,EAAAA,EAAAA,UAAwB,MAA9E,eAAOmrG,EAAP,KAA4BC,EAA5B,KAMA,OAJA/qG,EAAAA,EAAAA,YAAU,WACR+qG,EAAuB,KACxB,GAAE,CAACH,KAGF,SAACD,EAAD,CAAkBjqG,UAAWkqG,EAAS,SAAW,GAAjD,UACE,iBAAKlqG,UAAU,oBAAf,UACGkM,OAAOC,OAAOH,EAAAA,IAAuBvM,MAAM,EAAG,GAAGI,KAAI,SAACC,EAA2BM,GAA5B,OAEpD,iBAAKJ,UAAU,cAAf,WACE,iBACEA,UAAWoqG,IAAwBhqG,EAAQ,wBAA0B,iBACrEG,QAAS,WAEL8pG,EADED,IAAwBhqG,EACH,KAEAA,EAE1B,EARH,WAUE,iBAAMJ,UAAU,YAAhB,SAA6BF,EAAKI,SAClC,SAACoqG,EAAA,EAAD,CAAezsG,MAAM,UAAUE,MAAO,GAAIC,OAAQ,QAGnDosG,IAAwBhqG,IACvB,0BACGN,EAAKkL,MAAMnL,KAAI,SAAC0qG,EAAcnqG,GAAf,OAEd,SAAC,KAAD,CAAMwC,GAAI2nG,EAAargG,IAAK3J,QAAS4pG,EAArC,UACE,wBAAKI,EAAatnG,QADqC7C,EAF3C,KAMhB,SAAC,KAAD,CAAMwC,GAAI9C,EAAKmM,YAAa1L,QAAS4pG,EAArC,UACE,gBAAInqG,UAAU,UAAd,WACE,kBAAMA,UAAU,SAAhB,gBAEG,IACAF,EAAKI,MAAMwb,kBAGd,SAAC7Y,EAAA,EAAD,cA/BwBzC,EAFkB,IAyCrD8L,OAAOC,OAAOH,EAAAA,IAAuBvM,MAAM,EAAG,GAAGI,KAAI,SAACC,EAAmCM,GAApC,OAEpD,SAAC,KAAD,CAAkBJ,UAAU,YAAY4C,GAAI9C,EAAKoK,IAAK3J,QAAS4pG,EAA/D,SAA+ErqG,EAAKmD,MAAzE7C,EAFyC,KAKtD,SAAC,KAAD,CAAMJ,UAAU,cAAc4C,GAAG,WAAWrC,QAAS4pG,EAArD,4BAIP,EC2CD,QApGA,WACE,ICT8Bv2D,EAAUpC,EAAsBg5D,EDS9D,GAAsDvrG,EAAAA,EAAAA,UAAwB,MAA9E,eAAOwrG,EAAP,KAA4BC,EAA5B,KACA,GAAoCzrG,EAAAA,EAAAA,WAAkB,GAAtD,eAAO0rG,EAAP,KAAmBR,EAAnB,KAEMS,GAAU7kG,EAAAA,EAAAA,QAAY,IACtB8kG,GAAgB9kG,EAAAA,EAAAA,QAAY,IAIlC,OCjB8B6tC,EDed,CAAEtsC,SAAUmjG,GAA+C,IAAxBA,IAA8BG,EAAQtjG,QAAQmjG,ICfzDj5D,EDeiF,kBAAMk5D,EAAuB,KAA7B,ECf3DF,EDe+F,CAAEljG,QAAQ,GAAD,eAAMsjG,EAAQtjG,SAAd,CAAuBujG,EAAcvjG,YCd3MhI,EAAAA,EAAAA,YAAU,WACR,SAASwrG,EAAmBzoE,GACtBmoE,EAAQljG,QAAQ5I,QAAUk1C,GAAOA,EAAItsC,UAAYssC,EAAItsC,QAAQ28B,SAAS5B,EAAMjgC,UAAYooG,EAAQljG,QAAQwsD,MAAK,SAACh0D,GAAD,OAAeA,EAAKmkC,SAAS5B,EAAMjgC,OAAnC,IAC/GovC,KACSoC,IAAOA,EAAItsC,SAAYssC,EAAItsC,QAAQ28B,SAAS5B,EAAMjgC,UAAWooG,EAAQ9rG,QAAY8rG,GAAYA,EAAQvmE,SAAS5B,EAAMjgC,SAC7HovC,GAEH,CAGD,OADA7xC,SAASqyB,iBAAiB,YAAa84E,GAChC,WACLnrG,SAASsyB,oBAAoB,YAAa64E,EAC3C,CACF,GAAE,CAACl3D,EAAK42D,KDIP,UAACR,EAAD,CAAchqG,UAAYyqG,GAA+C,IAAxBA,GAA6BE,EAAc,SAAW,GAAvG,WACE,gBAAK3qG,UAAYyqG,GAA+C,IAAxBA,EAA6B,uBAAyB,mBAC9F,gBAAKzqG,UAAYyqG,GAA+C,IAAxBA,EAA6B,oBAAsB,aAAc72D,IAAKi3D,KAE9G,gBAAK7qG,UAAYyqG,GAA+C,IAAxBA,EAA6B,uBAAyB,iBAA9F,UACE,iBAAKzqG,UAAU,oBAAf,WACE,UAAC,KAAD,CAAMA,UAAU,cAAc4C,GAAG,IAAjC,WACE,gBAAKhB,IAAKmpG,EAAM3pG,IAAI,yDACpB,4CAEF,gBAAKpB,UAAU,oBAAf,SACGkM,OAAO8rD,QAAQhsD,EAAAA,IAAuBnM,KAAI,SAACC,EAAMM,GAChD,MAAgB,SAAZN,EAAK,IAA6B,cAAZA,EAAK,IAAkC,UAAZA,EAAK,IAGtD,gBAAKE,UAAU,kBAAf,UACE,SAAC,KAAD,CAAMA,UAAU,sBAAsB4C,GAAI9C,EAAK,GAAGoK,IAAlD,SAAwDpK,EAAK,GAAGmD,QAD5B7C,IAOxC,iBAGEJ,UAAWyqG,IAAwBrqG,EAAQ,yBAA2B,kBACtEwzC,IAAK,SAACuT,GACJyjD,EAAQtjG,QAAQlH,GAAS+mD,CAC1B,EANH,WAQE,oBACEnnD,UAAWyqG,IAAwBrqG,EAAQ,wBAA0B,iBACrEE,KAAK,SACLC,QAAS,WAELmqG,EADED,IAAwBrqG,EACH,KAEAA,EAE1B,EATH,WAWE,iBAAMJ,UAAU,4BAAhB,SAA6CF,EAAK,GAAGI,SACrD,SAACoqG,EAAA,EAAD,CAAezsG,MAAO4sG,IAAwBrqG,EAAQ,UAAY,gBAGpE,iBAAKJ,UAAU,kBAAf,WACE,eAAIA,UAAU,WAAd,SACGF,EAAK,GAAGkL,MAAMnL,KAAI,SAACC,EAAqCM,GAAtC,OAEjB,eAAIJ,UAAU,WAAd,SACGF,EAAKoK,KACJ,UAAC,KAAD,CAAMtH,GAAI9C,EAAKoK,IAAK3J,QAAS,kBAAMmqG,EAAuB,KAA7B,EAA7B,WACE,gBAAK1qG,UAAU,SACf,iBAAMA,UAAU,SAAhB,SAA0BF,EAAKmD,WAGjC,iCACE,gBAAKjD,UAAU,SACf,iBAAMA,UAAU,SAAhB,SAA0BF,EAAKmD,WATP7C,EAFb,OAkBrB,UAAC,KAAD,CAAMwC,GAAI9C,EAAK,GAAGmM,YAAajM,UAAU,eAAeO,QAAS,kBAAMmqG,EAAuB,KAA7B,EAAjE,gBAEG,IACA5qG,EAAK,GAAGI,MAAMwb,eACf,SAAC7Y,EAAA,EAAD,YA7CCzC,EAkDV,OAGH,SAAC,KAAD,CAAMwC,GAAG,WAAW5C,UAAU,2BAA9B,sBAEA,gBAAKA,UAAU,oBAAoBO,QAAS,kBAAM4pG,GAAeQ,EAArB,EAA5C,UACE,gBAAK3qG,UAAW2qG,EAAa,oBAAsB,uBAKzD,SAAC,EAAD,CAAYT,OAAQS,EAAYR,cAAe,kBAAMA,GAAc,EAApB,MAGpD,EE1GYa,EAAe3sG,EAAAA,GAAAA,OAAH,6/KCiBzB,MAjBA,WACE,OACE,gBACEP,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,OACLC,QAAQ,YALV,UAOE,iBACED,KAAK,UACLE,EAAE,0uBAIT,ECqED,MA5EA,WACE,OAAgEc,EAAAA,EAAAA,UAAwB,MAAxF,eAAOgsG,EAAP,KAAiCC,EAAjC,KACA,OACE,UAACF,EAAD,YACE,gBAAKhrG,UAAU,YAAf,UACE,iBAAKA,UAAU,UAAf,WACE,iBAAKA,UAAU,oBAAf,WACE,UAAC,KAAD,CAAMA,UAAU,cAAc4C,GAAG,IAAjC,WACE,gBAAKhB,IAAKmpG,EAAM3pG,IAAI,UACpB,4CAGF,cAAGpB,UAAU,gBAAb,gIAEA,cAAGuC,KAAK,2BAA2BvC,UAAU,qBAA7C,gCACA,iBAAKA,UAAU,gBAAf,WAEE,cAAGuC,KAAK,8CAA8CH,OAAO,SAASI,IAAI,aAA1E,UAAuF,SAAC0G,EAAA,EAAD,OAEvF,cAAG3G,KAAK,qCAAqCH,OAAO,SAASI,IAAI,aAAjE,UAA8E,SAAC2G,EAAA,EAAD,OAE9E,cAAG5G,KAAK,2CAA2CH,OAAO,SAASI,IAAI,aAAvE,UAAoF,SAAC,EAAD,aAIxF,gBAAKxC,UAAU,cAAf,SACGkM,OAAOC,OAAOrB,EAAAA,IAAWjL,KAAI,SAACsrG,EAAU/qG,GAAX,OAE5B,iBAAKJ,UAAS,kBAAaI,EAAQ,EAArB,aAAd,WACE,iBACEJ,UAAWirG,IAA6B7qG,EAAQ,0BAA4B,mBAC5EG,QAAS,WAEL2qG,EADED,IAA6B7qG,EACH,KAEAA,EAE/B,EARH,WAUE,iBAAMJ,UAAU,uBAAhB,SAAwCmrG,EAASjrG,SAEjD,gBACEF,UAAWirG,IAA6B7qG,EAAQ,0BAA4B,mBAD9E,UAGE,SAACkqG,EAAA,EAAD,CAAezsG,MAAM,UAAUE,MAAO,GAAIC,OAAQ,WAGtD,eAAIgC,UAAWirG,IAA6B7qG,EAAQ,aAAe,GAAnE,SACG+qG,EAASngG,MAAMyvD,MAAK,SAACt6C,EAAGpB,GAAJ,OAAUA,EAAE9b,KAAKvE,OAASyhB,EAAEld,KAAKvE,MAAjC,IAAyCmB,KAAI,SAACC,EAAMM,GAAP,OAChE,yBACE,SAAC,KAAD,CAAMwC,GAAI9C,EAAKoK,IAAKlK,UAAU,SAA9B,SAAwCF,EAAKmD,QADtCnD,EAAKmD,KADkD,QApBhB7C,EAF1B,YAkCpC,gBAAKJ,UAAU,cAEf,gBAAKA,UAAU,YAAf,UACE,iBAAKA,UAAU,SAAf,WACE,iBAAMA,UAAU,SAAhB,wDAEA,iBAAKA,UAAU,eAAf,WACE,SAAC,KAAD,CAAM4C,GAAG,oBAAoB5C,UAAU,SAAvC,+BACA,SAAC,KAAD,CAAM4C,GAAG,kBAAkB5C,UAAU,SAArC,sCAMX,EC7DD,QArBA,YAAmE,IAAD,IAA9CjC,MAAAA,OAA8C,MAAtC,GAAsC,MAAlCC,OAAAA,OAAkC,MAAzB,GAAyB,MAArBH,MAAAA,OAAqB,MAAb,UAAa,EAChE,OACE,iBACEC,MAAM,6BACNC,MAAOA,EACPC,OAAQA,EACRC,KAAK,OACLC,QAAQ,YALV,WAOE,iBACED,KAAMJ,EACNM,EAAE,8HAEJ,iBACEF,KAAMJ,EACNM,EAAE,ygBAIT,ECnBYitG,EAAoB/sG,EAAAA,GAAAA,IAAH,+sCC6BvB,SAASgtG,EAAWvwF,EAAOnU,QACd,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAI2kG,EAaR,SAA4BxwF,GAExB,GAAIA,GAAsB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,GACnC,OAAOA,EAAMywF,OAAO,GAExB,OAAOzwF,CACV,CAnBoB0wF,CAAmB1wF,GACpC,GAXG,SAAyBA,EAAO2wF,GAMnC,MAL0B,qBAAfA,IAEPA,GACK3wF,GAAuB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,IAA2B,MAAbA,EAAM,KAEzD2wF,CACX,CAIOC,CAAgBJ,EAAY3kG,EAAQ8kG,YACpC,IACI,OAAOhjD,KAAKkW,MAAM2sC,EAIrB,CAFD,MAAOzvF,GAEN,CAIL,OAAOf,CACV,CC7CD,IAAI0lD,EAAsC,WAStC,OARAA,EAAWt0D,OAAO4P,QAAU,SAAS+D,GACjC,IAAK,IAAI+xC,EAAGnzD,EAAI,EAAGghB,EAAIzD,UAAUtd,OAAQD,EAAIghB,EAAGhhB,IAE5C,IAAK,IAAIihB,KADTkyC,EAAI51C,UAAUvd,GACOyN,OAAO1M,UAAU0c,eAAexc,KAAKkyD,EAAGlyC,KACzDG,EAAEH,GAAKkyC,EAAElyC,IAEjB,OAAOG,CACV,EACM2gD,EAASrkD,MAAMC,KAAMJ,UAC/B,ECTD,EDY6B,WACzB,SAAS2vF,EAAQC,EAASjlG,GACtB,IAAIgsD,EAAQv2C,KACZA,KAAKyvF,gBAAkB,GACvBzvF,KAAK0vF,qBAAsB,EAC3B1vF,KAAKwvF,QDNN,SAAsBA,EAASjlG,GAClC,MAAuB,kBAAZilG,EACAG,EAAAA,EAAaH,EAASjlG,GAEL,kBAAZilG,GAAoC,OAAZA,EAC7BA,EAGA,CAAC,CAEf,CCJsBI,CAAaJ,EAASjlG,GACrC,IAAI2jC,SAAQ,WACRqoB,EAAMm5C,oBDjBa,kBAAbnsG,UAAoD,kBAApBA,SAASosG,MCkBlD,IAAEphE,OAAM,WAAe,GAC3B,CAuDD,OAtDAghE,EAAQnsG,UAAUysG,qBAAuB,SAAUC,GAC1C9vF,KAAK0vF,sBAGV1vF,KAAKwvF,QAAUG,EAAAA,EAAapsG,SAASosG,OAAQG,GAChD,EACDP,EAAQnsG,UAAU2sG,YAAc,SAAU/vC,GACtC,IAAK,IAAI39D,EAAI,EAAGA,EAAI2d,KAAKyvF,gBAAgBntG,SAAUD,EAC/C2d,KAAKyvF,gBAAgBptG,GAAG29D,EAE/B,EACDuvC,EAAQnsG,UAAU2pB,IAAM,SAAUlmB,EAAM0D,EAASulG,GAG7C,YAFgB,IAAZvlG,IAAsBA,EAAU,CAAC,GACrCyV,KAAK6vF,qBAAqBC,GACnBb,EAAWjvF,KAAKwvF,QAAQ3oG,GAAO0D,EACzC,EACDglG,EAAQnsG,UAAU4sG,OAAS,SAAUzlG,EAASulG,QAC1B,IAAZvlG,IAAsBA,EAAU,CAAC,GACrCyV,KAAK6vF,qBAAqBC,GAC1B,IAAIhrC,EAAS,CAAC,EACd,IAAK,IAAImrC,KAAUjwF,KAAKwvF,QACpB1qC,EAAOmrC,GAAUhB,EAAWjvF,KAAKwvF,QAAQS,GAAS1lG,GAEtD,OAAOu6D,CACV,EACDyqC,EAAQnsG,UAAU2oB,IAAM,SAAUllB,EAAM6X,EAAOnU,GAC3C,IAAI66D,EACiB,kBAAV1mD,IACPA,EAAQ2tC,KAAKC,UAAU5tC,IAE3BsB,KAAKwvF,QAAUprC,EAASA,EAAS,CAAC,EAAGpkD,KAAKwvF,WAAWpqC,EAAK,CAAC,GAAMv+D,GAAQ6X,EAAO0mD,IAC5EplD,KAAK0vF,sBACLnsG,SAASosG,OAASA,EAAAA,EAAiB9oG,EAAM6X,EAAOnU,IAEpDyV,KAAK+vF,YAAY,CAAElpG,KAAMA,EAAM6X,MAAOA,EAAOnU,QAASA,GACzD,EACDglG,EAAQnsG,UAAUuzD,OAAS,SAAU9vD,EAAM0D,GACvC,IAAI2lG,EAAgB3lG,EAAU65D,EAASA,EAAS,CAAC,EAAG75D,GAAU,CAAE0U,QAAS,IAAI+f,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAIrgB,OAAQ,IAChHqB,KAAKwvF,QAAUprC,EAAS,CAAC,EAAGpkD,KAAKwvF,gBAC1BxvF,KAAKwvF,QAAQ3oG,GAChBmZ,KAAK0vF,sBACLnsG,SAASosG,OAASA,EAAAA,EAAiB9oG,EAAM,GAAIqpG,IAEjDlwF,KAAK+vF,YAAY,CAAElpG,KAAMA,EAAM6X,WAAOP,EAAW5T,QAASA,GAC7D,EACDglG,EAAQnsG,UAAU+sG,kBAAoB,SAAU/6D,GAC5Cp1B,KAAKyvF,gBAAgBt6E,KAAKigB,EAC7B,EACDm6D,EAAQnsG,UAAUgtG,qBAAuB,SAAUh7D,GAC/C,IAAIm7C,EAAMvwE,KAAKyvF,gBAAgBzxF,QAAQo3B,GACnCm7C,GAAO,GACPvwE,KAAKyvF,gBAAgBtjD,OAAOokC,EAAK,EAExC,EACMgf,CACV,CAjE4B,GEZ7B,ICCIc,EAAiBj8C,EAAAA,cAAoB,IAAIm7C,GAClCz4C,EAAWu5C,EAAev5C,SACrC,GAD0Du5C,EAAep1C,SACzE,GCDe,SAASq1C,EAAW78D,GAC/B,IAAI+7D,GAAU1xD,EAAAA,EAAAA,YAAWuyD,GACzB,IAAKb,EACD,MAAM,IAAI1pF,MAAM,6BAEpB,IAAIyqF,EAAiBf,EAAQQ,SACzB5qC,GAAKviE,EAAAA,EAAAA,UAAS0tG,GAAiBC,EAAaprC,EAAG,GAAIqrC,EAAarrC,EAAG,GACnEsrC,GAAqB/mG,EAAAA,EAAAA,QAAO6mG,GAkBhC,MC3B0B,qBAAXnlG,QACgB,qBAApBA,OAAO9H,UAC2B,qBAAlC8H,OAAO9H,SAASulB,gBDSvBm1B,EAAAA,EAAAA,kBAAgB,WACZ,SAASp4C,IACL,IAAI8qG,EAAanB,EAAQQ,UAgBzC,SAAsBv8D,EAAck9D,EAAYC,GAC5C,IAAKn9D,EACD,OAAO,EAEX,IAAK,IAAIw0D,EAAK,EAAG4I,EAAiBp9D,EAAcw0D,EAAK4I,EAAevuG,OAAQ2lG,IAAM,CAC9E,IAAI6I,EAAaD,EAAe5I,GAChC,GAAI0I,EAAWG,KAAgBF,EAAWE,GACtC,OAAO,CAEd,CACD,OAAO,CACV,EA1BmBC,CAAat9D,GAAgB,KAAMk9D,EAAYD,EAAmBxlG,UAClEulG,EAAWE,GAEfD,EAAmBxlG,QAAUylG,CAChC,CAED,OADAnB,EAAQW,kBAAkBtqG,GACnB,WACH2pG,EAAQY,qBAAqBvqG,EAChC,CACJ,GAAE,CAAC2pG,IAID,CAACgB,GAFQtyD,EAAAA,EAAAA,UAAQ,WAAc,OAAOsxD,EAAQzjF,IAAIpM,KAAK6vF,EAAW,GAAE,CAACA,KACzDtxD,EAAAA,EAAAA,UAAQ,WAAc,OAAOsxD,EAAQ74C,OAAOh3C,KAAK6vF,EAAW,GAAE,CAACA,IAErF,CELD,MApBA,WACE,MAA6Bc,IAA7B,eAAgBU,GAAhB,WAEA,OACE,SAAChC,EAAD,CAAmBprG,UAAU,gBAA7B,UACE,gBAAKA,UAAU,YAAf,UACE,iBAAKA,UAAU,UAAf,WACE,cAAGA,UAAU,aAAb,yLAGA,iBAAKA,UAAU,yBAAf,WACE,mBAAQE,MAAM,gBAAgBF,UAAU,kBAAkBM,KAAK,SAASC,QAAS,kBAAM6sG,EAAU,UAAU,EAAM,CAAE/xF,QAAS,IAAI+f,MAAK,IAAIA,MAAOiyE,aAAY,IAAIjyE,MAAOkyE,cAAgB,KAAtG,EAAjF,qBACA,mBAAQptG,MAAM,iBAAiBF,UAAU,cAAcM,KAAK,SAASC,QAAS,kBAAM6sG,EAAU,UAAU,EAAO,CAAE/xF,QAAS,IAAI+f,MAAK,IAAIA,MAAOiyE,aAAY,IAAIjyE,MAAOkyE,cAAgB,KAAvG,EAA9E,8BAMX,ECsDD,UA/DA,WACE,IAAMxqF,GAAWw2C,EAAAA,EAAAA,MACjB,EAA6BozC,EAAW,CAAC,WAAzC,eAAOd,EAAP,KAEA,GAFA,MAEsC3sG,EAAAA,EAAAA,WAAkB,IAAxD,eAAOsuG,EAAP,KAAoBC,EAApB,KACA,GAAkCvuG,EAAAA,EAAAA,UAAS,GAA3C,eAAO+mC,EAAP,KAAkBynE,EAAlB,KAqBA,OAnBAnuG,EAAAA,EAAAA,YAAU,WACJmI,OAAOimG,OAAO1vG,OAAS,EAAIyJ,OAAOkmG,cAAgBJ,EACpDC,GAAe,GACND,GAAe9lG,OAAOimG,OAAO1vG,OAAS,EAAIyJ,OAAOkmG,aAC1DH,GAAe,GAGjB,IAAMI,EAAW,SAAC/xF,GAChB4xF,EAAa5xF,EAAEzZ,OAAOuiC,gBAAgBqB,UACvC,EAGD,OAFAv+B,OAAOuqB,iBAAiB,SAAU47E,GAE3B,kBAAMnmG,OAAOwqB,oBAAoB,SAAU27E,EAA3C,CACR,GAAE,CAAC5nE,KAEJ1mC,EAAAA,EAAAA,YAAU,WACRmI,OAAOC,OAAO,EAAG,EAClB,GAAE,CAACob,EAASs3C,YAGX,UAAC2vC,EAAD,YACE,4BACE,SAAC,EAAD,KAEA,iBAAK/pG,UAAU,mBAAf,UAEGutG,IACC,mBACErtG,MAAM,gCACNF,UAAU,cACVM,KAAK,SACLC,QAAS,kBAAMkH,OAAOC,OAAO,EAAG,EAAvB,EAJX,UAME,SAAC4iG,EAAA,EAAD,CAAevsG,MAAO,GAAIC,OAAQ,QAItC,cAAGuE,KAAK,2BAA2BvC,UAAU,cAAcoC,OAAO,SAASI,IAAI,aAAatC,MAAM,yBAAlG,UACE,iBAAMF,UAAU,kBAAhB,UACE,SAAC,EAAD,YAKN,SAAC,KAAD,QAGF,0BACE,SAAC,EAAD,OAGA4rG,EAAQiC,SAAU,SAAC,EAAD,MAGzB,YC1EGC,EAAyC,WACzC,IAAIC,EAAgB,SAAU5vG,EAAG4gB,GAI7B,OAHAgvF,EAAgB7hG,OAAO+0F,gBAClB,CAAE1uB,UAAW,cAAgBhzE,OAAS,SAAUpB,EAAG4gB,GAAK5gB,EAAEo0E,UAAYxzD,CAAI,GAC3E,SAAU5gB,EAAG4gB,GAAK,IAAK,IAAIW,KAAKX,EAAOA,EAAE7C,eAAewD,KAAIvhB,EAAEuhB,GAAKX,EAAEW,GAAK,EACvEquF,EAAc5vG,EAAG4gB,EAC3B,EACD,OAAO,SAAU5gB,EAAG4gB,GAEhB,SAASivF,IAAO5xF,KAAK8M,YAAc/qB,CAAI,CADvC4vG,EAAc5vG,EAAG4gB,GAEjB5gB,EAAEqB,UAAkB,OAANuf,EAAa7S,OAAOysC,OAAO55B,IAAMivF,EAAGxuG,UAAYuf,EAAEvf,UAAW,IAAIwuG,EAClF,CACJ,CAZ4C,GAiC7C,EAjBqC,SAAUC,GAE3C,SAASC,EAAgB5vG,GACrB,IAAIq0D,EAAQs7C,EAAOvuG,KAAK0c,KAAM9d,IAAU8d,KAOxC,OANI9d,EAAMstG,QACNj5C,EAAMi5C,QAAUttG,EAAMstG,QAGtBj5C,EAAMi5C,QAAU,IAAID,EAEjBh5C,CACV,CAID,OAdAm7C,EAAUI,EAAiBD,GAW3BC,EAAgB1uG,UAAUyF,OAAS,WAC/B,OAAOurD,EAAAA,cAAoB0C,EAAU,CAAEp4C,MAAOsB,KAAKwvF,SAAWxvF,KAAK9d,MAAM8sB,SAC5E,EACM8iF,CACV,CAhBoC,CAgBnC19C,EAAAA,8BC9BW29C,EAAY9vG,EAAAA,GAAAA,IAAH,sLCAT+vG,EAAsC/vG,EAAAA,GAAAA,IAAH,kLC6BhD,SAzBA,WACE,OACE,UAAC+vG,EAAD,YACE,SAACC,EAAA,EAAD,CACEnuG,MAAM,wEACNnB,YAAY,gJACZmJ,SAAS,oCAEX,SAAComG,EAAA,EAAD,CACE9oG,SAAUoT,EAAAA,GACVlW,QAAS,CACP,CACEO,KAAM,OACND,KAAM,SAER,CACEC,KAAM,sEACND,KAAM,6CAMjB,EC3BYurG,GAAwDlwG,EAAAA,GAAAA,IAAH,oLCgClE,OAxBA,WACE,OACE,UAACkwG,GAAD,YACE,SAACF,EAAA,EAAD,CACEnuG,MAAM,+DACNnB,YAAY,sMAEd,SAACuvG,EAAA,EAAD,CACE9oG,SAAU0T,GAAAA,EACVxW,QAAS,CACP,CACEO,KAAM,OACND,KAAM,SAER,CACEC,KAAM,+DACND,KAAM,0EAMjB,ECnBKwrG,IAAW7jB,EAAAA,EAAAA,OAAK,kBAAM,sEAAN,IAChB8jB,IAAe9jB,EAAAA,EAAAA,OAAK,kBAAM,qEAAN,IACpB+jB,IAAmB/jB,EAAAA,EAAAA,OAAK,kBAAM,+EAAN,IACxBgkB,IAAiBhkB,EAAAA,EAAAA,OAAK,kBAAM,+EAAN,IACtBikB,IAAmBjkB,EAAAA,EAAAA,OAAK,kBAAM,4BAAN,IACxBkkB,IAAclkB,EAAAA,EAAAA,OAAK,kBAAM,sEAAN,IACnBmkB,IAAYnkB,EAAAA,EAAAA,OAAK,kBAAM,oDAAN,IACjBokB,IAAWpkB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IAChBqkB,IAAerkB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IACpBskB,IAA8BtkB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACnCukB,IAAgCvkB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACrCwkB,IAAqBxkB,EAAAA,EAAAA,OAAK,kBAAM,uFAAN,IAC1BykB,IAAkBzkB,EAAAA,EAAAA,OAAK,kBAAM,8EAAN,IACvB0kB,IAAiB1kB,EAAAA,EAAAA,OAAK,kBAAM,uFAAN,IACtB2kB,IAAgC3kB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACrC4kB,IAAkB5kB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACvB6kB,IAAqB7kB,EAAAA,EAAAA,OAAK,kBAAM,sEAAN,IAC1B8kB,IAAS9kB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACd+kB,IAAM/kB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACXglB,IAAShlB,EAAAA,EAAAA,OAAK,kBAAM,uFAAN,IACdilB,IAAcjlB,EAAAA,EAAAA,OAAK,kBAAM,+EAAN,IACnBklB,IAAYllB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACjBmlB,IAAYnlB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACjBolB,IAAKplB,EAAAA,EAAAA,OAAK,kBAAM,sEAAN,IACVqlB,IAAQrlB,EAAAA,EAAAA,OAAK,kBAAM,8EAAN,IACbslB,IAAYtlB,EAAAA,EAAAA,OAAK,kBAAM,wFAAN,IACjBulB,IAAMvlB,EAAAA,EAAAA,OAAK,kBAAM,+EAAN,IACXwlB,IAAQxlB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IACbylB,IAAgBzlB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IACrB0lB,IAAO1lB,EAAAA,EAAAA,OAAK,kBAAM,4BAAN,IACZ2lB,IAAkB3lB,EAAAA,EAAAA,OAAK,kBAAM,4BAAN,IACvB4lB,IAAkB5lB,EAAAA,EAAAA,OAAK,kBAAM,4BAAN,IACvB6lB,IAAuB7lB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IAC5B8lB,IAAuB9lB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IAC5B+lB,IAAiC/lB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IACtCgmB,IAAwBhmB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IAC7BimB,IAAqBjmB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IAC1BkmB,IAAqBlmB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IAC1BmmB,IAAsEnmB,EAAAA,EAAAA,OAAK,kBAAM,6BAAN,IA+EjF,OA7EA,WACE,OACE,SAACwjB,EAAD,WACE,SAAC,EAAD,WACE,SAAC,KAAD,WACE,SAAC,KAAD,WACE,SAAC,EAAAntF,SAAD,CACEm9B,UACE,gBAAKn+C,UAAU,UAAf,UACE,SAAC,IAAD,CACEnC,MAAM,UACNkiD,KAAM,QALd,UAUE,UAAC,KAAD,YACE,UAAC,KAAD,CAAOh8B,SAAS,SAAC,EAAD,IAAhB,WACE,SAAC,KAAD,CAAO/gB,KAAK,IAAI+gB,SAAS,SAACyqF,GAAD,OACzB,SAAC,KAAD,CAAOxrG,KAAK,YAAY+gB,SAAS,SAAC0qF,GAAD,OACjC,SAAC,KAAD,CAAOzrG,KAAK,cAAc+gB,SAAS,SAAC4qF,GAAD,OACnC,SAAC,KAAD,CAAO3rG,KAAK,gBAAgB+gB,SAAS,SAAC2qF,GAAD,OACrC,SAAC,KAAD,CAAO1rG,KAAK,aAAa+gB,SAAS,SAAC6qF,GAAD,OAClC,SAAC,KAAD,CAAO5rG,KAAK,SAAS+gB,SAAS,SAAC8qF,GAAD,OAC9B,SAAC,KAAD,CAAO7rG,KAAK,WAAW+gB,SAAS,SAAC+qF,GAAD,OAChC,SAAC,KAAD,CAAO9rG,KAAK,4CAA4C+gB,SAAS,SAACyrF,GAAD,OAEjE,SAAC,KAAD,CAAOxsG,KAAK,wCAAwC+gB,SAAS,SAACkrF,GAAD,OAC7D,SAAC,KAAD,CAAOjsG,KAAK,mCAAmC+gB,SAAS,SAACmrF,GAAD,OACxD,SAAC,KAAD,CAAOlsG,KAAK,yBAAyB+gB,SAAS,SAACorF,GAAD,OAC9C,SAAC,KAAD,CAAOnsG,KAAK,0CAA0C+gB,SAAS,SAACqrF,GAAD,OAC/D,SAAC,KAAD,CAAOpsG,KAAK,8BAA8B+gB,SAAS,SAACsrF,GAAD,OACnD,SAAC,KAAD,CAAOrsG,KAAK,oCAAoC+gB,SAAS,SAACurF,GAAD,OACzD,SAAC,KAAD,CAAOtsG,KAAK,gCAAgC+gB,SAAS,SAACwrF,GAAD,OAErD,SAAC,KAAD,CAAOvsG,KAAK,2CAA2C+gB,SAAS,SAAC8rF,GAAD,OAChE,SAAC,KAAD,CAAO7sG,KAAK,oCAAoC+gB,SAAS,SAACgsF,GAAD,OACzD,SAAC,KAAD,CAAO/sG,KAAK,yDAAyD+gB,SAAS,SAACisF,GAAD,OAC9E,SAAC,KAAD,CAAOhtG,KAAK,2CAA2C+gB,SAAS,SAACksF,GAAD,OAChE,SAAC,KAAD,CAAOjtG,KAAK,qCAAqC+gB,SAAS,SAACmsF,GAAD,OAE1D,SAAC,KAAD,CAAOltG,KAAK,+BAA+B+gB,SAAS,SAAC0rF,GAAD,OACpD,SAAC,KAAD,CAAOzsG,KAAK,4BAA4B+gB,SAAS,SAAC2rF,GAAD,OACjD,SAAC,KAAD,CAAO1sG,KAAK,+BAA+B+gB,SAAS,SAAC4rF,GAAD,OACpD,SAAC,KAAD,CAAO3sG,KAAK,qCAAqC+gB,SAAS,SAAC6rF,GAAD,OAC1D,SAAC,KAAD,CAAO5sG,KAAK,8BAA8B+gB,SAAS,SAAC+rF,GAAD,OAEnD,SAAC,KAAD,CAAO9sG,KAAK,QAAQ+gB,SAAS,SAACssF,GAAD,OAC7B,SAAC,KAAD,CAAOrtG,KAAK,8DAA8D+gB,SAAS,SAACusF,GAAD,OACnF,SAAC,KAAD,CAAOttG,KAAK,qBAAqB+gB,SAAS,SAACwsF,GAAD,OAC1C,SAAC,KAAD,CAAOvtG,KAAK,8BAA8B+gB,SAAS,SAACysF,GAAD,OACnD,SAAC,KAAD,CAAOxtG,KAAK,8BAA8B+gB,SAAS,SAAC0sF,GAAD,OACnD,SAAC,KAAD,CAAOztG,KAAK,iDAAiD+gB,SAAS,SAAC2sF,GAAD,OACtE,SAAC,KAAD,CAAO1tG,KAAK,kCAAkC+gB,SAAS,SAAC,GAAD,OACvD,SAAC,KAAD,CAAO/gB,KAAK,sBAAsB+gB,SAAS,SAAC4sF,GAAD,OAC3C,SAAC,KAAD,CAAO3tG,KAAK,2CAA2C+gB,SAAS,SAAC6sF,GAAD,OAChE,SAAC,KAAD,CAAO5tG,KAAK,oEAAoE+gB,SAAS,SAAC,GAAD,OACzF,SAAC,KAAD,CAAO/gB,KAAK,+EAA+E+gB,SAAS,SAAC+sF,GAAD,OACpG,SAAC,KAAD,CAAO9tG,KAAK,qDAAqD+gB,SAAS,SAAC8sF,GAAD,OAE1E,SAAC,KAAD,CAAO7tG,KAAK,oBAAoB+gB,SAAS,SAACosF,GAAD,OACzC,SAAC,KAAD,CAAOntG,KAAK,kBAAkB+gB,SAAS,SAACqsF,GAAD,OAEvC,SAAC,KAAD,CAAOptG,KAAK,aAAa+gB,SAAS,SAACgrF,GAAD,OAClC,SAAC,KAAD,CAAO/rG,KAAK,SAAS+gB,SAAS,SAACirF,GAAD,UAGhC,SAAC,KAAD,CAAOhsG,KAAK,IAAI+gB,SAAS,SAAC,KAAD,CAAUnhB,GAAG,yBAQrD,EChHD,GAdwB,SAACmuG,GACnBA,GAAeA,aAAuBlJ,UACxC,6BAAqBn9D,MAAK,YAEnB,IADLsmE,EACI,EADJA,OAAQC,EACJ,EADIA,OAAQC,EACZ,EADYA,OAAQC,EACpB,EADoBA,OAAQC,EAC5B,EAD4BA,QAEhCJ,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EACT,GAEJ,ECRYM,EAAAA,WACX1xG,SAAS0H,eAAe,SAErBpC,QACH,SAAC,aAAD,WACE,SAAC,GAAD,OAOJqsG","sources":["assets/icons/ArrowDownIcon.tsx","assets/icons/ArrowRightIcon.tsx","assets/icons/DownArrowIcon.tsx","assets/icons/Facebook.tsx","assets/icons/Linkedin.tsx","components/FAQ/FAQStyles.ts","components/FAQ/FAQ.tsx","components/banner/BannerStyles.ts","components/banner/Banner.tsx","components/linksPath/LinksPathStyles.ts","assets/icons/HomeIcon.tsx","components/linksPath/LinksPath.tsx","components/listWithColorDots/ListWithColorDotsStyles.ts","components/listWithColorDots/ListWithColorDots.tsx","components/postList/PostStyles.ts","components/numberedList/NumberedListStyles.ts","components/numberedList/NumberedList.tsx","components/listWithBigTitleWithoutDots/ListWithBigTitleWithoutDotsStyles.ts","components/listWithBigTitleWithoutDots/ListWithBigTitleWithoutDots.tsx","components/table/TableStyles.ts","components/table/Table.tsx","components/postList/PostList.tsx","components/seo/Seo.tsx","components/titileWithDescription/TitleWithDescriptionStyles.ts","components/titileWithDescription/TitleWithDescription.tsx","assets/icons/ValuesHonestyIcon.tsx","assets/icons/IntegrityValuesIcon.tsx","assets/icons/CareValuesIcon.tsx","assets/icons/ValuesTransparencyIcon.tsx","assets/icons/ValuesReliabilityIcon.tsx","assets/icons/ValuesSocialResponsibilityIcon.tsx","assets/icons/StackGolangIcon.tsx","assets/icons/StackPHPIcon.tsx","assets/icons/StackPythonIcon.tsx","assets/icons/StackReactIcon.tsx","assets/icons/StackReactNativeIcon.tsx","assets/icons/Linkedin2.tsx","assets/icons/Facebook2.tsx","assets/icons/MediumLogoIcon.tsx","assets/icons/CustomSoftwareCycleDataArrow1.tsx","assets/icons/CustomSoftwareCycleDataArrow2.tsx","assets/icons/CustomSoftwareCycleDataArrow3.tsx","assets/icons/CustomSoftwareCycleDataArrow4.tsx","assets/icons/CustomSoftwareCycleDataArrow5.tsx","assets/icons/CustomSoftwareCycleDataArrow6.tsx","assets/icons/CustomSoftwareCycleDataArrow7.tsx","assets/icons/SoftwareReengineeringServicesCycleDataArrow1.tsx","assets/icons/SoftwareReengineeringServicesCycleDataArrow2.tsx","assets/icons/SoftwareReengineeringServicesCycleDataArrow3.tsx","assets/icons/BigDataServicesCycleDataArrow1.tsx","assets/icons/BigDataServicesCycleDataArrow2.tsx","assets/icons/BigDataServicesCycleDataArrow3.tsx","assets/icons/BigDataServicesCycleDataArrow4.tsx","assets/icons/BigDataServicesCycleDataArrow5.tsx","assets/icons/BigDataServicesCycleDataArrow6.tsx","assets/icons/ChatBotCycleDataArrow1.tsx","assets/icons/ChatBotCycleDataArrow2.tsx","assets/icons/ChatBotCycleDataArrow3.tsx","assets/icons/DevOpsCycleDataArrow1.tsx","assets/icons/DevOpsCycleDataArrow2.tsx","assets/icons/DevOpsCycleDataArrow3.tsx","assets/icons/AiSoftwareCycleDataArrow1.tsx","assets/icons/AiSoftwareCycleDataArrow2.tsx","assets/icons/AiSoftwareCycleDataArrow3.tsx","assets/icons/AiSoftwareCycleDataArrow4.tsx","assets/icons/UiUxSoftwareCycleDataArrow1.tsx","assets/icons/UiUxSoftwareCycleDataArrow2.tsx","assets/icons/UiUxSoftwareCycleDataArrow3.tsx","assets/icons/UiUxSoftwareCycleDataArrow4.tsx","assets/icons/UiUxSoftwareCycleDataArrow5.tsx","assets/icons/UiUxSoftwareCycleDataArrow6.tsx","assets/icons/UiUxSoftwareCycleDataArrow7.tsx","assets/icons/UiUxSoftwareCycleDataArrow8.tsx","assets/icons/UiUxSoftwareCycleDataArrow9.tsx","assets/icons/UiUxSoftwareCycleDataArrow10.tsx","constants.ts","constants/posts/fromChaosToAgilityData.ts","constants/posts/sevenWaysToUseArtificialIntelligenceInEducationData.ts","constants/posts/tenDisastrousMistakesStartupsMakeWhenOutsourcingSoftwareDevelopmentData.ts","constants/posts/threeTypesOfElearningData.ts","constants/posts/top10MobileAppsData.ts","pages/post/PostStyles.ts","pages/post/Post.tsx","../node_modules/cookie/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/invariant/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.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-helmet-async/src/constants.js","../node_modules/react-helmet-async/src/utils.js","../node_modules/react-helmet-async/src/server.js","../node_modules/react-helmet-async/src/HelmetData.js","../node_modules/react-helmet-async/src/Provider.js","../node_modules/react-helmet-async/src/client.js","../node_modules/react-helmet-async/src/Dispatcher.js","../node_modules/react-helmet-async/src/index.js","../node_modules/react-helmet-async/node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../../packages/react-router-dom/index.tsx","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../node_modules/react-spinners/MoonLoader.js","../node_modules/react-spinners/helpers/animation.js","../node_modules/react-spinners/helpers/unitConverter.js","../node_modules/react-table/src/publicUtils.js","../node_modules/react-table/src/utils.js","../node_modules/react-table/src/makeDefaultPluginHooks.js","../node_modules/react-table/src/hooks/useColumnVisibility.js","../node_modules/react-table/src/hooks/useTable.js","../node_modules/react-table/src/plugin-hooks/useExpanded.js","../node_modules/react-table/src/filterTypes.js","../node_modules/react-table/src/plugin-hooks/useFilters.js","../node_modules/react-table/src/plugin-hooks/useGlobalFilter.js","../node_modules/react-table/src/aggregations.js","../node_modules/react-table/src/plugin-hooks/useGroupBy.js","../node_modules/react-table/src/sortTypes.js","../node_modules/react-table/src/plugin-hooks/useSortBy.js","../node_modules/react-table/src/plugin-hooks/usePagination.js","../node_modules/react-table/src/plugin-hooks/_UNSTABLE_usePivotColumns.js","../node_modules/react-table/src/plugin-hooks/useRowSelect.js","../node_modules/react-table/src/plugin-hooks/useRowState.js","../node_modules/react-table/src/plugin-hooks/useColumnOrder.js","../node_modules/react-table/src/plugin-hooks/useResizeColumns.js","../node_modules/react-table/src/plugin-hooks/useAbsoluteLayout.js","../node_modules/react-table/src/plugin-hooks/useBlockLayout.js","../node_modules/react-table/src/plugin-hooks/useFlexLayout.js","../node_modules/react-table/src/plugin-hooks/useGridLayout.js","../node_modules/react-table/index.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/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/constructors/keyframes.js","../node_modules/styled-components/src/base.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.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/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/src/observe.ts","../node_modules/src/InView.tsx","../webpack/bootstrap","../webpack/runtime/compat get default export","../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/css loading","../webpack/runtime/jsonp chunk loading","components/layout/LayoutStyles.ts","components/header/HeaderStyles.ts","components/navigation/NavigationStyles.ts","components/navigation/Navigation.tsx","components/header/Header.tsx","hooks/useClickOutside.ts","components/footer/FooterStyles.ts","assets/icons/Medium.tsx","components/footer/Footer.tsx","assets/icons/ChatIcon.tsx","components/cookieModal/CookieModalStyles.ts","../node_modules/universal-cookie/es6/utils.js","../node_modules/universal-cookie/es6/Cookies.js","../node_modules/universal-cookie/es6/index.js","../node_modules/react-cookie/es6/Cookies.js","../node_modules/react-cookie/es6/CookiesContext.js","../node_modules/react-cookie/es6/useCookies.js","../node_modules/react-cookie/es6/utils.js","components/cookieModal/CookieModal.tsx","components/layout/Layout.tsx","../node_modules/react-cookie/es6/CookiesProvider.js","AppStyles.ts","pages/posts/eLearningMobileAppDevelopment/ELearningMobileAppDevelopmentStyles.ts","pages/posts/eLearningMobileAppDevelopment/ELearningMobileAppDevelopment.tsx","pages/posts/sevenWaysToUseArtificialIntelligenceInEducation/SevenWaysToUseArtificialIntelligenceInEducationStyles.ts","pages/posts/sevenWaysToUseArtificialIntelligenceInEducation/SevenWaysToUseArtificialIntelligenceInEducation.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["import React from 'react';\n\nfunction ArrowDownIcon({ color = '#49A7AD' }) {\n return (\n \n \n \n );\n}\n\nexport default ArrowDownIcon;\n","import React from 'react';\n\nfunction ArrowRightIcon({ width = 8, height = 16, color = '#49A7AD' }) {\n return (\n \n \n \n );\n}\n\nexport default ArrowRightIcon;\n","import React from 'react';\n\nfunction DownArrowIcon({ width = 12, height = 12, color = '#141414' }) {\n return (\n \n \n \n );\n}\n\nexport default DownArrowIcon;\n","import React from 'react';\n\nfunction Facebook({ color = '#FDFDFD' }) {\n return (\n \n \n \n );\n}\n\nexport default Facebook;\n","import React from 'react';\n\nfunction Linkedin({ color = '#FDFDFD' }) {\n return (\n \n \n \n );\n}\n\nexport default Linkedin;\n","import styled, { css } from 'styled-components';\n\nfunction getCasesStyles(textHeight?: number[]) {\n let styles = '';\n\n if (textHeight) {\n for (let i = 0; i < textHeight.length; i += 1) {\n styles += `\n &.FAQItem${i} {\n p {\n max-height: ${textHeight[i]}px;\n };\n }\n `;\n }\n }\n\n return css`${styles}`;\n}\n\ninterface Props {textHeiht?: number[]}\n\nexport const FAQStyles = styled.div`\n padding: 56px 0;\n \n @media (min-width: 769px) {\n padding: 100px 0;\n }\n \n ul {\n display: grid;\n gap: 24px;\n place-items: center;\n \n list-style: none;\n \n li {\n width: 100%;\n max-width: 794px;\n color: #141414;\n \n \n &.active {\n ${(props) => getCasesStyles(props.textHeiht)};\n \n p {\n padding-top: 8px;\n \n opacity: 1;\n pointer-events: auto;\n }\n \n button {\n svg {\n transform: rotate(-180deg);\n }\n }\n }\n \n p {\n padding: 0 16px;\n max-height: 0;\n opacity: 0;\n transition: 0.5s ease all;\n pointer-events: none;\n }\n \n button {\n position: relative;\n z-index: 1;\n \n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 6px;\n width: 100%;\n margin: auto;\n \n padding: 16px;\n background: #FDFDFD;\n\n box-shadow: 1px 1px 12px rgba(6, 6, 6, 0.12);\n border-radius: 8px;\n text-align: left;\n \n svg {\n transition: 0.3s ease all;\n }\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { FAQStyles } from './FAQStyles';\nimport TitleWithDescription from '../titileWithDescription/TitleWithDescription';\nimport ArrowDownIcon from '../../assets/icons/ArrowDownIcon';\n\ninterface Props {\n description: string,\n descriptionMaxWidth?: number,\n data: {title: string, description: string}[],\n}\n\nfunction Faq({\n descriptionMaxWidth, description, data,\n}: Props) {\n const [activeDropdownsIndexes, setActiveDropdownsIndexes] = useState([]);\n const [textHeights, setTextHeights] = useState([]);\n\n function handleActiveDropdownsIndexes(index: number) {\n if (activeDropdownsIndexes.includes(index)) {\n return setActiveDropdownsIndexes(activeDropdownsIndexes.filter((i) => i !== index));\n }\n\n return setActiveDropdownsIndexes([...activeDropdownsIndexes, index]);\n }\n\n useEffect(() => {\n setTextHeights(Array.prototype.slice.call(document.getElementsByClassName('FAQItem')).map((item) => item.scrollHeight));\n }, []);\n\n return (\n \n
\n \n\n
    \n {data.map((item, index) => (\n
  • \n \n\n

    \n {item.description}\n

    \n
  • \n ))}\n
\n
\n
\n );\n}\n\nexport default Faq;\n","import styled from 'styled-components';\n\nexport const BannerStyles = styled.div`\n position: relative;\n \n .backgroundContainer {\n width: 100%;\n height: 100%;\n position: absolute;\n\n .mask {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n \n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n \n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n \n .bigButton {\n padding: 0 10px;\n \n @media (max-width: 768px) {\n font-size: 14px;\n text-align: center;\n }\n }\n \n .content {\n color: #FDFDFD;\n position: relative;\n z-index: 1;\n \n .bannerTitle, .bannerDescription {\n white-space: pre-wrap;\n }\n \n a {\n min-width: fit-content;\n }\n \n .titleWrapper {\n overflow: hidden;\n \n &.animationActive {\n .bannerTitle {\n transform: translateY(0);\n opacity: 1;\n }\n }\n \n .bannerTitle {\n transform: translateY(101%);\n opacity: 0;\n transition: 1.4s all;\n }\n }\n\n .descriptionWrapper {\n overflow: hidden;\n\n &.animationActive {\n .bannerDescription {\n opacity: 1;\n }\n }\n\n .bannerDescription {\n opacity: 0;\n transition: 1.4s all;\n transition-delay: 0.8s;\n }\n }\n }\n`;\n","import React from 'react';\nimport { BannerStyles } from './BannerStyles';\nimport { useLocation } from 'react-router-dom';\nimport { InView } from 'react-intersection-observer';\n\ninterface Props {\n title: string,\n description: string,\n // bannerHeight: string,\n buttonText?: string,\n backgroundImage?: string,\n backgroundImageMobile?: string,\n backgroundVideo?: any,\n backroundMaskColor?: string,\n button? : boolean;\n onClickToButton?: () => void;\n bigSheduledButton?: boolean;\n alt?: string;\n withoutButton?: boolean;\n alterDescriptionClasses?: string;\n}\n\nfunction Banner({\n backgroundImage, title, description, buttonText, onClickToButton, backgroundVideo, backroundMaskColor, button, bigSheduledButton, backgroundImageMobile, alt, withoutButton, alterDescriptionClasses,\n}: Props) {\n return (\n \n
\n {backroundMaskColor &&
}\n\n {backgroundVideo ? (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n ) : backgroundImage && backgroundImageMobile ? (\n \n \n {alt}\n \n ) : backgroundImage ? (\n {alt}\n ) : ''}\n
\n
\n
\n (inView ? entry.target.classList.add('animationActive') : '')}>\n

{title}

\n
\n (inView ? entry.target.classList.add('animationActive') : '')}>\n

{description}

\n
\n {bigSheduledButton && !withoutButton ? (\n Schedule a free 30-minute consultation\n ) : !withoutButton ? (\n Schedule a call\n ) : ''}\n
\n
\n \n );\n}\n\nexport default Banner;\n","import styled from 'styled-components';\n\nexport const LinksPathStyles = styled.div`\n padding: 16px 0;\n \n @media (min-width: 769px) {\n padding: 24px 0;\n }\n \n &.withMarginBottom {\n margin-bottom: 8px;\n \n @media (min-width: 769px) {\n margin-bottom: 16px;\n }\n }\n \n ul {\n list-style: none;\n \n display: flex;\n align-items: center;\n \n li {\n margin: 0 7px;\n }\n \n li:first-child {\n margin-left: 0;\n }\n }\n \n span {\n font-weight: 600;\n font-size: 14px;\n line-height: 22px;\n color: #8C8C8C;\n }\n \n a {\n font-weight: 600;\n font-size: 14px;\n line-height: 22px;\n color: #8C8C8C;\n transition: 0.3s ease color;\n \n &:hover {\n color: #49A7AD;\n }\n }\n \n li:last-child {\n a {\n color: #141414;\n }\n }\n \n \n li:first-child {\n svg {\n path {\n transition: 0.3s linear fill;\n }\n }\n \n &:hover {\n svg {\n path {\n fill: #49A7AD;\n }\n }\n }\n }\n \n .homeLink {\n display: grid;\n grid-template-columns: min-content min-content;\n gap: 4px;\n align-items: center;\n }\n`;\n","import React from 'react';\n\nfunction HomeIcon({ width = 14, height = 14, color = '#8C8C8C' }) {\n return (\n \n \n \n );\n}\n\nexport default HomeIcon;\n","import React, { Fragment } from 'react';\nimport { LinksPathStyles } from './LinksPathStyles';\nimport { Link } from 'react-router-dom';\nimport HomeIcon from '../../assets/icons/HomeIcon';\nimport ArrowRightIcon from '../../assets/icons/ArrowRightIcon';\n\nfunction LinksPath({ pathArr, withMarginBottom }: {pathArr: {path: string, name: string}[], withMarginBottom?: boolean}) {\n return (\n \n
\n
    \n
  • \n \n \n Home\n \n
  • \n \n {pathArr.map((pathPart, index) => {\n if (pathArr.length !== index + 1) {\n return (\n \n
  • \n \n \n {pathPart.name}\n \n \n
  • \n\n {index + 1 < pathArr.length && }\n
    \n );\n }\n\n return (\n \n
  • \n \n {pathPart.name}\n \n
  • \n
    \n );\n })}\n
\n
\n
\n );\n}\n\nexport default LinksPath;\n","import styled from 'styled-components';\n\nexport const ListWithColorDotsStyles = styled.ul`\n display: grid;\n gap: 8px;\n \n @media (min-width: 769px) {\n gap: 12px;\n padding-left: 32px;\n }\n \n .dotWrapper {\n display: flex;\n gap: 8px;\n }\n \n .dotContainer {\n display: flex;\n align-items: center;\n height: 28px;\n \n @media (max-width: 768px) {\n height: 24px;\n }\n }\n\n li {\n display: grid;\n grid-template-columns: 16px 1fr;\n gap: 12px;\n \n @media (max-width: 768px) {\n padding-left: 0;\n }\n \n a {\n color: #49A7AD;\n \n &:hover {\n text-decoration: underline;\n }\n }\n \n &.descriptionFromNewLine {\n grid-template-columns: 1fr;\n gap: 4px;\n }\n \n .dot {\n width: 6px;\n height: 6px;\n border-radius: 100%;\n background: linear-gradient(284.75deg, #74CDCB 0%, #0E3753 100%);\n }\n }\n`;\n","import React, { CSSProperties, Fragment } from 'react';\nimport { ListWithColorDotsStyles } from './ListWithColorDotsStyles';\nimport { Link } from 'react-router-dom';\nimport { IPostList } from '../../entities/IPost';\n\nfunction ListWithColorDots({\n data, extraBlockStyles, descriptionFromNewLine, listTitle,\n}: {data: IPostList[], extraBlockStyles?: CSSProperties, descriptionFromNewLine?: boolean, listTitle?: string}) {\n return (\n \n {/* {listTitle} */}\n {data.map((item, index) => (\n
  • \n
    \n
    \n
    \n
    \n\n {item.title && descriptionFromNewLine && {item.title}}\n
    \n\n \n {item.title && !descriptionFromNewLine && {item.title}}\n {' '}\n

    \n {item.itemData.map((item) => {\n if (item.key === 'text') {\n return (\n \n {item.fromNewLine &&
    }\n {item.text}\n {item.withBr && (\n <>\n
    \n
    \n \n )}\n {!item.withoutSpace && ' '}\n\n
    \n );\n }\n\n if (item.key === 'link' && item.path) {\n return (\n \n {item.linkToOurSite ? (\n <>\n {item.fromNewLine &&
    }\n {item.text}\n \n ) : (\n <>\n {item.fromNewLine &&
    }\n {item.text}\n \n )}\n {!item.withoutSpace && ' '}\n
    \n );\n }\n\n return null;\n })}\n

    \n
    \n
  • \n ))}\n
    \n );\n}\n\nexport default ListWithColorDots;\n","import styled from 'styled-components';\n\nexport const PostStyles = styled.div`\n .authorContainer {\n gap: 16px;\n\n padding-bottom: 40px;\n margin-bottom: 16px;\n border-bottom: 1px solid #D9D9D9;\n\n @media (min-width: 790px) {\n gap: 41px;\n }\n\n &.authorDesktop {\n display: none;\n \n @media (min-width: 1024px) {\n display: flex;\n }\n }\n\n &.authorMobile {\n @media (min-width: 1024px) {\n display: none;\n }\n }\n \n .imageWithSocialMedias {\n max-width: 88px;\n margin-bottom: 16px;\n \n @media (min-width: 1024px) {\n max-width: fit-content;\n margin-bottom: 0;\n }\n \n img {\n margin-bottom: 12px;\n width: 88px;\n height: 88px;\n\n @media (min-width: 1024px) {\n width: 138px;\n height: 138px;\n }\n }\n\n .socialMediasContainer {\n display: flex;\n justify-content: center;\n gap: 24px;\n\n .iconWrapper {\n display: grid;\n place-content: center;\n\n width: 32px;\n height: 32px;\n border: 1px solid #141414;\n border-radius: 100%;\n\n transition: 0.3s ease color;\n\n &:hover {\n border-color: #49A7AD;\n\n svg {\n path {\n fill: #49A7AD;\n }\n }\n }\n\n svg {\n path {\n transition: 0.2s ease fill;\n }\n }\n }\n }\n }\n\n .authorContent {\n display: flex;\n flex-direction: column;\n\n justify-content: space-between;\n\n .textWrapper {\n margin-bottom: 16px;\n\n max-width: 612px;\n\n @media (min-width: 1024px) {\n margin-bottom: 24px;\n }\n\n .nameWrapper {\n margin-bottom: 8px;\n\n @media (min-width: 1024px) {\n margin-bottom: 16px;\n }\n\n h3 {\n margin-bottom: 4px;\n }\n }\n }\n }\n }\n\n .postContent {\n display: grid;\n gap: 24px;\n \n @media (min-width: 1024px) {\n grid-template-columns: repeat(12, 1fr);\n gap: 20px;\n }\n \n .tableContainer {\n overflow: scroll;\n\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n \n .navContainer {\n display: grid;\n grid-row: 1/2;\n gap: 12px;\n \n padding: 16px;\n height: min-content;\n box-sizing: border-box;\n \n background: #FFFFFF;\n box-shadow: 1px 1px 12px rgba(6, 6, 6, 0.12);\n border-radius: 4px;\n\n @media (min-width: 1024px) {\n position: sticky;\n top: 112px;\n \n grid-column: 9/13;\n gap: 16px;\n\n padding: 24px;\n }\n \n .navList {\n display: grid;\n gap: 8px;\n list-style: none;\n\n @media (min-width: 1024px) {\n gap: 12px;\n }\n\n button {\n font-weight: 600;\n color: #141414;\n text-align: left;\n font-size: 16px;\n line-height: 24px;\n padding-left: 16px;\n\n @media (min-width: 1024px) {\n font-size: 18px;\n line-height: 26px;\n }\n \n &.active {\n color: #49A7AD;\n border-left: 1px solid #49A7AD;\n }\n }\n }\n }\n \n .imageContainer {\n display: grid;\n place-items: center;\n gap: 8px;\n \n img {\n width: 100%;\n }\n }\n \n .link {\n color: #49A7AD;\n \n &:hover {\n text-decoration: underline;\n }\n }\n \n .textContainer {\n display: grid;\n gap: 16px;\n\n @media (min-width: 1024px) {\n gap: 24px;\n grid-column: 1/9;\n }\n\n .item {\n display: grid;\n gap: 8px;\n\n @media (min-width: 1024px) {\n gap: 12px;\n }\n }\n\n h2 {\n font-weight: 700;\n font-size: 22px;\n line-height: 128%;\n letter-spacing: 0.02em;\n color: #141414;\n\n @media (min-width: 1024px) {\n font-size: 28px;\n line-height: 42px;\n }\n }\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const NumberedListStyles = styled.ul`\n display: grid;\n gap: 12px;\n \n li {\n display: grid;\n grid-template-columns: 48px 1fr;\n gap: 24px;\n \n list-style: none;\n \n @media (max-width: 768px) {\n gap: 8px;\n }\n \n .number {\n display: grid;\n place-content: center;\n \n width: 48px;\n height: 48px;\n box-sizing: border-box;\n\n background: #FDFDFD;\n border: 2px solid #49A7AD;\n border-radius: 100%;\n font-weight: 700;\n font-size: 22px;\n line-height: 34px;\n text-align: center;\n letter-spacing: 0.02em;\n color: #49A7AD;\n }\n }\n`;\n","import React, { Fragment } from 'react';\nimport { NumberedListStyles } from './NumberedListStyles';\nimport { Link } from 'react-router-dom';\n\nfunction NumberedList({ data }: {data: { itemData: {key: 'link' | 'text', text: string, path?: string, linkToOurSite?: boolean, withBr?: boolean, fromNewLine?: boolean}[], title?: string }[]}) {\n return (\n \n {data.map((item, index) => (\n
  • \n
    {index + 1}
    \n
    \n {item.title &&

    {item.title}

    }\n

    \n

    \n {item.itemData.map((item) => {\n if (item.key === 'text') {\n return (\n \n {item.fromNewLine &&
    }\n {item.text}\n {item.withBr && (\n <>\n
    \n
    \n \n )}\n {' '}\n
    \n );\n }\n\n if (item.key === 'link' && item.path) {\n return (\n \n {item.linkToOurSite ? {item.text} : {item.text}}\n {' '}\n \n );\n }\n\n return null;\n })}\n

    \n

    \n
    \n
  • \n ))}\n
    \n );\n}\n\nexport default NumberedList;\n","import styled from 'styled-components';\n\nexport const ListWithBigTitleWithoutDotsStyles = styled.ul`\n display: grid;\n gap: 12px;\n \n li {\n display: grid;\n grid-template-columns: 1fr;\n \n list-style: none;\n \n @media (max-width: 768px) {\n gap: 8px;\n }\n \n .number {\n display: grid;\n place-content: center;\n \n width: 48px;\n height: 48px;\n box-sizing: border-box;\n\n background: #FDFDFD;\n border: 2px solid #49A7AD;\n border-radius: 100%;\n font-weight: 700;\n font-size: 22px;\n line-height: 34px;\n text-align: center;\n letter-spacing: 0.02em;\n color: #49A7AD;\n }\n \n a {\n color: #49A7AD;\n }\n }\n`;\n","import React, { Fragment } from 'react';\nimport { ListWithBigTitleWithoutDotsStyles } from './ListWithBigTitleWithoutDotsStyles';\nimport { Link } from 'react-router-dom';\nimport { IPostList } from '../../entities/IPost';\n\nfunction ListWithBigTitleWithoutDots({ data }: {data: IPostList[]}) {\n return (\n \n {data.map((item, index) => (\n
  • \n
    \n {item.title &&

    {item.title}

    }\n

    \n

    \n {item.itemData.map((item) => {\n if (item.key === 'text') {\n return (\n \n {item.fromNewLine &&
    }\n {item.text}\n {item.withBr && (\n <>\n
    \n
    \n \n )}\n {!item.withoutSpace && ' '}\n
    \n );\n }\n\n if (item.key === 'link' && item.path) {\n return (\n \n {item.linkToOurSite ? {item.text} : {item.text}}\n {!item.withoutSpace && ' '}\n \n );\n }\n\n return null;\n })}\n

    \n

    \n
    \n
  • \n ))}\n
    \n );\n}\n\nexport default ListWithBigTitleWithoutDots;\n","import styled from 'styled-components';\n\nexport const TableStyles = styled.table`\n \n @media (max-width: 768px) {\n width: 736px;\n }\n \n td {\n white-space: pre-wrap;\n },\n`;\n","import React from 'react';\nimport { useTable } from 'react-table';\nimport { TableStyles } from './TableStyles';\n\ninterface Props {\n columns: {Header: string, accessor: string}[],\n data: any[],\n}\n\nfunction Table({ columns, data }: Props) {\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n } = useTable({ columns, data });\n\n return (\n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n {column.render('Header')}\n \n ))}\n \n ))}\n \n \n {rows.map((row) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => (\n \n {cell.render('Cell')}\n \n ))}\n \n );\n })}\n \n \n );\n}\n\nexport default Table;\n","import React, { Fragment, useRef, useState } from 'react';\nimport { socialLinksIcon, termsData } from '../../constants';\nimport ListWithColorDots from '../listWithColorDots/ListWithColorDots';\nimport { PostStyles } from './PostStyles';\nimport { IPostAuthor, IPostItem } from '../../entities/IPost';\nimport NumberedList from '../numberedList/NumberedList';\nimport { Link } from 'react-router-dom';\nimport { InView } from 'react-intersection-observer';\nimport ListWithBigTitleWithoutDots from '../listWithBigTitleWithoutDots/ListWithBigTitleWithoutDots';\nimport Table from '../table/Table';\n\n// function optionalStyles(options: {fontWeight?: number}) {\n// const result: any = {};\n//\n// Object.entries(options).forEach((option) => result[option[0]] = option[1]);\n//\n// return result;\n// }\n\nfunction PostList({ postData, author }: { postData: IPostItem[], author?: IPostAuthor }) {\n const [activeItem, setActiveItem] = useState(0);\n const [disabledInView, setDisabledInView] = useState(false);\n\n const timerRef = useRef(null);\n\n return (\n \n
    \n {author && (\n
    \n
    \n {author.name}\n\n
    \n {author.socialMedias.map((item) => {\n const Icon = socialLinksIcon[item.iconId].icon;\n return (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n
    \n );\n })}\n
    \n
    \n\n
    \n
    \n
    \n

    {author.name}

    \n {author.position}\n
    \n\n

    {author.description}

    \n
    \n\n Schedule a free consultation\n\n
    \n
    \n )}\n\n
    \n
    \n {author && (\n
    \n
    \n {author.name}\n\n
    \n {author.socialMedias.map((item) => {\n const Icon = socialLinksIcon[item.iconId].icon;\n return (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n
    \n );\n })}\n
    \n
    \n\n
    \n
    \n
    \n

    {author.name}

    \n {author.position}\n
    \n\n

    {author.description}

    \n
    \n\n Schedule a free consultation\n\n
    \n
    \n )}\n\n {postData.map((item, index) => (\n (inView && !disabledInView ? setActiveItem(index) : '')}>\n {item.title &&

    {item.title}

    }\n\n {item.content.map((contentItem, index) => {\n if (contentItem.key === 'p') {\n return

    {contentItem.text}

    ;\n }\n\n if (contentItem.key === 'table' && contentItem.tableData) {\n return (\n
    \n \n \n );\n }\n\n if (contentItem.key === 'list' && contentItem.listData) {\n if (contentItem.listTitle) {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n
    \n

    {contentItem.listTitle}

    \n \n
    \n
    \n );\n }\n\n // eslint-disable-next-line react/no-array-index-key\n return ;\n }\n\n if (contentItem.key === 'title') {\n return

    {contentItem.text}

    ;\n }\n\n if (contentItem.key === 'numberedList' && contentItem.listData) {\n if (contentItem.listTitle) {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n
    \n

    {contentItem.listTitle}

    \n \n
    \n
    \n );\n }\n\n // eslint-disable-next-line react/no-array-index-key\n return ;\n }\n\n if (contentItem.key === 'listWithBigTitleWithoutDots' && contentItem.listData) {\n if (contentItem.listTitle) {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n
    \n

    {contentItem.listTitle}

    \n \n
    \n
    \n );\n }\n\n // eslint-disable-next-line react/no-array-index-key\n return ;\n }\n\n if (contentItem.key === 'listWithTitleAndDescriptionInNewLine' && contentItem.listData) {\n if (contentItem.listTitle) {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n
    \n

    {contentItem.listTitle}

    \n \n
    \n
    \n );\n }\n\n // eslint-disable-next-line react/no-array-index-key\n return ;\n }\n\n if (contentItem.key === 'image' && contentItem.imageData) {\n return (\n // eslint-disable-next-line react/no-array-index-key\n
    \n {contentItem.imageData.alt}\n {contentItem.imageData.description && contentItem.imageData.descriptionLink\n ? {contentItem.imageData.description}\n :

    {contentItem.imageData.description}

    }\n
    \n );\n }\n\n if (contentItem.key === 'textWithLink' && contentItem.textWithLink) {\n return (\n // eslint-disable-next-line react/no-array-index-key\n

    \n {contentItem.textWithLink.map((item) => {\n if (item.key === 'text') {\n return (\n \n {item.text}\n {!item.withoutSpace && ' '}\n \n );\n }\n\n if (item.key === 'link' && item.link) {\n return (\n \n {item.linkToOurSite\n ? {item.text}\n : {item.text}}\n {' '}\n \n );\n }\n\n return '';\n })}\n

    \n );\n }\n\n return '';\n })}\n \n ))}\n \n\n
    \n Contents\n\n
      \n {postData.map((item, index) => {\n if (item.title && item.id) {\n return (\n
    • \n {\n const elem = document.getElementById(item.id!);\n\n if (elem) {\n setDisabledInView(true);\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n setDisabledInView(false);\n }, 1000);\n\n window.scroll({ behavior: 'smooth', top: elem.offsetTop - 100 });\n setActiveItem(index);\n // elem.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }}\n type=\"button\"\n className={activeItem === index ? 'active' : ''}\n >\n {item.title}\n \n
    • \n );\n }\n\n return '';\n })}\n
    \n\n
    \n \n \n \n );\n}\n\nexport default PostList;\n","import React from 'react';\nimport { Helmet } from 'react-helmet-async';\n\ninterface SeoPops {\n title?: string;\n description?: string;\n ogTitle?: string;\n ogDescription?: string;\n noIndexPage?: boolean;\n keywords?: string;\n noFollow?: boolean;\n lang?: string;\n}\n\nfunction Seo({\n title, description, ogTitle, ogDescription, noFollow = false, noIndexPage = false, keywords, lang = 'en',\n}: SeoPops) {\n return (\n \n {title || 'Moai Team | Custom software development company'}\n \n \n \n \n \n {keywords && (\n \n )}\n \n );\n}\n\nexport default Seo;\n","import styled from 'styled-components';\n\nexport const TitleWithDescriptionStyles = styled.div`\n overflow: hidden;\n \n .titleWithDescriptionContent {\n display: flex;\n flex-direction: column;\n align-items: center;\n transition: 1.2s all;\n\n margin-bottom: 40px;\n \n &.darkTheme {\n color: #FDFDFD;\n }\n \n h2 {\n margin-bottom: 12px;\n }\n \n p {\n max-width: 590px;\n }\n \n p, h2 {\n white-space: pre-wrap;\n text-align: center;\n }\n }\n\n .animationBottom {\n h2, h1 {\n transform: translateY(101%);\n opacity: 0;\n transition: 1.4s all;\n }\n\n p {\n opacity: 0;\n transition: 1.4s all;\n transition-delay: 0.8s;\n }\n\n &.animationActive {\n h2, h1 {\n transform: translateY(0);\n opacity: 1;\n }\n\n p {\n opacity: 1;\n }\n }\n }\n\n .animationTop {\n h2, h1 {\n transform: translateY(-101%);\n opacity: 0;\n transition: 1.4s all;\n }\n\n p {\n opacity: 0;\n transition: 1.4s all;\n transition-delay: 0.4s;\n }\n\n &.animationActive {\n h2, h1 {\n transform: translateY(0);\n opacity: 1;\n }\n\n p {\n opacity: 1;\n }\n }\n }\n\n .animationRight {\n .titleWithDescriptionContent {\n transform: translateX(101%);\n opacity: 0;\n \n transition: 1.2s ease all;\n }\n\n &.animationActive {\n .titleWithDescriptionContent {\n transform: translateX(0);\n opacity: 1;\n }\n }\n }\n\n .animationLeft {\n .titleWithDescriptionContent {\n transform: translateX(-101%);\n opacity: 0;\n\n transition: 1.2s ease all;\n }\n\n &.animationActive {\n .titleWithDescriptionContent {\n transform: translateX(0);\n opacity: 1;\n }\n }\n } \n \n .animationDescriptionLeftTitleRight {\n p {\n transform: translateX(calc(-50vh - 100%));\n opacity: 0;\n transition: 1.2s all;\n }\n\n h2, h1 {\n transform: translateX(calc(50vh + 100%));\n opacity: 0;\n transition: 1.2s all;\n }\n \n &.animationActive {\n p {\n transform: translateX(0);\n opacity: 1;\n }\n\n h2, h1 {\n transform: translateX(0);\n opacity: 1;\n }\n }\n } \n \n .animationDescriptionBottomTitleTop{\n p {\n transform: translateY(100%);\n opacity: 0;\n transition: 1.2s all;\n }\n\n h2, h1 {\n transform: translateY(-100%);\n opacity: 0;\n transition: 1.2s all;\n }\n \n &.animationActive {\n p {\n transform: translateY(0);\n opacity: 1;\n }\n\n h2, h1 {\n transform: translateY(0);\n opacity: 1;\n }\n }\n }\n\n .animationOpacity {\n .titleWithDescriptionContent {\n opacity: 0;\n\n transition: 1.2s ease all;\n }\n\n &.animationActive {\n .titleWithDescriptionContent {\n opacity: 1;\n }\n }\n }\n`;\n","import React from 'react';\nimport { TitleWithDescriptionStyles } from './TitleWithDescriptionStyles';\nimport { InView } from 'react-intersection-observer';\n\ninterface Props {\n title: string,\n description: string,\n darkTheme?: boolean,\n animationDirection?: 'Top' | 'Left' | 'Right' | 'Bottom' | 'Opacity' | 'DescriptionBottomTitleTop' | 'DescriptionLeftTitleRight',\n withH1?: boolean,\n descriptionMaxWidth?: number,\n titleMaxWidth?: number,\n}\n\nfunction TitleWithDescription({\n title, description, darkTheme, animationDirection, withH1, descriptionMaxWidth, titleMaxWidth,\n} : Props) {\n return (\n \n (inView ? entry.target.classList.add('animationActive') : '')}>\n
    \n {withH1 ?

    {title}

    :

    {title}

    }\n\n

    {description}

    \n
    \n
    \n
    \n );\n}\n\nexport default TitleWithDescription;\n","import React from 'react';\n\nfunction ValuesHonestyIcon({ width = 40, height = 56 }) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default ValuesHonestyIcon;\n","import React from 'react';\n\nfunction IntegrityValuesIcon({ width = 100, height = 100 }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default IntegrityValuesIcon;\n","import React from 'react';\n\nfunction CareValuesIcon({ width = 100, height = 100 }) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default CareValuesIcon;\n","import React from 'react';\n\nfunction ValuesTransparencyIcon({ width = 100, height = 100 }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default ValuesTransparencyIcon;\n","import React from 'react';\n\nfunction ValuesReliabilityIcon({ width = 100, height = 100 }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default ValuesReliabilityIcon;\n","import React from 'react';\n\nfunction ValuesSocialResponsibilityIcon({ width = 100, height = 100 }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default ValuesSocialResponsibilityIcon;\n","import React from 'react';\n\nfunction StackGolangIcon({ width = 80, height = 80, color = '141414' }) {\n return (\n \n \n \n );\n}\n\nexport default StackGolangIcon;\n","import React from 'react';\n\nfunction StackPHPIcon({ width = 80, height = 80, color = '#141414' }) {\n return (\n \n \n \n );\n}\n\nexport default StackPHPIcon;\n","import React from 'react';\n\nfunction StackPythonIcon({ width = 80, height = 80, color = '#141414' }) {\n return (\n \n \n \n );\n}\n\nexport default StackPythonIcon;\n","import React from 'react';\n\nfunction StackReactIcon({ width = 80, height = 80, color = '#141414' }) {\n return (\n \n \n \n );\n}\n\nexport default StackReactIcon;\n","import React from 'react';\n\nfunction StackReactNativeIcon({ width = 80, height = 80, color = '#141414' }) {\n return (\n \n \n \n );\n}\n\nexport default StackReactNativeIcon;\n","import React from 'react';\n\nfunction Linkedin2() {\n return (\n \n \n \n );\n}\n\nexport default Linkedin2;\n","import React from 'react';\n\nfunction Facebook2() {\n return (\n \n \n \n );\n}\n\nexport default Facebook2;\n","import React from 'react';\n\nfunction MediumLogoIcon() {\n return (\n \n \n \n );\n}\n\nexport default MediumLogoIcon;\n","import React from 'react';\n\nfunction CustomSoftwareCycleDataArrow1() {\n return (\n \n \n \n );\n}\n\nexport default CustomSoftwareCycleDataArrow1;\n","import React from 'react';\n\nfunction CustomSoftwareCycleDataArrow2() {\n return (\n \n \n \n );\n}\n\nexport default CustomSoftwareCycleDataArrow2;\n","import React from 'react';\n\nfunction CustomSoftwareCycleDataArrow3() {\n return (\n \n \n \n );\n}\n\nexport default CustomSoftwareCycleDataArrow3;\n","import React from 'react';\n\nfunction CustomSoftwareCycleDataArrow4() {\n return (\n \n \n \n );\n}\n\nexport default CustomSoftwareCycleDataArrow4;\n","import React from 'react';\n\nfunction CustomSoftwareCycleDataArrow5() {\n return (\n \n \n \n );\n}\n\nexport default CustomSoftwareCycleDataArrow5;\n","import React from 'react';\n\nfunction CustomSoftwareCycleDataArrow6() {\n return (\n \n \n \n );\n}\n\nexport default CustomSoftwareCycleDataArrow6;\n","import React from 'react';\n\nfunction CustomSoftwareCycleDataArrow7() {\n return (\n \n \n \n );\n}\n\nexport default CustomSoftwareCycleDataArrow7;\n","import React from 'react';\n\nfunction SoftwareReengineeringServicesCycleDataArrow1() {\n return (\n \n \n \n );\n}\n\nexport default SoftwareReengineeringServicesCycleDataArrow1;\n","import React from 'react';\n\nfunction SoftwareReengineeringServicesCycleDataArrow2() {\n return (\n \n \n \n );\n}\n\nexport default SoftwareReengineeringServicesCycleDataArrow2;\n","import React from 'react';\n\nfunction SoftwareReengineeringServicesCycleDataArrow3() {\n return (\n \n \n \n );\n}\n\nexport default SoftwareReengineeringServicesCycleDataArrow3;\n","import React from 'react';\n\nfunction BigDataServicesCycleDataArrow1() {\n return (\n \n \n \n );\n}\n\nexport default BigDataServicesCycleDataArrow1;\n","import React from 'react';\n\nfunction BigDataServicesCycleDataArrow2() {\n return (\n \n \n \n );\n}\n\nexport default BigDataServicesCycleDataArrow2;\n","import React from 'react';\n\nfunction BigDataServicesCycleDataArrow3() {\n return (\n \n \n \n );\n}\n\nexport default BigDataServicesCycleDataArrow3;\n","import React from 'react';\n\nfunction BigDataServicesCycleDataArrow4() {\n return (\n \n \n \n );\n}\n\nexport default BigDataServicesCycleDataArrow4;\n","import React from 'react';\n\nfunction BigDataServicesCycleDataArrow5() {\n return (\n \n \n \n );\n}\n\nexport default BigDataServicesCycleDataArrow5;\n","import React from 'react';\n\nfunction BigDataServicesCycleDataArrow6() {\n return (\n \n \n \n );\n}\n\nexport default BigDataServicesCycleDataArrow6;\n","import React from 'react';\n\nfunction ChatBotCycleDataArrow1() {\n return (\n \n \n \n );\n}\n\nexport default ChatBotCycleDataArrow1;\n","import React from 'react';\n\nfunction ChatBotCycleDataArrow2() {\n return (\n \n \n \n );\n}\n\nexport default ChatBotCycleDataArrow2;\n","import React from 'react';\n\nfunction ChatBotCycleDataArrow3() {\n return (\n \n \n \n );\n}\n\nexport default ChatBotCycleDataArrow3;\n","import React from 'react';\n\nfunction DevOpsCycleDataArrow1() {\n return (\n \n \n \n );\n}\n\nexport default DevOpsCycleDataArrow1;\n","import React from 'react';\n\nfunction DevOpsCycleDataArrow2() {\n return (\n \n \n \n );\n}\n\nexport default DevOpsCycleDataArrow2;\n","import React from 'react';\n\nfunction DevOpsCycleDataArrow3() {\n return (\n \n \n \n );\n}\n\nexport default DevOpsCycleDataArrow3;\n","import React from 'react';\n\nfunction AiSoftwareCycleDataArrow1() {\n return (\n \n \n \n );\n}\n\nexport default AiSoftwareCycleDataArrow1;\n","import React from 'react';\n\nfunction AiSoftwareCycleDataArrow2() {\n return (\n \n \n \n );\n}\n\nexport default AiSoftwareCycleDataArrow2;\n","import React from 'react';\n\nfunction AiSoftwareCycleDataArrow3() {\n return (\n \n \n \n );\n}\n\nexport default AiSoftwareCycleDataArrow3;\n","import React from 'react';\n\nfunction AiSoftwareCycleDataArrow4() {\n return (\n \n \n \n );\n}\n\nexport default AiSoftwareCycleDataArrow4;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow1() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow1;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow2() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow2;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow3() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow3;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow4() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow4;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow5() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow5;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow6() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow6;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow7() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow7;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow8() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow8;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow9() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow9;\n","import React from 'react';\n\nfunction UiUxSoftwareCycleDataArrow10() {\n return (\n \n \n \n );\n}\n\nexport default UiUxSoftwareCycleDataArrow10;\n","// @ts-ignore\nimport mainPageBG from './assets/images/moai-team-software-development-company.banner.webp';\nimport ValuesHonestyIcon from './assets/icons/ValuesHonestyIcon';\nimport IntegrityValuesIcon from './assets/icons/IntegrityValuesIcon';\nimport CareValuesIcon from './assets/icons/CareValuesIcon';\nimport ValuesTransparencyIcon from './assets/icons/ValuesTransparencyIcon';\nimport ValuesReliabilityIcon from './assets/icons/ValuesReliabilityIcon';\nimport ValuesSocialResponsibilityIcon from './assets/icons/ValuesSocialResponsibilityIcon';\nimport StackGolangIcon from './assets/icons/StackGolangIcon';\nimport StackPHPIcon from './assets/icons/StackPHPIcon';\nimport StackPythonIcon from './assets/icons/StackPythonIcon';\nimport StackReactIcon from './assets/icons/StackReactIcon';\nimport StackReactNativeIcon from './assets/icons/StackReactNativeIcon';\nimport servicesImageMainPage from './assets/images/moai-team-software-development-services.webp';\nimport industriesImage1 from './assets/images/moai-team-software-development-industries_1.webp';\nimport portfolioDjookyImage from './assets/images/djooky-software-development-project.webp';\nimport portfolioSmartExpertImage from './assets/images/smartexpert-software-development-project-2.webp';\nimport portfolioFexNetImage from './assets/images/fex-net-software-development-project.webp';\nimport portfolioPetsensusImage from './assets/images/petsensus-software-development-project-1.webp';\nimport portfolioAddictiveLearningImage from './assets/images/addictive-learning-software-development-project.webp';\nimport portfolioVoicerImage from './assets/images/voicer-software-development-project.webp';\nimport portfolio777ScoreImage from './assets/images/777score-software-development-project.webp';\nimport portfolioAvilovaImage from './assets/images/avilova-fund-website-development-project.webp';\nimport portfolioHappyFamilyImage from './assets/images/happy-family-website-development-project.webp';\nimport portfolioNoImage from './assets/images/portfolioNoImage.webp';\n\nimport portfolioDjookyImageMobile from './assets/images/djooky-software-development-project-1.webp';\nimport portfolioSmartExpertImageMobile from './assets/images/smartexpert-software-development-project-1.webp';\nimport portfolioFexNetImageMobile from './assets/images/fex-net-software-development-project-1.webp';\nimport portfolioPetsensusImageMobile from './assets/images/petsensus-software-development-project-3.webp';\nimport portfolioAddictiveLearningImageMobile\n from './assets/images/addictive-learning-software-development-project-1.webp';\nimport portfolioVoicerImageMobile from './assets/images/voicer-software-development-project-1.webp';\nimport portfolio777ScoreImageMobile from './assets/images/777score-software-development-project-1.webp';\nimport portfolioAvilovaImageMobile from './assets/images/avilova-fund-website-development-project-1.webp';\nimport portfolioHappyFamilyImageMobile from './assets/images/happy-family-website-development-project-1.webp';\nimport portfolioNoImageMobile from './assets/images/portfolioNoImageMobile.webp';\n\nimport leader1 from './assets/images/aleksandr-duchenchuk-ceo-co-founder-moai.team.webp';\nimport leader2 from './assets/images/denis-olenin-cto-co-founder-moai.team.webp';\nimport Linkedin2 from './assets/icons/Linkedin2';\nimport Facebook2 from './assets/icons/Facebook2';\nimport socialResponsibilityAvilova from './assets/images/socialResponsibilityAvilova.webp';\nimport socialResponsibilityHappyFamily from './assets/images/socialResponsibilityHappyFamily.webp';\nimport servicesImg1 from './assets/images/services1.webp';\nimport servicesImg1Mobile from './assets/images/services1mobile.webp';\nimport servicesImg2 from './assets/images/services2.webp';\nimport servicesImg2Mobile from './assets/images/services2mobile.webp';\nimport servicesImg3 from './assets/images/services3.webp';\nimport servicesImg3Mobile from './assets/images/services3mobile.webp';\nimport servicesImg4 from './assets/images/services4.webp';\nimport servicesImg4Mobile from './assets/images/services4mobile.webp';\nimport servicesImg5 from './assets/images/services5.webp';\nimport servicesImg5Mobile from './assets/images/services5mobile.webp';\nimport servicesImg6 from './assets/images/services6.webp';\nimport servicesImg6Mobile from './assets/images/services6mobile.webp';\nimport servicesImg7 from './assets/images/services7.webp';\nimport servicesImg7Mobile from './assets/images/services7mobile.webp';\nimport MediumLogoIcon from './assets/icons/MediumLogoIcon';\n\nimport customSoftwareDevelopmentPortfolioImg1 from './assets/images/custom-software-development-portfolio-1.webp';\nimport customSoftwareDevelopmentPortfolioImg2 from './assets/images/custom-software-development-portfolio-2.webp';\nimport CustomSoftwareCycleDataArrow1 from './assets/icons/CustomSoftwareCycleDataArrow1';\nimport CustomSoftwareCycleDataArrow2 from './assets/icons/CustomSoftwareCycleDataArrow2';\nimport CustomSoftwareCycleDataArrow3 from './assets/icons/CustomSoftwareCycleDataArrow3';\nimport CustomSoftwareCycleDataArrow4 from './assets/icons/CustomSoftwareCycleDataArrow4';\nimport CustomSoftwareCycleDataArrow5 from './assets/icons/CustomSoftwareCycleDataArrow5';\nimport CustomSoftwareCycleDataArrow6 from './assets/icons/CustomSoftwareCycleDataArrow6';\nimport CustomSoftwareCycleDataArrow7 from './assets/icons/CustomSoftwareCycleDataArrow7';\n\nimport softwareReengineeringServicesPortfolioImg1 from './assets/images/djooky-development-project.webp';\nimport softwareReengineeringServicesPortfolioImg2 from './assets/images/smartexpert-software-development-project.webp';\n\nimport SoftwareReengineeringServicesCycleDataArrow1 from './assets/icons/SoftwareReengineeringServicesCycleDataArrow1';\nimport SoftwareReengineeringServicesCycleDataArrow2 from './assets/icons/SoftwareReengineeringServicesCycleDataArrow2';\nimport SoftwareReengineeringServicesCycleDataArrow3 from './assets/icons/SoftwareReengineeringServicesCycleDataArrow3';\n\nimport UxUiDesignServicesPortfolioImg2 from './assets/images/petsensus-software-development-project.webp';\nimport BigDataServicesCycleDataArrow1 from './assets/icons/BigDataServicesCycleDataArrow1';\nimport BigDataServicesCycleDataArrow2 from './assets/icons/BigDataServicesCycleDataArrow2';\nimport BigDataServicesCycleDataArrow3 from './assets/icons/BigDataServicesCycleDataArrow3';\nimport BigDataServicesCycleDataArrow4 from './assets/icons/BigDataServicesCycleDataArrow4';\nimport BigDataServicesCycleDataArrow5 from './assets/icons/BigDataServicesCycleDataArrow5';\nimport BigDataServicesCycleDataArrow6 from './assets/icons/BigDataServicesCycleDataArrow6';\n\nimport chatBotPortfolioImage1 from './assets/images/chatBotPortfolioImage1.webp';\nimport chatBotPortfolioImage2 from './assets/images/chatBotPortfolioImage2.webp';\nimport React from 'react';\nimport ChatBotCycleDataArrow1 from './assets/icons/ChatBotCycleDataArrow1';\nimport ChatBotCycleDataArrow2 from './assets/icons/ChatBotCycleDataArrow2';\nimport ChatBotCycleDataArrow3 from './assets/icons/ChatBotCycleDataArrow3';\nimport DevOpsCycleDataArrow1 from './assets/icons/DevOpsCycleDataArrow1';\nimport DevOpsCycleDataArrow2 from './assets/icons/DevOpsCycleDataArrow2';\nimport DevOpsCycleDataArrow3 from './assets/icons/DevOpsCycleDataArrow3';\n\nimport AiSoftwareCycleDataArrow1 from './assets/icons/AiSoftwareCycleDataArrow1';\nimport AiSoftwareCycleDataArrow2 from './assets/icons/AiSoftwareCycleDataArrow2';\nimport AiSoftwareCycleDataArrow3 from './assets/icons/AiSoftwareCycleDataArrow3';\nimport AiSoftwareCycleDataArrow4 from './assets/icons/AiSoftwareCycleDataArrow4';\nimport UiUxSoftwareCycleDataArrow1 from './assets/icons/UiUxSoftwareCycleDataArrow1';\nimport UiUxSoftwareCycleDataArrow2 from './assets/icons/UiUxSoftwareCycleDataArrow2';\nimport UiUxSoftwareCycleDataArrow3 from './assets/icons/UiUxSoftwareCycleDataArrow3';\nimport UiUxSoftwareCycleDataArrow4 from './assets/icons/UiUxSoftwareCycleDataArrow4';\nimport UiUxSoftwareCycleDataArrow5 from './assets/icons/UiUxSoftwareCycleDataArrow5';\nimport UiUxSoftwareCycleDataArrow6 from './assets/icons/UiUxSoftwareCycleDataArrow6';\nimport UiUxSoftwareCycleDataArrow7 from './assets/icons/UiUxSoftwareCycleDataArrow7';\nimport UiUxSoftwareCycleDataArrow8 from './assets/icons/UiUxSoftwareCycleDataArrow8';\nimport UiUxSoftwareCycleDataArrow9 from './assets/icons/UiUxSoftwareCycleDataArrow9';\nimport UiUxSoftwareCycleDataArrow10 from './assets/icons/UiUxSoftwareCycleDataArrow10';\nimport portfolio2ItemsFexNetImage from './assets/images/fex-net-golang-development-project.webp';\nimport Golang3ItemsGreedDataIcon1\n from './assets/icons/companies-use-golang-to-build-business-software-because-of-efficiency.png';\nimport Golang3ItemsGreedDataIcon2\n from './assets/icons/companies-use-golang-to-build-business-software-because-of-optimized-data-processing.png';\nimport Golang3ItemsGreedDataIcon3\n from './assets/icons/companies-use-golang-to-build-business-software-because-of-scalability.png';\nimport Golang3ItemsGreedDataIcon4\n from './assets/icons/companies-use-golang-to-build-business-software-because-of-maintainability.png';\nimport Golang3ItemsGreedDataIcon5\n from './assets/icons/companies-use-golang-to-build-business-software-because-of-enhanced-performance.png';\nimport Golang3ItemsGreedDataIcon6\n from './assets/icons/companies-use-golang-to-build-business-software-because-of-security.png';\n\nimport Php3ItemsGreedDataIcon1\n from './assets/icons/companies-use-php-to-build-business-software-because-of-effortless-scalability.png';\nimport Php3ItemsGreedDataIcon2\n from './assets/icons/companies-use-php-to-build-business-software-because-of-improved-loading-speed.png';\nimport Php3ItemsGreedDataIcon3\n from './assets/icons/companies-use-php-to-build-business-software-because-of-reduced-costs.png';\nimport Php3ItemsGreedDataIcon4\n from './assets/icons/companies-use-php-to-build-business-software-because-of-rapid-development.png';\nimport Php3ItemsGreedDataIcon5\n from './assets/icons/companies-use-php-to-build-business-software-because-of-easy-maintenance.png';\nimport Php3ItemsGreedDataIcon6\n from './assets/icons/companies-use-php-to-build-business-software-because-of-cloud compatibility.png';\n\nimport python3ItemsGreedDataIcon1\n from './assets/icons/companies-use-python-to-build-business-software-because-of-rapid-development.png';\nimport python3ItemsGreedDataIcon2\n from './assets/icons/companies-use-python-to-build-business-software-because-of-increased-productivity.png';\nimport python3ItemsGreedDataIcon3\n from './assets/icons/companies-use-python-to-build-business-software-because-of-scalability.png';\nimport python3ItemsGreedDataIcon4\n from './assets/icons/companies-use-python-to-build-business-software-because-of-security.png';\nimport python3ItemsGreedDataIcon5\n from './assets/icons/companies-use-python-to-build-business-software-because-of-cost-effectiveness.png';\nimport python3ItemsGreedDataIcon6\n from './assets/icons/companies-use-python-to-build-business-software-because-of-reliability.png';\n\nimport reactNative3ItemsGreedDataIcon1\n from './assets/icons/companies-use-react-native-to-build-business-software-because-of-code reusability.png';\nimport reactNative3ItemsGreedDataIcon2\n from './assets/icons/companies-use-react-native-to-build-business-software-because-of-cost-efficiency.png';\nimport reactNative3ItemsGreedDataIcon3\n from './assets/icons/companies-use-react-native-to-build-business-software-because-of-animations.png';\nimport reactNative3ItemsGreedDataIcon4\n from './assets/icons/companies-use-react-native-to-build-business-software-because-of-high-quality-user-interface.png';\nimport reactNative3ItemsGreedDataIcon5\n from './assets/icons/companies-use-react-native-to-build-business-software-because-of-compatibility-with-third-party-plugins.png';\nimport reactNative3ItemsGreedDataIcon6\n from './assets/icons/companies-use-react-native-to-build-business-software-because-of-easy-maintenance.png';\n\nimport eLearningAreasOfExpertiseDataIcon1 from './assets/icons/key-features-of-eLearning-software-managements.png';\nimport eLearningAreasOfExpertiseDataIcon2 from './assets/icons/key-features-of-eLearning-software-ai.png';\nimport eLearningAreasOfExpertiseDataIcon3 from './assets/icons/key-features-of-eLearning-software-social.png';\nimport eLearningAreasOfExpertiseDataIcon4 from './assets/icons/key-features-of-eLearning-software-integrations.png';\n\nimport react3ItemsGreedDataIcon1\n from './assets/icons/companies-use-react-to-build-business-software-because-of-fast-development.png';\nimport react3ItemsGreedDataIcon2\n from './assets/icons/companies-use-react-to-build-business-software-because-of-reduced-costs.png';\nimport react3ItemsGreedDataIcon3\n from './assets/icons/companies-use-react-to-build-business-software-because-of-fast-loading-time.png';\nimport react3ItemsGreedDataIcon4\n from './assets/icons/companies-use-react-to-build-business-software-because-of-easy-transition-to-mobile.png';\nimport react3ItemsGreedDataIcon5\n from './assets/icons/companies-use-react-to-build-business-software-because-of-flexibility.png';\nimport react3ItemsGreedDataIcon6\n from './assets/icons/companies-use-react-to-build-business-software-because-of-easy-maintenance-and-updates.png';\n\nimport hrAreasOfExpertiseDataIcon1 from './assets/icons/key-features-of-hr-software-ai.png';\nimport hrAreasOfExpertiseDataIcon2 from './assets/icons/key-features-of-hr-software-recruitment.png';\nimport hrAreasOfExpertiseDataIcon3 from './assets/icons/key-features-of-hr-software-administrative-tasks.png';\nimport hrAreasOfExpertiseDataIcon4 from './assets/icons/key-features-of-hr-software-talent-management.png';\nimport hrAreasOfExpertiseDataIcon5 from './assets/icons/key-features-of-hr-software-performance-evaluation.png';\nimport hrAreasOfExpertiseDataIcon6 from './assets/icons/key-features-of-hr-software-training.png';\n\nimport media3ItemsGreedDataIcon1 from './assets/icons/key-features-of-media-and-entertainment-software-ai.png';\nimport media3ItemsGreedDataIcon2 from './assets/icons/key-features-of-media-and-entertainment-software-security.png';\nimport media3ItemsGreedDataIcon3\n from './assets/icons/key-features-of-media-and-entertainment-software-content-delivery.png';\nimport media3ItemsGreedDataIcon4\n from './assets/icons/key-features-of-media-and-entertainment-software-rich-viewer-experience.png';\nimport media3ItemsGreedDataIcon5\n from './assets/icons/key-features-of-media-and-entertainment-software-monetization.png';\nimport media3ItemsGreedDataIcon6\n from './assets/icons/key-features-of-media-and-entertainment-software-engagement-analytics.png';\n\nimport b2bAreasOfExpertiseDataIcon1 from './assets/icons/key-features-of-b2b-software-customer registration.png';\nimport b2bAreasOfExpertiseDataIcon2 from './assets/icons/key-features-of-b2b-software-password-protected-access.png';\nimport b2bAreasOfExpertiseDataIcon3 from './assets/icons/key-features-of-b2b-software-sophisticated-search.png';\nimport b2bAreasOfExpertiseDataIcon4 from './assets/icons/key-features-of-b2b-software-complex-pricing.png';\n\nimport customSoftwareCycleDataIcon1 from './assets/icons/software-development-life-cycle-step-one-analysis.png';\nimport customSoftwareCycleDataIconNotActive1\n from './assets/icons/software-development-life-cycle-step-one-analysis-2.png';\nimport customSoftwareCycleDataIcon2 from './assets/icons/software-development-life-cycle-step-two-planning.png';\nimport customSoftwareCycleDataIconNotActive2\n from './assets/icons/software-development-life-cycle-step-two-planning-2.png';\nimport customSoftwareCycleDataIcon3 from './assets/icons/software-development-life-cycle-step-three-ux-ui-design.png';\nimport customSoftwareCycleDataIconNotActive3\n from './assets/icons/software-development-life-cycle-step-three-ux-ui-design-2.png';\nimport customSoftwareCycleDataIcon4 from './assets/icons/software-development-life-cycle-step-four-development.png';\nimport customSoftwareCycleDataIconNotActive4\n from './assets/icons/software-development-life-cycle-step-four-development-2.png';\nimport customSoftwareCycleDataIcon5 from './assets/icons/software-development-life-cycle-step-five-testing.png';\nimport customSoftwareCycleDataIconNotActive5\n from './assets/icons/software-development-life-cycle-step-five-testing-2.png';\nimport customSoftwareCycleDataIcon6 from './assets/icons/software-development-life-cycle-step-six-deployment.png';\nimport customSoftwareCycleDataIconNotActive6\n from './assets/icons/software-development-life-cycle-step-six-deployment-2.png';\nimport customSoftwareCycleDataIcon7 from './assets/icons/software-development-life-cycle-step-seven-maintenance.png';\nimport customSoftwareCycleDataIconNotActive7\n from './assets/icons/software-development-life-cycle-step-seven-maintenance-2.png';\n\nimport softwareReengineeringServicesCycleDataIcon1\n from './assets/icons/software-reengineering-workflow-step-one-reverse-engineering.png';\nimport softwareReengineeringServicesCycleDataIconNotActive1\n from './assets/icons/software-reengineering-workflow-step-one-reverse-engineering-2.png';\n\nimport softwareReengineeringServicesCycleDataIcon2\n from './assets/icons/software-reengineering-workflow-step two-restructuring.png';\nimport softwareReengineeringServicesCycleDataIconNotActive2\n from './assets/icons/software-reengineering-workflow-step two-restructuring-2.png';\n\nimport softwareReengineeringServicesCycleDataIcon3\n from './assets/icons/software-reengineering-workflow-step-three-forward-engineering.png';\nimport softwareReengineeringServicesCycleDataIconNotActive3\n from './assets/icons/software-reengineering-workflow-step-three-forward-engineering-2.png';\n\nimport uiUxSoftwareCycleDataIcon1 from './assets/icons/ux-ui-design-process-step-one-research.png';\nimport uiUxSoftwareCycleDataIconNotActive1 from './assets/icons/ux-ui-design-process-step-one-research-2.png';\n\nimport uiUxSoftwareCycleDataIcon2 from './assets/icons/ux-ui-design-process-step-two-competitor-analysis.png';\nimport uiUxSoftwareCycleDataIconNotActive2\n from './assets/icons/ux-ui-design-process-step-two-competitor-analysis-2.png';\n\nimport uiUxSoftwareCycleDataIcon3 from './assets/icons/ux-ui-design-process-step-three-ideation.png';\nimport uiUxSoftwareCycleDataIconNotActive3 from './assets/icons/ux-ui-design-process-step-three-ideation-2.png';\n\nimport uiUxSoftwareCycleDataIcon4\n from './assets/icons/ux-ui-design-process-step-four-building-information-architecture.png';\nimport uiUxSoftwareCycleDataIconNotActive4\n from './assets/icons/ux-ui-design-process-step-four-building-information-architecture-2.png';\n\nimport uiUxSoftwareCycleDataIcon5 from './assets/icons/ux-ui-design-process-step-five-creating-user-flow.png';\nimport uiUxSoftwareCycleDataIconNotActive5\n from './assets/icons/ux-ui-design-process-step-five-creating-user-flow-2.png';\n\nimport uiUxSoftwareCycleDataIcon6 from './assets/icons/ux-ui-design-process-step-six-sketching.png';\nimport uiUxSoftwareCycleDataIconNotActive6 from './assets/icons/ux-ui-design-process-step-six-sketching-2.png';\n\nimport uiUxSoftwareCycleDataIcon7 from './assets/icons/ux-ui-design-process-step-seven-wireframing.png';\nimport uiUxSoftwareCycleDataIconNotActive7 from './assets/icons/ux-ui-design-process-step-seven-wireframing-2.png';\n\nimport uiUxSoftwareCycleDataIcon8 from './assets/icons/ux-ui-design-process-step-eight-prototyping.png';\nimport uiUxSoftwareCycleDataIconNotActive8 from './assets/icons/ux-ui-design-process-step-eight-prototyping-2.png';\n\nimport uiUxSoftwareCycleDataIcon9 from './assets/icons/ux-ui-design-process-step-nine-usability-testing.png';\nimport uiUxSoftwareCycleDataIconNotActive9 from './assets/icons/ux-ui-design-process-step-nine-usability-testing-2.png';\n\nimport uiUxSoftwareCycleDataIcon10 from './assets/icons/ux-ui-design-process-step-ten-iteration.png';\nimport uiUxSoftwareCycleDataIconNotActive10 from './assets/icons/ux-ui-design-process-step-ten-iteration-2.png';\n\nimport bigDataServicesCycleDataIcon1\n from './assets/icons/big-data-software-development-process-step-one-understanding-business-needs.png';\nimport bigDataServicesCycleDataNotActiveIcon1\n from './assets/icons/big-data-software-development-process-step-one-understanding-business-needs-2.png';\n\nimport bigDataServicesCycleDataIcon2\n from './assets/icons/big-data-software-development-process-step-two-choosing-technologies.png';\nimport bigDataServicesCycleDataNotActiveIcon2\n from './assets/icons/big-data-software-development-process-step-two-choosing-technologies-2.png';\n\nimport bigDataServicesCycleDataIcon3\n from './assets/icons/big-data-software-development-process-step-three-designing-architecture.png';\nimport bigDataServicesCycleDataNotActiveIcon3\n from './assets/icons/big-data-software-development-process-step-three-designing-architecture-2.png';\n\nimport bigDataServicesCycleDataIcon4\n from './assets/icons/big-data-software-development-process-step-four-creating-visualization-model.png';\nimport bigDataServicesCycleDataNotActiveIcon4\n from './assets/icons/big-data-software-development-process-step-four-creating-visualization-model-2.png';\n\nimport bigDataServicesCycleDataIcon5\n from './assets/icons/big-data-software-development-process-step-five-building-big-data-application.png';\nimport bigDataServicesCycleDataNotActiveIcon5\n from './assets/icons/big-data-software-development-process-step-five-building-big-data-application-2.png';\n\nimport bigDataServicesCycleDataIcon6\n from './assets/icons/big-data-software-development-process-step-six-quality-assurance-documentation-and-maintenance.png';\nimport bigDataServicesCycleDataNotActiveIcon6\n from './assets/icons/big-data-software-development-process-step-six-quality-assurance-documentation-and-maintenance-2.png';\n\nimport devOpsCycleDataIcon1 from './assets/icons/devops-and-secops-implementation-process-step-one-planning.png';\nimport devOpsCycleDataIconMobile1\n from './assets/icons/devops-and-secops-implementation-process-step-one-planning-2.png';\nimport devOpsCycleDataIcon2 from './assets/icons/devops-and-secops-implementation-process-step-two-implementation.png';\nimport devOpsCycleDataIconMobile2\n from './assets/icons/devops-and-secops-implementation-process-step-two-implementation-2.png';\nimport devOpsCycleDataIcon3 from './assets/icons/devops-and-secops-implementation-process-step-three-support.png';\nimport devOpsCycleDataIconMobile3\n from './assets/icons/devops-and-secops-implementation-process-step-three-support-2.png';\n\nimport aiSoftwareCycleDataIcon1 from './assets/icons/ai-software-development-process-step-one-research.png';\nimport aiSoftwareCycleDataNotActiveIcon1 from './assets/icons/ai-software-development-process-step-one-research-2.png';\nimport aiSoftwareCycleDataIcon2 from './assets/icons/ai-software-development-process-step-two-design.png';\nimport aiSoftwareCycleDataNotActiveIcon2 from './assets/icons/ai-software-development-process-step-two-design-2.png';\nimport aiSoftwareCycleDataIcon3 from './assets/icons/ai-software-development-process-step-three-development.png';\nimport aiSoftwareCycleDataNotActiveIcon3\n from './assets/icons/ai-software-development-process-step-three-development-2.png';\nimport aiSoftwareCycleDataIcon4 from './assets/icons/ai-software-development-process-step-four-testing.png';\nimport aiSoftwareCycleDataNotActiveIcon4 from './assets/icons/ai-software-development-process-step-four-testing-2.png';\n\nimport chatBotCycleDataIcon1 from './assets/icons/chatbot-development-process-step-one-gathering-requirements.png';\nimport chatBotCycleDataNotActiveIcon1\n from './assets/icons/chatbot-development-process-step-one-gathering-requirements-2.png';\nimport chatBotCycleDataIcon2 from './assets/icons/chatbot-development-process-step-two-design-and-development.png';\nimport chatBotCycleDataNotActiveIcon2\n from './assets/icons/chatbot-development-process-step-two-design-and-development-2.png';\nimport chatBotCycleDataIcon3 from './assets/icons/chatbot-development-process-step-three-testing.png';\nimport chatBotCycleDataNotActiveIcon3 from './assets/icons/chatbot-development-process-step-three-testing-2.png';\nimport { IPost, IPostItem } from './entities/IPost';\nimport Linkedin from './assets/icons/Linkedin';\nimport Facebook from './assets/icons/Facebook';\nimport postAuthorImage from './assets/images/Aleksandr-Duchenchuk.webp';\nimport post1Image1 from './assets/images/size-of-global-elearning-market-in-2019-and2026.webp';\n\nimport whatIsELearningGraphImage from './assets/images/elearning-market-size-global-report.webp';\n\nimport ELearningIn2022BannerBG\n from './assets/images/everything-you-need-to-know-about-eLearning-software-development.webp';\n\nimport whatIsElearningBannerBG from './assets/images/what-is-elearning.webp';\n\nimport prosAndConsBannerBG from './assets/images/pros-and-cons-of-elearning.webp';\n\nimport whatIsElearningTypesDataBG from './assets/images/what-is-elearning-software.webp';\n\nimport crucialStagesOfCustomElearningDataBG from './assets/images/custom-elearning-software-development-process.webp';\n\nimport crucialStagesOfCustomElearningDataPreviewImage from './assets/images/custom-elearning-software-development-process.promo.webp';\n\nimport prosAndConsBannerPreviewImage from './assets/images/pros-and-cons-of-elearning.promo.webp';\n\nimport whatIsElearningTypesDataPreviewImage from './assets/images/what-is-elearning-software.promo.webp';\n\nimport whatIsElearningBannerPreviewImage from './assets/images/what-is-elearning.promo.webp';\n\nimport ELearningIn2022BannerPreviewImage from './assets/images/everything-you-need-to-know-about-eLearning-software-development.promo.webp';\n\nimport eLearningMobileAppDataBG from './assets/images/elearning-app-development-cost.webp';\nimport eLearningMobileAppDataPreview from './assets/images/elearning-app-development-cost.preview.webp';\nimport { threeTypesOfElearningData } from './constants/posts/threeTypesOfElearningData';\nimport { fromChaosToAgilityData } from './constants/posts/fromChaosToAgilityData';\nimport {\n sevenWaysToUseArtificialIntelligenceInEducationData,\n} from './constants/posts/sevenWaysToUseArtificialIntelligenceInEducationData';\nimport {\n tenDisastrousMistakesStartupsMakeWhenOutsourcingSoftwareDevelopmentData,\n} from './constants/posts/tenDisastrousMistakesStartupsMakeWhenOutsourcingSoftwareDevelopmentData';\nimport { top10MobileAppsData } from './constants/posts/top10MobileAppsData';\n\nexport const test = {};\n\nexport const valuesItems: { text: string, icon: any}[] = [\n\n];\n\nexport const socialLinksIcon: {[key: string]: {key: string, icon: any}} = {\n 1: {\n key: 'linkedin',\n icon: Linkedin,\n },\n 2: {\n key: 'facebook',\n icon: Facebook,\n },\n};\n\nexport const bannerContent: {[key: string]: {backgroundImage?: string, title: string, description: string, video?: any}} = {\n main: {\n backgroundImage: mainPageBG,\n description: 'In Japanese, the word \"moai\" means \"meeting for a common purpose.\" People participate in a moai to share advice, offer assistance, and alleviate worry. And our team came together to help business owners leverage technology to achieve their goals. We build partnerships, not just a code.',\n title: 'Custom software development company',\n },\n};\n\nexport const ourValuesItems: {svgImage: any, description: string, title: string}[] = [\n {\n title: 'Honesty',\n description: 'Honesty is a key component of a healthy relationship, and that’s true for business too. We believe that honesty fosters trust, which allows us to work more effectively.',\n svgImage: ValuesHonestyIcon,\n },\n {\n title: 'Integrity',\n description: 'Our team is committed to keeping our clients\\' best interests at heart — and that means we\\'ll be by your side through thick and thin, every step of the way.',\n svgImage: IntegrityValuesIcon,\n },\n {\n title: 'Care',\n description: 'We care about your product as much as you do, and we value your time and budgets. That\\'s why we work hard to exceed your expectations.',\n svgImage: CareValuesIcon,\n },\n {\n title: 'Transparency',\n description: 'We do not make false promises or try to make things look better than they are. Instead, we believe in being open with our clients and each other.',\n svgImage: ValuesTransparencyIcon,\n },\n {\n title: 'Reliability',\n description: ' Our team of software engineers is dedicated to ensuring that all of our products are rigorously tested prior to release. We never fail to meet a deadline.',\n svgImage: ValuesReliabilityIcon,\n },\n {\n title: 'Social responsibility',\n description: 'We believe in doing business with integrity, respecting the environment, and giving back to the community by donating a portion of our profits.',\n svgImage: ValuesSocialResponsibilityIcon,\n },\n];\n\nexport const technologies: {[key: string]: {name: string, icon: any, url: string}} = {\n golang: {\n name: 'Golang',\n icon: StackGolangIcon,\n url: '/golang-development-services',\n },\n php: {\n name: 'PHP',\n icon: StackPHPIcon,\n url: '/php-development-services',\n },\n python: {\n name: 'Python',\n icon: StackPythonIcon,\n url: '/python-development-services',\n },\n react: {\n name: 'React',\n icon: StackReactIcon,\n url: '/react-development-services',\n },\n reactNative: {\n name: 'React Native',\n icon: StackReactNativeIcon,\n url: '/react-native-development-services',\n },\n // flutter: {\n // name: 'Flutter',\n // icon: StackFlatterIcon,\n // url: '#',\n // },\n};\n\nexport const mainPageTechnologiesItems: {icon: any, title: string, description: string, link: string}[] = [\n {\n title: technologies.golang.name,\n icon: technologies.golang.icon,\n description: 'Golang is secure and efficient — making it a great choice for business owners looking to build a product with minimal downtime.',\n link: '/golang-development-services',\n },\n {\n title: technologies.php.name,\n icon: technologies.php.icon,\n description: 'PHP can be used to build almost anything — from eCommerce sites to content management systems like WordPress.',\n link: '/php-development-services',\n },\n {\n title: technologies.python.name,\n icon: technologies.python.icon,\n description: 'Python has become a favorite of business owners, developers, and data scientists for its reliability, versatility, and ability to handle large amounts of data.',\n link: '/python-development-services',\n },\n {\n title: technologies.react.name,\n icon: technologies.react.icon,\n description: 'React is a JavaScript library that is used to build lightweight and fast mobile applications.',\n link: '',\n },\n {\n title: technologies.reactNative.name,\n icon: technologies.reactNative.icon,\n description: 'React Native is a JavaScript framework for creating native iOS and Android applications.',\n link: '/react-native-development-services',\n },\n // {\n // title: technologies.flutter.name,\n // icon: technologies.flutter.icon,\n // description: 'Flutter helps to build high-performance, cross-platform mobile apps — instead of having to choose between fast performance and beautiful UIs, we can have both.',\n // link: '',\n // },\n];\n\nexport const technologiesPageItems: {icon: any, title: string, description: string, link: string}[] = [\n {\n title: technologies.golang.name,\n icon: technologies.golang.icon,\n description: 'Golang was created by Google engineers to improve programming productivity. It is secure and efficient - making it a great choice for business owners looking to build a product with minimal downtime.',\n link: '/golang-development-services',\n },\n {\n title: technologies.php.name,\n icon: technologies.php.icon,\n description: 'PHP has been around for nearly 30 years, and it\\'s still going strong. It can be used to build almost anything — from eCommerce sites to content management systems like WordPress.',\n link: '/php-development-services',\n },\n {\n title: technologies.python.name,\n icon: technologies.python.icon,\n description: 'Python is a powerful programming language that has become a favorite of business owners, developers, and data scientists for its reliability, versatility, and ability to handle large amounts of data.',\n link: '/python-development-services',\n },\n {\n title: technologies.react.name,\n icon: technologies.react.icon,\n description: 'React is a JavaScript library that is used to build user interfaces. It helps create dynamic, interactive web pages. Business owners leverage this technology to create lightweight and fast mobile applications.',\n link: '',\n },\n {\n title: technologies.reactNative.name,\n icon: technologies.reactNative.icon,\n description: 'React Native is a JavaScript framework for creating native iOS and Android applications. What started as Facebook\\'s internal Hackathon project is now one of the trending frameworks.',\n link: '/react-native-development-services',\n },\n // {\n // title: technologies.flutter.name,\n // icon: technologies.flutter.icon,\n // description: 'Flutter is used to develop cross-platform applications. The company behind it, Google, has said that Flutter apps can be built up to 70% faster than those built in native languages like Swift and Java.',\n // link: '',\n // },\n];\n\nexport const servicesMenuItems: {name: string, url: string}[] = [\n {\n name: 'Custom software development',\n url: '/custom-software-development-services',\n },\n {\n name: 'Software reengineering',\n url: '/software-reengineering-services',\n },\n {\n name: 'UX/UI design',\n url: '/ux-ui-design-services',\n },\n {\n name: 'Big data solutions',\n url: '/big-data-software-development-services',\n },\n {\n name: 'DevOps and SecOps',\n url: '/devops-and-secops-services',\n },\n {\n name: 'AI software development',\n url: '/ai-software-development-services',\n },\n {\n name: 'Chatbot development',\n url: '/chatbot-development-services',\n },\n];\n\nexport const industriesMenuItems: {name: string, url: string}[] = [\n {\n name: 'eLearning',\n url: '/elearning-software-development-services',\n },\n {\n name: 'HR tech',\n url: '/hr-software-development-services',\n },\n {\n name: 'Entertainment and media',\n url: '/media-and-entertainment-software-development-services',\n },\n {\n name: 'eCommerce',\n url: '/ecommerce-software-development-services',\n },\n {\n name: 'B2B',\n url: '/b2b-software-development-services',\n },\n];\n\nexport const companyMenuItems: {name: string, url: string}[] = [\n {\n name: 'About',\n url: '/about',\n },\n {\n name: 'Portfolio',\n url: '/portfolio',\n },\n {\n name: 'Blog',\n url: '/blog',\n },\n {\n name: 'Partnership program',\n url: '/software-development-partnership-program',\n },\n];\n\nexport const technologiesMenuItems: {name: string, url: string}[] = [\n {\n name: 'Golang',\n url: '/golang-development-services',\n },\n {\n name: 'PHP',\n url: '/php-development-services',\n },\n {\n name: 'Python',\n url: '/python-development-services',\n },\n {\n name: 'React',\n url: '/react-native-development-services',\n },\n {\n name: 'React Native',\n url: '/react-development-services',\n },\n];\n\nexport const menuItems: {[key: string]: { title: string, items: {name: string, url: string}[]}} = {\n services: {\n title: 'Services',\n items: servicesMenuItems,\n },\n industries: {\n title: 'Industries',\n items: industriesMenuItems,\n },\n technologies: {\n title: 'Technologies',\n items: technologiesMenuItems,\n },\n company: {\n title: 'Company',\n items: companyMenuItems,\n },\n};\n\ninterface IInfoSectionItem {\n image?: string,\n itemTitle: string,\n itemDescription: string,\n link?: string,\n imageAlt?: string\n}\n\ninterface IInfoSectionContent {\n title: string,\n description: string,\n buttonLink?: string,\n items: IInfoSectionItem[],\n theme: 'darkTheme' | 'lightTheme',\n soloImage?: string,\n alt?: string,\n}\n\nexport const servicesContent: IInfoSectionContent = {\n title: 'Services',\n description: 'We work closely with our clients to ensure that the final product is a perfect fit for their needs',\n buttonLink: '/services',\n theme: 'darkTheme',\n soloImage: servicesImageMainPage,\n alt: 'Moai Team, software development services',\n items: [\n {\n itemTitle: 'Custom software development',\n itemDescription: 'We can help you achieve your business goals by developing scalable software solutions that are tailored specifically to your needs.',\n link: 'custom-software-development-services',\n },\n {\n itemTitle: 'Software reengineering',\n itemDescription: 'With our expertise and experience, you can modernize your legacy application without disrupting your operations or putting your data at risk.',\n link: 'software-reengineering-services',\n },\n {\n itemTitle: 'UX/UI design',\n itemDescription: 'Our UX/UI designers create intuitive, aesthetically-pleasing interfaces that are in line with the latest trends and industry standards.',\n link: 'ux-ui-design-services',\n },\n {\n itemTitle: 'Big data solutions',\n itemDescription: 'Our team uses the latest Big Data technologies to provide you with real-time insights into your business so that you can make informed decisions.',\n link: 'big-data-software-development-services',\n },\n {\n itemTitle: 'DevOps/SecOps',\n itemDescription: 'We offer expert advice and hands-on technical support in all areas related to DevOps/SecOps to help you build efficient and secure software.',\n link: 'devops-and-secops-services',\n },\n {\n itemTitle: 'AI software development',\n itemDescription: 'We\\'re here to help you use the power of artificial intelligence in your business. Whether you need to automate processes or create a new product, we got you covered.',\n link: 'ai-software-development-services',\n },\n {\n itemTitle: 'Chatbot development',\n itemDescription: 'Our team has extensive experience in building conversational interfaces, and we can help you build a chatbot that is both engaging and intuitive for your users.',\n link: 'chatbot-development-services',\n },\n ],\n};\n\nexport const industriesContent: IInfoSectionContent = {\n title: 'Industries',\n description: 'Our team has extensive experience in developing custom software for a wide range of industries',\n buttonLink: '/industries',\n theme: 'lightTheme',\n soloImage: industriesImage1,\n alt: 'Moai Team, software development industries',\n items: [\n {\n itemTitle: 'eLearning',\n itemDescription: 'We build interactive, intuitive, and scalable eLearning solutions that transform the knowledge delivery process.',\n link: 'elearning-software-development-services',\n },\n {\n itemTitle: 'HR tech',\n itemDescription: 'You can streamline your HR processes by leveraging our expertise in creating custom solutions for your unique needs.',\n link: 'hr-software-development-services',\n },\n {\n itemTitle: 'Entertainment and media',\n itemDescription: 'We help our clients boost the performance of their media operations, enhance user experience and increase audience engagement.',\n link: 'media-and-entertainment-software-development-services',\n },\n {\n itemTitle: 'eCommerce',\n itemDescription: 'Our team of eCommerce experts will work with you to help you grow sales, improve conversion rates, and increase customer satisfaction.',\n link: 'ecommerce-software-development-services',\n },\n {\n itemTitle: 'B2B',\n itemDescription: 'We\\'ll take your idea from concept to reality, no matter how complex it is, and make sure you\\'re happy with how things are coming together.',\n link: 'b2b-software-development-services',\n },\n ],\n};\n\ninterface PortfolioSliderItems {\n link: string,\n title: string,\n description: string,\n image: string,\n background: string,\n alt: string,\n}\n\nexport const portfolioSliderItems: PortfolioSliderItems[] = [\n {\n title: 'Djooky',\n description: 'Djooky is a platform that enables music lovers\\n'\n + 'to support the artists they love. Our team has been working on this project since early 2020, and we\\'ve already seen amazing results: 200,000 users from over 140 countries and a lot of positive feedback from users.',\n link: 'https://djookyawards.com/',\n image: portfolioDjookyImage,\n background: 'linear-gradient(254.26deg, rgba(38, 208, 206, 0.95) -27.75%, rgba(6, 17, 81, 0.95) 77.91%)',\n alt: 'Djooky, software development project',\n },\n {\n title: 'SmartExpert',\n description: 'SmartExpert is a SaaS platform that helps companies to improve employees\\' competencies. The platform provides a comprehensive solution for managing training programs and all necessary tools people need to become more successful in their work.',\n link: 'https://smartexpert.net/',\n image: portfolioSmartExpertImage,\n background: ' linear-gradient(284.75deg, #26A0DA 0%, #193141 100%)',\n alt: 'SmartExpert, software development project',\n },\n {\n title: 'FEX.NET',\n description: 'FEX.NET is a cloud-based file sharing service with more than 3 billion files uploaded, and it continues to grow every day. An intuitive navigation allows users to conveniently sort everything by folders, customize sorting preferences, and manage file access.',\n link: 'https://fex.net/',\n image: portfolioFexNetImage,\n background: 'linear-gradient(284.75deg, rgba(52, 130, 199, 0.95) 0%, rgba(19, 24, 67, 0.95) 99.9%)',\n alt: 'FEX NET, software development project',\n },\n];\n\nexport interface INavigationListData {\n goToAllLink: string,\n items: {name: string, url: string, icon?: any}[],\n title: string,\n}\n\ninterface IHeaderNavigationData {\n services: INavigationListData,\n industries: INavigationListData,\n technologies: INavigationListData,\n portfolio: {\n name: string,\n url: string,\n },\n blog: {\n name: string,\n url: string,\n },\n about: {\n name: string,\n url: string,\n }\n}\n\nexport const headerNavigationItems: IHeaderNavigationData = {\n services: {\n title: 'Services',\n items: servicesMenuItems,\n goToAllLink: '/services',\n },\n industries: {\n title: 'Industries',\n items: industriesMenuItems,\n goToAllLink: '/industries',\n },\n technologies: {\n title: 'Technologies',\n items: Object.values(technologies),\n goToAllLink: '/technologies',\n },\n portfolio: {\n name: 'Portfolio',\n url: '/portfolio',\n },\n blog: {\n name: 'Blog',\n url: '/blog',\n },\n about: {\n name: 'About',\n url: '/about',\n },\n};\n\nexport const areasOfExpertiseInfoBlocksContent: {title: string, description: string, url: string, img: { desktop: string, mobile: string }}[] = [\n {\n title: 'Custom software development services',\n description: 'We\\'re committed to providing high-quality solutions that are tailored specifically for your company.',\n url: '/custom-software-development-services',\n img: {\n desktop: servicesImg1,\n mobile: servicesImg1Mobile,\n },\n },\n {\n title: 'Software reengineering services',\n description: 'We offer software reengineering services to help you improve the performance of your existing systems.',\n url: '/software-reengineering-services',\n img: {\n desktop: servicesImg2,\n mobile: servicesImg2Mobile,\n },\n },\n {\n title: 'UX/UI design services',\n description: 'Our designers have years of experience helping companies build engaging and functional digital experiences. ',\n url: '/ux-ui-design-services',\n img: {\n desktop: servicesImg3,\n mobile: servicesImg3Mobile,\n },\n },\n {\n title: 'Big data software development services',\n description: 'We take care of all the technical details, so you can focus on finding insights that will drive your business forward.',\n url: '/big-data-software-development-services',\n img: {\n desktop: servicesImg4,\n mobile: servicesImg4Mobile,\n },\n },\n {\n title: 'DevOps and SecOps services',\n description: 'Whether you\\'re looking to improve the efficiency of your operations or protect corporate assets, we can help.',\n url: '/devops-and-secops-services',\n img: {\n desktop: servicesImg5,\n mobile: servicesImg5Mobile,\n },\n },\n {\n title: 'AI software development services',\n description: 'We offer AI services to help businesses streamline processes, increase efficiency, and maximize revenue.',\n url: '/ai-software-development-services',\n img: {\n desktop: servicesImg6,\n mobile: servicesImg6Mobile,\n },\n },\n {\n title: 'Chatbot development services',\n description: 'We\\'ve spent years building conversational interfaces, and we can help you build a chatbot that your users will love.',\n url: '/chatbot-development-services',\n img: {\n desktop: servicesImg7,\n mobile: servicesImg7Mobile,\n },\n },\n];\n\nconst pathesNames: {[key: string]: { name: string, url: string}} = {\n services: {\n name: 'Services',\n url: '/services',\n },\n};\n\nexport const areasOfExpertiseIndustriesPageItems: {title: string, description: string, url: string}[] = [\n {\n title: 'eLearning',\n description: 'We believe in the power of education. And technology can be an incredible tool for engaging students. We offer a wide range of eLearning software development services for businesses and institutions. Our team can build your educational platform from scratch or customize an existing one to meet your needs.',\n url: '#',\n },\n {\n title: 'HR tech',\n description: 'Our goal is to provide you with the tools you need to streamline your HR processes. We build our systems to be scalable, secure, and reliable so that you can focus on what\\'s important: growing your business. We\\'ve made it our mission to make sure that our clients have the tools they need in order to succeed.',\n url: '#',\n },\n {\n title: 'Entertainment and media',\n description: 'We work with clients across the entertainment and media industries to develop their software products, from concept to implementation. Our team of highly skilled programmers can help you improve customer retention and generate new revenue streams by providing a better user experience for your customers.',\n url: '#',\n },\n {\n title: 'eCommerce',\n description: 'When it comes to eCommerce, you\\'re not just selling products—you\\'re selling the experience of buying from your company. You need a software solution that will help you manage every aspect of your business. Whether you\\'re looking to expand your reach or automate business processes, we can help. ',\n url: '#',\n },\n {\n title: 'B2B',\n description: 'We understand that your software is the backbone of your business. Our dedicated team of professionals will work with you closely to understand your unique challenges, and then build a customized solution that will help you grow. We’ll ensure that your requirements are met in the best possible way.',\n url: '#',\n },\n];\n\nexport const ourPortfolioContent: {images: { mobile: string, desktop: string }, url?: string, title: string, description: string, alt: string}[] = [\n {\n title: 'Djooky',\n description: 'Djooky is a platform that enables music lovers to support the artists they love. Our team has been working on this project since early 2020, and we\\'ve already seen amazing results: 200,000 users from over 140 countries and a lot of positive feedback from users.',\n images: {\n desktop: portfolioDjookyImage,\n mobile: portfolioDjookyImageMobile,\n },\n url: 'https://djookyawards.com',\n alt: 'Djooky, software development project',\n },\n {\n title: 'SmartExpert',\n description: 'SmartExpert is a SaaS platform that helps companies to improve employees\\' competencies. The platform provides a comprehensive solution for managing training programs and all necessary tools people need to become more successful in their work.',\n images: {\n desktop: portfolioSmartExpertImage,\n mobile: portfolioSmartExpertImageMobile,\n },\n url: 'https://smartexpert.io',\n alt: 'SmartExpert, software development project',\n },\n {\n title: 'FEX.NET',\n description: 'FEX.NET is a cloud-based file sharing service with more than 3 billion files uploaded, and it continues to grow every day. An intuitive navigation allows users to conveniently sort everything by folders, customize sorting preferences, and manage file access.',\n images: {\n desktop: portfolioFexNetImage,\n mobile: portfolioFexNetImageMobile,\n },\n url: 'https://fex.net',\n alt: 'FEX NET, software development project',\n },\n {\n title: 'Petsensus',\n description: 'Petsensus is a pet care ecosystem and handy mobile helper for pet parents that brings a variety of new experiences into their daily dog caring routine by offering solutions tailored specifically to the needs of their pets.',\n images: {\n desktop: portfolioPetsensusImage,\n mobile: portfolioPetsensusImageMobile,\n },\n url: 'https://apps.apple.com/us/app/petsensus-dog-walk-talk/id1486923377',\n alt: 'Petsensus, software development project',\n },\n {\n title: 'Addictive Learning',\n description: 'Addictive Learning is an EdTech platform that helps coaches, educators, edupreneurs, bloggers to launch online courses, build their brand and monetize their expertise. The goal of the platform is to provide a one-stop solution for all educational needs.',\n images: {\n desktop: portfolioAddictiveLearningImage,\n mobile: portfolioAddictiveLearningImageMobile,\n },\n url: 'https://addictivelearning.io/',\n alt: 'Addictive Learning, software development project',\n },\n {\n title: 'Voicer',\n description: 'Voicer is a customer feedback management system that assists businesses in coping with the growing number of customer reviews. With Voicer, you can collect and organize reviews in one place, analyze data to discover trends, and use that information to improve products and services.',\n images: {\n desktop: portfolioVoicerImage,\n mobile: portfolioVoicerImageMobile,\n },\n url: 'https://voicer.software/',\n alt: 'Voicer, software development project',\n },\n {\n title: '777score.com',\n description: '777SCORE is a statistics portal that offers scores, statistics, and live results for sport events from all around the world. It provides information from official sources, you can easily find a game from any league, including the minor national championships.',\n images: {\n desktop: portfolio777ScoreImage,\n mobile: portfolio777ScoreImageMobile,\n },\n url: 'https://777score.com/',\n alt: '777SCORE, software development project',\n },\n {\n title: 'Customer service AI bot',\n description: 'Customer service AI bot simulates human-like conversations with users via text messages, helping to automate client support workflows. This chatbot employs AI, ML, and NLP to understand a customer’s unique context and provide an effective solution.',\n images: {\n desktop: portfolioNoImage,\n mobile: portfolioNoImageMobile,\n },\n alt: 'Customer service AI bot, chatbot development project',\n },\n {\n title: 'Sim23',\n description: 'Sim23 is a chatbot of the chain of stores. It is a smart assistant that helps customers solve problems, get information about the company and its vacancies, as well make suggestions. The bot identifies user requests and replies with relevant information.',\n images: {\n desktop: portfolioNoImage,\n mobile: portfolioNoImageMobile,\n },\n alt: 'Sim23, chatbot development project',\n },\n {\n title: 'AVILOVA Fundy',\n description: 'AVILOVA Fund is a charity with a mission of replacing windows for buildings that have been damaged by explosions in Ukraine. The organization is dedicated to helping communities rebound from these tragedies by providing financial assistance for reconstruction efforts. ',\n images: {\n desktop: portfolioAvilovaImage,\n mobile: portfolioAvilovaImageMobile,\n },\n url: 'https://happyfamily.cv.ua/',\n alt: 'AVILOVA Fund, website development project',\n },\n {\n title: 'Happy family',\n description: 'Happy family is a non-profit organization that\\'s dedicated to providing emergency assistance to families in Ukraine. The charity is actively helping refugees displaced by the crisis. Every day, more than 5,000 refugees are given emergency assistance, including food and water. ',\n images: {\n desktop: portfolioHappyFamilyImage,\n mobile: portfolioHappyFamilyImageMobile,\n },\n url: 'https://happyfamily.cv.ua/',\n alt: 'Happy family, website development project',\n },\n];\n\nexport const leadershipData: {name: string, position: string, photo: string, text: string, linkedin: string, alt: string}[] = [\n {\n name: 'Aleksandr Duchenchuk',\n position: 'CEO',\n text: '“I believe in the power of communication to help us do more, be better, and connect with each other. Whether it\\'s a business meeting, an interview, or just a friendly chat over coffee, I\\'m passionate about helping people achieve their goals.”',\n photo: leader1,\n linkedin: 'https://www.linkedin.com/in/aduchenchuk/',\n alt: 'Aleksandr Duchenchuk, CEO and co-founder of Moai Team',\n },\n {\n name: 'Denis Olenin',\n position: 'CTO',\n text: '“I\\'ve learned that there is no substitute for hard work—there\\'s no magic formula or secret trick that will make you successful overnight. It\\'s about putting in the time and energy needed to build something that will last.”',\n photo: leader2,\n linkedin: 'https://www.linkedin.com/in/denis-olenin-b66ab082/',\n alt: 'Denis Olenin, CTO and co-founder of Moai Team',\n },\n];\n\nexport const socialResponsibilityData: { title: string, description: string, url: string, image: string, backgroundDesktop: string, backgroundMobile: string }[] = [\n {\n title: 'AVILOVA Fund',\n description: 'AVILOVA Fund is a charity with a mission of replacing windows for buildings that have been damaged by explosions in Ukraine. The organization is dedicated to helping communities rebound from these tragedies by providing financial assistance for reconstruction efforts. ',\n image: socialResponsibilityAvilova,\n url: 'https://avilovafund.com/ ',\n backgroundDesktop: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n backgroundMobile: 'linear-gradient(265.68deg, #74CDCB -61.02%, rgba(0, 38, 64, 0.95) 103.28%)',\n },\n {\n title: 'Happy family',\n description: 'Happy family is a non-profit organization that\\'s dedicated to providing emergency assistance to families in Ukraine. The charity is actively helping refugees displaced by the crisis. Every day, more than 5,000 refugees are given emergency assistance, including food and water.',\n image: socialResponsibilityHappyFamily,\n url: 'https://happyfamily.cv.ua/',\n backgroundDesktop: 'linear-gradient(284.75deg, #74CDCB 0%, #0E3753 100%)',\n backgroundMobile: 'linear-gradient(255.2deg, rgba(38, 208, 206, 0.95) -29.14%, rgba(16, 78, 120, 0.95) 43.86%, rgba(6, 17, 81, 0.92) 85.2%)',\n },\n];\n\nexport const contactUsTextBlockData: { title: string, description: string, animationDirection: 'Top' | 'Left' | 'Right' | 'Bottom' | 'Opacity' | 'DescriptionBottomTitleTop' | 'DescriptionLeftTitleRight' }[] = [\n {\n title: 'About us',\n description: 'Moai Team is a full-cycle software development company helping business owners achieve their goals. Our team is made up of industry experts who love what they do—and it shows in the software we create. If you have questions about our work or any aspect of the software development process, please reach out.',\n animationDirection: 'Right',\n },\n {\n title: 'Follow us',\n description: 'We understand that staying up-to-date on trends in technology and business is essential to your success. And our mission is to empower you to make informed decisions. Follow us for the latest on technology, business, and more.',\n animationDirection: 'Left',\n },\n];\n\nexport const contactUsSocialInfoData: { icon: any, path: string }[] = [\n {\n icon: Linkedin2,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n icon: Facebook2,\n path: 'https://www.facebook.com/moai.team',\n },\n {\n icon: MediumLogoIcon,\n path: 'https://medium.com/@Aleksandr_Duchenchuk',\n },\n];\n\nexport const footerShortVersionMenuItems: { name: string, url: string}[] = [\n {\n name: 'Services',\n url: '/services',\n },\n {\n name: 'Industries',\n url: '/industries',\n },\n {\n name: 'Technologies',\n url: '/technologies',\n },\n {\n name: 'Portfolio',\n url: '/portfolio',\n },\n {\n name: 'About',\n url: '/about',\n },\n];\n\nexport const customSoftwareDevelopmentFAQ: {title: string, description: string}[] = [\n {\n title: 'What is custom software development?',\n description: 'Custom software development is the process of designing and building a software product that meets your specific needs. You can ensure that your product will be built exactly how you want it. This is as opposed to off-the-shelf software, which can be purchased from a vendor, or open source software, which is free to use but not necessarily customizable.',\n },\n {\n title: 'What is the difference between custom and off-the-shelf software?',\n description: 'Custom software is designed specifically for your company, while off-the-shelf software is available to the general public. Custom software has the highest level of flexibility and can be integrated into your business processes. Off-the-shelf software has some customization options but may not be able to meet all of your needs.\\n',\n },\n {\n title: 'What kind of custom software are you able to build?',\n description: 'We\\'re able to build any kind of software. Our team has experience with everything from enterprise CRM systems to consumer-facing mobile apps, and everything in between. We\\'ve worked on projects for both businesses and consumers, so we understand what it takes to get your project done on time and within budget.\\n',\n },\n {\n title: 'How much does custom software cost?',\n description: 'The cost of custom software development varies depending on the type of product you are looking to create. We offer a free quote for most projects, so you can get a sense of what your custom software will cost before we begin work. Smaller projects with fewer features require less time for development; therefore, they come at lower costs.',\n },\n {\n title: 'How long does it take to develop a custom software?',\n description: 'It depends on the size of your project—but on average, we can get a solid design and MVP up and running within three to four months. However, if you have a large and complex project, it may take longer than that. We\\'ll work with you every step of the way to make sure we\\'re meeting your expectations and timeline for delivery.',\n },\n {\n title: 'What happens if my project gets bigger than expected?',\n description: 'We\\'re here for the long haul. If your project starts off being smaller than expected but grows into something bigger than anticipated, don\\'t worry—we won\\'t leave you hanging. We can adjust our timeline accordingly so that it still works within your budget and timeframe. We\\'ll work with you to find a solution that works for you, including cost adjustments and extending our deadlines.',\n },\n {\n title: 'Do you work with existing software?',\n description: 'Yes, we work with any software our clients already have in place. We can build on top of your existing tools in order to save time and future-proof your efforts. Whether you\\'re building a new app from scratch or just need to make some changes to an existing system, we\\'ve got the skills and the experience you need to get it done right.',\n },\n {\n title: 'Why should I outsource my custom software development project?',\n description: 'Outsourcing your software development can help you manage costs, increase efficiency, and avoid the hassle of having to hire internal developers. It helps to save money on overhead costs such as office space and equipment. It also means that your team can focus on your core competencies, while leaving the rest to experts. ',\n },\n {\n title: 'What is your process for custom software development?',\n description: 'We use the Agile method of software development. We start by understanding your requirements, and then we break it down into smaller, more manageable pieces. We\\'ll work with you to set up a roadmap for how we can accomplish these tasks in the most effective way possible. We want you to feel like you\\'re in control of the process, so we\\'ll make sure everyone is on the same page at all times.',\n },\n {\n title: 'Why should I choose Moai Team for custom software development?',\n description: 'We specialize in building custom systems from scratch that fit your needs exactly—and there\\'s no limit on how much customization we can do. Our team will work closely with you throughout the entire process, from the initial design phase through implementation, to get things done quickly while still delivering a high-quality solution.',\n },\n];\n\nexport const customSoftwareCycleData: {title: string, description: string, icon: string, notActiveIcon: string, alt: string, arrow: any}[] = [\n {\n title: 'Analysis',\n description: 'We start with a deep understanding of your requirements. During this step, we will gather information about who will use your product and what problems they are trying to solve. Our team will work with you to plan \\n'\n + 'and implement the best solution for your business needs.',\n alt: 'Software development life cycle, step one, analysis',\n icon: customSoftwareCycleDataIcon1,\n notActiveIcon: customSoftwareCycleDataIconNotActive1,\n arrow: CustomSoftwareCycleDataArrow1,\n },\n {\n title: 'Planning',\n description: 'The next step involves creating a plan that outlines how the project will be completed, what resources will be needed, and an overall timeline. This ensures everyone knows exactly what\\'s expected from them at each stage of development and also helps identify any dependencies that need to be addressed.',\n alt: 'Software development life cycle, step two, planning',\n icon: customSoftwareCycleDataIcon2,\n notActiveIcon: customSoftwareCycleDataIconNotActive2,\n arrow: CustomSoftwareCycleDataArrow2,\n },\n {\n title: 'UX/UI design',\n description: 'UX/UI design involves creating wireframes and mockups that will help you bring your ideas to life. The ultimate goal of this stage is to create an interface that is intuitive, consistent, and aesthetically pleasing. The end result is a prototype that can be tested with actual users',\n alt: 'Software development life cycle, step three, UX UI design',\n icon: customSoftwareCycleDataIcon3,\n notActiveIcon: customSoftwareCycleDataIconNotActive3,\n arrow: CustomSoftwareCycleDataArrow3,\n },\n {\n title: 'Development',\n description: 'The development phase is where the prototype becomes a real product. Our team uses the latest technologies to build products that are secure and maintainable. We pride ourselves on our excellent code, and can assure you that the final product will be of the highest quality.',\n alt: 'Software development life cycle, step four, development',\n icon: customSoftwareCycleDataIcon4,\n notActiveIcon: customSoftwareCycleDataIconNotActive4,\n arrow: CustomSoftwareCycleDataArrow4,\n },\n {\n title: 'Testing',\n description: 'This phase includes unit tests (i.e., testing individual functions), integration tests (i.e., testing multiple functions together), functional tests (i.e., testing the whole system) and acceptance tests (i.e., determining whether the software is conforming specified requirements).',\n alt: 'Software development life cycle, step five, testing',\n icon: customSoftwareCycleDataIcon5,\n notActiveIcon: customSoftwareCycleDataIconNotActive5,\n arrow: CustomSoftwareCycleDataArrow5,\n },\n {\n title: 'Deployment ',\n description: 'After the software is built and tested, it\\'s time to deploy it. This means moving the application from the development environment to a production environment where users can actually use it. We\\'ll work with you to determine the best way to implement the software so that it fits seamlessly into your existing processes and workflow.',\n alt: 'Software development life cycle, step six, deployment',\n icon: customSoftwareCycleDataIcon6,\n notActiveIcon: customSoftwareCycleDataIconNotActive6,\n arrow: CustomSoftwareCycleDataArrow6,\n },\n {\n title: 'Maintenance',\n description: 'Once deployment is complete, our team of experts will help you keep things up and running, so you never have to worry about your system\\'s performance. We will handle everything from upgrades to system optimization, ensuring that your data is always safe. You never have to worry about your systems again.',\n alt: 'Software development life cycle, step seven, maintenance',\n icon: customSoftwareCycleDataIcon7,\n notActiveIcon: customSoftwareCycleDataIconNotActive7,\n arrow: CustomSoftwareCycleDataArrow7,\n },\n];\n\nexport const customSoftwareDevelopmentAreasOfExpertiseData: {title: string, description: string, dropdownData: {listData: string[], dropdownTitle: string} }[] = [\n {\n title: 'Industry-specific software',\n description: 'Industry-specific software has a number of standard & unique features, which are designed to meet the needs of the industry.',\n dropdownData: {\n dropdownTitle: 'Software we create',\n listData: ['eLearning', 'HR tech', 'Entertainment and media', 'eCommerce', 'B2B'],\n },\n },\n\n {\n title: 'Platform-specific software',\n description: 'We\\'re an experienced team of developers with a broad range of expertise across a variety of platforms.',\n dropdownData: {\n dropdownTitle: 'Software we create',\n listData: ['Web apps', 'Mobile apps', 'Desktop software', 'Cloud software'],\n },\n },\n\n {\n title: 'Destination-specific software',\n description: 'The broad range of tools offered by these types of software makes them suitable for almost any industry.',\n dropdownData: {\n dropdownTitle: 'Software we create',\n listData: ['CRM software', 'ERP software', 'Operations Management Software'],\n },\n },\n\n {\n title: 'Technology-specific software',\n description: 'The emergence of new technologies has created a huge opportunity for businesses to make their processes more efficient.',\n dropdownData: {\n dropdownTitle: 'Software we create',\n listData: ['AI software', 'Big data solutions', 'DevOps/SecOps', 'IoT software'],\n },\n },\n];\n\nexport const softwareReengineeringServicesAreasOfExpertiseData: {title: string, description: string}[] = [\n {\n title: 'Source code translation',\n description: 'Source code translation is a process that involves converting \\n'\n + 'a program\\'s source code from one programming language\\n'\n + 'into another.',\n },\n {\n title: 'Database reorganization & transfer',\n description: 'The primary purpose of this process is to reduce the time it takes for queries to return results, which can lead to better overall performance.',\n },\n {\n title: 'Software architecture optimization',\n description: 'Software architecture optimization can be used to enhance performance, improve security, and reduce maintenance costs.',\n },\n {\n title: 'New functionality addition',\n description: 'We can add new features to your software, make existing ones more robust, and improve the overall user experience.',\n },\n];\n\nexport const softwareReengineeringServicesFAQ: {title: string, description: string}[] = [\n {\n title: 'What is software reengineering?',\n description: 'Software reengineering is the process of taking a system that is currently in use and changing its design, architecture, or implementation.',\n },\n {\n title: 'How much does software reengineering cost?',\n description: 'The main cost factors are the size and complexity of the project, as well as the number of staff members who will be working on it. We can help you evaluate the scope and cost of your project.',\n },\n {\n title: 'How long will it take to reengineer my existing software?',\n description: 'The answer to this question depends on the type of software you have—but typically anywhere from 1-4 months (on average).',\n },\n {\n title: 'Why should I reengineer my software?',\n description: 'There are several good reasons for software reengineering, including improving usability, getting rid of bugs or other problems, and improving scalability and performance.',\n },\n {\n title: 'What are the benefits of software reengineering?',\n description: 'Reengineering is a cost-effective way for companies to get the best out of their existing software. It can help businesses improve their efficiency, save money, and reduce errors.',\n },\n {\n title: 'How do I know if my software needs reengineering?',\n description: 'If your software has been around for several years and you\\'re running into performance issues, then chances are it will need some kind of work done on it.',\n },\n {\n title: 'What are some challenges associated with software reengineering?',\n description: 'One challenge is that the code may not be well-structured, making it difficult to understand. Also, some parts of the code may not be well-documented, making it hard to find out how they work.',\n },\n {\n title: 'What kinds of software can be reengineered?',\n description: 'The field includes everything from large-scale systems like operating systems and databases down to smaller tasks like optimizing code for mobile devices.',\n },\n {\n title: 'How does reengineering differ from software development?',\n description: 'Software development focuses on creating new software from scratch. And reengineering helps to improve existing software.',\n },\n {\n title: 'Why should I choose Moai Team for software reengineering?',\n description: 'Our team is made up of engineers who are familiar with all aspects of the software reengineering process. We know what it takes to reengineer legacy systems and can help you meet your business needs.',\n },\n];\n\nexport const softwareReengineeringServicesCycleData: {title: string, description: string, icon: string, notActiveIcon: string, alt: string, arrow: any}[] = [\n {\n title: 'Reverse engineering',\n description: 'Reverse engineering is a process of analyzing existing systems to understand the process flow, data flow and business logic. It allows you to gain insight into how your system works, which can help you fix issues or improve its operations. The system specifications are thoroughly analyzed to understand the existing processes.',\n alt: 'Software reengineering workflow, step one, reverse engineering',\n icon: softwareReengineeringServicesCycleDataIcon1,\n notActiveIcon: softwareReengineeringServicesCycleDataIconNotActive1,\n arrow: SoftwareReengineeringServicesCycleDataArrow1,\n },\n {\n title: 'Restructuring',\n description: 'Restructuring involves modifying the source code. It improves the reliability and maintainability of software, as well as to improve performance and make it more efficient. This can be done in a variety of ways, such as refactoring or rewriting parts of your codebase.',\n alt: 'Software reengineering workflow, step two, restructuring',\n icon: softwareReengineeringServicesCycleDataIcon2,\n notActiveIcon: softwareReengineeringServicesCycleDataIconNotActive2,\n arrow: SoftwareReengineeringServicesCycleDataArrow2,\n },\n {\n title: 'Forward engineering',\n description: 'In forward engineering, successive versions of software are developed by assessing risks and deciding upon the appropriate fixes. The fixes are then implemented via engineering and evaluated for their effectiveness. The process can be applied to software upgrades, as well as new versions designed from scratch.',\n alt: 'Software reengineering workflow, step three, forward engineering',\n icon: softwareReengineeringServicesCycleDataIcon3,\n notActiveIcon: softwareReengineeringServicesCycleDataIconNotActive3,\n arrow: SoftwareReengineeringServicesCycleDataArrow3,\n },\n];\n\nexport const UxUiDesignServicesAreasOfExpertiseData: {title: string, description: string}[] = [\n {\n title: 'Mobile app design',\n description: 'We provide mobile app UX/UI design services for the iOS and Android platforms. We take pride in being able to translate our clients’ ideas into functional designs that can win over new users and keep them engaged.',\n },\n {\n title: 'Web design',\n description: 'Our team will work with you to develop a layout, color scheme and graphics that reflect your brand personality. You\\'ll be able to see the design in progress, watch as it\\'s put together so that we can make sure you\\'re happy with what we\\'re creating.',\n },\n];\n\nexport const UxUiDesignServicesFAQ: {title: string, description: string}[] = [\n {\n title: 'What is UX/UI design?',\n description: 'UX/UI design is the process of creating user experiences and interfaces that are both functional and visually appealing.',\n },\n {\n title: 'How long does UX/UI design take?',\n description: 'Designing a user experience (UX) and user interface (UI) is a process that can take anywhere from 2 weeks to 3 months, depending on the complexity of your project.',\n },\n {\n title: 'How much does UX/UI design cost?',\n description: 'The cost of UX/UI design depends on the complexity of the project. Generally, the cost of UX/UI design ranges between $500 and $3,000.',\n },\n {\n title: 'What does a UX/UI designer do?',\n description: 'A UX/UI designer creates a design strategy for the product or service being developed. They research the needs of users, define their goals and create an interface that meets those goals easily and intuitively.',\n },\n {\n title: 'How do I know if my product has a good user experience?',\n description: 'The best way to determine whether or not your product has a good user experience is by conducting user testing. It involves observing reactions of users to identify areas of improvement.',\n },\n {\n title: 'What is user-centered design?',\n description: 'User-centered design is a philosophy that prioritizes user needs over business goals, and it\\'s a way to approach design from a human perspective.',\n },\n {\n title: 'What makes UX/UI design so important?',\n description: 'A good UX/UI design can lead to higher conversion rates, which can be critical for businesses that depend on customers making purchases or signing up for services.',\n },\n {\n title: 'Why should I use UX/UI design services?',\n description: 'UX/UI design is the cornerstone of modern product development. It turns a great idea into something people actually use. A good UX/UI designer will help you create a product that\\'s intuitive and user-friendly.',\n },\n {\n title: 'Why should I outsource UX/UI design?',\n description: 'Outsourcing your UX/UI design project will save you time, money and resources. This means you won\\'t need to hire in-house designers, who would require training and supervision from you.',\n },\n {\n title: 'Why should I choose Moai Team for my UX/UI design project?',\n description: 'We have a team of highly skilled designers who are passionate about what they do. They\\'ll work with you every step of the way to make sure that your project gets done correctly—and on time.',\n },\n];\n\nexport const BigDataAreasOfExpertiseData: {title: string, description: string}[] = [\n {\n title: 'Full-stack data engineering',\n description: 'We work with big data, machine learning, and AI to develop the tools you need to make the most of your resources and achieve \\n'\n + 'your goals.',\n },\n {\n title: 'Predictive analytics',\n description: 'Predictive analytics let you use historical data to predict future trends and outcomes for your business. ',\n },\n {\n title: 'Business intelligence',\n description: 'We can turn your structured & unstructured data into reports that will help you make data-driven refinements to your overall strategy.',\n },\n {\n title: 'Cloud-managed services',\n description: 'We work with the biggest, most reputable cloud technology providers on the market to store and process your data.',\n },\n {\n title: 'Technology-agnostic development',\n description: 'We use the most appropriate technology for each client’s unique needs, extracting every insight that’s critical to your business’s success.',\n },\n {\n title: 'Maintenance & support',\n description: 'We offer software maintenance and provide analytic support to ensure your business is running smoothly.',\n },\n];\n\nexport const bigDataFAQ: {title: string, description: string}[] = [\n {\n title: 'What is big data?',\n description: 'Big data is a term used to describe the collection and analysis of large quantities of information. It is a subset of data science, which refers to the use of technology to analyze data.',\n },\n {\n title: 'What is big data software development?',\n description: 'Big data software development is the process of designing and building software that can handle large amounts of information.',\n },\n {\n title: 'How to analyze big data?',\n description: 'Analyzing big data is done through two types of analysis: descriptive and predictive. Descriptive analysis seeks to answer questions like \"what happened?\" or \"how did this occur?\" Predictive analysis seeks to answer questions like \"what will happen next?.\"',\n },\n {\n title: 'How long does big data software development take?',\n description: 'Big data software development can take anywhere from 4 to 9 months, depending on the scope of the project.',\n },\n {\n title: 'How much does big data software development cost?',\n description: 'The cost of big data software development depends on the type of project and can range from $20,000 to $80,000. ',\n },\n {\n title: 'What can be done with big data?',\n description: 'Big data can be used to find patterns, identify norms and deviations, as well as make predictions about future events.',\n },\n {\n title: 'What are the advantages of using big data software development services?',\n description: 'Big data tools help businesses make sense of their data by identifying what is statistically important and what isn\\'t. The results are used to inform decisions about how to proceed with future projects or initiatives.',\n },\n {\n title: 'How to find the best-in-class big data software development company?',\n description: 'Big data is a complex field and it requires a lot of expertise, so you must make sure that your company has the right qualifications and experience to meet your needs.',\n },\n {\n title: 'Why should I outsource big data software development?',\n description: 'Outsourcing big data software development gives you access to world-class talent that might not be available locally, at a fraction of the cost of hiring full-time employees.',\n },\n {\n title: 'Why should I choose Moai Team for my big data software development project?',\n description: 'We know how to create a solution that would work for your business, whether you want to use big data analytics to predict customer behavior or find ways to reduce costs.',\n },\n];\n\nexport const bigDataServicesCycleData: {title: string, description: string, icon: string, notActiveIcon: string, alt: string, arrow: any}[] = [\n {\n title: 'Understanding your business needs',\n description: 'The first step to understand the business needs that you are trying to address. It\\'s important to understand the current state of your business, as well as how it might change in the future. This involves determining who will use the application, what it will do, and what type of data it will process.',\n alt: 'Big data software development process, step one, understanding business needs',\n icon: bigDataServicesCycleDataIcon1,\n notActiveIcon: bigDataServicesCycleDataNotActiveIcon1,\n arrow: BigDataServicesCycleDataArrow1,\n },\n {\n title: 'Choosing the right technologies',\n description: 'After determining what type of big data solution you need, it\\'s time to determine what type of technology is best suited for solving your problem. You need to choose technologies that are appropriate for your project\\'s scale and complexity, as well as those that are compatible with other systems in place within your organization.',\n alt: 'Big data software development process, step two, choosing technologies',\n icon: bigDataServicesCycleDataIcon2,\n notActiveIcon: bigDataServicesCycleDataNotActiveIcon2,\n arrow: BigDataServicesCycleDataArrow2,\n },\n {\n title: 'Designing the architecture',\n description: 'The third step involves designing an architecture for your application that meets all functional requirements while being cost-effective over time. You need to consider how many users might access your system at any given time, as well as what kind of hardware will be needed to support them.',\n alt: 'Big data software development process, step three, designing architecture',\n icon: bigDataServicesCycleDataIcon3,\n notActiveIcon: bigDataServicesCycleDataNotActiveIcon3,\n arrow: BigDataServicesCycleDataArrow3,\n },\n {\n title: 'Creating a visualization model to represent the processed data',\n description: 'In order to understand the patterns and insights in your data, you need to be able to visualize it. This can be done through graphs, charts, maps, etc. The visualization model should be easy to understand and interpret for the viewer. The goal here is to make sense of the data in order to take action based on it.',\n alt: 'Big data software development process, step four, creating visualization model',\n icon: bigDataServicesCycleDataIcon4,\n notActiveIcon: bigDataServicesCycleDataNotActiveIcon4,\n arrow: BigDataServicesCycleDataArrow4,\n },\n {\n title: 'Building big data application',\n description: 'The most efficient way to develop big data software is through an iterative process. This means that we’ll be building out new functionality based on what we learn from each iteration of the project. We’ll ensure that all the components of your application are compatible with each other and run smoothly.',\n alt: 'Big data software development process, step six, quality assurance, documentation and maintenance',\n icon: bigDataServicesCycleDataIcon5,\n notActiveIcon: bigDataServicesCycleDataNotActiveIcon5,\n arrow: BigDataServicesCycleDataArrow5,\n },\n {\n title: 'Quality assurance, documentation and maintenance',\n description: 'After the software has been built, it has to be tested to ensure that it works properly. We will go through every function and make sure that everything works as intended. Also, we will fix any bugs or performance issues in the program before it\\'s deployed into production.',\n alt: 'Djooky, software development project',\n icon: bigDataServicesCycleDataIcon6,\n notActiveIcon: bigDataServicesCycleDataNotActiveIcon6,\n arrow: BigDataServicesCycleDataArrow6,\n },\n];\n\nexport const devOpsAreasOfExpertiseData: {title: string, description: string}[] = [\n {\n title: 'DevOps',\n description: 'DevOps is the union of development and operations teams for fast and smooth releases. The goal of DevOps is to increase an organization’s ability to deliver services and applications at a high velocity, as well as streamline the process of deploying new features.',\n },\n {\n title: 'SecOps',\n description: 'SecOps is the union of security and operations teams to tackle security threats. The objective of SecOps is to build and support a security framework which consists of automated and manual processes to safeguard businesses from security threats.',\n },\n];\n\nexport const devOpsFAQData: {title: string, description: string}[] = [\n {\n title: 'What is DevOps?',\n description: 'DevOps is a methodology for improving the way in which software is developed, tested, and deployed. It aims to ensure that new code is bug-free and ready for production use in an efficient manner.',\n },\n {\n title: 'What is SecOps?',\n description: 'SecOps ensures that all aspects of security are addressed during the development and deployment processes, with the goal of preventing breaches.',\n },\n {\n title: 'What is the difference between DevOps and SecOps?',\n description: 'DevOps and SecOps are two important elements of a successful technology implementation. DevOps is used to make sure that the development process runs smoothly and efficiently, while SecOps is used to ensure that data security is maintained throughout the entire process.',\n },\n {\n title: 'How much do DevOps and SecOps cost?',\n description: 'The average cost for DevOps and SecOps implementation is around $2,500 per month, but this figure can vary widely depending on the needs of your company.',\n },\n {\n title: 'What are the advantages of DevOps?',\n description: 'DevOps is the key to building, deploying and operating applications at scale. The main advantage of DevOps is that it allows for faster updates and more frequent releases.',\n },\n {\n title: 'What are the advantages of SecOps?',\n description: 'SecOps can help you to keep your data safe from hackers & viruses, reduce costs associated with security breaches, and improve the efficiency of your company\\'s operations.',\n },\n {\n title: 'What are the main challenges of DevOps and SecOps implementation?',\n description: 'The most common recurring challenge areas include environment provisioning, regulatory compliance, and transparency.',\n },\n {\n title: 'Why should I outsource DevOps and SecOps services?',\n description: 'Outsourcing your DevOps and SecOps services is a great way to leverage the expertise of an experienced team, without having to build it yourself.',\n },\n];\n\nexport const aiSoftwareDevelopmentAreasOfExpertiseData: {title: string, description: string}[] = [\n {\n title: 'NLP (Natural Language Processing)',\n description: 'We build NLP software solutions that help our clients detect emerging trends, provide operational insights, and perform predictive analytics.',\n },\n {\n title: 'ML (Machine Learning) ',\n description: 'We\\'ll work with you to develop software applications that use machine learning to solve complex problems.',\n },\n {\n title: 'Predictive Analytics',\n description: 'We create proprietary models that make personalized recommendations, predict customer churn, identify customer segments, etc.',\n },\n {\n title: 'AI chatbot development',\n description: 'Our experts can create a chatbot that can understand natural language, respond to it, and learn from its interactions with humans.',\n },\n {\n title: 'BI (Business Intelligence)',\n description: 'Our engineers develop BI tools that can identify new opportunities to improve your return on investment.',\n },\n {\n title: 'Data Сapture/OCR ',\n description: 'We can help you automate document processing through data capture and OCR (optical character recognition).',\n },\n];\n\nexport const aiSoftwareDevelopmentFAQData: {title: string, description: string}[] = [\n {\n title: 'What is AI?',\n description: 'AI stands for artificial intelligence, and it is a field of computer science that deals with creating machines that are capable of learning, reasoning, and solving problems in ways similar to how people do.',\n },\n {\n title: 'What is AI software development?',\n description: 'AI software development is a process of building artificial intelligence applications. These applications can be used to solve problems that would otherwise require human judgment.',\n },\n {\n title: 'What can AI do for my business?',\n description: 'AI can help you to reduce costs and increase revenue. It’s a powerful tool to help you optimize your business processes, from customer service to sales.',\n },\n {\n title: 'How long does AI software development take?',\n description: 'AI software development can take anywhere from 4 to 10 months, depending on the size of your project and the complexity of the algorithms.',\n },\n {\n title: 'How much does AI software development cost?',\n description: 'The cost of the project depends on the type of AI you want to create, you should expect to spend anywhere from $20,000 to $100,000.',\n },\n {\n title: 'How will I assess the progress of my AI software development project?',\n description: 'You can measure the progress of your AI software development project by setting up a schedule for when you will check in on the project\\'s progress to make sure that it is going according to plan.',\n },\n {\n title: 'What are the advantages of using AI software development services?',\n description: 'AI software development services can help you solve problems, make your business more efficient and productive, and drive growth.',\n },\n {\n title: 'How to find the best-in-class AI software development company?',\n description: 'When you\\'re looking for a company to develop AI software for your business, it\\'s important to ensure you\\'re working with a team that has the expertise necessary to make sure your project is successful.',\n },\n {\n title: 'Why should I outsource AI software development?',\n description: 'Not only will outsourcing allow you to focus on other areas of your business and make use of the expertise of other companies, but it also allows you to save money while getting excellent results.',\n },\n {\n title: 'Why should I choose Moai Team for my AI software development project?',\n description: 'We\\'re experts in AI and machine learning. WIth us, you can be sure that your project will be built on solid ground.',\n },\n];\n\nexport const chatBotAreasOfExpertiseData: {title: string, description: string}[] = [\n {\n title: 'AI and ML',\n description: 'We use artificial intelligence and machine learning to create chatbots that are tailored to your needs.',\n },\n {\n title: 'NLP',\n description: 'With advanced NLP expertise, we build bots that provide human-like conversational interactions.',\n },\n {\n title: 'Sentiment analysis',\n description: 'Chatbots we create use sentiment analysis to understand emotions and respond appropriately.',\n },\n {\n title: 'Multilingual capabilities',\n description: 'Through chatbot localization, we help businesses overcome language barriers.',\n },\n];\n\nexport const chatBotFAQData: {title: string, description: string}[] = [\n {\n title: 'What is a chatbot?',\n description: 'A chatbot is a computer program that uses artificial intelligence to simulate the conversation or \"chat\" with the user.',\n },\n {\n title: 'What is chatbot development?',\n description: 'Chatbot development is the process of building a chatbot, or an automated conversation system. This can be accomplished through a combination of artificial intelligence, natural language processing, and machine learning.',\n },\n {\n title: 'What are the two types of chatbots?',\n description: 'There are two main types of chatbots: rule-based and machine learning. Rule-based chatbots use rules written by humans, while machine learning chatbots learn from interactions with users and improve over time.',\n },\n {\n title: 'How long does chatbot development take?',\n description: 'A simple chatbot can be built in as little as 1 month, while one with more complex functionality may take up to 3 months.',\n },\n {\n title: 'How much does chatbot development cost?',\n description: 'The cost of chatbot development can range from $1,000 to $20,000. The difference in price is largely due to the complexity and sophistication of the bot\\'s functionality.',\n },\n {\n title: 'What platforms can I develop my chatbot for?',\n description: 'You can build your chatbot for Facebook Messenger, Slack, Skype and other platforms. We will work with you to determine which platform is best for your needs.',\n },\n {\n title: 'What are the advantages of using chatbots?',\n description: 'Chatbots have many advantages over other forms of customer service. They\\'re faster, more efficient and allow you to reach more people at once. They also reduce costs by eliminating expensive call centers and live chat operators. Chatbots are especially useful when you want to provide 24/7 support.',\n },\n {\n title: 'Why should I outsource chatbot development?',\n description: 'Outsourcing chatbot development allows companies to save time and money while also making sure your chatbot is built using best practices for creating great conversational experiences.',\n },\n {\n title: 'Why should I choose Moai Team for my chatbot development project?',\n description: 'Our experts can create a chatbot that will be able to interact with your customers in a personalized way, helping you improve the customer experience, increase sales and reduce costs.',\n },\n];\n\nexport const chatBotCycleData: {title: string, description: string, icon: string, notActiveIcon: string, alt: string, arrow: any}[] = [\n {\n title: 'Gathering requirements',\n description: 'The first step is to identify the requirements for your chatbot. This includes determining what type of bot you want to create, and how it will function within the company\\'s overall goals and strategies.',\n alt: 'Chatbot development process, step one, gathering requirements',\n icon: chatBotCycleDataIcon1,\n notActiveIcon: chatBotCycleDataNotActiveIcon1,\n arrow: ChatBotCycleDataArrow1,\n },\n {\n title: 'Design and development',\n description: 'Once you\\'ve identified these factors, you can begin to build out your chatbot\\'s functionality. This requires research on existing bots in order to determine what features are most important for yours.',\n alt: 'Chatbot development process, step two, design and development',\n icon: chatBotCycleDataIcon2,\n notActiveIcon: chatBotCycleDataNotActiveIcon2,\n arrow: ChatBotCycleDataArrow2,\n },\n {\n title: 'Testing',\n description: 'Once you have built a chatbot that works well and feels natural, it\\'s time to test it with real users in order to see if there are any issues with its functionality.',\n alt: 'Chatbot development process, step three, testing',\n icon: chatBotCycleDataIcon3,\n notActiveIcon: chatBotCycleDataNotActiveIcon3,\n arrow: ChatBotCycleDataArrow3,\n },\n];\n\nexport const devOpsCycleData: {title: string, description: string, icon: string, notActiveIcon: string, alt: string, arrow: any}[] = [\n {\n title: 'Planning',\n description: 'The first step is to analyze your current processes, IT infrastructure, and available resources.',\n alt: 'DevOps and SecOps implementation process, step one, planning',\n icon: devOpsCycleDataIcon1,\n notActiveIcon: devOpsCycleDataIconMobile1,\n arrow: DevOpsCycleDataArrow1,\n },\n {\n title: 'Implementation',\n description: 'We’ll create a comprehensive implementation plan along with the possible challenges and solutions of how to mitigate them.',\n alt: 'DevOps and SecOps implementation process, step two, implementation',\n icon: devOpsCycleDataIcon2,\n notActiveIcon: devOpsCycleDataIconMobile2,\n arrow: DevOpsCycleDataArrow2,\n },\n {\n title: 'Support',\n description: 'Our team will provide effective support during the production stage until the software is delivered as expected.',\n alt: 'DevOps and SecOps implementation process, step three, support',\n icon: devOpsCycleDataIcon3,\n notActiveIcon: devOpsCycleDataIconMobile3,\n arrow: DevOpsCycleDataArrow3,\n },\n];\n\nexport const aiSoftwareCycleData: {title: string, description: string, icon: string, notActiveIcon: string, alt: string, arrow: any}[] = [\n {\n title: 'Research',\n description: 'It is important to understand the problem that people face and how it can be solved using AI technology. Research involves gathering data on the problem you are trying to solve. This can be done by collecting statistics or observing real-world situations. It\\'s important to note that the more information you have about your problem, the better your AI will be able to solve it.',\n alt: 'AI software development process, step one, research',\n icon: aiSoftwareCycleDataIcon1,\n notActiveIcon: aiSoftwareCycleDataNotActiveIcon1,\n arrow: AiSoftwareCycleDataArrow1,\n },\n {\n title: 'Design',\n description: 'The next step in the process is design. The most common way is to start with low fidelity wireframes, which can be used to test the concept before moving on to more detailed designs. Once you\\'ve got your ideas down, it\\'s time to move on to creating high fidelity wireframes for each screen that show exactly what the user sees. And when these are complete, you can move on to prototyping.',\n alt: 'AI software development process, step two, design',\n icon: aiSoftwareCycleDataIcon2,\n notActiveIcon: aiSoftwareCycleDataNotActiveIcon2,\n arrow: AiSoftwareCycleDataArrow2,\n },\n {\n title: 'Development',\n description: 'Development involves creating an algorithm that can solve your specific problem. For example, if you\\'re developing an AI that can predict stock prices, you could create an algorithm that has been trained on historical data and then tested against current data. The more data used in training and testing (and therefore the more accurate), the better your AI will perform when deployed.',\n alt: 'AI software development process, step three, development',\n icon: aiSoftwareCycleDataIcon3,\n notActiveIcon: aiSoftwareCycleDataNotActiveIcon3,\n arrow: AiSoftwareCycleDataArrow3,\n },\n {\n title: 'Testing',\n description: 'When it comes to AI projects, quality assurance is essential. It involves checking if your algorithm works as intended so that any bugs or errors can be fixed before deployment into production systems where they could cause harm to users or companies using them (e.g., recommending products based on their similarities instead of differences).',\n alt: 'AI software development process, step three, testing',\n icon: aiSoftwareCycleDataIcon4,\n notActiveIcon: aiSoftwareCycleDataNotActiveIcon4,\n arrow: AiSoftwareCycleDataArrow4,\n },\n];\n\nexport const uiUxSoftwareCycleData: {title: string, description: string, icon: string, arrow: any, notActiveIcon: string, alt: string}[] = [\n {\n title: 'Research',\n description: 'We start with a deep understanding of your requirements. During this step, we will gather information about who will use your product and what problems they are trying to solve.',\n alt: 'UX UI design process, step one, research',\n icon: uiUxSoftwareCycleDataIcon1,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive1,\n arrow: UiUxSoftwareCycleDataArrow1,\n },\n {\n title: 'Competitor analysis',\n description: 'Your competitors can give you lots of information on what\\'s working in your industry, how people react to certain things, and where there\\'s room for improvement.',\n alt: 'UX UI design process, step two, competitor analysis',\n icon: uiUxSoftwareCycleDataIcon2,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive2,\n arrow: UiUxSoftwareCycleDataArrow2,\n },\n {\n title: 'Ideation',\n description: 'During the ideation phase, we\\'ll come up with a few concepts for what you want to build. Then we\\'ll work together to narrow down those ideas and decide which one to move forward with.',\n alt: 'UX UI design process, step three, ideation',\n icon: uiUxSoftwareCycleDataIcon3,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive3,\n arrow: UiUxSoftwareCycleDataArrow3,\n },\n {\n title: 'Building information architecture',\n description: 'Information architecture is the backbone of UX/UI design. It includes the navigation, how they interact with the product, and how they can easily find what they need.',\n alt: 'UX UI design process, step four, building information architecture',\n icon: uiUxSoftwareCycleDataIcon4,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive4,\n arrow: UiUxSoftwareCycleDataArrow4,\n },\n {\n title: 'Creating user flow',\n description: 'The next step is to create a user flow, a diagram that shows how users interact with a product. It helps to understand how users will navigate through your product and where they are likely to get stuck.',\n alt: '',\n icon: uiUxSoftwareCycleDataIcon5,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive5,\n arrow: UiUxSoftwareCycleDataArrow5,\n },\n {\n title: 'Sketching',\n description: 'Sketches are quick drawings that help you get ideas down on paper so you can quickly evaluate them. This is where we\\'ll explore different concepts and determine what\\'s feasible for your project.',\n alt: 'UX UI design process, step five, creating user flow',\n icon: uiUxSoftwareCycleDataIcon6,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive6,\n arrow: UiUxSoftwareCycleDataArrow6,\n },\n {\n title: 'Wireframing',\n description: 'A wireframe is a simple, low-fidelity representation of the layout, which allows you to test whether your design ideas are working together before investing time and money on them.',\n alt: 'UX UI design process, step six, sketching',\n icon: uiUxSoftwareCycleDataIcon7,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive7,\n arrow: UiUxSoftwareCycleDataArrow7,\n },\n {\n title: 'Prototyping',\n description: 'Next comes prototyping—the process of building a functional version of your product\\'s interface. We\\'ll create an interactive prototype that allows us to test assumptions before going into development mode.',\n alt: 'UX UI design process, step seven, wireframing',\n icon: uiUxSoftwareCycleDataIcon8,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive8,\n arrow: UiUxSoftwareCycleDataArrow8,\n },\n {\n title: 'Usability testing',\n description: 'Usability testing involves giving a prototype version of your product to users who represent your target demographic and getting feedback from them.',\n alt: 'UX UI design process, step eight, prototyping',\n icon: uiUxSoftwareCycleDataIcon9,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive9,\n arrow: UiUxSoftwareCycleDataArrow9,\n },\n {\n title: 'Iteration',\n description: 'Iteration is the process of making changes to a product based on the results of testing. It\\'s important to keep iterating on your design until it\\'s just right.',\n alt: 'UX UI design process, step nine, usability testing',\n icon: uiUxSoftwareCycleDataIcon10,\n notActiveIcon: uiUxSoftwareCycleDataIconNotActive10,\n arrow: UiUxSoftwareCycleDataArrow10,\n },\n];\n\nexport const partnershipProgramTermsListData: { itemData: {key: 'text', text: string}[] }[] = [\n {\n itemData: [\n {\n key: 'text',\n text: 'When we agree on cooperation with your clients and sign a contract, we compensate your efforts by paying a percentage of the contract according to our agreement.',\n },\n ],\n },\n {\n\n itemData: [\n {\n key: 'text',\n text: 'We’ll provide you with all required marketing materials that introduce our expertise to your clients.',\n },\n ],\n },\n {\n\n itemData: [\n {\n key: 'text',\n text: 'To protect your sensitive data and regulate the terms of our cooperation, we may sign a Partnership Agreement.',\n },\n ],\n },\n {\n\n itemData: [\n {\n key: 'text',\n text: 'Our experts will deliver robust software solutions that meet the unique needs of your customers.',\n },\n ],\n },\n];\n\nexport const partnershipProgramOurExpertiseListData: { itemTitle: string, itemDescription: string, link?: string}[] = [\n {\n itemTitle: 'Custom software development',\n itemDescription: 'We can help you achieve your business goals by developing scalable software solutions that are tailored specifically to your needs.',\n link: '/custom-software-development-services',\n },\n {\n itemTitle: 'Software reengineering',\n itemDescription: 'With our expertise and experience, you can modernize your legacy application without disrupting your operations or putting your data at risk.',\n link: '/software-reengineering-services',\n },\n {\n itemTitle: 'UX/UI design',\n itemDescription: 'Our UX/UI designers create intuitive, aesthetically-pleasing interfaces that are in line with the latest trends and industry standards.',\n link: '/ux-ui-design-services',\n },\n {\n itemTitle: 'Big data solutions',\n itemDescription: 'Our team uses the latest Big Data technologies to provide you with real-time insights into your business so that you can make informed decisions.',\n link: '/big-data-software-development-services',\n },\n {\n itemTitle: 'DevOps and SecOps',\n itemDescription: 'We offer expert advice and hands-on technical support in all areas related to DevOps/SecOps to help you build efficient and secure software.',\n link: '/devops-and-secops-services',\n },\n {\n itemTitle: 'AI software development',\n itemDescription: 'We\\'re here to help you use the power of artificial intelligence in your business. Whether you need to automate processes or create a new product, we got you covered.',\n link: '/ai-software-development-services',\n },\n {\n itemTitle: 'Chatbot development',\n itemDescription: 'Our team has extensive experience in building conversational interfaces, and we can help you build a chatbot that is both engaging and intuitive for your users.',\n link: '/chatbot-development-services',\n },\n];\n\nexport const golangFAQData: {title: string, description: string}[] = [\n {\n title: 'What is Golang?',\n description: 'Golang is a programming language developed by Google. The language was designed with performance in mind and can be used to build systems for the web, cloud, and mobile devices. ',\n },\n {\n title: 'Is Golang efficient?',\n description: 'Golang offers a rich set of built-in libraries and features that allow programmers to write programs in a more efficient manner.',\n },\n {\n title: 'Is Golang reliable?',\n description: 'Golang was created by Google to make it easier for developers to write high-performance applications. It’s commonly used in areas where performance matters, such as distributed systems and microservices.',\n }, {\n title: 'Is Golang scalable?',\n description: 'Golang is a general-purpose language, meaning it can be used for many different purposes, but it is especially suited to building scalable systems.',\n },\n {\n title: 'Is Golang cost-effective?',\n description: 'Go is a cost-effective programming language for writing high-performance applications. With Golang, organizations can save money on their development costs and improve the performance of their apps.',\n },\n {\n title: 'What are the advantages of Golang?',\n description: 'Golang is a powerful programming language that makes it easier to build reliable, scalable and maintainable applications.',\n },\n {\n title: 'Why should I outsource Golang development?',\n description: 'The best way to get an app up and running quickly is to outsource your Golang development needs. With a team of experts, you\\'ll be able to save time and money.',\n },\n {\n title: 'Why should I choose Moai Team for my Golang development project?',\n description: 'We believe that communication is key to any successful project, so we work hard to make sure that you are involved every step of the way. We take pride in our ability to deliver high-quality products on time.',\n },\n];\n\nexport const portfolioWith2ItemsData: {[key: string]: { title: string, description: string, url?: string, image: string, backgroundDesktop: string, backgroundMobile: string, alt: string }} = {\n petsensus: {\n title: 'Petsensus',\n description: 'Petsensus is a pet care ecosystem and handy mobile helper for pet parents that brings a variety of new experiences into their daily dog caring routine by offering solutions tailored specifically to the needs of their pets.',\n image: UxUiDesignServicesPortfolioImg2,\n url: 'https://smartexpert.net/',\n backgroundDesktop: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n backgroundMobile: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n alt: 'Petsensus, software development project',\n },\n djooky: {\n title: 'Djooky',\n description: 'Djooky is a platform that enables music lovers to support the artists they love. Our team has been working on this project since early 2020, and we\\'ve already seen amazing results: 200,000 users from over 140 countries and a lot of positive feedback from users.',\n image: softwareReengineeringServicesPortfolioImg1,\n url: 'https://djookyawards.com/',\n backgroundDesktop: 'linear-gradient(284.75deg, #74CDCB 0%, #002640 100%)',\n backgroundMobile: 'linear-gradient(270.81deg, #74CDCB -34.1%, #002640 100%)',\n alt: 'Djooky, software development project',\n },\n smartExpert: {\n title: 'SmartExpert',\n description: 'SmartExpert is a SaaS platform that helps companies to improve employees\\' competencies. The platform provides a comprehensive solution for managing training programs and all necessary tools people need to become more successful in their work.',\n image: softwareReengineeringServicesPortfolioImg2,\n url: 'https://smartexpert.net/',\n backgroundDesktop: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n backgroundMobile: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n alt: 'SmartExpert, software development project',\n },\n addictiveLearning: {\n title: ' Addictive Learning',\n description: 'Addictive Learning is an EdTech platform that helps coaches, educators, edupreneurs, bloggers to launch online courses, build their brand and monetize their expertise. \\n'\n + 'The goal of the platform is to provide a one-stop solution for all educational needs.',\n image: customSoftwareDevelopmentPortfolioImg1,\n url: 'https://addictivelearning.io/',\n backgroundDesktop: 'linear-gradient(284.75deg, #74CDCB 0%, #002640 100%)',\n backgroundMobile: 'linear-gradient(270.81deg, #74CDCB -34.1%, #002640 100%)',\n alt: 'Addictive learning, software development project',\n },\n voicer: {\n title: 'Voicer',\n description: 'Voicer is a customer feedback management system that assists businesses in coping with the growing number of customer reviews. With Voicer, you can collect and organize reviews in one place, analyze data to discover trends, and use that information to improve products and services.',\n image: customSoftwareDevelopmentPortfolioImg2,\n url: 'https://voicer.software/',\n backgroundDesktop: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n backgroundMobile: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n alt: 'Voicer, software development project',\n },\n sim23: {\n title: 'Sim23',\n description: 'Sim23 is a chatbot of the chain of stores. It is a smart assistant that helps customers solve problems, get information about the company and its vacancies, as well make suggestions. The bot identifies user requests and replies with relevant information.',\n image: chatBotPortfolioImage2,\n backgroundDesktop: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n backgroundMobile: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n alt: 'Sim23, chatbot development project',\n },\n customerServiceAIBot: {\n title: 'Customer service AI bot',\n description: 'Customer service AI bot simulates human-like conversations with users via text messages, helping to automate client support workflows. This chatbot employs AI, ML, and NLP to understand a customer’s unique context and provide an effective solution.',\n image: chatBotPortfolioImage1,\n backgroundDesktop: 'linear-gradient(284.75deg, #74CDCB 0%, #002640 100%)',\n backgroundMobile: 'linear-gradient(270.81deg, #74CDCB -34.1%, #002640 100%)',\n alt: 'Customer service AI bot, chatbot development project',\n },\n fexNet: {\n title: 'FEX.NET',\n description: 'FEX.NET is a cloud-based file sharing service with more than 3 billion files uploaded, and it continues to grow every day. An intuitive navigation allows users to conveniently sort everything by folders, customize sorting preferences, and manage file access.',\n image: portfolio2ItemsFexNetImage,\n url: 'https://fex.net/',\n backgroundDesktop: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n backgroundMobile: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n alt: 'FEX NET, software development project',\n },\n score777: {\n title: '777SCORE',\n description: '777SCORE is a statistics portal that offers scores, statistics, and live results for sport events from all around the world. It provides information from official sources, you can easily find a game from any league, including the minor national championships.',\n image: portfolio777ScoreImage,\n url: 'https://777score.com/',\n backgroundDesktop: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n backgroundMobile: 'linear-gradient(284.75deg, rgba(38, 208, 206, 0.95) 0%, rgba(6, 17, 81, 0.95) 99.9%)',\n alt: '777SCORE, software development project',\n },\n};\n\nexport const softwareReengineeringServicesPortfolio: { title: string, description: string, url?: string, image: string, backgroundDesktop: string, backgroundMobile: string }[] = [\n portfolioWith2ItemsData.djooky, portfolioWith2ItemsData.smartExpert,\n];\n\nexport const customSoftwareDevelopmentPortfolio: { title: string, description: string, url?: string, image: string, backgroundDesktop: string, backgroundMobile: string }[] = [\n portfolioWith2ItemsData.addictiveLearning,\n portfolioWith2ItemsData.voicer,\n];\n\nexport const chatBotPortfolio: { title: string, description: string, url?: string, image: string, backgroundDesktop: string, backgroundMobile: string }[] = [\n portfolioWith2ItemsData.customerServiceAIBot, portfolioWith2ItemsData.sim23,\n];\n\nexport const aiSoftwareDevelopmentServicesPortfolio: { title: string, description: string, url?: string, image: string, backgroundDesktop: string, backgroundMobile: string }[] = [\n portfolioWith2ItemsData.djooky,\n portfolioWith2ItemsData.customerServiceAIBot,\n];\n\nexport const UxUiDesignServicesPortfolio: { title: string, description: string, url?: string, image: string, backgroundDesktop: string, backgroundMobile: string }[] = [\n portfolioWith2ItemsData.petsensus, portfolioWith2ItemsData.djooky,\n];\n\nexport const golang3ItemsGreedData: {icon: any, title: string, description: string}[] = [\n {\n title: 'Efficiency',\n description: 'Golang is fast and efficient, making it ideal for high performance applications.',\n icon: Golang3ItemsGreedDataIcon1,\n },\n {\n title: 'Optimized data processing',\n description: 'Golang is the perfect tool for applications that need to process large amounts of data quickly.',\n icon: Golang3ItemsGreedDataIcon2,\n },\n {\n title: 'Scalability',\n description: 'Golang is a programming language that makes the process of scaling smooth.',\n icon: Golang3ItemsGreedDataIcon3,\n },\n {\n title: 'Maintainability',\n description: 'Go is a great language to choose if you want to make sure your code is maintainable.',\n icon: Golang3ItemsGreedDataIcon4,\n },\n {\n title: 'Enhanced performance',\n description: 'High quality code guarantees fast loading and seamless user experience.',\n icon: Golang3ItemsGreedDataIcon5,\n },\n {\n title: 'Security',\n description: 'Golang makes it easy to write efficient code without sacrificing security measures.',\n icon: Golang3ItemsGreedDataIcon6,\n },\n];\n\nexport const goLangTabsContent: IInfoSectionContent = {\n title: 'Golang development services we provide\\n',\n description: 'We provide end-to-end Golang development services, from architecting solutions to building and deploying them.',\n theme: 'lightTheme',\n items: [\n {\n itemTitle: 'Custom Golang development',\n itemDescription: 'Our team of highly knowledgeable developers will work with you to build a custom app that meets the needs of your business.',\n },\n {\n itemTitle: 'Golang web development',\n itemDescription: 'We\\'ll take your idea and turn it into a secure and scalable web application that\\'s built on the latest Golang technology.',\n },\n {\n itemTitle: 'Golang mobile development',\n itemDescription: 'We can help build your mobile app using Golang for better scalability, high quality and performance.',\n },\n {\n itemTitle: 'Microservices',\n itemDescription: 'Golang is an ideal choice for building microservices due to its concurrency features and API support.',\n },\n {\n itemTitle: 'Migration to Golang',\n itemDescription: 'We help to modernize slow-performing and resource-intensive legacy systems by migrating them to Golang.',\n },\n {\n itemTitle: 'Support & maintenance',\n itemDescription: 'You can rely on us for the support and maintenance of your Golang project. You can be confident that your code will be in good hands.',\n },\n ],\n};\n\nexport const php3ItemsGreedData: {icon: any, title: string, description: string}[] = [\n {\n title: 'Effortless scalability',\n description: 'When you\\'re developing an application in PHP, you can quickly iterate on your ideas and make changes as needed without worrying about breaking your entire codebase.',\n icon: Php3ItemsGreedDataIcon1,\n },\n {\n title: ' Improved loading speed',\n description: 'PHP allows web developers to create dynamic pages that are capable of processing information quickly, making PHP an ideal choice for creating fast-loading websites.',\n icon: Php3ItemsGreedDataIcon2,\n },\n {\n title: 'Reduced costs',\n description: 'PHP allows developers to use any primary operating system as they code. This flexibility streamlines the development process and makes it faster and less expensive.',\n icon: Php3ItemsGreedDataIcon3,\n },\n {\n title: 'Rapid development',\n description: 'PHP is a great choice for businesses looking to speed up their development process. PHP development requires less time, due to the code reusability.',\n icon: Php3ItemsGreedDataIcon4,\n },\n {\n title: 'Easy maintenance',\n description: 'One of the most compelling reasons to use PHP is that it\\'s easy to maintain. This saves businesses time and money, as well as enabling them to focus on their core competencies.',\n icon: Php3ItemsGreedDataIcon5,\n },\n {\n title: 'Cloud compatibility',\n description: 'One of these benefits is that PHP can be deployed on a cloud server, which means that you can create a website or web application without having to purchase your own hardware.',\n icon: Php3ItemsGreedDataIcon6,\n },\n];\n\nexport const phpTabsContent: IInfoSectionContent = {\n title: 'PHP development services we provide',\n description: 'PHP can be used to create almost anything from small websites to large enterprise applications. Our team of experts will work with you every step of the way\\n'\n + ' to ensure that your project is completed successfully and on time.',\n theme: 'lightTheme',\n items: [\n {\n itemTitle: 'Custom PHP development',\n itemDescription: 'We take time to learn about your company so we can build something that truly meets your needs—from the ground up.',\n },\n {\n itemTitle: 'PHP web development',\n itemDescription: 'PHP truly excels in web development. Our experts can help you create websites and applications that are easy to use and maintain.',\n },\n {\n itemTitle: 'CMS/platforms development',\n itemDescription: 'Our team has extensive experience in building systems from the ground up, and we know how to ensure security and scalability.',\n },\n {\n itemTitle: 'Cloud-based applications',\n itemDescription: 'We specialize in creating cloud-based applications that help to streamline and optimize business processes.',\n },\n {\n itemTitle: 'API development & integration',\n itemDescription: 'Our team of experienced PHP developers can securely improve the functionality of applications with third-party systems and devices.',\n },\n {\n itemTitle: 'Desktop applications',\n itemDescription: 'We create powerful, reliable, and scalable desktop applications. Our team works hard to ensure your project is a success.',\n },\n {\n itemTitle: 'Migration to PHP',\n itemDescription: 'We can help you to modernize your existing applications and smoothly migrate your systems to PHP.',\n },\n {\n itemTitle: 'Support & maintenance',\n itemDescription: 'Our experts provide comprehensive support and maintenance services to ensure seamless performance of your PHP solution.',\n },\n ],\n};\n\nexport const phpFAQData: {title: string, description: string}[] = [\n {\n title: 'What is PHP?',\n description: 'PHP is a server-side scripting language designed for web development. You can use PHP to create anything from small personal sites to complex applications, like Facebook or WordPress.',\n },\n {\n title: 'What is PHP application development?',\n description: 'PHP application development is a process by which you can create a website or application using the PHP programming language.',\n },\n {\n title: 'Is PHP cost-effective?',\n description: 'PHP is one of the most cost-effective ways to build a website or application. Because PHP is an open-source language, there are no licensing fees associated with it.',\n },\n {\n title: 'Is PHP efficient?',\n description: 'PHP is an extremely efficient programming language that can handle large amounts of traffic with ease. It allows you to build robust websites and applications in a very short amount of time.',\n },\n {\n title: ' Is PHP reliable?',\n description: 'PHP is a well-established, reliable language. It\\'s been around since 1995, and it has been used by major companies like Facebook, Wikipedia, and Google.',\n },\n {\n title: 'Why should I outsource PHP development?',\n description: 'When you outsource PHP development, you save time, money and energy. You don\\'t have to worry about managing a team or keeping them updated on what needs to be done, you just get results.',\n },\n {\n title: 'Why should I choose Moai Team for my PHP development project?',\n description: 'Our team takes a holistic approach when developing applications, taking into account the needs of your business as well as your users. We’ll make sure that your project is done right the first time. ',\n },\n];\n\nexport const python3ItemsGreedData: {icon: any, title: string, description: string}[] = [\n {\n title: 'Rapid development',\n description: 'Python can help you get your product to market faster and with less stress.',\n icon: python3ItemsGreedDataIcon1,\n },\n {\n title: 'Increased productivity',\n description: 'The Python programming language helps to increase programmers\\' productivity.',\n icon: python3ItemsGreedDataIcon2,\n },\n {\n title: 'Scalability',\n description: 'Python lends itself well to scaling up projects over time as they grow larger in scope.',\n icon: python3ItemsGreedDataIcon3,\n },\n {\n title: 'Security',\n description: 'Your software will be protected from unauthorized access or tampering by third parties.',\n icon: python3ItemsGreedDataIcon4,\n },\n {\n title: 'Cost-effectiveness',\n description: 'Python allows you to solve complex problems quickly and cost-effectively.',\n icon: python3ItemsGreedDataIcon5,\n },\n {\n title: 'Reliability',\n description: 'Python has been proven to be reliable in a wide range of applications.',\n icon: python3ItemsGreedDataIcon6,\n },\n];\n\nexport const pythonTabsContent: IInfoSectionContent = {\n title: 'Python development services we provide',\n description: 'With our team of highly skilled Python developers, we deliver high-quality results with a fast turnaround time. We also offer consulting services if you need help getting started with a new project or want to improve an existing one.',\n theme: 'lightTheme',\n items: [\n {\n itemTitle: 'Custom Python development',\n itemDescription: 'Our team of highly knowledgeable developers will work with you to build a custom app that meets the needs of your business.',\n },\n {\n itemTitle: 'AI & ML',\n itemDescription: 'We have a team of highly skilled specialists in the field of artificial intelligence and machine learning.',\n },\n {\n itemTitle: 'Web application development',\n itemDescription: 'We take pride in our developers, who combine years of experience with new ideas to create cutting-edge solutions.',\n },\n {\n itemTitle: 'Mobile application development',\n itemDescription: 'We’ll work with you every step of the way to make sure that your idea is being translated into reality in the best possible way.',\n },\n {\n itemTitle: 'Migration of legacy systems to Python',\n itemDescription: 'Our team can help you modernize your legacy application to leverage the best features of Python.',\n },\n {\n itemTitle: 'Support & maintenance',\n itemDescription: 'We are there to help you with support and maintenance of your application to fix any issues in a timely manner.',\n },\n ],\n};\n\nexport const pythonFAQData: {title: string, description: string}[] = [\n {\n title: 'What is Python?',\n description: 'Python is a programming language that is used to develop software. It\\'s one of the most popular languages for data science and machine learning applications.',\n },\n {\n title: 'What is Python development?',\n description: 'Python development is defined as creating new applications or adding extensions to existing applications using Python.',\n },\n {\n title: 'Is Python reliable?',\n description: 'Python is a powerful programming language that\\'s used by organizations like NASA, Google, and Instagram.',\n },\n {\n title: 'Is Python scalable?',\n description: 'Python is ideal for quickly building prototypes or experimenting with new ideas, while still being able to scale your application to handle large amounts of data later on.',\n },\n {\n title: 'Is Python cost-effective?',\n description: 'Python is one of the most cost-effective tools for developing software, and it can be used to create applications for both web and mobile platforms.',\n },\n {\n title: 'When to use Python?',\n description: 'Python is a versatile programming language that can be used for a wide range of applications. It is one of the most popular languages for data science, machine learning, and artificial intelligence.',\n },\n {\n title: 'Why should I outsource Python development?',\n description: 'Outsourcing Python development is ideal for startups and businesses looking to build applications that can scale quickly and efficiently.',\n },\n {\n title: 'Why should I choose Moai Team for my Python development project?',\n description: 'We\\'ll work hard to build a trusting relationship and solve any problems that arise along the way. Our Python developers will work with you to build the perfect solution for your business needs.',\n },\n];\n\nexport const reactNative3ItemsGreedData: {icon: any, title: string, description: string}[] = [\n {\n title: 'Code reusability',\n description: 'React Native can reduce the time it takes to build your business software by providing you with a single codebase that allows you to build apps for iOS and Android devices.',\n icon: reactNative3ItemsGreedDataIcon1,\n },\n {\n title: 'Cost-efficiency',\n description: 'React Native is a great tool to use if you\\'re looking for cost-efficiency. It allows companies to take advantage of its many features without having to pay extra fees.',\n icon: reactNative3ItemsGreedDataIcon2,\n },\n {\n title: 'Animations',\n description: 'React Native is a great choice when it comes to building user interfaces, especially if your business relies on apps with rich, animated user experiences.',\n icon: reactNative3ItemsGreedDataIcon3,\n },\n {\n title: 'High quality user interface',\n description: 'If you\\'re looking for a way to make your app stand out from the crowd, React Native is the answer. React Native allows you to create stunning, one-of-a-kind user interfaces. ',\n icon: reactNative3ItemsGreedDataIcon4,\n },\n {\n title: 'Compatibility with third-party plugins',\n description: 'With React Native, you can take advantage of a variety of third-party plugins to enhance the app\\'s capabilities and provide your users with the best possible experience.',\n icon: reactNative3ItemsGreedDataIcon5,\n },\n {\n title: 'Easy maintenance',\n description: 'React Native provides a way to easily maintain your app as new updates come out and your users\\' needs change. It’s a perfect tool for making sure your app is always up to date',\n icon: reactNative3ItemsGreedDataIcon6,\n },\n];\n\nexport const reactNativeTabsContent: IInfoSectionContent = {\n title: 'React Native development services we provide',\n description: 'Our developers have extensive expertise in building scalable solutions using React Native. \\n'\n + 'We use the best practices and industry standards to ensure that projects are delivered on time and within budget.',\n theme: 'lightTheme',\n items: [\n {\n itemTitle: 'Custom React Native development',\n itemDescription: 'We are a team of passionate and experienced developers who can help you with the development of your dream app.',\n },\n {\n itemTitle: 'React Native Android app development',\n itemDescription: 'We can assist you in building your app from scratch and help you improve the existing codebase.',\n },\n {\n itemTitle: 'React Native iOS app development',\n itemDescription: 'Our team of experts will help you create a React Native iOS app that is intuitive, engaging, and easy to use.',\n },\n {\n itemTitle: 'React Native cross-platform app development',\n itemDescription: 'We can help you create a mobile app that works on both iOS and Android devices, using one codebase.',\n },\n {\n itemTitle: 'React Native for MVP development',\n itemDescription: 'Our team can help you develop a minimum viable product (MVP) to test the market before investing in a full-blown launch.',\n },\n {\n itemTitle: 'Backend development',\n itemDescription: 'Our experts can build the whole infrastructure of your mobile app, creating the business logic and API communication.',\n },\n {\n itemTitle: 'Migration to React Native',\n itemDescription: 'Legacy apps can be migrated to React Native to take advantage of its many benefits, such as improved performance and better UI/UX.',\n },\n {\n itemTitle: 'Support & maintenance',\n itemDescription: 'We\\'ll help you make sure that your app is up-to-date, running smoothly, and working as intended.',\n },\n ],\n};\n\nexport const reactNativeFAQData: {title: string, description: string}[] = [\n {\n title: 'What is React Native?',\n description: 'React Native is a JavaScript-based mobile app framework that lets you create native-looking iOS and Android apps.',\n },\n {\n title: 'Is React Native efficient?',\n description: 'React Native has been built to be as efficient as possible. This means that it does not require the entire codebase to be rewritten for each platform—it can be executed on Android and iOS simultaneously.',\n },\n {\n title: 'Is React Native reliable?',\n description: 'React Native has been used in production by thousands of companies, so it\\'s proven to be stable and reliable in real-world usage.',\n },\n {\n title: 'Is React Native scalable?',\n description: 'The best thing about React Native is that it\\'s highly scalable. It\\'s the perfect solution if you want to build an app that works across multiple platforms and devices.',\n },\n {\n title: 'Is React Native cost-effective?',\n description: 'React Native is cost-effective because it allows developers to write their code once and then deploy it on multiple platforms.',\n },\n {\n title: 'What are the advantages of React Native for businesses?',\n description: 'React Native is a great choice for businesses, because it lets you build cross-platform apps with native performance. This means your app will perform just as well on iOS as it does on Android.',\n },\n {\n title: 'Why should I outsource React Native development?',\n description: 'Outsourcing your React Native development is a great idea if you\\'re looking to get things done quickly, affordably, and efficiently.',\n },\n {\n title: 'Why should I choose Moai Team for my React Native development project?',\n description: 'Our developers are highly qualified and experienced in React Native. Our talented engineers will work closely with you to build a custom solution that meets your unique requirements and budget constraints.',\n },\n];\n\nexport const eLearningFAQData: {title: string, description: string}[] = [\n {\n title: 'What is eLearning?',\n description: 'eLearning is the process of learning a skill or information through the use of technology. It is also known as online learning or web-based learning.',\n },\n {\n title: 'What is eLearning software?',\n description: 'The eLearning software is a computer program that is designed specifically for creating and delivering online courses.',\n },\n {\n title: 'What kind of training can I do with eLearning?',\n description: 'A: Virtually any kind. You can use eLearning to teach your students new skills, or as part of a larger training program.',\n },\n {\n title: 'How do I know if eLearning is right for my company?',\n description: 'eLearning is a more efficient way to reach your employees than by sending them to an in-person training class, and it allows you to reach everyone at once.',\n },\n {\n title: 'How long does eLearning software development take?',\n description: 'eLearning software development is a long-term process that typically takes between 4 and 6 months, depending on the size of the project.',\n },\n {\n title: 'How much does eLearning software development cost?',\n description: 'The price for an average-sized eLearning solution is $20,000 - $30,000. The cost may vary depending on factors such as complexity and functionality of your product.',\n },\n {\n title: 'What are the advantages of eLearning software development?',\n description: 'eLearning software allows you to save time and money by automating the creation of your educational content and providing engaging experiences for everyone who uses it.',\n },\n {\n title: 'What is the difference between eLearning software development and eLearning content development?',\n description: 'eLearning software development involves creating tools that help the learner to interact with the content, and eLearning content development involves creating the actual content to be used by the learner.',\n },\n {\n title: 'Why should I outsource eLearning software development?',\n description: 'Outsourcing eLearning software development is a great way to save you time and money, as well as ensure that your eLearning program meets your needs.',\n },\n {\n title: 'Why should I choose Moai Team for my eLearning software development project?',\n description: 'Our team is made up of people who are passionate about education, so we understand the importance of making sure your learners have a great experience with your software.',\n },\n];\n\nexport const eLearningAreasOfExpertiseData: {title: string, description: string, img: string, alt: string}[] = [\n {\n title: 'Management',\n description: 'eLearning software is transforming the way we approach education. With the ability to include multiple content types, third-party and corporate content aggregation, and compliance with industry-specific regulations, eLearning software helps you improve your training experience for employees and customers.',\n img: eLearningAreasOfExpertiseDataIcon1,\n alt: 'Key features of eLearning software, management',\n },\n {\n title: 'AI',\n description: 'eLearning software is a powerful tool for creating engaging, effective, and personalized learning experiences. AI-driven learning paths can provide each student with a unique set of lessons based on their strengths and weaknesses. Also, you can use performance assessment to track your students\\' progress and identify areas for improvement.',\n img: eLearningAreasOfExpertiseDataIcon2,\n alt: 'Key features of eLearning software, AI',\n },\n {\n title: 'Social',\n description: 'eLearning software can offer many features to help you create the best possible educational experience, including profile pages, communities, chats, forums, likes, shares, and comments. You can include gamification (scores, badges, levels, rewards) to increase engagement and create a competitive learning environment.',\n img: eLearningAreasOfExpertiseDataIcon3,\n alt: 'Key features of eLearning software, social',\n },\n {\n title: 'Integrations',\n description: 'You can integrate content management systems, video conferencing software, knowledge management systems, and task management software into your learning platform to create a learning ecosystem that will serve your students well and ensure they are getting the most out of the training.',\n img: eLearningAreasOfExpertiseDataIcon4,\n alt: 'Addictive Learning, eLearning software development project',\n },\n];\n\nexport const react3ItemsGreedData: {icon: any, title: string, description: string, alt: string}[] = [\n {\n title: 'Fast development',\n description: 'React allows developers to create reusable components, which increases productivity and decreases the time spent on repetitive tasks.',\n icon: react3ItemsGreedDataIcon1,\n alt: 'Companies use React to build business software because of fast development',\n },\n {\n title: 'Reduced costs',\n description: 'Reusable components reduce the overall cost of web app development by decreasing the amount of time needed to build new applications.',\n icon: react3ItemsGreedDataIcon2,\n alt: 'Companies use React to build business software because of reduced costs',\n },\n {\n title: 'Fast loading time',\n description: 'React Virtual DOM enables super fast loading times and makes your app feel smooth and responsive as you\\'re using it.',\n icon: react3ItemsGreedDataIcon3,\n alt: 'Companies use React to build business software because of fast loading time',\n },\n {\n title: 'Easy transition to mobile',\n description: 'React allows for the smoothest transition from web to mobile, as the code written in ReactJS is easily compatible with React Native.',\n icon: react3ItemsGreedDataIcon4,\n alt: 'Companies use React to build business software because of easy transition to mobile',\n },\n {\n title: 'Flexibility',\n description: 'React offers a number of features that make it easy for engineers to manage the code, modify the app and improve performance.',\n icon: react3ItemsGreedDataIcon5,\n alt: 'Companies use React to build business software because of flexibility',\n },\n {\n title: 'Easy maintenance and updates',\n description: 'You can create applications that are easy to maintain. Also, it’s easy to update individual components without affecting the rest of your application.',\n icon: react3ItemsGreedDataIcon6,\n alt: 'Companies use React to build business software because of easy maintenance and updates',\n },\n];\n\nexport const reactTabsContent: IInfoSectionContent = {\n title: 'React development services we provide',\n description: 'We have a team of highly-skilled React developers, who build high-quality, scalable applications that solve real-world problems.',\n theme: 'lightTheme',\n items: [\n {\n itemTitle: 'Custom React development',\n itemDescription: 'Our team of highly knowledgeable developers will work with you to build a custom app that meets the needs of your business.',\n },\n {\n itemTitle: 'React web development',\n itemDescription: 'We offer a wide spectrum of React web development services. Our highly skilled React developers can tackle any challenge.',\n },\n {\n itemTitle: 'Migration to React',\n itemDescription: 'We help businesses adopt React in order to update applications while eliminating challenges and issues.',\n },\n {\n itemTitle: 'Maintenance and support',\n itemDescription: 'Our team offers maintenance and support services to ensure stable performance of React applications.',\n },\n ],\n};\n\nexport const reactFAQData: {title: string, description: string}[] = [\n {\n title: 'What is React?',\n description: 'React is a front-end JavaScript library for building dynamic, interactive user interfaces based on UI components.',\n },\n {\n title: 'What is React development?',\n description: 'React development is a process that involves creating and managing the creation of user interfaces (UI) for web applications and websites.',\n },\n {\n title: 'Is React reliable?',\n description: 'React has gained popularity for its performance and ability to efficiently handle large data sets. It has an impressive performance, which means it\\'s perfect for building highly interactive applications.',\n },\n {\n title: 'Is React scalable?',\n description: 'React is a great choice for companies that want to scale their products. React\\'s virtual DOM is a huge help when it comes to scalability. ',\n },\n {\n title: 'Is React cost-effective?',\n description: 'React is a cost-effective option for companies that need to build large, scalable applications. React can be used with other libraries, like Redux, to create an environment where your code is easily maintained and enhanced.',\n },\n {\n title: 'What are the advantages of React for businesses?',\n description: 'React is fast, which means that your users will have a smooth experience when they use your site or app. Also, React makes it easy to update one part of a page without having to update everything else.',\n },\n {\n title: 'Why should I outsource React development?',\n description: 'Outsourcing your React development can be a great way to bring on a dedicated team of developers who have the experience and know-how to get the job done right.',\n },\n {\n title: 'Why should I choose Moai Team for my React development project?',\n description: 'Our team is composed of highly-skilled software engineers who work together to develop software that meets your needs and exceeds your expectations.',\n },\n];\n\nexport const hrAreasOfExpertiseData: {title: string, description: string, img: string, alt: string}[] = [\n {\n title: 'AI',\n description: 'AI can automate repetitive, time-consuming tasks that drag down the efficiency of HR management.',\n img: hrAreasOfExpertiseDataIcon1,\n alt: 'Key features of HR software, AI',\n },\n {\n title: 'Recruitment',\n description: 'Our software solutions make hiring procedures swift with easy to prepare templates and follow-ups.',\n img: hrAreasOfExpertiseDataIcon2,\n alt: 'Key features of HR software, recruitment',\n },\n {\n title: 'Administrative tasks',\n description: 'The administrative features enable you to manage employee databases, profiles and payrolls.',\n img: hrAreasOfExpertiseDataIcon3,\n alt: 'Key features of HR software, administrative tasks',\n },\n {\n title: 'Talent management',\n description: 'We build comprehensive features to help make the most of your employees\\' career potential.',\n img: hrAreasOfExpertiseDataIcon4,\n alt: 'Key features of HR software, talent management',\n },\n {\n title: 'Performance evaluation',\n description: 'Performance evaluation tools give transparency and unbiased output of productivity of employees.',\n img: hrAreasOfExpertiseDataIcon5,\n alt: 'Key features of HR software, performance evaluation',\n },\n {\n title: 'Training',\n description: 'Training tools help you identify gaps in your employees\\' skills and manage their training.',\n img: hrAreasOfExpertiseDataIcon6,\n alt: 'Key features of HR software, training',\n },\n];\n\nexport const hrFAQData: {title: string, description: string}[] = [\n {\n title: 'What is HR tech?',\n description: 'HR tech is a term used to describe the use of technology in the hiring and employment practices of organizations. It helps automate, streamline, and improve the way HR processes are handled.\\n',\n },\n {\n title: 'What is HR software?',\n description: 'HR software is a software that helps HR departments manage employee data and processes. This can include everything from payroll to benefits, but it\\'s most commonly used for recruiting and onboarding.\\n',\n },\n {\n title: 'What is the best way to implement HR technology in a company?',\n description: 'It\\'s important to remember that technology cannot replace the value of human interaction, so it\\'s important to make sure you\\'re integrating it into your culture and workflow as seamlessly as possible.\\n',\n },\n {\n title: 'Why should I use HR technology?',\n description: 'You can use HR technology to reduce your costs, improve productivity, attract top talent, and enhance your employer brand.\\n',\n },\n {\n title: 'How long does HR software development take?',\n description: 'HR software development can take anywhere from 2 to 4 months, depending on the size and scope of your project.',\n },\n {\n title: 'How much does HR software development cost?',\n description: 'Building an HR software solution from scratch costs between $10,000 and $20,000. The price depends on the complexity of the system, and the amount of customization needed. ',\n },\n {\n title: 'What are the advantages of HR software development?',\n description: 'HR software development is a great way to streamline your company\\'s HR processes and increase efficiency of your business operations.',\n },\n {\n title: 'Why should I outsource HR software development?',\n description: 'Outsourcing HR software development can save you time and money, while also giving you access to a wide range of experts who can help you create the perfect solution for your organization.',\n },\n {\n title: 'What is the process of building HR software?',\n description: 'The HR software development process is designed to be iterative and agile, allowing you to easily add features while also providing an opportunity to test the product.',\n },\n {\n title: 'Why should I choose Moai Team for my HR software development project?',\n description: 'When it comes to HR software development, you need to trust your company\\'s data to seasoned professionals. We are proud of our reputation and technical expertise, as well as a reliable team.',\n },\n];\n\nexport const media3ItemsGreedData: {icon: any, title: string, description: string, alt: string}[] = [\n {\n title: 'AI',\n description: 'AI personalization enables companies to deliver content that is relevant to each customer\\'s needs and preferences.',\n icon: media3ItemsGreedDataIcon1,\n alt: 'Key features of media and entertainment software, AI',\n },\n {\n title: 'Security',\n description: 'We protect your content from piracy and DDoS attacks by using our state-of-the-art technology, such as firewalls and encryption.',\n icon: media3ItemsGreedDataIcon2,\n alt: 'Key features of media and entertainment, security',\n },\n {\n title: 'Content delivery',\n description: 'We ensure that your content is delivered in the best way possible, no matter what device your audience is using.',\n icon: media3ItemsGreedDataIcon3,\n alt: 'Key features of media and entertainment software, content delivery',\n },\n {\n title: 'Rich viewer experience',\n description: 'We focus on creating engaging interfaces that are easy to navigate. Your audience will be able to use the product with ease, without getting frustrated.',\n icon: media3ItemsGreedDataIcon4,\n alt: 'Key features of media and entertainment software, rich viewer experience',\n },\n {\n title: 'Monetization',\n description: 'We understand the unique challenges of the entertainment industry, and we\\'re here to help you increase demand while staying true to your brand.',\n icon: media3ItemsGreedDataIcon5,\n alt: 'Key features of media and entertainment software, monetization',\n },\n {\n title: 'Engagement analytics',\n description: 'We create data-driven reporting engines so you can quickly determine which content is resonating most with your audience.',\n icon: media3ItemsGreedDataIcon6,\n alt: 'Key features of media and entertainment software, engagement analytics',\n },\n];\n\nexport const mediaFAQData: {title: string, description: string}[] = [\n {\n title: 'What is media and entertainment software?',\n description: 'ECommerce and entertainment software is a class of software that provides tools for creating, managing, and distributing content.',\n },\n {\n title: 'What does the media and entertainment industry consist of?',\n description: 'The media and entertainment industry consists of film, print, radio, and television. It includes a large number of companies that are involved in creating content for sale or distribution to consumers.',\n },\n {\n title: 'Why use media and entertainment software?',\n description: 'ECommerce and entertainment software can be used for things like video editing, graphic design, audio production, animation, and more.',\n },\n {\n title: 'Who uses media and entertainment software?',\n description: 'ECommerce and entertainment software is used by everyone from the individual consumer to large companies. It\\'s a multi-billion dollar industry that touches people of all ages, backgrounds, and professions.',\n },\n {\n title: 'How long does media and entertainment software development take?',\n description: 'On average, media and entertainment software development takes between 5 and 8 months, depending on the scope of work and type of product.',\n },\n {\n title: 'How much does media and entertainment software development cost?',\n description: 'You can expect to spend anywhere from $35,000 to $80,000 for a full-scale media or entertainment software development project.',\n },\n {\n title: 'What are the advantages of media and entertainment software development?',\n description: 'It can help businesses achieve greater revenue potential by providing tools that make it easier to monetize products, improve the user experience, and reduce costs by streamlining processes.',\n },\n {\n title: 'Why should I outsource media and entertainment software development?',\n description: 'Outsourcing your project to a team of experts can help you save time, money, and headaches. You can focus on what you do best while the experts take care of your software development needs.',\n },\n {\n title: 'What is your media and entertainment software development process?',\n description: 'We use Agile methodologies to deliver high quality media and entertainment software. We work with our clients to understand their needs, so that we can develop a plan that works for them.',\n },\n {\n title: 'Why should I choose Moai Team for my media and entertainment software development project?',\n description: 'Our team will work with you to make sure that your project is completed on time, within budget, and exactly as you envisioned it. From concept to completion, we\\'re here to support you every step of the way.',\n },\n];\n\nexport const eCommerceFAQData: {title: string, description: string}[] = [\n {\n title: 'What is eCommerce?',\n description: 'eCommerce is the process of buying and selling products or services online. It is commonly used in retail, but it has also been adapted for use in other industries, including education and healthcare.',\n },\n {\n title: 'What is eCommerce software?',\n description: 'eCommerce software is the platform that allows you to sell products or services online. It can be used to manage inventory, track orders and payments, keep customer data, and more.',\n },\n {\n title: 'What are some of the best eCommerce website development platforms?',\n description: 'Some of the most popular platforms include Shopify, WooCommerce, Magento, OpenCart and BigCommerce.',\n },\n {\n title: 'What payment gateways do you integrate in an eCommerce website?',\n description: 'We have experience in integrating all standard payment gateways such as Paypal and Stripe, so you can easily and securely accept payments.',\n },\n {\n title: 'How long does eCommerce software development take?',\n description: 'Developing eCommerce software can take anywhere from 2 to 6 months. The length of time depends on several factors, including the complexity of your project and the number of features you want to include.',\n },\n {\n title: 'How much does eCommerce software development cost?',\n description: 'The average cost of an eCommerce software can be anywhere from $5,000 to $50,000. The cost can vary considerably depending on the scope of the project and how much customization is required.',\n },\n {\n title: 'What are the advantages of eCommerce software development?',\n description: 'eCommerce software development can help you to reduce costs by automating processes, improve the way you interact with your customers, make your business more efficient, increase sales, and much more.',\n },\n {\n title: 'Why should I outsource eCommerce software development?',\n description: 'Outsourcing eCommerce software development allows you to focus on your core business, while a team of experts works on building the technical foundation that will help you scale.',\n },\n {\n title: 'What is your eCommerce software development process?',\n description: 'The eCommerce software development process involves design, developing the functionality, testing and maintenance.',\n },\n {\n title: 'Why should I choose Moai Team for my eCommerce software development project?',\n description: 'Our team uses cutting edge technologies to build robust and scalable eCommerce solutions that stand the test of time.',\n },\n];\n\nexport const eCommerce3ItemsGreedData: { title: string, description: string }[] = [\n {\n title: 'eCommerce websites',\n description: 'Our team of experts can help turn your online store into a powerhouse that generates revenue.',\n },\n {\n title: 'eCommerce apps',\n description: 'We are passionate about creating intuitive and engaging shopping experiences on all platforms.',\n },\n {\n title: 'Custom marketplaces',\n description: 'We’ll work with you to develop a customized marketplace and make sure it stays secure and reliable at all times.',\n },\n {\n title: 'B2B and B2C software',\n description: 'We develop B2B and B2C eCommerce software that helps businesses sell their products and services online.',\n },\n {\n title: 'Multi-vendor marketplaces',\n description: 'We build multi-lingual and multi-currency marketplaces that facilitate collaboration between sellers and buyers.',\n },\n {\n title: 'eCommerce platform migration',\n description: 'We can migrate your eCommerce solution to a more effective platform with seamless integration and minimum disruption.',\n },\n];\n\nexport const b2bAreasOfExpertiseData: {title: string, description: string, img: string, alt: string}[] = [\n {\n title: 'Customer registration',\n description: 'Based on the information acquired through a customer\\'s registration, different pricing levels, payment terms, shipping arrangements, and minimum order quantities can be set.',\n img: b2bAreasOfExpertiseDataIcon1,\n alt: 'Key features of B2B software, customer registration',\n },\n {\n title: 'Password protected access',\n description: 'We can develop a customized solution that will help you protect your data, allow you to create different levels of access for different users, set up a system of passwords, and more. ',\n img: b2bAreasOfExpertiseDataIcon2,\n alt: 'Key features of B2B software, password protected access',\n },\n {\n title: 'Sophisticated search',\n description: 'We develop sophisticated search features that enable your users to find the information they need quickly and easily, while still being able to drill down into more detailed results if they need to.',\n img: b2bAreasOfExpertiseDataIcon3,\n alt: 'Key features of B2B software, sophisticated search',\n },\n {\n title: 'Complex pricing',\n description: 'We build functionality that can take care of different pricing models, offer promotions and bulk discounts, so that your customers get the best possible experience.',\n img: b2bAreasOfExpertiseDataIcon4,\n alt: 'Key features of B2B software, complex pricing',\n },\n];\n\nexport const b2bFAQData: {title: string, description: string}[] = [\n {\n title: 'What is B2B?',\n description: 'B2B, or business-to-business, is a term used to describe the sale of products and services between businesses.',\n },\n {\n title: 'B2B vs B2C: what\\'s the difference?',\n description: 'Business-to-business (B2B) refers to transactions between businesses, while business-to-consumer (B2C) refers to transactions between businesses and consumers.',\n },\n {\n title: 'What is B2B software?',\n description: 'B2B software is a type of software that is used to automate business processes between two or more companies.',\n },\n {\n title: 'What is B2B software used for?',\n description: 'B2B software is used to help businesses manage their relationships with other companies. It can be used to automate repetitive processes, to manage information more efficiently, or to connect with clients.',\n },\n {\n title: 'How long does B2B software development take?',\n description: 'B2B software development can take anywhere from 3 to 6 months, depending on the complexity and requirements of your project.',\n },\n {\n title: 'How much does B2B software development cost?',\n description: 'The cost of B2B software development ranges from $20,000 to $60,000, depending on the project\\'s size, complexity, and features.',\n },\n {\n title: 'What are the advantages of B2B software development?',\n description: 'B2B software development provides an opportunity for organizations to expand their customer base and stand out from competitors who aren\\'t able to offer as much functionality with their products.',\n },\n {\n title: 'How do I get started with my B2B software project?',\n description: 'There are two main steps in starting any B2B software project: determining the requirements and selecting the right technology solution for your business.',\n },\n {\n title: 'Why should I outsource B2B software development?',\n description: 'Outsourcing B2B software development can help your business save money and time. The cost of outsourcing is significantly lower than the cost of hiring an in-house team.',\n },\n {\n title: 'Why should I choose Moai Team for my B2B software development project?',\n description: 'We are committed to providing you with the best service possible, and we do this through our commitment to effective communication with our clients.',\n },\n];\n\nexport const mediaOurCapabilitiesTabsData: {title: string, description: string}[] = [\n {\n title: 'Custom software for media and entertainment',\n description: 'Whether you\\'re a media company, an advertising agency, or a video production company, our custom software solutions will help you reach your goals faster.',\n },\n {\n title: 'Content delivery network solutions',\n description: 'We help organizations ensure that content delivery is not interrupted by bandwidth constraints in resource-intensive services.',\n },\n {\n title: 'Media asset management systems',\n description: 'We build media asset management systems that allow media professionals to organize, manage, and catalog their content in the most efficient way possible.',\n },\n {\n title: 'Digital publishing solutions',\n description: 'We offer comprehensive software solutions to help media companies create, manage, and distribute content and reach new audiences.',\n },\n {\n title: 'OTT software',\n description: 'Over-the-top (OTT) platforms allow users to create interactive content. OTT solutions we build enable you to deliver any kind of streaming content.',\n },\n {\n title: 'Cloud solutions for media',\n description: 'We assist media and entertainment companies in modernizing their IT systems, migrating to the cloud, and bolstering security.',\n },\n];\n\nexport const eLearningOurCapabilitiesTabsData: {title: string, description: string}[] = [\n {\n title: 'Learning management system (LMS)',\n description: 'A learning management system is a software for administration, tracking, reporting, and delivery of educational courses.',\n },\n {\n title: 'Learning content management system (LCMS)',\n description: 'Learning Content Management System is a platform for delivering and analyzing content in a multi-user environment.',\n },\n {\n title: 'Learning Experience Platform (LXP)',\n description: 'A Learning Experience Platform is a service that aggregates content from various sources, including third-party providers.',\n },\n {\n title: 'Remote proctoring software',\n description: 'Remote proctoring software enables students to take exams in a remote location while maintaining the exam\\'s integrity.',\n },\n {\n title: 'Knowledge management system',\n description: 'Knowledge management system allows you to quickly and conveniently store, retrieve, and share information.',\n },\n {\n title: 'eLearning gamification solutions',\n description: 'Gamification helps to engage students, motivate them and increase knowledge retention rates.',\n },\n {\n title: 'AI in eLearning',\n description: 'AI-powered eLearning tools can help you create customized courses based on your learners\\' needs.',\n },\n {\n title: 'Virtual classrooms',\n description: 'Virtual classrooms are a great way to connect with students from all over the world in a safe, comfortable environment.',\n },\n {\n title: 'Mobile learning solutions',\n description: 'Mobile learning solutions help students learn on the go, allowing to access information whenever they need it from any device',\n },\n];\n\nexport const hrOurCapabilitiesTabsData: {title: string, description: string}[] = [\n {\n title: 'Human Resource Management Software (HRMS)',\n description: 'We create custom applications for end-to-end human resource management with robust features for hiring, training, performance and attendance tracking, payroll processing and reporting, leave management, and other HR processes.',\n },\n {\n title: 'Human Resource Information Systems (HRIS)',\n description: 'HRIS systems allow for better management of employee data, including payroll, benefits and training. Our solutions are designed to reduce your costs by providing a single platform for collection and management of employee information.',\n },\n {\n title: 'Payroll management software',\n description: 'We\\'re committed to helping companies maximize their human capital investments by providing customized, full-service payroll management solutions that automate payroll processes, tailoring our services to fit the needs of your organization.',\n },\n {\n title: 'Application Tracking Software',\n description: 'Application Tracking Software allows you to monitor new applications, track their progress, schedule interviews, and analyze applicant data. The software makes it easy to submit resumes, so that you can review them at your convenience.',\n },\n {\n title: 'Onboarding software',\n description: 'The onboarding process is more than just getting a new employee settled into their workspace. Our software solutions optimize the onboarding process for new hires. We help you reduce the time it takes to onboard employees.',\n },\n {\n title: 'Learning Management Systems for employee training',\n description: 'Learning Management Systems make employee training easier for both managers and employees. They provide an easy way to schedule training sessions, deliver training content, and invite new hires to attend the sessions.',\n },\n {\n title: 'Human Capital Management (HCM) solutions',\n description: 'HCM solutions provide a way to manage human resource information and processes to improve productivity and retention. These solutions can be integrated into existing systems, or they can be standalone apps that handle all of your HR needs.',\n },\n {\n title: 'HR system integration into your ERP software',\n description: 'We can help you make sure that your HR is as efficient as possible by integrating it with your ERP software. You\\'ll be able to coordinate everything from hiring to employee performance reviews and more — all from one simple interface.',\n },\n];\n\nexport const eCommerceOurCapabilitiesTabsData: {title: string, description: string}[] = [\n {\n title: 'AI',\n description: 'With us, you can leverage AI for building personalized shopping experiences, shopping assistants, and smart marketing campaigns. We’ll help you make the most of AI and machine learning.',\n },\n {\n title: 'Effortless payment process',\n description: 'The payment gateway will be integrated with your platform and will allow you to accept payments through secure channels such as credit cards, PayPal, etc.',\n },\n {\n title: 'Product Information Management (PIM)',\n description: 'Product Information Management is a vital part of the supply chain process that helps with product categorization, product lifecycle management and traceability.',\n },\n {\n title: 'Security',\n description: 'We will safeguard you and your customers against fraud. Our developers use the latest in encryption technology to ensure that your data is safe from unauthorized access.',\n },\n {\n title: 'Inventory management',\n description: 'Inventory management features help streamline the process of keeping track of the items you have in stock, as well as the shipments you have sent out, and ensure everything is delivered on time.',\n },\n {\n title: 'Logistics management',\n description: 'We provide a range of solutions to help companies manage their supply chains, including tracking systems, cargo operations, container management, fuel management, and vehicle inspection.',\n },\n {\n title: 'Warehouse management',\n description: 'With our expertise, you’ll be able to manage your warehouse and its inventory more efficiently. We\\'ll also make sure everything stays organized, so you can find what you need when you need it.',\n },\n {\n title: 'eCommerce Enterprise Resource Planning',\n description: 'To meet your specific needs and business goals, our custom ERP features will help you streamline complex workflows, keep track of inventory, track projects, and effectively manage your employees.',\n },\n {\n title: 'Document management',\n description: 'We build server-based and cloud solutions for creating complex, cross-system document workflows across multiple departments so that everyone can easily collaborate on projects.',\n },\n {\n title: 'Marketing and sales management',\n description: 'With powerful tools, you can build campaigns, set up rules for automated messages, view performance data and get the most out of every dollar spent on marketing.',\n },\n];\n\nexport const b2bOurCapabilitiesTabsData: {title: string, description: string}[] = [\n {\n title: 'B2B SaaS',\n description: 'B2B SaaS is a subscription-based software that allows businesses to manage their finances, automate payments and invoices, track sales pipeline, and much more.',\n },\n {\n title: 'B2B CRM Software',\n description: 'An effective B2B CRM software will help your business manage interactions you have with your customers, partners and suppliers to increase sales and improve customer satisfaction.',\n },\n {\n title: 'B2B sales software',\n description: 'B2B sales software is a powerful tool for sales representatives, managers and executives in the business-to-business sector. It helps you to manage your leads effectively.',\n },\n {\n title: 'B2B eCommerce portals',\n description: 'A B2B eCommerce portal allows companies to manage wholesale orders. It can be operated by one big seller, a group of sellers or an entity not directly involved in the transaction process.',\n },\n {\n title: 'B2B vendor portals',\n description: 'A B2B vendor portal is a business-to-business tool that provides comprehensive information about vendors, facilitates bidding, and manages repeated business transactions.',\n },\n {\n title: 'B2B customer portals',\n description: 'A B2B customer portal provides customers with self-service, interactive access to structured product or service information, enabling business customers to place and track their orders',\n },\n];\n\nexport const termsData: IPostItem[] = [\n {\n title: 'Terms',\n id: 'terms',\n content: [\n {\n key: 'p',\n text: 'Your access to this website is conditioned on your acceptance of and compliance with these Terms. These Terms apply to all visitors, users and others who access or use this website. If you do not agree with any of these Terms, you are prohibited from using or accessing this website. The materials contained in this website are protected by applicable copyright and trade mark law.',\n },\n ],\n },\n {\n title: 'Use License',\n id: 'useLicense',\n content: [\n {\n key: 'p',\n text: 'Permission is granted to temporarily download one copy of the materials for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'modify or copy the materials;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'use the materials for any commercial and non-commercial purpose;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'remove any copyright or other proprietary notations from the materials.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'This license will terminate automatically if you fail to comply with these restrictions, and may be terminated by https://moai.team/ at any time. Upon terminating your viewing of these materials or upon the termination of this license, you must destroy any downloaded materials in your possession whether in electronic or printed format.',\n },\n ],\n },\n {\n title: 'Disclaimer',\n id: 'disclaimer',\n content: [\n {\n key: 'p',\n text: 'The materials on this website are provided \"as is\". Moai Team makes no warranties, expressed or implied, concerning this website and will not be held liable for any damages arising from its use. Further, https://moai.team/ does not warrant or make any representations concerning the accuracy, results, or reliability of the use of the materials on this website or on any sites linked to this website.',\n },\n ],\n },\n {\n title: 'Limitations',\n id: 'Limitations',\n content: [\n {\n key: 'p',\n text: 'Under no circumstances shall https://moai.team/ or its suppliers be liable for any damages arising out of the use or inability to use the materials on this website, even if https://moai.team/ authorized representative has been notified orally or in writing of the possibility of such damage.',\n },\n ],\n },\n {\n title: 'Revisions and errors',\n id: 'Revisions and errors',\n content: [\n {\n key: 'p',\n text: 'The materials presented on the https://moai.team/ website may contain technical, typographical or photographic errors. Moai Team does not guarantee the accuracy, completeness, or currency of any material on this website. https://moai.team/ may update the materials contained on this site at any time without notice. However, https://moai.team/ does not promise to update the materials.',\n },\n ],\n },\n {\n title: 'Links',\n id: 'Links',\n content: [\n {\n key: 'p',\n text: 'Please be aware that https://moai.team/ is not responsible for the contents of any linked site nor does it endorse or recommend the products or services offered on other sites. Users should be aware that they are entirely responsible for any risks associated with using any such linked site.',\n },\n ],\n },\n {\n title: 'Terms of service modifications',\n id: 'Terms of service modifications',\n content: [\n {\n key: 'p',\n text: 'https://moai.team/ reserves the right to modify or replace these Terms of service at any time without notice. By using this website you agree to be bound by the then current version of these Terms of service.',\n },\n ],\n },\n {\n title: 'Governing law',\n id: 'Governing law',\n content: [\n {\n key: 'p',\n text: 'Any claim relating to https://moai.team/ website shall be governed by the laws of Ukraine without regard to its conflict of law provisions.',\n },\n ],\n },\n];\n\nexport const privacyPolicyData: IPostItem[] = [\n {\n title: 'Recipients of personal data',\n id: 'Recipients of personal data',\n content: [\n {\n key: 'p',\n text: 'Your data is collected by Moai Team and is not disclosed to unauthorized third parties. If you have any questions about our data collection practices, please contact us at service@moai.team.',\n },\n ],\n },\n {\n title: 'What data is collected',\n id: 'What data is collected',\n content: [\n {\n key: 'p',\n text: 'Moai Team collects and processes information that:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'you submit through the contact form on our website;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'you submit when you subscribe to our updates via the blog;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'you disclose to us by other means such as orally (over a call) or in writing (in an email or other text message);',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'you submit when you apply to join our team;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'we generate internally during performance of a contract between you and Moai Team;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'you provide during interaction with our web site, through cookies and web forms;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'we obtain from third parties, integrated services or recruitment agencies;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'we obtain from Google Analytics, Pipedrive, Crazy Egg, and Leadfeeder;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'we obtain from open sources, social media sources, public web sites or press releases.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'We ensure that all third-party services we use are in compliance with current laws and regulations.',\n },\n ],\n },\n {\n title: 'How we use your personal data',\n id: 'How we use your personal data',\n content: [\n {\n key: 'p',\n text: 'Moai Team processes your personal data for the following:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'purposes to which you agree in a consent form;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'for contacting you and providing you with the services and information that you request;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'for establishing a business relationship, sending you information about our services, and providing you with updates that may be related to your personal and professional interests;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'for automated processing: we use cookies and third-party services to help us better understand your preferences and improve your experience on the website;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'in order to comply with legal obligations specified in a particular law or regulation;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'legitimate interests pursued by Moai Team, except where such interests are overridden by your interests or fundamental rights and freedoms.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'If Moai Team intends to use the personal data for a purpose that is different from the original one, we will contact you to ask for your consent.',\n },\n ],\n },\n {\n title: 'Third parties',\n id: 'Third parties',\n content: [\n {\n key: 'p',\n text: 'We carefully select third-party service providers that are committed to maintaining your sensitive information with the utmost security. We use exceptional services that claim they are compliant with GDPR and other data protection regulations. You can contact us at service@moai.team for more information about our data protection measures.',\n },\n ],\n },\n {\n title: 'Storage period',\n id: 'Storage period',\n content: [\n {\n key: 'p',\n text: 'We store your personal data for a limited period of time, which varies depending on type of data, the purposes of processing, and legal requirements. To obtain information about the storage period of your personal data, please contact us via service@moai.team.',\n },\n ],\n },\n {\n title: 'How to withdraw your consent for collecting, processing, and using your data',\n id: 'How to withdraw your consent for collecting, processing, and using your data',\n content: [\n {\n key: 'p',\n text: 'You may withdraw your consent for collecting, processing, and using your data by sending an email to service@moai.team. You may withdraw your consent to receive emails at any time by clicking Unsubscribe on any email or replying with a request to unsubscribe.',\n },\n ],\n },\n {\n title: 'Your rights',\n id: 'Your rights',\n content: [\n {\n key: 'p',\n text: 'As a data subject you have the following rights:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'to find out what data is being collected and processed, how it is being used, for how long it is being stored;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'to obtain from us the erasure of your personal data when this personal data is no longer necessary in relation to the purposes for which it was collected or otherwise processed;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'to restrict us from processing your data;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'to obtain information in relation to your personal data;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'to access your personal data;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'to withdraw the consent;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'to correct mistakes in your personal data;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'right to erase your personal data.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'How you can raise a complaint',\n id: 'How you can raise a complaint',\n content: [\n {\n key: 'p',\n text: 'You can raise a complaint by sending an email to service@moai.team.',\n },\n ],\n },\n {\n title: 'Privacy Policy updates',\n id: 'Privacy Policy updates',\n content: [\n {\n key: 'p',\n text: 'We will update this Privacy Policy from time to time to reflect changes in our practices, security standards, applicable laws, third-party services or tools that we use. We will update this Privacy Policy as we consider it necessary.',\n },\n ],\n },\n];\n\nexport const ELearningIn2022Data: IPost = {\n title: 'eLearning software development: everything you need to know in 2023',\n previewDescription: 'Are you planning to create an eLearning app? This guide will walk you through the eLearning software development process and hidden challenges.',\n subtitle: 'Are you planning to create an eLearning app? This guide will walk you through the eLearning software development process and hidden challenges.',\n date: 'January 2, 2023',\n bannerAlt: 'Everything you need to know about eLearning software development',\n timeToRead: 8,\n path: '/elearning-software-development-everything-you-need-to-know',\n banner: ELearningIn2022BannerBG,\n previewImage: ELearningIn2022BannerPreviewImage,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n faqData: [\n {\n title: 'What is eLearning?',\n description: 'eLearning is the use of technology to deliver education content; \"e\" stands for electronic, and it\\'s used in contrast to traditional classroom-based learning.',\n },\n {\n title: 'What is eLearning software?',\n description: 'eLearning software is a software application used to build interactive lessons, as well as manage your learners\\' activity. ',\n },\n {\n title: 'What is an eLearning development process?',\n description: 'Custom eLearning software development is a process that can be broken down into seven main stages, namely: conceptualization, content creation, storyboarding, design, development, testing, and post-deployment support.',\n },\n {\n title: 'What are the benefits of eLearning software?',\n description: 'eLearning software can help to save time and money, as well as create a more engaging learning experience for students.',\n },\n {\n title: 'What is the price range for eLearning software development?',\n description: 'Most eLearning projects fall within a range of $20,000 - $30,000. This is a broad range, but keep in mind that the price can vary depending on the project\\'s scope and complexity.',\n },\n ],\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'Are you planning to create an eLearning app? When it comes to software development, it’s important to have a solid understanding of the moving parts involved. ',\n options: {\n fontWeight: 600,\n },\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'link',\n text: 'What is eLearning?',\n linkToOurSite: true,\n link: '/what-is-elearning',\n },\n {\n key: 'text',\n text: 'In a nutshell, eLearning refers to the delivery of education through computer-based or mobile app-based platforms.',\n },\n ],\n },\n {\n key: 'p',\n text: 'The educational process is becoming more and more digitalized as more people are attracted to the flexibility of self-paced learning. In fact, the global eLearning market was valued at almost $200 billion in 2019 and is projected to reach $400 billion by 2026.',\n },\n {\n key: 'image',\n imageData: {\n image: post1Image1,\n alt: 'Size of global eLearning market in 2019 and 2026',\n description: 'Size of the global eLearning market in 2019 and 2026, by segment',\n descriptionLink: 'https://www.statista.com/statistics/1130331/e-learning-market-size-segment-worldwide/',\n },\n },\n {\n key: 'p',\n text: 'eLearning is one of the fastest growing industries, and for good reason. It\\'s cost-effective, it helps engage learners, and it can be used to meet a wide range of training needs. Here are some astonishing facts from recent studies:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: '2 out of every 5',\n },\n {\n key: 'link',\n text: 'Fortune 500 companies',\n path: 'https://findstack.com/elearning-statistics/',\n },\n {\n key: 'text',\n text: 'leverage eLearning.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'eLearning reduces energy consumption by',\n },\n {\n key: 'link',\n text: '90%',\n path: 'https://archylearning.com/3-environmental-benefits-of-online-education/',\n },\n {\n key: 'text',\n text: 'compared to campus-based learning.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'The corporate learning industry is expected to be worth',\n },\n {\n key: 'link',\n text: 'USD 117.57',\n path: 'https://www.globenewswire.com/news-release/2022/09/27/2523613/0/en/Corporate-E-learning-Market-Worth-USD-117-57-Billion-at-a-15-60-CAGR-by-2030-Report-by-Market-Research-Future-MRFR.html',\n },\n {\n key: 'link',\n text: 'billion by 2030.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'eLearning has allowed numerous US organizations to increase their income by',\n },\n {\n key: 'link',\n path: 'https://startupbonsai.com/elearning-statistics/',\n text: '42%',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'eLearning helps students retain between',\n },\n {\n key: 'link',\n text: '25% and 60%',\n path: 'https://www.shiftelearning.com/bid/301248/15-facts-and-stats-that-reveal-the-power-of-elearning',\n },\n {\n key: 'text',\n text: 'more information.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'As of the third quarter of 2022, education is the',\n },\n {\n key: 'link',\n text: 'third',\n link: 'https://www.statista.com/statistics/270291/popular-categories-in-the-app-store/',\n },\n {\n key: 'text',\n text: 'most popular iOS category, accounting for a total of over 9.8 percent of active apps. And in the Google Play Store, educational mobile apps rank',\n },\n {\n key: 'link',\n text: 'second',\n link: 'https://www.statista.com/statistics/279286/google-play-android-app-categories/',\n },\n {\n key: 'text',\n text: 'with a 10.47 percent share. Few mobile apps, however, are truly remarkable.',\n },\n ],\n },\n {\n key: 'p',\n text: 'To develop a truly exceptional eLearning app, you need the right tools and team. In this guide, we\\'ll walk you through all the considerations, hidden challenges, and potential pitfalls that can impact your project\\'s success.',\n },\n {\n key: 'p',\n text: 'Let’s dive in.',\n },\n ],\n },\n\n {\n title: 'What is eLearning software development?',\n id: 'What is eLearning software development?',\n content: [\n {\n key: 'p',\n text: 'eLearning software development is the process of developing applications that enable the delivery of educational content through the Internet.',\n },\n {\n key: 'p',\n text: 'eLearning software applications combine the best of traditional learning with the latest technology to provide a more engaging experience. They are used for a variety of purposes, but the most common are:',\n },\n {\n key: 'list',\n listData: [\n {\n title: 'Academic,',\n itemData: [\n {\n key: 'text',\n text: 'such as studying subjects like science, geography, etc. At',\n },\n {\n key: 'link',\n text: 'Oxford Brookes University,',\n path: 'https://www.brookes.ac.uk/it/services/software/',\n },\n {\n key: 'text',\n text: 'approximately 200 software types are used.',\n },\n ],\n },\n {\n title: 'Business training,',\n itemData: [\n {\n key: 'text',\n text: 'for example to learn how to use a new program or tool.',\n },\n {\n key: 'link',\n text: 'Amazon',\n path: 'https://www.aboutamazon.com/workplace/upskilling-commitments',\n },\n {\n key: 'text',\n text: 'uses training software to prepare employees for various roles.',\n },\n ],\n },\n {\n title: 'Self-education,',\n itemData: [\n {\n key: 'text',\n text: 'such as learning Spanish.',\n },\n {\n key: 'link',\n text: 'Duolingo,',\n path: 'https://www.duolingo.com/',\n },\n {\n key: 'text',\n text: 'a game-based learning platform, is one example of a tech company that has found success by using gamification to teach languages.',\n },\n ],\n },\n ],\n },\n ],\n },\n\n {\n title: 'Brief history of eLearning',\n id: 'Brief history of eLearning',\n content: [\n {\n key: 'p',\n text: 'The history of eLearning is a long and storied one.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'The first recorded use of eLearning can be traced back to',\n },\n {\n key: 'link',\n text: '1728',\n link: 'https://e-student.org/history-of-e-learning/',\n },\n {\n key: 'text',\n text: 'when Caleb Philips from Boston created the very first distance learning course that was delivered to students weekly through regular mail.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'In 1924, an Ohio State University professor designed the very first electronic learning device, the',\n },\n {\n key: 'link',\n text: '“Automatic Teacher”',\n link: 'http://hackeducation.com/2015/02/04/the-automatic-teacher',\n },\n ],\n },\n {\n key: 'p',\n text: 'However, it wasn\\'t until the late 2000s that eLearning really took off as an alternative to traditional classroom training due largely to advances in technology.',\n },\n {\n key: 'p',\n text: 'Over time, eLearning became popular among businesses and educational institutions alike.',\n },\n {\n key: 'p',\n text: 'With more than 400 years of history behind it, eLearning has grown significantly since its inception and continues to evolve into new forms that serve both businesses and individuals alike.',\n },\n ],\n },\n\n {\n title: 'Stages of eLearning software development process',\n id: 'Stages of eLearning software development process',\n content: [\n {\n key: 'p',\n text: 'Software development is a complex set of processes that involves seven main stages, each with its own unique challenges.',\n },\n {\n key: 'listWithBigTitleWithoutDots',\n listData: [\n {\n title: 'Stage 1: Conceptualization',\n itemData: [\n {\n key: 'text',\n text: 'In this stage, you need to ensure that the learning objectives are clearly defined and that the solution is aligned with business goals. Based on this, a strategy is formulated to decide on the best way to present the content.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Once you have established your goals, you will begin creating content (text, images, audio, etc.) that will be used within your eLearning course.',\n },\n ],\n title: 'Stage 2: Content creation',\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'A storyboard is the foundation of any well-defined eLearning course. It serves as a blueprint for how users will interact with your system and also helps to visualize what your final product will look like.',\n },\n ],\n title: 'Stage 3: Storyboarding',\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Once you have a picture of how the course will look and feel, you can begin designing each module in order to make sure they are visually appealing, easy-to-follow, and error-free. It’s important to ensure logical progression through topics and sub-topics.',\n },\n ],\n title: 'Stage 4: Design',\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Now, all features are built and integrated into the product. The development team will take the specifications laid out in the design stage and turn them into a working application.',\n },\n ],\n title: 'Stage 5: Development',\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Once the eLearning app has been built, it must be thoroughly tested before it can be deployed. This stage ensures that no bugs remain in the program that could cause technical problems when it\\'s being used by learners.',\n },\n ],\n title: 'Stage 6: Testing',\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Once your new eLearning solution is up and running, you’ll need to provide support for any issues that come up after deployment.',\n },\n ],\n title: 'Stage 7: Post-deployment support',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team offers a wide range of',\n },\n {\n key: 'link',\n text: 'eLearning software development services,',\n link: '/elearning-software-development-services',\n linkToOurSite: true,\n },\n {\n key: 'text',\n text: 'from consulting and project management to maintenance and support. If you have a software idea or questions about software development life cycle, we\\'re here to help.',\n },\n ],\n },\n ],\n },\n {\n title: 'Types of educational software',\n id: 'Types of educational software',\n content: [\n {\n key: 'p',\n text: 'Let\\'s take a look at the different types of educational software available today; each type has a particular purpose and audience in mind.',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Learning Management System (LMS)',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is an integrated eLearning solution that supports administration, tracking, reporting, and delivery of educational courses.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Learning Content Management System (LCMS)',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is a platform for publishing, organizing, and analyzing content in a multi-user environment.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Learning Experience Platform (LXP)',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is a service that provides a curated, unified experience for learners by aggregating content from various sources, including third-party providers.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Student Management System (SMS)',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is a software application that helps educational institutions handle a vast amount of student data.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Remote proctoring software',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is a tool that provides eLearning professionals with a convenient, secure, and unbiased means of online testing.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Virtual classrooms',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is an online platform that allows teachers and students to interact in real time. Virtual classrooms can be used for a variety of purposes: from virtual instructor-led training in the form of interactive classes to large-scale lectures.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'AI-powered eLearning tools',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'help to develop scalable, customized courses based on the learners\\' strengths, weaknesses and interests. They offer access to online learning content and resources.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'mLearning,',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'also known as mobile learning, refers to the use of mobile devices to access learning content.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Learning experience platforms,',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'also known as LXP or LEP, are eLearning apps designed to create more personalized learning experiences by using internal assets and 3rd–party resources.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'eLearning authoring tool',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is a software program that enables users to create learning content. eLearning authoring tools can range from simple course creation systems to full-featured learning management systems.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Corporate eLearning solutions',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'are used by companies to reduce training costs. These tools make corporate learning and employee training more efficient, effective, and engaging.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Management systems',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'help to manage the learning process. You can use it to deliver training, track learners\\' progress, and measure their performance.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Education marketplace',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is a platform that connects instructors with learners who are looking for online training.',\n },\n ],\n },\n ],\n },\n ],\n },\n\n {\n title: 'Basic features of an eLearning product',\n id: 'Basic features of an eLearning product',\n content: [\n {\n key: 'p',\n text: 'The education sector is one of the most dynamic and challenging industries, with constant changes in the market and new technologies emerging every day. In order to meet these challenges, educators need industry-leading tools that are flexible enough to be used in any educational setting.\\n',\n },\n {\n key: 'title',\n text: 'Essential features',\n },\n {\n key: 'p',\n text: 'There are many types of eLearning products out there, but they all share some important features, including signup, login, dashboard, search, analytics of student progress, course creation, remote learning capabilities, video content, easy access to learning materials and training programs.',\n },\n {\n key: 'title',\n text: 'Advanced features',\n },\n {\n key: 'p',\n text: 'Advanced features of eLearning products might include AI, gamification, interactive courses, virtual classrooms, virtual reality, business analysis, authoring tools for eLearning courses and training materials.',\n },\n {\n key: 'p',\n text: 'If you have any new features you\\'d like to see included in your eLearning platform, we\\'d be happy to talk about it. We provide education software development services to help you reach your goals.',\n },\n {\n key: 'p',\n text: 'Our team of developers is equipped with a deep level of technical expertise needed for building sophisticated mobile apps and web services, including those that require extensive data analysis.',\n },\n ],\n },\n\n {\n title: 'How much does it cost to develop eLearning software?',\n id: 'How much does it cost to develop eLearning software?',\n content: [\n {\n key: 'p',\n text: 'In general, most companies spend between $20,000 - $30,000 to build an eLearning app. There are many factors that can affect the price, including the type of app and its features.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'To get an accurate quote, you can',\n },\n {\n key: 'link',\n text: 'schedule a free consultation.',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n {\n key: 'text',\n text: 'We will work with you to understand your unique goals and offer a solution that is tailored to your requirements.',\n },\n ],\n },\n ],\n },\n\n {\n title: 'How long does eLearning software development take?',\n id: 'How long does eLearning software development take?',\n content: [\n {\n key: 'p',\n text: 'eLearning software development takes anywhere from 4 to 6 months, depending on the scope and complexity of the project.',\n },\n {\n key: 'p',\n text: 'In order to complete a project in the shortest time possible, we recommend breaking up your eLearning project into sprints. This will allow you to set reasonable deadlines for an eLearning software development company and keep track of progress.',\n },\n ],\n },\n {\n title: 'eLearning software development options',\n id: 'eLearning software development options',\n content: [\n {\n key: 'p',\n text: 'When it comes to building eLearning platforms, there are three options: custom eLearning development services, revamp of legacy eLearning solutions, and customization of an open-source eLearning platform.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Custom eLearning software development',\n itemData: [\n {\n key: 'text',\n text: 'If you want to create a unique eLearning solution, custom development is the way to go. This is what we specialize in. We take the time to understand your business goals, your target audience, and other factors that affect the project success.',\n },\n ],\n },\n {\n title: 'Revamp of legacy eLearning software ',\n itemData: [\n {\n key: 'text',\n text: 'This option is for businesses that already have an existing eLearning platform, but it needs revamping to meet current standards. If you have an old system that needs updating, we can make it more effective and compatible with modern technology.',\n },\n ],\n },\n {\n title: 'Customization of an open-source eLearning platform',\n itemData: [\n {\n key: 'text',\n text: 'Open source platforms are great because they are free, but sometimes you need something more customized than what they offer. If you choose an open source platform and then decide later on that you would like to make some modifications or additions, we can help with that as well.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Common eLearning software development challenges & how to overcome them',\n id: 'Common eLearning software development challenges & how to overcome them',\n content: [\n {\n key: 'p',\n text: 'Digital learning revolutionizes the way we think about knowledge transfer. You can learn a new language, get certified in something, and even earn a degree without ever leaving your couch. But despite the many benefits of custom eLearning platforms, there are some challenges you might face.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Data privacy',\n itemData: [\n {\n key: 'text',\n text: 'Educational apps store learners’ personal information, and it is crucial that companies abide by copyright laws in order to safeguard this information. Custom educational software development companies should take the utmost care to ensure security.',\n },\n ],\n },\n {\n title: 'Meeting education industry demands',\n itemData: [\n {\n key: 'text',\n text: 'It’s important to understand how',\n },\n {\n key: 'link',\n text: 'eLearning intersects with the law.',\n path: 'https://www.findlaw.com/education/education-options/what-you-need-to-know-about-elearning-and-the-law.html',\n },\n {\n key: 'text',\n text: 'It includes teaching methods, educational technology, intellectual property, licensing, copyright, harassment, and other issues.',\n },\n ],\n },\n {\n title: 'Personalization',\n itemData: [\n {\n key: 'text',\n text: 'It\\'s important to keep in mind that your audience is made up of individuals with their own unique needs, preferences, and proficiency levels. Personalization is one of the most promising applications of Big Data, which can be used to assess how well students understand topics.',\n },\n ],\n },\n {\n title: 'Incorporation of different learning styles',\n itemData: [\n {\n key: 'text',\n text: 'Consider how learners will approach the material. It has been generally held that there are',\n },\n {\n key: 'link',\n text: 'four main learning styles:',\n path: 'https://www.rasmussen.edu/degrees/education/types-of-learning-styles/',\n },\n {\n key: 'text',\n text: 'visual, auditory, kinesthetic, and through written words. Take into account how you can integrate all of these elements into your platform design.',\n },\n ],\n },\n {\n title: 'Student engagement',\n itemData: [\n {\n key: 'text',\n text: 'In order to enhance student engagement, consider introducing a compelling narrative, creating opportunities for interactivity and collaboration, using gamification and rewards. This will help the learners stay focused for longer periods of time.',\n },\n ],\n },\n {\n title: 'Software relevance',\n itemData: [\n {\n key: 'text',\n text: 'If you hire developers that do not use up-to-date technologies and follow the latest EdTech trends, you can expect your software to be outdated and irrelevant in no time. The overall relevance of online training software is determined by its ability to adapt to changes in the market.',\n },\n ],\n },\n ],\n },\n ],\n },\n\n {\n title: 'Why outsource your eLearning software development project to Moai Team?',\n id: 'Why outsource your eLearning software development project to Moai Team?',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n text: 'highly rated by Clutch.',\n link: 'https://clutch.co/profile/moai-team',\n },\n {\n key: 'text',\n text: 'We help companies build custom eLearning solutions.',\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Successful projects: We have had the privilege of helping many educational business owners make their',\n },\n {\n key: 'link',\n text: 'ideas come true.',\n path: '/portfolio',\n linkToOurSite: true,\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Focus: To ensure the highest quality, we limit the number of projects on which we are working at any given time.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Comprehensive approach: We bring a broad perspective to projects, covering technology, business model and user experience—and we involve the product manager and the technical architect from day one.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Fluent English: Our team is fluent in English, so we can communicate effectively with you throughout the process.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Social good: We allocate part of our profits to charitable organizations providing emergency assistance to families in Ukraine.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you\\'re thinking about developing an eLearning app and have any doubts, we would be happy to give honest advice. You can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const whatIsELearningData: IPost = {\n title: 'What is eLearning? Comprehensive guide for your business',\n subtitle: 'What is eLearning? eLearning is the delivery of training through digital resources. Let’s take a closer look at eLearning and its advantages for businesses.',\n previewDescription: 'eLearning is the delivery of training through digital resources. Let’s take a closer look at eLearning and its advantages for businesses.',\n date: 'December 28, 2022',\n path: '/what-is-elearning',\n timeToRead: 8,\n banner: whatIsElearningBannerBG,\n previewImage: whatIsElearningBannerPreviewImage,\n bannerAlt: 'What is eLearning',\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n faqData: [\n {\n title: 'What is eLearning?',\n description: 'eLearning (distance learning, online training, or remote learning) is an instructional method that uses technology to deliver content to learners.',\n },\n {\n title: 'What is the purpose of eLearning?',\n description: 'The purpose of eLearning is to provide students with the information and resources they need and to make educational experience as engaging as possible.',\n },\n {\n title: 'What is mobile learning?',\n description: 'Mobile learning, also called M-learning, refers to the use of mobile devices such as cell phones and tablets to access educational content.',\n },\n {\n title: 'What are eLearning methods?',\n description: 'eLearning methods include any activity or learning material used to facilitate learning. These can include online courses, instructional videos, reading materials, pre-recorded lecture content, quizzes and tests and many more.',\n },\n {\n title: 'What is a learning management system?',\n description: 'A learning management system (LMS) is a software application that provides users with a variety of tools to manage the delivery and assessment of learning experience.',\n },\n {\n title: 'What are the different types of eLearning?',\n description: 'There are three main types of eLearning: synchronous, asynchronous, and blended. The learning process will be different for each type.',\n },\n {\n title: 'What is blended eLearning?',\n description: 'Blended learning is a combination of online and face-to-face instruction. It\\'s a way to make the most of a teacher\\'s time, while still providing students with the guidance and practical training they need to succeed.',\n },\n {\n title: 'What are authoring tools?',\n description: 'Authoring tools help educators create eLearning content and interactive courses in a way that is easy and fun.',\n },\n {\n title: 'Which electronic devices are required for eLearning?',\n description: 'You\\'ll need such digital devices as a computer (or mobile phone), headphones and a microphone (if your course requires instructor interaction or voice-over narration).',\n },\n {\n title: 'What are the biggest benefits of eLearning?',\n description: 'eLearning enables businesses and educational institutions to deliver training in a way that is convenient, affordable, and accessible. Web-based training, digital courses, interactive tasks ensuring engagement, and blended eLearning solutions are just some of the ways that eLearning can be used to great effect.',\n },\n {\n title: 'How to find professional eLearning developers?',\n description: 'As a professional eLearning development team, we are here to help you create the most engaging, effective learning experiences for your students. Our experts are happy to answer any questions you might have.',\n },\n ],\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'What is eLearning? In a nutshell, eLearning is the process of using technology to deliver training through computer-based or mobile app-based platforms. eLearning is also known as online learning, digital learning, and computer-based training (CBT). It is simply a way of delivering information and education over the Internet.',\n options: {\n fontWeight: 600,\n },\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'The global',\n },\n {\n key: 'link',\n text: 'eLearning software development',\n linkToOurSite: true,\n link: '/elearning-software-development-everything-you-need-to-know',\n },\n {\n key: 'text',\n text: 'market has expanded immensely in recent years. It was valued at USD 214.26 billion in 2021 and is expected to reach USD 1,124.79 billion by 2030. The major driving factors for the growth include growing preference for online courses among learners and such technological advancements as artificial intelligence (AI), virtual reality (VR), augmented reality (AR), etc.',\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: whatIsELearningGraphImage,\n alt: 'eLearning market size global report',\n description: 'E-learning Market Size Global Report, 2022 - 2030',\n descriptionLink: 'https://www.polarismarketresearch.com/industry-analysis/e-learning-market',\n },\n },\n {\n key: 'p',\n text: 'Let’s take a closer look at what eLearning is, different eLearning types, its advantages over traditional learning methods, and how you can implement it within your organization.',\n },\n ],\n },\n {\n title: 'What is eLearning?',\n id: 'What is eLearning?',\n content: [\n {\n key: 'p',\n text: 'eLearning is the delivery of training through digital resources. It can be used in place of instructor-led training, or as a supplement to traditional classroom learning.',\n },\n {\n key: 'p',\n text: 'The goal of eLearning is to help people learn more effectively, in a way that suits their needs. It can be used for formal, informal and non-formal training:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Formal learning',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is the process of learning that takes place in a structured educational setting. It is usually taught by instructors, follows a syllabus, and is often mandatory. Learning outcomes are measured by tests and other forms of assessment.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Non-formal learning',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'refers to self-directed learning that takes place outside of the traditional classroom setting but within some kind of organizational framework. It arises from the learner’s conscious decision to master a particular skill.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Informal learning',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'refers to learning that occurs away from a structured, formal classroom environment. It’s a style of learning in which the learner sets their own goals and objectives.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'The best part about online learning? With learning experience delivered electronically, students are able to access their coursework from anywhere, at any time, which makes it incredibly convenient.',\n },\n ],\n },\n {\n title: 'Major milestones in the eLearning history',\n id: 'Major milestones in the eLearning history',\n content: [\n {\n key: 'p',\n text: 'To better understand how eLearning benefits organizations today, it’s helpful to look at its past.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'The history of eLearning begins with',\n },\n {\n key: 'link',\n text: 'a distance learning course',\n link: 'https://www.capstan.be/distance-education-is-not-a-new-concept-it-is-actually-much-older-than-zoom-google-classroom-or-even-the-internet/',\n },\n {\n key: 'text',\n text: 'created by Caleb Philips in 1728. The course lessons were delivered to students weekly through regular mail.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'In 1924, Ohio State University professor',\n },\n {\n key: 'link',\n text: 'Sidney Pressey',\n link: 'https://en.wikipedia.org/wiki/Sidney_L._Pressey',\n },\n {\n key: 'text',\n text: 'created the very first electronic learning machine, the Automatic Teacher.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Perhaps the most significant invention in the history of eLearning technology is the',\n },\n {\n key: 'link',\n text: 'PLATO',\n link: 'https://en.wikipedia.org/wiki/PLATO_(computer_system)#Historical_background',\n },\n {\n key: 'text',\n text: '(Programmed Logic for Automatic Teaching Operations), the first computer-based education tool designed by',\n },\n {\n key: 'link',\n text: 'Donald L. Bitzer',\n link: 'https://www.invent.org/inductees/donald-l-bitzer',\n },\n {\n key: 'text',\n text: 'in 1960. At first, PLATO was used to improve student literacy. Later, however, it expanded beyond its purely educational uses and became a cornerstone of modern multi-user computing.',\n },\n ],\n },\n {\n key: 'p',\n text: 'The phrase eLearning was coined by Elliott Masie during the TechLearn conference at Disneyworld in 1999. Since then, eLearning has gained popularity as an effective way to create and deliver training content.',\n },\n {\n key: 'p',\n text: 'Nowadays, we have entire online universities that rely exclusively on learning management systems. We\\'ve also seen the rise of MOOCs (massive open online courses) that allow learning from some of the best professors at no cost.',\n },\n {\n key: 'p',\n text: 'In an increasingly competitive market, companies are looking to improve their products by implementing new features that leverage AI, ML, VR and AR. The primary challenge is to better understand student needs and preferences in order to create highly personalized experiences.',\n },\n {\n key: 'p',\n text: 'For example, interactive tutoring systems can use machine learning to adapt to the needs of each individual student, providing just the right amount of guidance at just the right time. This allows students who are struggling with a specific topic to be given extra help without feeling overwhelmed or left behind, while also giving those who have already mastered a concept the ability to move on quickly.',\n },\n {\n key: 'p',\n text: 'VR/AR has the potential to transform how we learn. In particular, if you\\'re studying a topic that requires hands-on work in a lab, you can use VR/AR to simulate the environment without leaving your home. The same goes for learning how to drive: instead of having to drive on busy roads while other people are driving around you, you could use VR/AR while sitting at home with no one else around.',\n },\n {\n key: 'p',\n text: 'As technology continues to evolve, we\\'re seeing more and more ways that eLearning can help organizations better meet their needs and people gain new skills.',\n },\n ],\n },\n {\n title: 'Types of eLearning training',\n id: 'Types of eLearning training',\n content: [\n {\n key: 'p',\n text: 'The online learning industry is a diverse one, with many types of training purposes and audiences. From in-house training programs to industry certifications, there are many ways to approach the online education world.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Personal learning',\n itemData: [\n {\n key: 'text',\n text: 'Personal learning is the most common type of eLearning. It\\'s any kind of self-guided training that you do to improve yourself or your skills, whether for personal or professional reasons. For example, online courses, sales training.',\n },\n ],\n },\n {\n title: 'Training provided at public and private educational institutions',\n itemData: [\n {\n key: 'text',\n text: 'Many schools have adopted online learning programs to make training more engaging. Schools have also been able to save money on resources such as textbooks and classroom space by using eLearning software and online learning courses.',\n },\n ],\n },\n {\n title: 'Employee training',\n itemData: [\n {\n key: 'text',\n text: 'eLearning has become a popular tool for businesses to use in their professional development programs. Online learning platforms help people to develop new skills by allowing them to study at their own pace. Corporate eLearning is an important part of keeping employees up-to-date on new products, policies, and procedures.',\n },\n ],\n },\n {\n title: 'Compliance training',\n itemData: [\n {\n key: 'text',\n text: 'Compliance training refers to teaching employees about legal requirements in order to avoid penalties from regulatory bodies or oversight groups like OSHA (Occupational Safety & Health Administration). eLearning helps organizations to train employees in a cost-effective and timely way.',\n },\n ],\n },\n {\n title: 'Customer training',\n itemData: [\n {\n key: 'text',\n text: 'Customer training refers to providing customers with learning materials and interactive tasks that include information about how products work so they can understand how they should be used properly and safely without harming themselves or others around them.',\n },\n ],\n },\n {\n title: 'Partner & reseller training',\n itemData: [\n {\n key: 'text',\n text: 'Partner training, also known as reseller training, refers to giving partners information so they can do their jobs better without needing constant supervision from higher ups within a company. Digital courses are often used in this process.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Synchronous vs asynchronous vs blended eLearning',\n id: 'Synchronous vs asynchronous vs blended eLearning',\n content: [\n {\n key: 'p',\n text: 'There are three main types of instruction: synchronous, asynchronous, and blended. And when designing an eLearning course, it\\'s important to pick the one that will be most effective for your students.',\n },\n {\n key: 'title',\n text: 'What is synchronous eLearning?',\n },\n {\n key: 'p',\n text: 'Synchronous eLearning is instructor-led training that happens in real-time. This means that you can interact with your teacher and other students, as if you were all sitting in the same room together. Examples of synchronous eLearning include video conferencing, virtual classrooms, live webinars, and instant messaging.',\n },\n {\n key: 'p',\n text: 'You\\'ll get to ask questions, interact with other students in your class, and learn from an expert instructor who is there to guide you through the process. The downside is that it\\'s difficult to scale such an environment.',\n },\n {\n key: 'title',\n text: 'What is asynchronous eLearning?',\n },\n {\n key: 'p',\n text: 'Asynchronous eLearning is where participants access content at their own pace. Instructors and students interact through email or another form of communication.',\n },\n {\n key: 'p',\n text: 'Asynchronous courses are great for busy people who want to learn something new but can\\'t commit to regular class times or meet up with a group of people. However, this also means that students need to be self-motivated and disciplined enough to stay on track with the coursework.',\n },\n {\n key: 'title',\n text: 'What is blended eLearning?',\n },\n {\n key: 'p',\n text: 'Blended learning combines the best of both worlds by offering synchronous elements within asynchronous courses. Some courses might have a lecture portion that takes place in real time with an instructor, followed by assignments or online quizzes.',\n },\n {\n key: 'p',\n text: 'Synchronous elements can be anything from group discussions to collaborative exercises; asynchronous elements are those you complete on your own time, like reading through the course materials and completing assignments.',\n },\n ],\n },\n {\n title: 'How to implement eLearning',\n id: 'How to implement eLearning',\n content: [\n {\n key: 'p',\n text: 'When you\\'re ready to start implementing distance learning, it\\'s important to remember that there are two parts of the process: creating the content and deploying it. While both are important, it\\'s critical to get the deployment right from the beginning. Here are some tips for getting started:',\n },\n {\n key: 'listWithBigTitleWithoutDots',\n listData: [\n {\n title: 'Step 1: Determine your goals',\n itemData: [\n {\n key: 'text',\n text: 'What do you want to accomplish with eLearning? Are you hoping to increase engagement among learners? Or are you trying to reduce costs by reducing travel and meeting expenses? Whatever your goal is, make sure it aligns with your organization\\'s overall strategy before moving forward.',\n },\n ],\n },\n {\n title: 'Step 2: Create a timeline',\n itemData: [\n {\n key: 'text',\n text: 'It\\'s important to create a timeline that allows enough time for planning, development and testing before launch. The amount of time needed will vary based on the scope of the project and its complexity but generally speaking, 3-6 months should be sufficient for most projects.',\n },\n ],\n },\n {\n title: 'Step 3: Hire experts who understand eLearning development principles',\n itemData: [\n {\n key: 'text',\n text: 'You\\'ll need someone who knows how to translate your business goals into a software solution that will actually help you achieve them.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'It\\'s easy to focus on the content when you\\'re creating your eLearning course, but it\\'s also important not to neglect the delivery. If you don\\'t have an effective way of deploying your eLearning program, then it won\\'t reach all your learners and they won\\'t get as much out of it as they could have otherwise.',\n },\n ],\n },\n {\n title: 'How to enhance the eLearning experience',\n id: 'How to enhance the eLearning experience',\n content: [\n {\n key: 'p',\n text: 'If you want to get your message across and have it stick, you need to make it memorable. While it\\'s important to have a solid curriculum and properly structured course, you can also use technology to enhance the experience.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Artificial intelligence',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'can be used in eLearning to offer personalized content based on participants\\' previous actions or preferences. It also allows for more real-time feedback on performance and progress—which can be super motivating for learners.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Gamification',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'is the process of adding elements of games into non-game situations to make them more engaging for participants. By incorporating points, badges, levels, leaderboards and other interactive elements, you can increase engagement while helping students retain information better than they would otherwise.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Virtual reality',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'also known as VR is an immersive computer-generated experience taking place within a simulated environment that can be interacted with in a seemingly physical way through special electronic equipment such as a head-mounted display or stereoscopic goggles.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Chatbots',\n extraTextStyles: {\n fontWeight: 600,\n },\n },\n {\n key: 'text',\n text: 'are virtual assistants that allow learners to ask questions about their eLearning courses and get personal advice on how best to approach certain topics without having to make an appointment with a human instructor.',\n },\n ],\n },\n ],\n },\n {\n title: 'Benefits of eLearning for businesses and educational institutions',\n id: 'Benefits of eLearning for businesses and educational institutions',\n content: [\n {\n key: 'p',\n text: 'eLearning is an efficient way to access training materials without having to go through the hassle of sitting in a classroom. Higher education institutions, businesses and organizations are increasingly shifting their training programs from traditional classroom settings to online training due to its many advantages.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Reducing expenses',\n itemData: [\n {\n key: 'text',\n text: 'Traditional learning methods include books, classrooms, and face-to-face training sessions. The high costs associated with these methods are due to their reliance on physical attendance and laborious processes. On other hand, eLearning tools provide a cost-effective way to acquire knowledge.',\n },\n ],\n },\n {\n title: 'Saving time',\n itemData: [\n {\n key: 'text',\n text: 'Substantial time savings are a major advantage of remote learning. Students can access eLearning content and complete their courses on their own schedule without having to take time away from their personal and professional responsibilities.',\n },\n ],\n },\n {\n title: 'Flexibility',\n itemData: [\n {\n key: 'text',\n text: 'You can review learning content or access a certain training exercise as often as you need to gain a thorough understanding of a topic. And the structure of the online course allows you to work through concepts in a way that makes sense to you.',\n },\n ],\n },\n {\n title: 'Eliminating geographical obstacles',\n itemData: [\n {\n key: 'text',\n text: 'With eLearning, students can enjoy a comfortable learning environment without having to travel long distances to attend classes. All they need is an internet connection and a computer or mobile device.',\n },\n ],\n },\n {\n title: 'Reducing pollution',\n itemData: [\n {\n key: 'text',\n text: 'Elearning reduces pollution by eliminating the need for transportation, as well as reducing the amount of paper and other materials that are used in traditional training sessions.',\n },\n ],\n },\n {\n title: 'Lowering power consumption and CO2 emissions',\n itemData: [\n {\n key: 'text',\n text: 'Online training reduces power consumption by up to 90% of what is used in traditional classroom learning. It also reduces CO2 emissions by up to 85% of what is created with traveling to and from learning venues.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'How can we assist you with the development of your eLearning product?',\n id: 'How can we assist you with the development of your eLearning product?',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n link: 'https://clutch.co/profile/moai-team',\n text: 'highly rated by Clutch.',\n },\n {\n key: 'text',\n text: 'We help companies build complex eLearning solutions.',\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Successful projects: We have had the privilege of helping many educational business owners make their',\n },\n {\n key: 'link',\n text: 'ideas come true.',\n path: '/portfolio',\n linkToOurSite: true,\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Focus: To ensure the highest quality, we limit the number of projects on which we are working at any given time.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Comprehensive approach: We bring a broad perspective to projects, covering technology, business model and user experience—and we involve the product manager and the technical architect from day one.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Fluent English: Our team is fluent in English, so we can communicate effectively with you throughout the process.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Social good: We allocate part of our profits to charitable organizations providing emergency assistance to families in Ukraine.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you have questions about any aspect of eLearning, we would be happy to give honest advice. You can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const whatIsElearningTypesData: IPost = {\n title: 'What is eLearning software? Types, use cases, and development process',\n subtitle: 'What is eLearning software? Here you’ll find an overview of what eLearning software is, explore its types, and find out how to develop your own eLearning tool.',\n previewDescription: 'Here you’ll find an overview of what eLearning software is, explore its types, and find out how to develop your own eLearning tool.',\n date: 'December 16, 2022',\n path: '/what-is-elearning-software',\n timeToRead: 8,\n banner: whatIsElearningTypesDataBG,\n previewImage: whatIsElearningTypesDataPreviewImage,\n bannerAlt: 'What is eLearning software',\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n faqData: [\n {\n title: 'What is eLearning?',\n description: 'eLearning is a term used to define the online training process. It encompasses a wide range of online resources, including web-based tutorials, interactive simulations, eLearning programs, and so much more. eLearning is essentially an extension of instructor-led training; it is the same concept applied to a digital format. The primary difference between instructor-led and eLearning training is that eLearning requires a greater degree of interactivity on behalf of the learner.',\n },\n {\n title: 'What is the difference between eLearning software and authoring tools?',\n description: 'eLearning software and eLearning authoring tools are both tools that can be used to create training materials. They have similar functions, but they each have unique features that make them ideal for different types of projects. For example, eLearning authoring tools can offer a powerpoint-based authoring toolkit.',\n },\n {\n title: 'What kind of training can eLearning software provide?',\n description: 'It can be used for customer training, personal development, employee training, etc. For example, eLearning software can be used to teach employees new skills, such as how to use a computer or do their job more effectively. ',\n },\n {\n title: 'What are the most important eLearning software features?',\n description: 'Basic features of eLearning software include customized interface, online training progress tracking, video and audio elements, video capture tool, ability to change eLearning formats, Powerpoint integration, student performance evaluation tools, video tutorials, etc, Advanced features may include course templates, complex interactions, interactive videos, AI-powered tools, virtual reality, augmented reality, etc.',\n },\n {\n title: 'What are advantages and disadvantages of eLearning software?',\n description: 'The main advantage of eLearning software is that it can be used to create courses that are interactive and engaging. The disadvantages are that certain software can be expensive and time-consuming to create.',\n },\n {\n title: 'Why develop an eLearning software solution?',\n description: 'Developing an eLearning software solution is a great way to improve the efficiency of your training programs. You will be able to streamline and automate some parts of your training program, which can allow you to focus more on what matters most.',\n },\n {\n title: 'What is self-paced learning?',\n description: 'Self-paced learning is a form of online learning that allows students to learn at their own speed and in their preferred environment, while also allowing them to take breaks when required. The term self-paced learning has been used to describe many different types of online learning, but it is most commonly used to refer to distance learning courses that provide flexibility through the use of a variety of tools and approaches.',\n },\n {\n title: 'What expertise is required for eLearning software development?',\n description: 'eLearning software development requires a combination of technical expertise and knowledge of the industry. This includes an understanding of user behavior, how people learn online in different scenarios, how to design for multiple devices (desktop computers, laptops, smartphones, tablets), how to create an user-friendly interface, etc.',\n },\n ],\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'eLearning software is a platform that allows you to create, deliver and track online courses. It provides the technical infrastructure on which eLearning activities can take place.',\n options: {\n fontWeight: 600,\n },\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Driven by technological advancements, online education is rapidly growing. The worldwide eLearning industry is expected to reach',\n },\n {\n key: 'link',\n link: 'https://www.fnfresearch.com/e-learning-market',\n text: '$374.3 billion by 2026.',\n },\n {\n key: 'text',\n text: 'If anything, eLearning turned out to be one of the most promising industries.',\n },\n ],\n },\n {\n key: 'p',\n text: 'And it\\'s no surprise. eLearning is affordable, convenient—and it can help students learn on their own terms.',\n },\n {\n key: 'p',\n text: 'In this guide, we’ll give you an overview of what eLearning software is, explore its types, and discuss how to develop your own eLearning tool.',\n },\n ],\n },\n {\n title: 'What is eLearning software?',\n id: 'What is eLearning software?',\n content: [\n {\n key: 'p',\n text: 'eLearning software is an umbrella term that comprises numerous subcategories of specialized tools that allow online delivery of educational content.',\n },\n {\n key: 'p',\n text: 'In the world of eLearning, there are many different types of software that can be used in many different ways, from professional development and training to personal enrichment and lifelong learning.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'link',\n text: 'eLearning software development',\n link: '/elearning-software-development-everything-you-need-to-know',\n linkToOurSite: true,\n },\n {\n key: 'text',\n text: 'encompasses all types of software applications, including web, mobile, desktop, etc.',\n },\n ],\n },\n ],\n },\n {\n id: 'eLearning software use cases',\n title: 'eLearning software use cases',\n content: [\n {\n key: 'p',\n text: 'eLearning software is a powerful tool that can be used to create and deliver training. Here are some examples of ways that eLearning software can be used.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Public and private educational institutions',\n itemData: [\n {\n text: 'Public and private educational institutions use eLearning software to provide high-quality training to their students at an affordable cost. This can include individualized instruction for on-demand academic education, as well as group classes.',\n key: 'text',\n },\n ],\n },\n {\n title: 'EdTech startups',\n itemData: [\n {\n text: 'eLearning software helps EdTech startups to create and deliver engaging, interactive content for their users. This content can be used as part of an online course, to supplement classroom training, or as a standalone product.',\n key: 'text',\n },\n ],\n },\n {\n title: 'Businesses',\n itemData: [\n {\n text: 'eLearning software helps businesses to provide employee training, compliance training, as well as offer customers and dealers with the knowledge they need. The world of corporate eLearning is growing every day as companies look at ways to give their employees the tools they need to excel in their roles. Corporate eLearning software helps businesses provide these resources efficiently and effectively.',\n key: 'text',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'eLearning software types',\n id: 'eLearning software types',\n content: [\n {\n key: 'p',\n text: 'There are several types of eLearning software available, each helps to manage different aspects of educational activities:',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Learning Management System',\n itemData: [\n {\n key: 'text',\n text: 'Learning Management System (LMS) is a software program used to streamline delivery, administration, tracking, and reporting of eLearning content. It is used by institutions to create and manage courses that are integrated with all the technological tools that students require to succeed.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'EdApp,',\n link: 'https://www.edapp.com/',\n },\n {\n key: 'link',\n text: 'Schoology,',\n link: 'https://www.schoology.com/',\n },\n {\n key: 'link',\n text: 'Its Learning',\n link: 'https://itslearning.altitudelearning.com/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Learning Content Management System',\n itemData: [\n {\n key: 'text',\n text: 'Learning Content Management System (LCMS) is an online platform designed to support the publication, management and analysis of content in a multi-user environment. Such content management systems can be used by educational institutions to take care of their course materials, scholarly publications, etc.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'Google Classroom,',\n link: 'https://classroom.google.com/',\n },\n {\n key: 'link',\n text: 'Docebo,',\n link: 'https://www.docebo.com/',\n },\n {\n key: 'link',\n text: 'SAP Litmos',\n link: 'https://www.litmos.com/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Learning Experience Platform',\n itemData: [\n {\n key: 'text',\n text: 'Learning Experience Platform (LXP) is a service that provides a single point of access to training content from various sources, including third-party providers. LXP\\'s goal is to provide students with a unified experience across all their learning activities, ranging from formal classroom courses to self-study materials. This can be achieved by combining resources from different providers and making them accessible through a single platform.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: '360Learning,',\n link: 'https://360learning.com/product/',\n },\n {\n key: 'link',\n text: 'LemonadeLXP,',\n link: 'https://www.lemonadelxp.com/',\n },\n {\n key: 'link',\n text: 'Raptivity',\n link: 'https://www.raptivity.com/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Student Management System',\n itemData: [\n {\n key: 'text',\n text: 'Student Management System (SMS) is a software application that simplifies the handling of student data for educational institutions. It can be used for tracking student progress, creating class schedules, and other functions. Additionally, SMS provides parents with a way to see their child\\'s progress from one semester to another and make comments about it.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'PowerSchool SIS,',\n link: 'https://www.powerschool.com/operations/student-information-systems/powerschool-sis/',\n },\n {\n key: 'link',\n text: 'Veyon,',\n link: 'https://veyon.io/en/',\n },\n {\n key: 'link',\n text: 'Anthology',\n link: 'https://www.anthology.com/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Remote proctoring software',\n itemData: [\n {\n key: 'text',\n text: 'Remote proctoring software is a tool that allows instructors to conduct online testing to access student progress in a secure and unbiased environment. It provides users with the opportunity to monitor their students\\' performance without having to be present at the testing center.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'Proctortrack,',\n link: 'https://www.proctortrack.com/',\n },\n {\n key: 'link',\n text: 'Mettl,',\n link: 'https://mettl.com/online-remote-proctoring/',\n },\n {\n key: 'link',\n text: 'Talview Proview Proctoring',\n link: 'https://www.talview.com/online-proctoring-software',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Virtual classroom',\n itemData: [\n {\n key: 'text',\n text: 'A virtual classroom is an online learning environment where instructors and students can interact in real time. This type of classroom is often used for distance learning, but it can also be used for onsite training. Students may take courses at their own pace, or they may be able to interact with other students in the class. ',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'ProProfs virtual classroom,',\n link: 'https://www.proprofstraining.com/solutions/virtual-classroom-software/',\n },\n {\n key: 'link',\n text: 'LearnCube,',\n link: 'https://www.learncube.com/',\n },\n {\n key: 'link',\n text: 'Kaltura',\n link: 'http://www.kaltura.org/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Virtual classroom',\n itemData: [\n {\n key: 'text',\n text: 'A virtual classroom is an online learning environment where instructors and students can interact in real time. This type of classroom is often used for distance learning, but it can also be used for onsite training. Students may take courses at their own pace, or they may be able to interact with other students in the class.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'ProProfs virtual classroom,',\n link: 'https://www.proprofstraining.com/solutions/virtual-classroom-software/',\n },\n {\n key: 'link',\n text: 'LearnCube,',\n link: 'https://www.learncube.com/',\n },\n {\n key: 'link',\n text: 'Kaltura',\n link: 'http://www.kaltura.org/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'AI-powered eLearning tool',\n itemData: [\n {\n key: 'text',\n text: 'AI-powered eLearning tools are software applications that help to create customized courses based on the students\\' strengths, weaknesses, and interests. Your eLearning solution can help you to identify a student\\'s learning style and tailor the content accordingly, identify where students struggle in terms of understanding concepts, and provide personalized feedback.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'Cognii,',\n link: 'https://www.cognii.com/',\n },\n {\n key: 'link',\n text: 'Queirum,',\n link: 'https://querium.com/',\n },\n {\n key: 'link',\n text: 'Century Tech',\n link: 'https://www.century.tech/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Authoring tool',\n itemData: [\n {\n key: 'text',\n text: 'An authoring tool is a software application that assists users in learning content creation, lessons, and courses. The best eLearning authoring tools can be used to create tutorials, interactive learning content, training sessions, video lectures, eLearning projects, eLearning courses, and so much more. eLearning authoring software allows you to create a highly engaging virtual environment for your students.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'Articulate Rise,',\n link: 'https://articulate.com/360/rise',\n },\n {\n key: 'link',\n text: 'Easygenerator,',\n link: 'https://www.easygenerator.com/',\n },\n {\n key: 'link',\n text: 'SmartBuilder',\n link: 'https://www.smartbuilder.com/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'mLearning',\n itemData: [\n {\n key: 'text',\n text: 'mLearning, also known as mobile learning, is the use of mobile devices, such as phones and tablets, to access learning content. It\\'s a great way for students to learn from their own devices in places where they otherwise wouldn\\'t have access to a computer. Mobile responsive content is content that is designed for mobile devices, such as phones and tablets. ',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'Duolingo,',\n link: 'https://www.duolingo.com/',\n },\n {\n key: 'link',\n text: 'Sololearn,',\n link: 'https://www.sololearn.com/',\n },\n {\n key: 'link',\n text: 'Quizlet',\n link: 'https://quizlet.com/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Education marketplace',\n itemData: [\n {\n key: 'text',\n text: 'Education marketplace is an online platform that connects students with instructors. Students can search for courses, professors, and programs that suit their needs. And istructors can bid on student projects, which gives them a chance to generate revenue from their services.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Examples:',\n },\n {\n key: 'link',\n text: 'Coursera,',\n link: 'https://about.coursera.org/',\n },\n {\n key: 'link',\n text: 'Khan Academy,',\n link: 'http://khanacedemy.org/',\n },\n {\n key: 'link',\n text: 'Udemy',\n link: 'https://udemy.com/',\n },\n ],\n },\n ],\n },\n {\n title: 'How does eLearning software work?',\n id: 'How does eLearning software work?',\n content: [\n {\n key: 'p',\n text: 'eLearning software is like any other software, except it\\'s designed specifically to help train people on a certain subject or skill. ',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Frontend',\n itemData: [\n {\n key: 'text',\n text: 'The frontend environment is where teachers and students engage with the content, as well as with each other. This is where you\\'ll find your course, activities, and assessments.',\n },\n ],\n },\n {\n title: 'Backend',\n itemData: [\n {\n key: 'text',\n text: 'The backend environment provides support for all this activity by managing data, tracking progress across courses and modules, and ensuring that everything runs smoothly behind-the-scenes.',\n },\n ],\n },\n {\n title: 'Authoring',\n itemData: [\n {\n key: 'text',\n text: 'The authoring part of the process involves creating the content itself, which could include text, images, audio or video content, or interactive elements like quizzes.',\n },\n ],\n },\n {\n title: 'Administration',\n itemData: [\n {\n key: 'text',\n text: 'The administration environment is where platform administrators can manage courses and the platform. It’s designed to provide the optimal learning management experience for the organization operating the platform.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'How to develop an eLearning software: step-by-step guide',\n id: 'How to develop an eLearning software: step-by-step guide',\n content: [\n {\n key: 'p',\n text: 'eLearning relies on technology: it requires hardware, software, and network infrastructure. But where do you start?',\n },\n {\n key: 'listWithBigTitleWithoutDots',\n listData: [\n {\n title: 'Step 1: Define your goals',\n itemData: [\n {\n key: 'text',\n text: 'Do you want to increase employee productivity? Do you want to improve learning outcomes? Once you know what kind of results you want from the eLearning software, it will be much easier for you to determine how best to design it.',\n },\n ],\n },\n {\n title: 'Step 2: Research other eLearning systems',\n itemData: [\n {\n key: 'text',\n text: 'Check out some other companies in the same industry as yours who already have eLearning systems in place and see how they work. You\\'ll learn what works well and what doesn\\'t, which will help guide your own development process.',\n },\n ],\n },\n {\n title: 'Step 3: Create a wireframe',\n itemData: [\n {\n key: 'text',\n text: 'Once you\\'ve defined your goals and researched other companies\\' systems, create a wireframe of how your eLearning system should look and feel so that developers can start building a prototype based off of these specifications.',\n },\n ],\n },\n {\n title: 'Step 4: Develop',\n itemData: [\n {\n key: 'text',\n text: 'This is where all of the hard work comes together into one complete package—the finished product! You\\'ll need a team that understands the technical aspects of what you\\'re trying to accomplish and can translate those requirements into a software solution.',\n },\n ],\n },\n {\n title: 'Step 5: Keep it running smoothly',\n itemData: [\n {\n key: 'text',\n text: 'Software maintenance is something that you have to deal with for the rest of the life of your application. It’s important to ensure that software is regularly updated and that there are no security vulnerabilities in your codebase.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'How can Moai Team assist you with the development of your eLearning product?',\n id: 'How can Moai Team assist you with the development of your eLearning product?',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n text: 'highly rated by Clutch.',\n link: 'https://clutch.co/profile/moai-team',\n },\n {\n key: 'text',\n text: 'We help companies to build complex eLearning products and scale to the next level.',\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Successful projects: We have had the privilege of',\n },\n {\n key: 'link',\n text: 'helping many business owners',\n path: '/portfolio',\n linkToOurSite: true,\n },\n {\n key: 'text',\n text: 'make their ideas come true. Our team created several successful eLearning apps for our clients, including',\n },\n {\n key: 'link',\n text: 'SmartExpert',\n path: 'https://www.linkedin.com/company/smartexpert/?roistat_visit=248274',\n },\n {\n key: 'text',\n text: 'and',\n },\n {\n key: 'link',\n text: 'Addictive Learning.',\n path: 'https://www.linkedin.com/company/addictive-learning/',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Focus: We limit the number of projects on which we work at any given time so that we can give each project our full attention.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Comprehensive approach: We bring a perspective that goes beyond the technical aspects of projects, covering marketing, business model, user experience, and more. Also, we involve both the product manager and the technical architect from day one.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Fluent English: We have a team of experienced developers with fluent English skills that will be able to communicate clearly with you throughout the process.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Social good: We allocate part of our profits to charitable organizations providing emergency assistance to families in Ukraine.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'We know you\\'ve got a lot on your plate. And that\\'s why we\\'re here. The software we build is designed with the needs of the industry in mind and is therefore flexible, reliable, and capable of handling complex tasks.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you have questions about any aspect of eLearning, you can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const prosAndConsELearningData: IPost = {\n title: 'Pros and cons of eLearning for educational institutions, startups, and businesses',\n subtitle: 'Here you’ll find all the pros and cons of eLearning for educational institutions, EdTech startups, and businesses.',\n previewDescription: 'Here you’ll find all the pros and cons of eLearning to help you decide if it\\'s the right choice for you.',\n date: 'December 22, 2022',\n path: '/pros-and-cons-of-elearning',\n timeToRead: 8,\n banner: prosAndConsBannerBG,\n bannerAlt: 'What is eLearning',\n previewImage: prosAndConsBannerPreviewImage,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n faqData: [\n {\n title: 'What are the pros of eLearning?',\n description: 'No need to attend classes. Students can learn at their own pace, in the comfort of their own home or office. Also, online courses are more accessible and affordable than traditional ones. And there are no distractions or interruptions during the learning process.',\n },\n {\n title: 'What are cons of online education?',\n description: 'Cons of online tools include the lack of interaction with other students and faculty, the need to maintain your own equipment, and missing out on traditional university activities like campus life. You’ll be able to interact with your teachers and classmates through videos and chats, but there won’t be as much face-to-face interaction as you would have in a traditional classroom setting.',\n },\n {\n title: 'What are the limitations of online tools?',\n description: 'Online tools are often limited by the information available in the database itself. There may not be enough resources for students to practice the material they are learning, or there may not be any way for them to get feedback on their work and learn from mistakes. There are also privacy concerns, such as students\\' data being shared with third-party companies.',\n },\n {\n title: 'What do you need to access your virtual classroom?',\n description: 'You will need a computer or an internet-enabled device that can access the virtual classroom. This could be your laptop, tablet, smartphone, or desktop computer. You will also need an internet connection that is reliable and has enough bandwidth to allow you to connect to the virtual classroom.',\n },\n {\n title: 'Do online lessons really help students?',\n description: 'Your online course can have a huge impact on the way your students learn, help keep costs down, and provide you with more flexibility in their schedule. They don\\'t have to worry about scheduling conflicts or transportation issues either—your students can take the class from anywhere they have Internet access. ',\n },\n ],\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'Pros and cons of eLearning for educational institutions, startups, and businesses',\n options: {\n fontWeight: 600,\n },\n },\n {\n key: 'p',\n text: 'eLearning has really taken off in the past few years. It\\'s a great way to make sure that your content is available when you need it, and that you\\'re able to reach people wherever they are.',\n },\n {\n key: 'p',\n text: 'But not all is rosy with eLearning. For example, many organizations struggle with how to manage their online learning programs and make sure they\\'re implemented correctly.',\n },\n {\n key: 'p',\n text: 'Let’s take a look at the pros and cons of eLearning to help you decide if it\\'s the right choice for your business.',\n },\n ],\n },\n {\n title: 'Pros and cons of eLearning for educational institutions',\n id: 'Pros and cons of eLearning for educational institutions',\n content: [\n {\n key: 'p',\n text: 'eLearning has been a hot topic in the education world for years. Online environment is one of the most effective ways to engage students and help them learn. Let’s discuss the benefits and limitations it offers to schools, colleges, and universities.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listTitle: 'Advantages',\n listData: [\n {\n title: 'Unlimited access',\n itemData: [\n {\n key: 'text',\n text: 'eLearning is a great tool for secondary and higher education. It removes geographical boundaries, allowing students to take classes on their own time and at their own pace. Teachers can now reach all of their students, regardless of where they live or how far they are from the classroom.',\n },\n ],\n },\n {\n title: 'Personalization',\n itemData: [\n {\n key: 'text',\n text: 'Online programs allow learners to choose their own paths and navigate them according to their unique learning styles, motivations, and interests. The course provider can provide a single, consistent learning experience for students across the globe. You can encourage students to participate in online programs by offering a variety of options that are tailored to their needs.',\n },\n ],\n },\n {\n title: 'Consistency',\n itemData: [\n {\n key: 'text',\n text: 'With an online course, you can develop consistent training experiences for your users, no matter when and where they take courses. Technology has made it possible to create content in a variety of formats and deliver it wherever your students need it.',\n },\n ],\n },\n {\n title: 'Reduced pollution',\n itemData: [\n {\n key: 'text',\n text: 'eLearning contributes to a greener and cleaner environment by reducing the need for paper production. Only internet access is required. With powerful online tools, students living in remote areas don\\'t need to attend classes, use public transport to reach their school or university, or or even order books and other materials.',\n },\n ],\n },\n {\n title: 'Improved metrics',\n itemData: [\n {\n key: 'text',\n text: 'Online classes offer everything educators need to monitor and evaluate student performance and track progress. You can receive detailed reports on each course, group work & other activities, as well as check how your students are doing.',\n },\n ],\n },\n {\n title: 'Not missing important information',\n itemData: [\n {\n key: 'text',\n text: 'There’s no rewind button with live learning, and asking the lecturer to repeat themselves is not always possible. Your learners can pause, rewind, and even repeat entire segments so that they’re able to master the material before moving on. Many teachers are surprised by how much their students learn in real time—but it doesn’t stop there. You can provide students with a virtual classroom, quizzes, discussion boards and other interactive ways to help them study.',\n },\n ],\n },\n {\n title: 'Effectiveness',\n itemData: [\n {\n key: 'text',\n text: 'eLearning software is especially effective in helping students master the skills they need to be successful. This effectiveness can be seen in many different ways, including improved test scores and certification achievement rates, as well as an enhanced ability to apply knowledge learned in the course.',\n },\n ],\n },\n {\n title: 'Updated content',\n itemData: [\n {\n key: 'text',\n text: 'Online course content can be updated and modified by the instructor to ensure consistency and accuracy. Your school can make sure that students are always learning the skills they need to succeed.',\n },\n ],\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listTitle: 'Disadvantages',\n listData: [\n {\n title: 'Lack of face-to-face interaction',\n itemData: [\n {\n key: 'text',\n text: 'Students have fewer opportunities to interact with their instructors and classmates. They spend less time in class, which can make it difficult to build relationships and establish trust with the instructor. Online classes don\\'t provide the same level of supervision that traditional classroom learning provides, which can make students feel socially isolated.',\n },\n ],\n },\n {\n title: 'Gap between theory and practice',\n itemData: [\n {\n key: 'text',\n text: 'Because the technology-driven environment is so specific, it is easier to teach theory than get students to do practical work.',\n },\n ],\n },\n {\n title: 'Limited to certain disciplines',\n itemData: [\n {\n key: 'text',\n text: 'While online classes are ideal for certain areas, such as the humanities and social sciences, it may not be a good fit for subjects that require more hands-on experience. For example, if your students are taking a course on biochemistry, having access to lab equipment would make it easier for you to learn the material effectively.',\n },\n ],\n },\n {\n title: 'Possibility of cheating',\n itemData: [\n {\n key: 'text',\n text: 'This is one of the biggest cons of online education. Online degrees are becoming increasingly popular, but they are not always easy to regulate. Because some online tools lack proper monitoring solutions, cheating in online exams can be a problem.',\n },\n ],\n },\n {\n title: 'Need for time management skills',\n itemData: [\n {\n key: 'text',\n text: 'Time management skills are something that everyone needs to gain, but it\\'s especially important when learning online. When there is no one-on-one interaction with a teacher or mentor, the student will have to rely on their own capabilities and abilities to get through classwork and assignments.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Pros and cons of eLearning for startups',\n id: 'Pros and cons of eLearning for startups',\n content: [\n {\n key: 'p',\n text: 'Startups are increasingly looking to eLearning to generate revenue. While the platform is growing in popularity, there are still some cons to consider before moving forward with this strategy.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listTitle: 'Advantages',\n listData: [\n {\n title: 'It is a great way to generate revenue',\n itemData: [\n {\n key: 'text',\n text: 'The market for online classes is growing rapidly, and there are many potential customers for EdTech startups. Many types of learners might want to take your courses, including professionals, students and educators alike.',\n },\n ],\n },\n {\n title: 'A wide range of potential customers',\n itemData: [\n {\n key: 'text',\n text: 'K-12 schools are an obvious target market. They are already committed to providing students with the tools they need to succeed in school and beyond, and they have large budgets from which to spend on training programs. However, there are also many other opportunities to work with universities and corporations on their own training programs.',\n },\n ],\n },\n {\n title: 'Scalability',\n itemData: [\n {\n key: 'text',\n text: 'eLearning allows you to scale up or down as needed. It is relatively easy for an EdTech startup to scale up rapidly if its product is successful in piloting or testing phases. Online lessons are easy to create and modify, which means that a company can tailor its product to the needs of different students and teachers.',\n },\n ],\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listTitle: 'Disadvantages',\n listData: [\n {\n title: 'Investment',\n itemData: [\n {\n key: 'text',\n text: 'Online learning platforms can be expensive to develop. This means that you need to invest in the right tools and software development teams in order to make sure that your platform will be successful. Your online class needs to be easy-to-use, engaging, and interactive for students.',\n },\n ],\n },\n {\n title: 'Finding reliable team',\n itemData: [\n {\n key: 'text',\n text: 'To avoid wasting your resources on unreliable vendors, it’s important to do some research before hiring one. If you\\'re not careful, you could end up in a situation where you\\'re paying for a team that isn\\'t meeting your expectations or timelines.',\n },\n ],\n },\n {\n title: 'Getting customers',\n itemData: [\n {\n key: 'text',\n text: 'It\\'s not always easy getting customers on board with online classes. It\\'s important that you provide them with a high-quality platform and content that will help them achieve their goals. Not all people are comfortable taking their learning online, so it\\'s important to make sure you can meet the needs of your audience by creating an environment that is as enjoyable as it is educational.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Pros and cons of eLearning for businesses',\n id: 'Pros and cons of eLearning for businesses',\n content: [\n {\n key: 'p',\n text: 'eLearning can be a powerful tool for your business. It can help you reach more customers, increase sales, and grow your brand. But online learning programs can be a bit tricky to get started with. Let’s examine all the pros and cons of using online education in your business.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listTitle: 'Advantages',\n listData: [\n {\n title: 'Time efficiency',\n itemData: [\n {\n key: 'text',\n text: 'Online courses are accessible 24/7, so employees can learn at their convenience. They don’t have to pull themselves away from their work or meetings in order to gain new skills. People who work remotely have the freedom to study and take care of their other responsibilities on their own schedule.',\n },\n ],\n },\n {\n title: 'Travel time and cost savings',\n itemData: [\n {\n key: 'text',\n text: 'You can save money by not having to send your employees to attend educational seminars and pay for their travel. The result is that businesses have more flexibility in how they schedule training, which can be a huge boon to productivity.',\n },\n ],\n },\n {\n title: 'Reduce pollution',\n itemData: [\n {\n key: 'text',\n text: 'While your physical classroom can be a place for learning, it can also be a place for waste. By being paperless, online programs can help you reduce your carbon footprint and demand for raw materials. You will also reduce the amount of waste going to local landfills, since you won\\'t need to discard old material.',\n },\n ],\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listTitle: 'Disadvantages',\n listData: [\n {\n title: 'Technical issues',\n itemData: [\n {\n key: 'text',\n text: 'Since online education is technology-based, it can require troubleshooting related to connectivity problems or low bandwidth. A virtual classroom can be affected by various technical problems such as audio/video lag or network issues. So it is important to have a reliable system that will not disturb the learning process.',\n },\n ],\n },\n {\n title: 'No control',\n itemData: [\n {\n key: 'text',\n text: 'Online classes have the potential to make it difficult for learners to get clarification on something they don\\'t understand, which could lead to frustration or confusion later. This is especially true when it comes to professional development programs.',\n },\n ],\n },\n {\n title: 'Isolation',\n itemData: [\n {\n key: 'text',\n text: 'In-person learning creates a sense of community and allows for feedback to be provided immediately. With web-based courses, employees may feel isolated in an online training environment. This is not to say that web-based courses are ineffective—they can be just as effective as in-person classes if you\\'re able to provide the right kind of support for your employees to succeed on the course.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'How can we assist you with the development of your eLearning product?',\n id: 'How can we assist you with the development of your eLearning product?',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n link: 'https://clutch.co/profile/moai-team',\n text: 'highly rated by Clutch.',\n },\n {\n key: 'text',\n text: 'We help companies to build complex online learning platforms and scale to the next level.',\n },\n ],\n },\n\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Successful projects: We have had the privilege of helping many educational business owners make their',\n },\n {\n key: 'link',\n text: 'ideas come true.',\n path: '/portfolio',\n linkToOurSite: true,\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Focus: To ensure the highest quality, we limit the number of projects on which we are working at any given time.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Comprehensive approach: We bring a broad perspective to projects, covering technology, business model and user experience—and we involve the product manager and the technical architect from day one.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Fluent English: Our team is fluent in English, so we can communicate effectively with you throughout the process.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Social good: We allocate part of our profits to charitable organizations providing emergency assistance to families in Ukraine.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you have questions about any aspect of online education or',\n },\n {\n key: 'link',\n text: 'elearning software development,',\n link: '/elearning-software-development-everything-you-need-to-know',\n linkToOurSite: true,\n },\n {\n key: 'text',\n text: 'you can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const crucialStagesOfCustomElearningData: IPost = {\n title: 'From idea to MVP: 7 crucial stages of custom elearning software development process',\n subtitle: 'This article will help you understand the stages of creating your own custom eLearning software and the decisions you need to make along the way.',\n previewDescription: 'This article will help you understand the stages of creating your own custom eLearning software and the decisions you need to make along the way.',\n date: 'December 10, 2022',\n path: '/custom-elearning-software-development-process',\n timeToRead: 8,\n banner: crucialStagesOfCustomElearningDataBG,\n bannerAlt: 'Custom eLearning software development process',\n previewImage: crucialStagesOfCustomElearningDataPreviewImage,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n faqData: [\n {\n title: 'What is custom eLearning software?',\n description: 'Custom eLearning software is a type of software that is created specifically for your business. It can offer custom eLearning content, extensive library of training programs, robust authoring tools, learning management system, immersive learning experiences, and collaboration tools for any training needs. It also can provide such innovative features as virtual reality, augmented reality, Artificial intelligence, and so much more.',\n },\n {\n title: 'What is the difference between custom eLearning software and an off-the-shelf solution?',\n description: 'Off-the-shelf solutions are not customizable and cannot be adapted to fit your needs, but they can be useful if you need something quickly and don\\'t have time to develop your own product. Custom eLearning software, on the other hand, is more flexible than off-the-shelf solutions. You can customize the design to fit your business\\'s needs and learning objectives.',\n },\n {\n title: 'What is virtual instructor-led training?',\n description: 'Virtual instructor-led training (VILT) is a type of online learning that combines live instructors with online training content. The course content is delivered via dedicated eLearning platforms which enable learners to interact with professors in real-time and receive instant feedback on their progress.',\n },\n {\n title: 'What are the benefits of custom eLearning software for businesses?',\n description: 'Custom eLearning solutions are a great way to increase your business\\'s efficiency and effectiveness. They allow users to create online courses, offer online training, develop custom content, boost learner engagement, and assess knowledge retention. Custom software development can help businesses to achieve impactful business outcomes and improve their bottom line.',\n },\n ],\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'The eLearning industry is growing at an unprecedented rate. In 2019, the global eLearning market was sized at almost 200 billion U.S. dollars. And by 2026, it’s expected to reach almost 400 billion U.S. dollars.',\n options: {\n fontWeight: 600,\n },\n },\n {\n key: 'p',\n text: 'The reason for this growth is simple: eLearning is a convenient and flexible way to gain new skills.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'But with all this excitement comes a lot of confusion about what exactly makes up this growing industry. Custom',\n },\n {\n key: 'link',\n text: 'eLearning software development',\n link: '/elearning-software-development-everything-you-need-to-know',\n linkToOurSite: true,\n },\n {\n key: 'text',\n text: 'is a complex process that should be approached with care.',\n },\n ],\n },\n ],\n },\n {\n title: 'Custom eLearning software development process',\n id: 'Custom eLearning software development process',\n content: [\n {\n key: 'p',\n text: 'A custom eLearning software development process typically involves seven stages, each has its own deliverables.',\n },\n {\n key: 'p',\n text: 'Let’s take a look at these different stages and show how they fit together to deliver an effective software product.',\n },\n {\n key: 'listWithBigTitleWithoutDots',\n listData: [\n {\n title: 'Step 1: Conceptualization',\n itemData: [\n {\n key: 'text',\n text: 'This is the stage where you’ll work with the team to identify your business goals and objectives, and create a scope of work for the project. You’ll need to consider types of students, their learning styles and preferences, level of knowledge on the topic, and any other relevant factors.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'Once you know what kind of students will be using your course, you can start creating a scope of work that includes everything from basic information about how your course will look and function, to details about how much time each step of the process will take.',\n },\n ],\n },\n {\n title: 'Step 2: Training content creation',\n itemData: [\n {\n key: 'text',\n text: 'Once you have established the scope of work for your project, you’ll need to create all of the materials that will be used in your training program, including text, images, video, etc. You’ll need to determine what content will be needed for each section of the training.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'For example, if you are creating a training program for a new product line or features of a new software application, then you might include an overview video and high-level descriptions of key features.',\n },\n ],\n },\n {\n title: 'Step 3: Storyboarding',\n itemData: [\n {\n key: 'text',\n text: 'Once the content has been created, it is time to determine how best to present it without overwhelming learners with too much information at once. In this stage, you’ll need to create a series of storyboards that show how each screen should look and how users will interact with it.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The first step in creating your storyboards is to create content for all the screens in your app. Then, based on your goals for the app, you’ll need to decide what information should be displayed on each screen.',\n },\n ],\n },\n {\n title: 'Step 4: Design',\n itemData: [\n {\n key: 'text',\n text: 'The goal of this phase is to create a user experience that is engaging, intuitive, and easy to use so that it will help your organization achieve its goals and ensure knowledge retention.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The designer will use wireframes and prototypes to build out the digital product before any coding takes place. The design process should be iterative as it allows for testing and feedback from users.',\n },\n ],\n },\n {\n title: 'Step 5: Development',\n itemData: [\n {\n key: 'text',\n text: 'The development stage involves creating your custom software using our proprietary technology platform. This is the longest part of the process, since it\\'s where you actually build your product.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'With the Agile approach, you\\'ll be able to see the progress of your work in real time as it happens, giving you the opportunity to make changes at any time and see their impact almost immediately.',\n },\n ],\n },\n {\n title: 'Step 6: Testing',\n itemData: [\n {\n key: 'text',\n text: 'This stage includes software testing to ensure the software has been developed according to specifications set forth during the conceptualization stage.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'Usability testing involves testing how easy a user can figure out how to use a program, while functional testing involves testing how well the program works by running it through various scenarios.',\n },\n ],\n },\n {\n title: 'Step 7: Post-deployment support',\n itemData: [\n {\n key: 'text',\n text: 'It is important to ensure that your eLearning solution remains effective and relevant over time. Post-deployment support includes providing continued maintenance services such as bug fixes or updates.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'Our experts at Moai Team are here to help you through every step of the process, from brainstorming ideas to post-deployment support. We\\'re here to help you make it as easy as possible.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Must-have features of custom eLearning software solution',\n id: 'Must-have features of custom eLearning software solution',\n content: [\n {\n key: 'p',\n text: 'Custom eLearning software solutions are a great way to streamline your content production and distribution processes.',\n },\n {\n key: 'p',\n text: 'They offer a number of functionalities that make them more than just an alternative to traditional paper-based learning. Here are a few features that you may consider while creating your custom product:',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Registration',\n itemData: [\n {\n key: 'text',\n text: 'Registration is a must-have feature of any eLearning product. This is because it allows users to register for the course or module in order to gain access. A registration system ensures that users are not required to manually enter their details every time they want to view content.',\n },\n ],\n },\n {\n title: 'Quick login',\n itemData: [\n {\n key: 'text',\n text: 'Quick login is another important feature that you should consider. This allows users to quickly log into their accounts and start working on the content as soon as possible.',\n },\n ],\n },\n {\n title: 'User profile management',\n itemData: [\n {\n key: 'text',\n text: 'User profiles allow you to save and organize user data, including their login information, preferences, and other settings. This makes it easier for users to access their accounts and helps you keep track of how users are engaging with your content.',\n },\n ],\n },\n {\n title: 'Social media login',\n itemData: [\n {\n key: 'text',\n text: 'You want to offer users the ability to log in using social media accounts like Facebook or Twitter. It also can be useful if you want to use social media as a way for users to interact with each other while they\\'re learning from your content.',\n },\n ],\n },\n {\n title: 'Search and customizable filters',\n itemData: [\n {\n key: 'text',\n text: 'Every time someone opens your course, they should be able to search for the content they need quickly and easily. The search feature allows users to search for a particular course or subject and filter the results.',\n },\n ],\n },\n {\n title: 'Notifications',\n itemData: [\n {\n key: 'text',\n text: 'Your custom eLearning solution should also include features to notify users when there are important updates or when they have received feedback from the instructor.',\n },\n ],\n },\n {\n title: 'Video',\n itemData: [\n {\n key: 'text',\n text: 'Video is a great way to keep your audience engaged. It can be used to help visualize a topic or provide examples of the information being taught.',\n },\n ],\n },\n {\n title: 'Secure payment gateways',\n itemData: [\n {\n key: 'text',\n text: 'You\\'ll need a secure payment gateway if you want to accept payments online. You can choose between PayPal or Stripe, both of which are secure options.',\n },\n ],\n },\n {\n title: 'In-app chat',\n itemData: [\n {\n key: 'text',\n text: 'You may want to include in-app chat as part of your eLearning software product so that students can ask questions or provide feedback.',\n },\n ],\n },\n {\n title: 'AI',\n itemData: [\n {\n key: 'text',\n text: 'AI technology is another feature you might consider. AI allows computers to perform tasks without human intervention, which means it can be used for many different applications including self-learning algorithms that learn from data sets and make predictions about future events based on historical data sets.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Custom eLearning software development trends to watch out for in 2023',\n id: 'Custom eLearning software development trends to watch out for in 2023',\n content: [\n {\n key: 'p',\n text: 'New technologies are changing the way we learn. There are many exciting new trends that are helping to change education as we know it.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Big Data',\n itemData: [\n {\n key: 'text',\n text: 'Big Data refers to large sets of data that can be analyzed to reveal patterns and trends. It can be used in a variety of ways, including helping teachers make more informed decisions about how they approach their students\\' learning needs.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'Big Data can help teachers identify specific areas where students need extra help with academic subjects or where they may need additional support with social skills. This information will help educators know what steps they should take next in order to ensure that all students are successful.',\n },\n ],\n },\n {\n title: 'Artificial Intelligence',\n itemData: [\n {\n key: 'link',\n text: 'Artificial Intelligence',\n path: 'https://www.linkedin.com/pulse/7-practical-ways-use-artificial-intelligence-education-moai-team/?trackingId=YQqa99qP%2BGSEwWyBJivpoQ%3D%3D',\n },\n {\n key: 'text',\n text: 'is being used to help teachers provide personalized learning experiences, as well as to assist them with making decisions about curriculum planning and student progress evaluation. Also, it can analyze student data and identify areas for improvement.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'For example, if some students consistently score poorly on tests, an AI-driven system could offer supplemental practice questions in the subject area where they need more work.',\n },\n ],\n },\n {\n title: 'VR and AR',\n itemData: [\n {\n key: 'text',\n text: 'Virtual Reality (VR) and Augmented Reality (AR) are both great tools for engaging students in virtual environments that simulate real-world scenarios.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'For example, a student could use VR goggles to explore an underwater environment or walk through a historic site, while an AR headset would let students interact with objects like animals.',\n },\n ],\n },\n {\n title: 'Gamification',\n itemData: [\n {\n key: 'text',\n text: 'This is a technique that uses game elements in non-game contexts to engage learners and motivate them to learn. This includes learning games, where students can earn badges, points, or other rewards for completing tasks; badges, which are digital rewards that you can display on your profile or website; and leaderboards, which rank users based on certain criteria (such as speed or accuracy).',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The goal of gamification is to create a more engaging system for students. It\\'s a great way to motivate teachers and students alike by giving them something tangible to work towards and giving them ways to measure how well they\\'re doing against other learners.',\n },\n ],\n },\n {\n title: 'STEAM',\n itemData: [\n {\n key: 'link',\n text: 'STEAM',\n path: 'https://library.ucalgary.ca/c.php?g=255548#:~:text=What%20is%20STEAM%3F,%2C%20dialogue%2C%20and%20critical%20thinking.',\n },\n {\n key: 'text',\n text: '(Science, Technology, Engineering, the Arts and Mathematics) framework encourages learners to explore subjects through a multidisciplinary approach.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'For example, students might be asked to create an app, to program it using computer language, then to write up instructions for how others could build something similar, and finally they would need to design a marketing campaign for their product.',\n },\n ],\n },\n {\n title: 'Video-assisted learning',\n itemData: [\n {\n key: 'text',\n text: 'Video-assisted learning (VAL) enables students to acquire knowledge, competence and skills by using audio-visual aids as instructional resources. It can be used to supplement traditional instruction or as a complete substitute for it. ',\n withBr: true,\n },\n {\n key: 'text',\n text: 'It is an effective way to teach students who have a hard time concentrating on reading or writing because they need more visual cues. The main advantage of this method is that it helps students retain the information more efficiently due to the use of visuals. Moreover, the use of visual aids also increases their interest in learning.',\n },\n ],\n },\n {\n title: 'Blockchain',\n itemData: [\n {\n key: 'text',\n text: 'Blockchain technology started as a way to make money transactions more secure, but now it’s transforming education. It\\'s being used to allow teachers and students to share resources across multiple platforms without having to worry about data privacy issues.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The idea behind blockchains is that they are decentralized and distributed ledgers that can record any kind of information. By using a blockchain, no one person or entity has control over the data on the ledger. This makes it impossible for anyone else to alter or change that information without everyone else\\'s consent.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'How to estimate custom eLearning software cost',\n id: 'How to estimate custom eLearning software cost',\n content: [\n {\n key: 'p',\n text: 'The cost of a custom eLearning software is dependent on the scope of the project. To estimate custom eLearning development, you\\'ll need to take into account the following:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'consider the purpose of your eLearning app, along with any other relevant information;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'describe how you want the application to deliver courses and training content;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'choose the platforms for your app, such as web, android, and iOS;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'make a list of features that are important to your learners and instructors;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'divide the features into two basic and advanced (the MVP version of an app may include basic features);',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'discussing the tech stack for developing your application.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'If you are unsure how much your custom software will cost, you can contact our experts who can provide an estimate based on your needs.',\n },\n ],\n },\n {\n title: 'In-House vs. outsourcing vs. freelance software development',\n id: 'In-House vs. outsourcing vs. freelance software development',\n content: [\n {\n key: 'p',\n text: 'When it comes to custom eLearning software development, there are three main options: in-house development, outsourcing, and hiring freelance experts. You can hire ]in-house developers who will work exclusively for your company, an outsourcing firm that specializes in building custom applications for clients across the world, or a freelance software developer who will work on your project as long as necessary.',\n },\n {\n key: 'title',\n text: 'In-house development',\n },\n {\n key: 'p',\n text: 'In-house development means that your company is fully responsible for creating the software that will be used by your business. In this case, the developers are employees of the company who spend their days working on their own projects, and they\\'re paid by their employers to do so.',\n },\n {\n key: 'p',\n text: 'The disadvantages of this model include the fact that it may cost more than outsourcing or hiring freelancers because there are more parties involved and more overhead costs associated with maintaining an internal team.',\n },\n {\n key: 'title',\n text: 'Outsourcing',\n },\n {\n key: 'p',\n text: 'Outsourcing refers to working with a custom software development company instead of full-time employees to develop the work you need done. You\\'ll be paying a third party to do everything from writing the code to testing it, and they\\'ll be responsible for making sure that your project meets your own standards and expectations.',\n },\n {\n key: 'p',\n text: 'This option offers a variety of benefits including flexibility and cost effectiveness. But on the negative side, you lose some control over how your project will be run. On top of that, if you go through a third-party contracting firm, they might not understand the specifics of your business\\' needs and may end up charging too much money or taking too long to deliver what they promised.',\n },\n {\n key: 'title',\n text: 'Hiring freelance experts',\n },\n {\n key: 'p',\n text: 'Freelance software development is another option worth considering. Freelance developers are essentially independent contractors who work on multiple projects at once. Freelancers tend to be more affordable than full-time employees because they don\\'t receive benefits or retirement packages',\n },\n {\n key: 'p',\n text: 'Freelance developers are great because they\\'re only going to charge you for their time and expertise. Freelancers can be much more cost-effective than internal teams or software development agencies, but they may not have the experience or knowledge required for certain tasks.',\n },\n {\n key: 'title',\n text: 'So, who wins?',\n },\n {\n key: 'p',\n text: 'Choosing the best option for your development needs is a complicated process. You have to consider the cost of each option, the availability of developers, and how much work they can handle.',\n },\n {\n key: 'p',\n text: 'If you\\'re considering in-house developers, this means that your team will be made up of employees who have been handpicked by you—either specifically for their skillset or because they have experience working with similar projects. Many companies prefer in-house development because it allows them to have more control over the process and make sure that the final product meets their needs.',\n },\n {\n key: 'p',\n text: 'Outsourcing offers another option for companies who want to build custom solutions but do not have the time or expertise to develop their own software applications from scratch. Outsourcing can also give your company access to expertise from across an entire industry as well as access to new technologies or tools not available in-house.',\n },\n {\n key: 'p',\n text: 'Freelance development is typically better for small projects or projects that don\\'t require a lot of customization. If your business needs frequent updates or prototypes, hiring someone part-time or hourly may be the best option for you. However, it\\'s not always easy finding someone reliable or trustworthy enough to work with.',\n },\n ],\n },\n {\n title: 'eLearning software development approach of Moai Team',\n id: 'eLearning software development approach of Moai Team',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n text: 'highly rated by Clutch.',\n link: 'https://clutch.co/profile/moai-team',\n },\n {\n key: 'text',\n text: 'From the moment you get in touch to the final product launch, we will work with you closely to ensure that everything goes smoothly.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Our team uses the',\n },\n {\n key: 'link',\n text: 'Agile approach',\n link: 'https://www.linkedin.com/pulse/from-chaos-agility-software-development-guide-aleksandr-duchenchuk/?trackingId=Kg5vQtMcR6yGPFBWE8lGCg%3D%3D',\n },\n {\n key: 'text',\n text: 'to help companies build complex eLearning solutions. We utilize the Scrum framework, which is a highly effective way of managing software development projects.',\n },\n ],\n },\n {\n key: 'p',\n text: 'Project is divided into several iterations called sprints. The project is divided into several iterations called sprints. Each sprint typically lasts from 1-4 weeks, depending on your needs and specifications.',\n },\n {\n key: 'p',\n text: 'In each sprint, we complete one or more features of your product. At the end of each sprint, you get a working product that you can provide feedback on. This allows us to make changes before moving onto the next sprint, so that we can continue building towards your goals as closely as possible.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you\\'re thinking about developing an eLearning app and have any doubts, we would be happy to give honest advice. You can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const eLearningMobileAppData: IPost = {\n title: 'eLearning app development cost breakdown: factors & estimation (2023)',\n subtitle: 'This guide will take you through the process of estimating eLearning app development cost by breaking down the variables that come into play.',\n previewDescription: 'This guide will take you through the process of estimating eLearning app development cost by breaking down the variables that come into play.',\n date: 'January 19, 2023',\n path: '/elearning-app-development-cost',\n timeToRead: 8,\n banner: eLearningMobileAppDataBG,\n previewImage: eLearningMobileAppDataPreview,\n bannerAlt: 'eLearning app development cost',\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n faqData: [\n {\n title: 'How to estimate eLearning app development cost?',\n description: 'Educational app development cost depends on a lot of factors, including the size and complexity of your project, whether you\\'re working with a third-party developer or in-house, and how many features are included.',\n },\n {\n title: 'What is the cost of developing mobile education apps?',\n description: 'The cost of developing elearning mobile apps varies wildly depending on the type of application, the level of detail that you want to include in your design, and which platform you\\'re going to use.',\n },\n {\n title: 'How much does it cost to develop eLearning marketplaces?',\n description: 'The average cost for development of an eLearning marketplace is between $20,000 and $30,000 depending on the size of the project and the complexity of the platform. The more sophisticated the product or service, the higher the price tag.',\n },\n {\n title: 'Are eLearning apps worth investment?',\n description: 'There\\'s a reason why educational institutions spend thousands of dollars on training tools and online courses—they work. eLearning apps are a great way to acquire knowledge. Learners can study at their own pace, teachers can easily evaluate student progress, and students can use educational applications to access content while they\\'re on the go.',\n },\n ],\n postListData: [\n {\n content: [\n {\n key: 'title',\n text: 'eLearning app development cost is determined by a combination of factors, including the number of features, the complexity of the design, any third-party integrations required, etc. The price of an average-sized eLearning solution can generally be expected to range from $20,000 to $30,000.',\n },\n {\n key: 'p',\n text: 'However, this cost might vary based on the specific requirements and needs of your business. For instance, AI integration can add a significant amount to the price tag.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'This guide will take you through the process of estimating',\n },\n {\n key: 'link',\n text: 'eLearning software development',\n linkToOurSite: true,\n link: '/elearning-software-development-everything-you-need-to-know',\n },\n {\n key: 'text',\n text: 'cost by breaking down the variables that come into play when determining a budget.',\n },\n ],\n },\n ],\n },\n {\n title: 'eLearning app development cost breakdown',\n id: 'eLearning app development cost breakdown',\n content: [\n {\n text: 'How much does it cost to develop an eLearning app in 2023? According to various sources, education app development cost can range from a modest $5,000 to jaw-dropping $500,000.',\n key: 'p',\n },\n {\n text: 'App budget can be a tricky subject to navigate, but with the right research and planning, you can get a solid understanding of what to expect. Let’s take a look at the biggest cost drivers for custom eLearning applications.',\n key: 'p',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'App design',\n itemData: [\n {\n key: 'text',\n text: 'The design of the eLearning platform is a major cost driver. You want your target audience to feel like they are learning on a professional platform, so make sure you invest in hiring an expert designer who can help you deliver a polished product.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The user interface should be consistent with company branding and values, as well as with industry standards and guidelines.',\n },\n ],\n },\n {\n title: 'Development team',\n itemData: [\n {\n key: 'text',\n text: 'To develop a quality eLearning application, you’ll need a team that includes a product manager, technical architect, programmer, UX/UI designer, and QA specialist.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'Depending on the type of engagement model you choose (in-house, outsourcing, freelance), as well as the location of the professionals you hire, the costs will vary significantly.',\n },\n ],\n },\n {\n title: 'App functionalities',\n itemData: [\n {\n key: 'text',\n text: 'App complexity is the most important factor in determining the cost of eLearning app development. Compare a single app with five-six basic features and no integrations and a feature-packed application with sophisticated interaction patterns and AI integration.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The more complex your application is, the more features you\\'ll need to include, which will raise the price of development.',\n },\n ],\n },\n {\n title: 'Tech stack',\n itemData: [\n {\n key: 'text',\n text: 'Learning app development involves a set of technologies that must work together perfectly. The technology that underlies your eLearning app should also be carefully planned so as not to make implementation costly.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The basic technologies involved in the development and management of eLearning platforms include front-end, back-end, databases, server, and payment system. You can',\n },\n {\n key: 'link',\n linkToOurSite: true,\n text: 'consult our team',\n path: '/contact',\n },\n {\n key: 'text',\n text: 'to find the best tech stack for your custom eLearning app.',\n },\n ],\n },\n {\n title: 'Third-party integrations',\n itemData: [\n {\n key: 'text',\n text: 'Most educational apps have third-party integrations (such as social media platforms and CRM, which can increase the overall cost of development.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'Another significant factor is the addition of third-party frameworks and libraries that could be used to get some functionalities up and running faster.',\n },\n ],\n },\n {\n title: 'Support and maintenance',\n itemData: [\n {\n key: 'text',\n text: 'To ensure bug-free operation, every application requires post-deployment upgrades. Support and maintenance can also be costly if it isn\\'t handled responsibly.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'The extent of this support also plays a role in determining the cost of developing eLearning apps.',\n },\n ],\n },\n {\n title: 'MVP or a full-blown product?',\n itemData: [\n {\n key: 'text',\n text: 'According to market research, premature scaling accounts for',\n },\n {\n key: 'link',\n text: '70% of all startup failures.',\n path: 'https://www.forbes.com/sites/nathanfurr/2011/09/02/1-cause-of-startup-death-premature-scaling/?sh=72b7722f1fc9',\n },\n {\n key: 'text',\n text: 'In many situations, you don\\'t need a fully-fledged app to get in front of your customers or investors.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'By building a Minimum Viable Product first, you can test your idea, attract investors to cover the cost of further development, and gain valuable feedback from beta users. But don\\'t lose sight of the bigger picture—ensure that your tech stack is scalable.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Software development rates worldwide in 2023 [comparison]',\n id: 'Software development rates worldwide in 2023 [comparison]',\n content: [\n {\n key: 'p',\n text: 'At the end of the day, the final app cost will largely be determined by how many hours developers spend working on your product.',\n },\n {\n key: 'p',\n text: 'The average hourly rate for app developers in the United States is $50-130, while it is $30-55 in Eastern European countries. You can significantly reduce the cost of software development while maintaining the desired quality by outsourcing your projects to remote teams from around the world.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Let\\'s see what the numbers look like for 2023. We’ll be using data from reliable sources such as',\n },\n {\n key: 'link',\n text: 'PayScale,',\n link: 'https://www.payscale.com/',\n },\n {\n key: 'link',\n text: 'SalaryExpert,',\n link: 'https://www.salaryexpert.com/',\n },\n {\n key: 'link',\n text: 'Indeed,',\n link: 'http://indeed.com/',\n },\n {\n key: 'link',\n text: 'Upwork,',\n link: 'https://www.upwork.com/',\n },\n {\n key: 'text',\n text: 'and',\n },\n {\n key: 'link',\n text: 'TopTal.',\n link: 'https://www.toptal.com/',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'North America',\n itemData: [\n {\n key: 'text',\n text: 'Rates: $50-130',\n },\n {\n key: 'link',\n text: 'According to Indeed.com,',\n path: 'https://www.indeed.com/career/software-engineer/salaries',\n fromNewLine: true,\n },\n {\n key: 'text',\n text: 'the average base hourly rate of a software engineer in the United States makes up $51.50 per hour as of 2023. The total fee includes only what is paid by the developer, not any taxes or additional expenses.',\n },\n ],\n },\n {\n title: 'Eastern Europe',\n itemData: [\n {\n key: 'text',\n text: 'Rates: $30-55',\n },\n {\n key: 'text',\n text: 'Eastern Europe is a great place to find highly skilled developers at reasonable rates, without risking the quality of the product. In fact,',\n fromNewLine: true,\n },\n {\n key: 'link',\n text: '20% of Fortune 500 companies',\n path: 'https://www.cnbc.com/2022/03/04/ukrainians-are-built-different-the-coders-still-working-under-russian-bombing.html',\n },\n {\n key: 'text',\n text: 'have remote development teams in Ukraine. Due to solid technical education and strong expertise, Ukraine has become one of the leading destinations for IT outsourcing. In February 2022, the Ukrainian tech industry set an unprecedented record of exports at',\n },\n {\n key: 'link',\n text: '$839 million.',\n path: 'https://fortune.com/2022/08/24/ukraine-going-all-in-tech-rebuild-economy-international-oleksandr-bornyakov/',\n },\n ],\n },\n {\n title: 'Western Europe',\n itemData: [\n {\n key: 'text',\n text: 'Rates: $50-$200',\n },\n {\n key: 'text',\n fromNewLine: true,\n text: 'Western Europe\\'s hourly rates are among the highest globally, on par with those in the United States. This is due to a high level of economic development and political stability as well as a developed tax system, which in turn leads to high standards of living.',\n },\n ],\n },\n {\n title: 'Latin America',\n itemData: [\n {\n key: 'text',\n text: 'Rates: $40-$55',\n },\n {\n key: 'text',\n fromNewLine: true,\n text: 'The Latin American IT outsourcing market is another popular destination for sourcing talent. Companies offer competitive hourly rates for the services of highly skilled professionals.',\n },\n ],\n },\n {\n title: 'Africa',\n itemData: [\n {\n key: 'text',\n text: 'Rates: $20-$30',\n },\n {\n key: 'text',\n fromNewLine: true,\n text: 'The IT outsourcing market in Africa is still in its infancy, but it already has shown rapid growth. It is attracting significant investments from domestic and overseas clients.',\n },\n ],\n },\n {\n title: 'Asia',\n itemData: [\n {\n key: 'text',\n text: 'Rates: $20-$45',\n },\n {\n key: 'text',\n fromNewLine: true,\n text: 'Asia remains a leading region for outsourcing. There are many companies that focus exclusively on providing offshore software development services. The region has an abundance of IT-specialists, creating relatively low rates for software development.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Software development rates by technology',\n id: 'Software development rates by technology',\n content: [\n {\n key: 'p',\n text: 'The rate at which software is developed may change depending on the technology used. Let\\'s examine the rate at which software is developed using most common ones.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'JavaScript',\n itemData: [\n {\n key: 'text',\n text: 'As of 2022, JavaScript was',\n },\n {\n key: 'link',\n text: 'the most popular programming language',\n path: 'https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/',\n },\n {\n key: 'text',\n text: 'among software developers around the world. It was used by more than 65 percent of respondents. On average, JavaScript development will cost you from',\n },\n {\n key: 'link',\n text: '$47 to $58 per hour.',\n path: 'https://www.salary.com/research/salary/listing/javascript-developer-hourly-wages',\n },\n ],\n },\n {\n title: 'Python',\n itemData: [\n {\n key: 'text',\n text: 'Python is a general-purpose language. It is used to develop both websites and software, as well as to automate tasks and analyze data. Python development will cost you',\n },\n {\n key: 'link',\n text: '$20–$40/hr.',\n path: 'https://www.upwork.com/hire/python-developers/cost/',\n },\n ],\n },\n {\n title: 'React Native',\n itemData: [\n {\n key: 'text',\n text: 'React Native is essentially an open-source JavaScript framework used to develop software, mostly mobile apps. React Native development costs around $47 per hour.',\n },\n ],\n },\n {\n title: 'React.js',\n itemData: [\n {\n key: 'text',\n text: 'React.js is an efficient and flexible JavaScript library for building user interfaces based on UI components. You can hire React.js developers for an average of $47 per hour.',\n },\n ],\n },\n {\n title: '.NET',\n itemData: [\n {\n key: 'text',\n text: '.NET is a broad set of technologies used to build many different types of applications. These include web, mobile, desktop, games, IoT and more. The average hourly rate for .NET developers is',\n },\n {\n key: 'link',\n text: '$37.',\n path: 'https://www.payscale.com/research/US/Skill=.NET/Hourly_Rate',\n },\n ],\n },\n {\n title: 'Node.js',\n itemData: [\n {\n key: 'text',\n text: 'Node.js is widely used for the back-end of applications. Node js development will cost you approximately from',\n },\n {\n key: 'link',\n text: '$46 to $56 per hour.',\n path: 'https://www.salary.com/research/salary/recruiting/nodejs-developer-hourly-wages',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'In-house vs. outsourcing vs. freelance software development',\n id: 'In-house vs. outsourcing vs. freelance software development',\n content: [\n {\n key: 'p',\n text: 'One of the most important factors to consider when estimating the cost of developing an app is who will create it. There are several options for you to choose from when it comes to developing your application. You can hire an in-house team, work with a software development agency, or contact freelancers.',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Hiring in-house team',\n itemData: [\n {\n key: 'text',\n text: 'An in-house app development team is the most expensive option, but you will have complete control over the process. If you have the expertise and resources necessary to develop your application yourself, you may choose to hire an in-house team.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'If you\\'re thinking about hiring an in-house team, consider what kind of advanced skills they\\'ll need to have and how much time they\\'ll need to spend on the project.',\n },\n ],\n },\n {\n title: 'Outsourcing to software development agency',\n itemData: [\n {\n key: 'text',\n text: 'Working with a software development agency is probably the easiest way to go. You can find the right people for the job and get started immediately. They will be able to handle all aspects of the development process—from research and design right through to testing and deployment.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'This option is often less expensive than hiring an in-house team and allows you to focus on other aspects of your business while the agency handles the technical details of developing your online educational app. Project managers will work closely with you to ensure that your app meets all of your needs.',\n },\n ],\n },\n {\n title: 'Working with freelancers',\n itemData: [\n {\n key: 'text',\n text: 'Another option for developing eLearning solutions is partnering with freelancers on Upwork, Freelancer, or Fiverr. You can choose from several different freelancers depending on their skillset, experience level, and price range.',\n withBr: true,\n },\n {\n key: 'text',\n text: 'Working with freelancers is a great way to save money because you don\\'t have to pay for overhead costs like an office space or employees. Plus, you can hire people who don\\'t live in your local area.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n id: 'Factors that can skyrocket eLearning app development cost',\n title: 'Factors that can skyrocket eLearning app development cost',\n content: [\n {\n key: 'p',\n text: 'Here are some common issues that can negatively impact the development of your online learning application, leading to delays and mounting costs:',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Inexperienced team',\n itemData: [\n {\n key: 'text',\n text: 'The lack of experience in the creation of online learning applications can result in costly errors and project setbacks. To ensure your project runs within budget, choose experienced software teams that have a proven track record of building robust apps for the niche you are targeting.',\n },\n ],\n },\n {\n title: 'Outdated tech stack',\n itemData: [\n {\n key: 'text',\n text: 'There are a lot of reasons why eLearning app development costs can skyrocket. Legacy tools may seem like a budget option, but they often involve costly app maintenance, unstable software and compatibility issues.',\n },\n ],\n },\n {\n title: 'Complex technologies',\n itemData: [\n {\n key: 'text',\n text: 'Advanced technologies and cutting-edge features such as VR&AR integration, AI components, or IoT support will drive the cost of your solution higher.',\n },\n ],\n },\n {\n title: 'Last-minute changes',\n itemData: [\n {\n key: 'text',\n text: 'Mid-project changes that alter fundamental aspects of the project (e.g., changes to functionalities, design approach, target users) will lead to increased costs.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n id: 'How to reduce the eLearning app development cost',\n title: 'How to reduce the eLearning app development cost',\n content: [\n {\n key: 'p',\n text: 'To avoid overpaying for unnecessary features, consider what essential features your eLearning software should have.',\n },\n {\n key: 'p',\n text: 'Often, the lowest quote for eLearning app development is based on the following set of must-have features.',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Signup and login',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Profile',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Account',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Course selection dashboard',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Course progress dashboard',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Admin panel',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Content management',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Self-paced learning environment',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Payment System',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Push notifications',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Interactive videos',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Cloud hosting',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'In-app purchases',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Interactive exercises',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'After finalizing the list of app features, you can discuss the tech stack that will be used.',\n },\n {\n key: 'p',\n text: 'Some outsourcing companies work the other way around. They trick customers into finalizing the tech stack before deciding the features. They deliberately follow the wrong workflow so that they can charge extra later.',\n },\n ],\n },\n {\n id: 'How Moai Team can help you estimate eLearning app development cost',\n title: 'How Moai Team can help you estimate eLearning app development cost',\n content: [\n {\n key: 'p',\n text: 'If you have an idea for an eLearning application, we can work with you to determine the cost of development and deliver a customized solution that meets your needs. We\\'d love to help you figure out what makes sense for your business by giving you a free estimate.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n text: 'highly rated by Clutch.',\n link: 'https://clutch.co/profile/moai-team',\n },\n {\n key: 'text',\n text: 'We have massive experience in delivering customizable Android, iOS, and web apps.',\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Successful projects: We have had the privilege of helping many business owners make their',\n },\n {\n key: 'link',\n text: 'ideas come true.',\n path: '/portfolio',\n linkToOurSite: true,\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Focus: We limit the number of projects on which we work at any given time so that we can give each project our full attention.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Comprehensive approach: We bring a perspective that goes beyond the technical aspects of projects, covering marketing, business model, user experience, and more. Also, we involve both the product manager and the technical architect from day one.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Fluent English: We have a team of experienced app developers with fluent English skills that will be able to communicate clearly with you throughout the process.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Social good: We allocate part of our profits to charitable organizations providing emergency assistance to families in Ukraine.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'Our process starts with a discussion about your needs and requirements for your project. From there, we\\'ll work together to develop the best plan for how to solve those challenges.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you have questions about any aspect of eLearning software development ot learn more about our talent network, you can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const blogData = [\n ELearningIn2022Data,\n whatIsELearningData,\n prosAndConsELearningData,\n whatIsElearningTypesData,\n crucialStagesOfCustomElearningData,\n eLearningMobileAppData,\n threeTypesOfElearningData,\n fromChaosToAgilityData,\n sevenWaysToUseArtificialIntelligenceInEducationData,\n tenDisastrousMistakesStartupsMakeWhenOutsourcingSoftwareDevelopmentData,\n top10MobileAppsData,\n];\n","import { IPost } from '../../entities/IPost';\nimport fromChaosToAgilityDataBG\n from '../../assets/images/software-development-guide.webp';\nimport fromChaosToAgilityDataPreviewImage\n from '../../assets/images/software-development-guide.320x240.webp';\nimport postAuthorImage from '../../assets/images/Aleksandr-Duchenchuk.webp';\n\nexport const fromChaosToAgilityData: IPost = {\n title: 'From Chaos to Agility: Software Development Guide For Startups',\n subtitle: 'If you want to build a quality product, it’s crucial to create an environment where your team can thrive. And Agile helps do just that.',\n previewDescription: 'If you want to build a quality product, it’s crucial to create an environment where your team can thrive. And Agile helps do just that.',\n date: 'December 10, 2022',\n path: '/software-development-guide-for-startups',\n timeToRead: 8,\n banner: fromChaosToAgilityDataBG,\n bannerAlt: 'Software Development Guide For Startups',\n previewImage: fromChaosToAgilityDataPreviewImage,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about the Agile approach, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'If you want to build a quality product, it’s crucial to create an environment where your team can thrive. And Agile helps do just that.',\n },\n {\n key: 'p',\n text: 'The Agile approach is based on the idea that soliciting feedback from customers throughout the development process is essential for success. It helps to respond quickly to changing needs and produce better software overall.',\n },\n {\n key: 'p',\n text: 'In this article, I’ll share some of the fundamental principles behind Agile software development, as well as strategies for implementing them in the context of a startup.',\n },\n ],\n },\n {\n title: 'What is Agile software development?',\n id: 'What is Agile software development?',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'link',\n text: 'Agile',\n link: 'https://www.atlassian.com/agile#:~:text=Agile%20is%20an%20iterative%20approach,small%2C%20but%20consumable%2C%20increments.',\n },\n {\n key: 'text',\n text: 'is an iterative approach to project management and software development, allowing teams to build products incrementally. It’s an umbrella term for several software development methodologies, including:',\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Scrum',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Kanban',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Extreme Programming',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Lean Development',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Crystal',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'and others.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'All Agile methods are designed to be flexible, with a focus on iterative development cycles, and are based on the principles described in the',\n },\n {\n key: 'link',\n text: 'Agile Manifesto.',\n link: 'https://agilemanifesto.org/principles.html',\n },\n ],\n },\n ],\n },\n {\n title: 'Agile Scrum methodology software development process',\n id: 'Agile Scrum methodology software development process',\n content: [\n {\n key: 'p',\n text: 'As an example, let’s take a look at Scrum. In this methodology, development is performed in cycles called “sprints.”',\n },\n {\n key: 'p',\n text: 'You’ll start with a very high-level vision for what you’re trying to build, then create small pieces of functionality (user stories) that can be implemented in small increments during sprints.',\n },\n {\n key: 'p',\n text: 'In each sprint, teams produce a working product increment; these pieces are then tested with real users before being put together into a finished product.',\n },\n {\n key: 'p',\n text: 'At the end of each sprint, there is a review meeting where project stakeholders evaluate the progress and decide whether to continue with the same goals for another sprint or change them based on feedback from reviewers.',\n },\n {\n key: 'p',\n text: 'A sprint typically takes two weeks but can be as long as one month or as short as one day, depending on the type of work being done and how much time it takes to complete this particular task.',\n },\n {\n key: 'p',\n text: 'The goal is to get feedback from users early on so that you can adjust your strategy along the way as needed.',\n },\n ],\n },\n {\n title: 'What are story points, and how to estimate them?',\n id: 'What are story points, and how to estimate them?',\n content: [\n {\n key: 'p',\n text: 'Story points estimate the amount of work that will go into completing a user story (a software system feature) and predict the most realistic amount of effort required.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Story points are usually calculated using a method called',\n },\n {\n key: 'link',\n link: 'https://www.atlassian.com/blog/platform/a-brief-overview-of-planning-poker',\n text: 'Planning Poker.',\n },\n {\n key: 'text',\n text: 'The story point values are assigned as 0, 1, 2, 3, 5, 8, 13, 20, 40, and 100. The Fibonacci sequence is used to determine the complexity of each story point, with 0 equaling a very simple task and 100 representing an extremely complicated one.',\n },\n ],\n },\n ],\n },\n {\n title: 'Best practices for grooming your product backlog',\n id: 'Best practices for grooming your product backlog',\n content: [\n {\n key: 'p',\n text: 'A product backlog is a list of deliverables (new features) planned for implementation as part of a project. And backlog grooming is a process of prioritizing the items in a product backlog; it’s a way to ensure you’re keeping track of all the work that needs to be done and when it’s going to be completed.',\n },\n {\n key: 'p',\n text: 'If not managed carefully, your backlog could become cluttered with tasks that don’t actually need attention now or are irrelevant altogether. Here are some best practices for keeping your backlog organized:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Think big picture. Your backlog should contain an organized list of stories and tasks ready to be worked on.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Make sure that each item has a clear description and acceptance criteria. The more detailed you can be, the better.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Prioritize ruthlessly. Make sure every item in your backlog has a priority associated with it.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Don’t let it get messy. Regularly reevaluate each item on your backlog and remove any items that don’t fit your current needs.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Tools for Agile software development\\n',\n id: 'Tools for Agile software development\\n',\n content: [\n {\n key: 'p',\n text: 'The Agile approach emphasizes flexibility, collaboration, and quick iteration. The following tools can enhance your software development process:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Jira',\n withoutSpace: true,\n path: 'https://www.atlassian.com/software/jira?&aceid=&adposition=&adgroup=93058444980&campaign=9124878606&creative=542638212437&device=c&keyword=jira&matchtype=e&network=g&placement=&ds_kids=p51242181056&ds_e=GOOGLE&ds_eid=700000001558501&ds_e1=GOOGLE&gclid=Cj0KCQjw0oyYBhDGARIsAMZEuMvC8KsvzRxuXKbAUpeyGN8KYWgbwll9UsR9LLpmMY6Z6nQj2l7Ywg0aArozEALw_wcB&gclsrc=aw.ds',\n },\n {\n key: 'text',\n text: ':',\n },\n {\n key: 'text',\n text: 'project management software for tracking workflows, tasks, and bugs.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'Notion',\n path: 'https://www.notion.so/product',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ':',\n },\n {\n key: 'text',\n text: 'a digital workplace that offers tools for building effective workflows.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'Trello',\n path: 'https://trello.com/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ':',\n },\n {\n key: 'text',\n text: 'project management tool for managing projects visually on boards, lists, and cards.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'Slack',\n path: 'https://slack.com/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ':',\n },\n {\n key: 'text',\n text: '',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'Jenkins',\n path: 'https://www.jenkins.io/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ':',\n },\n {\n key: 'text',\n text: 'a continuous integration server.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n id: 'Benefits of Agile software development for startups',\n title: 'Benefits of Agile software development for startups',\n content: [\n {\n key: 'p',\n text: 'Agile development can be particularly useful for startups because it allows you to create your product quickly, with less risk. You can get your software into the hands of potential customers sooner so that they can give valuable feedback about what works and what doesn’t.',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Startups can get to market faster and start generating revenue sooner.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Agile teams constantly engage with customers and gather feedback so that they can adjust the product accordingly.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Products can be updated or improved without requiring expensive rework.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'This approach reduces your risk because you’re not spending time and money developing features that may not be necessary.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'The benefits of Agile are well-documented, but there are some things to be aware of when deciding if it’s right for your company. Agile is great for fast iteration and feedback, but If you’re not careful, you might find yourself constantly tweaking things that aren’t broken — and losing focus on what matters most.',\n },\n ],\n },\n {\n id: 'Agile implementation in Moai Team',\n title: 'Agile implementation in Moai Team',\n content: [\n {\n key: 'p',\n text: 'Our approach to Agile is driven by our belief that the best work happens when we’re all on the same page. We’ve used Agile Scrum to build such products as Djooky and FEX.NET.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'link',\n text: 'Djooky',\n link: 'http://djookyawards.com/',\n },\n {\n key: 'text',\n text: 'is an online music platform backed by some of the industry’s most respected producers. It has over 200,000 users from over 140 countries; the Android app has over',\n },\n {\n key: 'link',\n text: '100,000 downloads',\n link: 'https://play.google.com/store/apps/details?id=com.djooky',\n },\n {\n key: 'text',\n text: 'on the Google Play Store.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'link',\n text: 'FEX.NET',\n link: 'https://fex.net/',\n },\n {\n key: 'text',\n text: 'is a cloud-based file sharing service with more than 3,025,728,103 files uploaded, and it continues to grow every day.',\n },\n ],\n },\n {\n key: 'p',\n text: 'Agile emphasizes feedback from real users and frequent iterations, not just at the end of a software development cycle but throughout it. We’ve found that it helps to make the most of the time and resources while also getting better results.',\n },\n ],\n },\n {\n id: 'Agile software development plan template',\n title: 'Agile software development plan template',\n content: [\n {\n key: 'p',\n text: 'You can use this template to create an Agile software development plan for your team.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Open as',\n },\n {\n key: 'link',\n link: 'https://docs.google.com/document/d/1Uqpcx7TXfSSBNUTDAa4559fAlEOH2TxaQaUh9mBzto8/edit',\n text: 'Google Doc',\n },\n ],\n },\n ],\n },\n {\n id: 'Let’s connect',\n title: 'Let’s connect',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you’re overwhelmed by chaos, uncertain about where to begin or whether to continue, tired of redoing your product and development inefficiency, I’d be happy to discuss ways I might be able to help:',\n },\n {\n key: 'link',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n","import { IPost } from '../../entities/IPost';\nimport sevenWaysToUseArtificialIntelligenceInEducationDataBG\n from '../../assets/images/7-practical-ways-to-use-Artificial-Intelligence-in-education.webp';\nimport sevenWaysToUseArtificialIntelligenceInEducationDataPreviewImage\n from '../../assets/images/7-practical-ways-to-use-Artificial-Intelligence-in-education.320x240.webp';\nimport postAuthorImage from '../../assets/images/Aleksandr-Duchenchuk.webp';\n\nexport const sevenWaysToUseArtificialIntelligenceInEducationData: IPost = {\n title: '7 practical ways to use Artificial Intelligence in education',\n subtitle: 'Artificial Intelligence (AI) is changing the way we approach education. AI is used to provide personalized learning plans, identify patterns in student performance, automate grading, and more.',\n previewDescription: 'Artificial Intelligence (AI) is changing the way we approach education. AI is used to provide personalized learning plans, identify patterns in student performance, automate grading, and more.',\n date: 'December 10, 2022',\n path: '/seven-practical-ways-to-use-artificial-intelligence-in-education',\n timeToRead: 8,\n banner: sevenWaysToUseArtificialIntelligenceInEducationDataBG,\n bannerAlt: 'Types of elearning',\n previewImage: sevenWaysToUseArtificialIntelligenceInEducationDataPreviewImage,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about Artificial Intelligence in education, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'If you’re considering using Artificial Intelligence in your eLearning business, it’s important to understand all the pros and cons. In this guide, you’ll discover:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'What exactly Artificial Intelligence is',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: '7 practical ways to use AI in your eLearning business',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Pros and cons of using Artificial Intelligence as a learning tool',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Regulations on the use of AI in education',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'What is Artificial Intelligence?',\n id: 'What is Artificial Intelligence?',\n content: [\n {\n key: 'p',\n text: 'Artificial Intelligence is the simulation of human intelligence processes by computer systems. This technology can be applied to various tasks, including problem-solving, planning, and natural language processing.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'AI has been a subject of study for decades. As early as the',\n },\n {\n key: 'link',\n link: 'https://en.wikipedia.org/wiki/History_of_artificial_intelligence',\n text: '1940s',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ',',\n },\n {\n key: 'text',\n text: 'scientists from several disciplines (mathematics, psychology, engineering, economics, and political science) were exploring ways to create machines that could learn and make decisions.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'The term “Artificial Intelligence” was first introduced at',\n },\n {\n key: 'link',\n link: 'https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth',\n text: 'the Dartmouth Summer Research Project',\n },\n {\n key: 'text',\n text: 'in 1956. At that conference, researchers met to discuss the prospects for creating machines that could perform tasks that typically require human intelligence. The goal was to create a computer that could learn and solve problems on its own without any human intervention.',\n },\n ],\n },\n {\n key: 'p',\n text: 'The field of AI has seen tremendous growth since then — and continues to do so today. A large part of AI research is devoted to exploring and understanding the nature of intelligence itself.',\n },\n ],\n },\n {\n id: 'How to use Artificial Intelligence in education: 7 practical ways',\n title: 'How to use Artificial Intelligence in education: 7 practical ways',\n content: [\n {\n key: 'p',\n text: 'Artificial Intelligence is a trending topic in education. It can help with everything from grading essays to analyzing student data and making learning more engaging. Here are some ideas on how AI could improve education at every level:',\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: '1. Personalize content based on student needs',\n itemData: [\n {\n key: 'text',\n text: 'The more you know about a student, the better you can tailor your lesson plans to help them achieve their goals. This can be accomplished by using machine learning algorithms to analyze student data points like how fast they’re reading or if they’re going through multiple readings when they come across unknown words in text materials (a common issue).',\n },\n ],\n },\n {\n title: '2. Identify areas of improvement for students',\n itemData: [\n {\n key: 'text',\n text: 'If a student struggles with a concept, AI can identify that and provide extra support. AI can be used to identify areas of improvement for students by using data from multiple sources. This could include a student’s grades and performance on tests, as well as their attendance record and disciplinary history.',\n },\n ],\n },\n {\n title: '3. Create custom content',\n itemData: [\n {\n key: 'text',\n text: 'Most of what we learn in school is pre-packaged and delivered in the same way to everyone. And while this makes it easier for teachers, it doesn’t necessarily make learning more effective. AI can help teachers create engaging content that caters to their students’ learning styles. This can include video lessons, quizzes, practice exams, and more.',\n },\n ],\n },\n {\n title: '4. Automate tasks and processes, including grading and assessment',\n itemData: [\n {\n key: 'text',\n text: 'The rise of AI in education is a game-changer for teachers. Not only does it allow them to focus on their students, but it also frees up their time. AI can automate mundane tasks such as grading assignments or preparing reports that would otherwise be time-consuming for teachers.',\n },\n ],\n },\n {\n title: '5. Monitor students’ progress',\n itemData: [\n {\n key: 'text',\n text: 'AI-equipped educational programs can monitor how well a student is grasping the material and adapt the content to maximize their understanding. Students can also track their own performance, which will allow them to see how they’re doing and where they need to improve. This allows them to work on areas they’re struggling with so they don’t fall behind.',\n },\n ],\n },\n {\n title: '6. Provide 24/7 assistance',\n itemData: [\n {\n key: 'text',\n text: 'AI-powered chatbots can offer round-the-clock assistance in answering student questions about assignments, reviewing concepts from previous classes, or suggesting resources if the student seems confused about something.',\n },\n ],\n },\n {\n title: '7. Analyze data about learning outcomes',\n itemData: [\n {\n key: 'text',\n text: 'AI can provide insights into how students learn and how teachers can improve their instruction. This data can help schools better understand what works and what doesn’t, allowing them to make better decisions about teaching practices and curriculum development.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'AI can help teachers to create more effective lesson plans, support students by providing them with additional resources and be used by researchers to develop better teaching methods. However, AI cannot replace human teachers and the personal interactions they provide.',\n },\n ],\n },\n {\n title: 'Pros and cons of Artificial Intelligence in education',\n id: 'Pros and cons of Artificial Intelligence in education',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'AI has the potential to revolutionize education. Here are some of the biggest',\n },\n {\n key: 'text',\n text: 'pros of using AI as a learning tool:',\n extraTextStyles: {\n fontStyle: 'italic',\n },\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'provide a personalized learning experience that is tailored to students’ needs and interests;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'help students learn more effectively by guiding them through complex concepts;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'help teachers create more engaging lessons, assess student progress, and give them personalized feedback;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'save teachers time by taking on mundane tasks like grading or correcting homework assignments;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'save money by eliminating the need for textbooks or other materials.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'However, there are also some',\n },\n {\n key: 'text',\n text: 'drawbacks that need to be addressed:',\n extraTextStyles: {\n fontStyle: 'italic',\n },\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'privacy concerns around how much data could be collected about students;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'teachers may feel overwhelmed by so much new technology;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'lack of empathy and feelings.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'AI programs are only as good as their programming. In the world of AI, there’s a saying: “garbage in, garbage out.” A poorly-coded AI program will generate inaccurate results, which could have serious consequences.',\n },\n ],\n },\n {\n id: 'Regulation of Artificial Intelligence in education',\n title: 'Regulation of Artificial Intelligence in education',\n content: [\n {\n key: 'p',\n text: 'The regulation of Artificial Intelligence in education is a pressing issue. There are many concerns, including whether or not AI can be used ethically.',\n },\n {\n key: 'p',\n text: 'At the United Nations (UN), several entities discuss aspects of AI regulation, including the UNICRI Centre for AI and Robotics, INTERPOL, and UNESCO. Also, laws regarding the use of Artificial Intelligence are being developed in several countries.',\n },\n {\n key: 'listWithBigTitleWithoutDots',\n listData: [\n {\n title: 'European Union',\n itemData: [\n {\n key: 'text',\n text: 'Most EU countries have their own national strategies for regulating AI, but these are largely convergent. The European Union is guided by a',\n },\n {\n key: 'link',\n path: 'https://digital-strategy.ec.europa.eu/en/policies/european-approach-artificial-intelligence#:~:text=The%20European%20AI%20Strategy%20aims,through%20concrete%20rules%20and%20actions.',\n text: 'European Strategy on Artificial Intelligence',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n ],\n },\n {\n title: 'United Kingdom',\n itemData: [\n {\n key: 'text',\n text: 'The UK supported the application and development of AI in business via the',\n },\n {\n key: 'link',\n path: 'https://www.gov.uk/government/publications/digital-economy-strategy-2015-2018',\n text: 'Digital Economy Strategy 2015–2018',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n ],\n },\n {\n title: 'United States',\n itemData: [\n {\n key: 'text',\n text: 'On a national level, the U.S. Congress enacted',\n },\n {\n key: 'link',\n path: 'https://www.ai.gov/#:~:text=The%20National%20AI%20Initiative%20Act,economic%20prosperity%20and%20national%20security.',\n text: 'the National AI Initiative Act',\n },\n {\n key: 'text',\n text: 'in January 2021 to accelerate AI application for national prosperity and security.',\n },\n ],\n },\n {\n title: 'Canada',\n itemData: [\n {\n key: 'text',\n text: 'In 2022, the Canadian Federal Government tabled a bill for the',\n },\n {\n key: 'link',\n path: 'https://www.parl.ca/DocumentViewer/en/44-1/bill/C-27/first-reading',\n text: 'Artificial Intelligence and Data Act',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n ],\n },\n {\n title: 'China',\n itemData: [\n {\n key: 'text',\n text: 'China’s regulation of AI is primarily guided by the State Council’s',\n },\n {\n key: 'link',\n path: 'https://www.mfa.gov.cn/ce/cefi/eng/kxjs/P020171025789108009001.pdf',\n text: '“A Next Generation Artificial Intelligence Development Plan”',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'There has been a call for such regulations to be implemented because of concerns about students’ safety when interacting with AIs and how the data collected from students can be stored, used, and sold. The lack of regulations has led some people to fear that this technology could be abused by companies that want access to private information.',\n },\n {\n key: 'list',\n listTitle: 'Recommended reading:',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Artificial intelligence in education — UNESCO',\n path: 'https://en.unesco.org/artificial-intelligence/education#:~:text=The%20connection%20between%20AI%20and,of%20AI%20on%20human%20lives).',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'AI and education: guidance for policy-makers',\n path: 'https://unesdoc.unesco.org/ark:/48223/pf0000376709',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'Regulation of artificial intelligence',\n path: 'https://en.wikipedia.org/wiki/Regulation_of_artificial_intelligence',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n id: 'Let’s connect',\n title: 'Let’s connect',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you’re thinking about using Artificial Intelligence in your eLearning business and have any doubts, our highly knowledgeable experts would be happy to answer all your questions and give honest advice. You can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n {\n key: 'p',\n text: 'How do you feel about using Artificial Intelligence in the education sector? It would be great to hear you in the comments!',\n },\n ],\n },\n ],\n};\n","import { IPost } from '../../entities/IPost';\nimport bannerImg\n from '../../assets/images/ten-disastrous-mistakes-startups-make-when-outsourcing-software-development.webp';\nimport previewImage\n from '../../assets/images/ten-disastrous-mistakes-startups-make-when-outsourcing-software-development.320x240.webp';\nimport postAuthorImage from '../../assets/images/Aleksandr-Duchenchuk.webp';\n\nimport statistic from '../../assets/images/startups-mistakes-statistic.webp';\n\nexport const tenDisastrousMistakesStartupsMakeWhenOutsourcingSoftwareDevelopmentData: IPost = {\n title: '10 Disastrous Mistakes Startups Make When Outsourcing Software Development',\n subtitle: 'Among the many challenges that entrepreneurs go through, facilitating an effective software development process is one that often consumes much of resources and could become the reason why it fails.',\n previewDescription: 'Among the many challenges that entrepreneurs go through, facilitating an effective software development process is one that often consumes much of resources and could become the reason why it fails.',\n date: 'December 10, 2022',\n path: '/ten-disastrous-mistakes-startups-make-when-outsourcing-software-development',\n timeToRead: 8,\n banner: bannerImg,\n bannerAlt: '10 Disastrous Mistakes Startups Make When Outsourcing Software Development',\n previewImage,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about outsourcing software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n postListData: [\n {\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Only',\n },\n {\n key: 'link',\n link: 'https://www.forbes.com/sites/neilpatel/2015/01/16/90-of-startups-will-fail-heres-what-you-need-to-know-about-the-10/?sh=25f2782d6679',\n text: '10% of startups',\n },\n {\n key: 'text',\n text: 'succeed.',\n },\n ],\n },\n {\n key: 'p',\n text: 'According to the survey carried out among startup owners, the main reasons why their businesses did not work out were running out of funds, not being able to distinctly establish themselves in the market, and collapsing internally.',\n },\n {\n key: 'image',\n imageData: {\n image: statistic,\n description: 'Main reasons for failure among startups',\n descriptionLink: 'https://www.statista.com/statistics/1271464/start-up-failure-reasons/',\n alt: '',\n },\n },\n {\n key: 'p',\n text: 'Among the many challenges that entrepreneurs go through, facilitating an effective software development process is one that often consumes much of resources.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'For many startups, outsourcing becomes the most convenient option. In fact,',\n },\n {\n key: 'link',\n text: '60% of companies outsource',\n link: 'https://kruschecompany.com/it-outsourcing-statistics/',\n },\n {\n key: 'text',\n text: 'software development in part or in full (US & CA). However, it is not always easy to find a trusted partner that can deliver high-quality products on time and within budget.',\n },\n ],\n },\n {\n key: 'p',\n text: 'Let’s take a look at the biggest mistakes startups make when outsourcing software development and how you can avoid them so that your project goes smoothly.',\n },\n ],\n },\n {\n title: 'Mistakes startups make when outsourcing software development',\n id: 'Mistakes startups make when outsourcing software development',\n content: [\n {\n key: 'p',\n text: 'When it comes to outsourcing software development, a lot can go wrong.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 1: Choosing a vendor that cannot demonstrate a thorough understanding of your company’s business processes',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'A development studio that lacks knowledge of other business processes and does not understand all the stakeholders can never create a truly efficient product. If the focus will be solely on programming, it won’t be possible to balance the demands of the project. They may be good coders, but they don’t know how to make the best product for you.',\n },\n {\n key: 'p',\n text: 'The company you choose should understand the nuances of your particular industry and the processes that are specific to your company. If they do not, they may simply code mindlessly without taking into account how their work will fit into the larger picture.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 2: Not considering scaling in the MVP early on',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'One of the biggest mistakes startups make is not planning for scalability at the outset. Startups in their earliest stages typically do not have a large user base and a lot of data to process. But once the MVP has been tested and proven successful, you’ll need to scale up to accommodate an influx of new users.',\n },\n {\n key: 'p',\n text: 'If a startup has neglected to account for this upfront, they could find themselves having to write all their code from scratch again simply because they didn’t plan for scalability.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 3: Miscalculating the scope of the project',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'You’re going to want to get a clear picture of what needs to be done and how long it will take. The best way to do this is by providing a detailed specification document with your requirements clearly laid out.',\n },\n {\n key: 'p',\n text: 'Proper communication and a non-disclosure agreement should help and relieve you from the major concerns. Also, hidden costs may appear if your partner is unreliable or if you haven’t discussed and agreed upon payment terms.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 4: Making price the main decision criteria',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'Businesses that focus only on cost and ignore the other factors involved in product development often end up with products that are not adequate for their needs. The truth is, price is rarely the most important factor when it comes to choosing an outsourcer. If you end up choosing a company based solely on cost, you may end up paying more in the long run.',\n },\n {\n key: 'p',\n text: 'It’s important to find a company that has experience in your industry. That way, they can help you design the right processes for your team and will know what tools are available on the market. The best developers are also great communicators who will work with you throughout the entire process, from brainstorming ideas through implementation.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 5: Poor planning',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'Good software products are built on a solid foundation of project requirements. They outline what you need to accomplish and provide a blueprint for your development team. When working with an external dev team, having clear requirements is critical for success.',\n },\n {\n key: 'p',\n text: 'An approximate plan will create chaos. Ideally, a startup and an outsourcing vendor should agree on the following aspects:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'the project’s deliverables;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'plans and schedules;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'KPIs that will be used to measure the progress.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 6: Being vague about project estimates',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'Whether it’s time or money, it’s important to be clear about project estimates. To do this, you need to understand how much time and effort it will take to implement your project.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Also, keep in mind that setting unrealistic expectations can be damaging to your partnership. It’s always good practice to set',\n },\n {\n key: 'link',\n text: 'SMART',\n link: 'https://www.atlassian.com/blog/productivity/how-to-write-smart-goals',\n },\n {\n key: 'text',\n text: 'goals — or, goals that are specific, measurable, attainable, realistic, and timely.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 7: Hiring a team that is lacking technical skills',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'If your team isn’t proficient with the various technologies you’ll be using, you might end up with poor-quality code and a product that doesn’t work as intended',\n },\n {\n key: 'p',\n text: 'The last thing you want is to hire a team that lacks technical skills or doesn’t have experience with the technologies your project will use.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 8: Picking a company whose culture does not align with yours',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'You may find that certain companies have excellent credentials but their culture isn’t what you’re looking for. This can lead to frustration, as well as a lack of trust in the service provider.',\n },\n {\n key: 'p',\n text: 'A company’s culture can be difficult to measure; however, there are warning signs that can help you avoid a bad fit, such as lack of transparency, unclear priorities, and lack of respect for employees.',\n },\n {\n key: 'p',\n text: 'If you choose a company with a culture that aligns closely with yours, you’ll have an easier time getting things done.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 9: Neglecting data safety and security protocols',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'If you decide to outsource your software development, you’ll need to share important company data with an external vendor. It puts you at risk of data loss and security threats.',\n },\n {\n key: 'p',\n text: 'You can protect yourself by creating a strong contract that outlines the responsibilities each party has related to data security and privacy. You should also make sure that you have a clear understanding of what kind of access these developers will have to your systems and data — and how long this access will last after the project is completed.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Mistake 10: Selecting a company that has messy development processes',\n extraTextStyles: {\n fontWeight: 700,\n },\n },\n ],\n },\n {\n key: 'p',\n text: 'This can be a recipe for disaster. Instability kills efficiency, as well as drains employees. Even the most skilled top talent won’t be able to show good performance.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'At Moai Team, we use an',\n },\n {\n key: 'link',\n text: 'Agile software development approach',\n link: 'https://www.linkedin.com/pulse/from-chaos-agility-software-development-guide-aleksandr-duchenchuk/?trackingId=G1xRBX%2BSQ%2FuPREa%2FzkyA%2FQ%3D%3D',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ',',\n },\n {\n key: 'text',\n text: 'which means that all work is done in short sprints with clear milestones. This approach enables us to provide you with the best possible product in the shortest amount of time.',\n },\n ],\n },\n ],\n },\n {\n id: 'How to select the best software development partner',\n title: 'How to select the best software development partner',\n content: [\n {\n key: 'p',\n text: 'Your business could be at stake, and it’s important to find someone who will work with you to build something that’s truly world-class. Here are some factors to consider:',\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'team’s experience in cooperation with startups;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'speed at which the company can deliver quality products;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'technical competencies;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'track record of successful projects;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'ability to provide you with realistic estimations of the scope of work and price;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'transparency while discussing terms, risks, and plans;',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'company’s profiles on Clutch, LinkedIn, and their website.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n id: 'How Moai Team approaches software development for startups',\n title: 'How Moai Team approaches software development for startups',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n text: 'highly rated by Clutch',\n link: 'https://clutch.co/profile/moai-team',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n {\n key: 'text',\n text: 'We help startups to build complex products, launch their MVPs, and scale to the next level.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'We have had the privilege of helping many startup owners make their ideas come true. Some of the software solutions we have developed for our clients include',\n },\n {\n key: 'link',\n text: 'Djooky',\n link: 'http://djookyawards.com/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ',',\n },\n {\n key: 'text',\n text: 'a music investment platform that has 200,000 users from over 140 countries,',\n },\n {\n key: 'link',\n text: 'FEX.NET',\n link: 'https://fex.net/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: ',',\n },\n {\n key: 'text',\n text: 'a cloud-based file-sharing service with more than 3 billion files uploaded, and so much more.',\n },\n ],\n },\n {\n key: 'p',\n text: 'Our team brings a perspective that goes beyond the technical aspects of projects, covering marketing, business model, user experience, and more. We believe that communication is key when it comes to software development, so we always make sure that you are informed about each stage of the project’s progress.',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you have questions about any aspect of the software development process, you can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n","import { IPost } from '../../entities/IPost';\nimport threeTypesOfElearningDataBG\n from '../../assets/images/types-of-elearning.webp';\nimport threeTypesOfElearningDataPreviewImage\n from '../../assets/images/types-of-elearning.320x240.webp';\nimport postAuthorImage from '../../assets/images/Aleksandr-Duchenchuk.webp';\n\nexport const threeTypesOfElearningData: IPost = {\n title: '3 types of eLearning: synchronous vs asynchronous vs blended',\n subtitle: 'In this article, we\\'ll take a look at the differences between synchronous, asynchronous, and blended types of eLearning.',\n previewDescription: 'In this article, we\\'ll take a look at the differences between synchronous, asynchronous, and blended types of eLearning.',\n date: 'December 10, 2022',\n path: '/types-of-elearning',\n timeToRead: 8,\n banner: threeTypesOfElearningDataBG,\n bannerAlt: 'Types of elearning',\n previewImage: threeTypesOfElearningDataPreviewImage,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n faqData: [\n {\n title: 'What are the main types of eLearning?',\n description: 'There are three main types of online learning: synchronous, asynchronous and blended. The learning process is different for each one, but all of them have the same goal: help people learn new skills or information.',\n },\n {\n title: 'What is synchronous eLearning?',\n description: 'Synchronous or collaborative eLearning is close to traditional teaching (classroom learning): you have a lecture and hands-on activities that reinforce the learning objectives. Synchronous learning allows students to interact with each other and engage in meaningful discussion about the content being taught.\\n',\n },\n {\n title: 'What is asynchronous eLearning?',\n description: 'With asynchronous electronic learning, students study independently. Computer managed learning allows students to access learning materials and complete assignments using software that tracks progress and provides grades immediately. Examples of asynchronous learning include pre-recorded video lessons, online courses, and discussion boards.',\n },\n {\n title: 'What is blended eLearning?',\n description: 'Blended eLearning is a combination of both synchronous and asynchronous eLearning methods: participating students receive real-time feedback, but they also have access to their online course, various learning tools and interactive videos later. It helps students to work at their own pace, which is often preferred by adult learners who may not be comfortable with the traditional classrooms.',\n },\n {\n title: 'What are the most effective teaching and learning methods?',\n description: 'To meet a range of learning objectives, some of the most effective teaching and learning methods include differentiated instruction, lecture-based instruction, technology-based learning, group learning, individual learning, inquiry-based learning, kinesthetic learning, game-based learning and expeditionary learning.',\n },\n ],\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'eLearning has come a long way. From the first days of recorded lectures, to the advent of interactive games and simulations, and all the way up to today\\'s full-fledged immersive experiences, there are more options than ever for educators to find the right learning experience for their students.',\n },\n {\n key: 'p',\n text: 'One of the most common ways to categorize eLearning is by its delivery method: synchronous, asynchronous, or blended. In this article, we\\'ll take a look at the differences between these three types of eLearning so you can decide which one is best for your needs.',\n },\n ],\n },\n {\n title: 'Types of eLearning: synchronous vs asynchronous vs blended',\n id: 'Types of eLearning: synchronous vs asynchronous vs blended',\n content: [\n {\n key: 'p',\n text: 'eLearning is a powerful tool for educational institutions and companies to improve retention rates and lower the cost of training. It also offers great flexibility in terms of both time and location.',\n },\n {\n key: 'p',\n text: 'The eLearning environment is generally divided into three categories: synchronous, asynchronous, and blended.',\n },\n ],\n },\n {\n title: 'What is synchronous eLearning?',\n id: 'What is synchronous eLearning?',\n content: [\n {\n key: 'p',\n text: 'Synchronous eLearning is the most common way to deliver educational content. It allows for real-time interaction between instructor and students. Learners sign in to a virtual classroom at the same time regardless of their geographical location and the instructor leads the class.\\n',\n },\n {\n key: 'p',\n text: 'If you want to provide immediate feedback and answer student questions, then synchronous training is a great option.',\n },\n {\n key: 'list',\n listTitle: 'Pros of synchronous eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Synchronous online learning allows for active participation and collaboration among learners.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Instructors can see how each student is progressing through the course materials.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Students can get immediate feedback on their eLearning course.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'With synchronous learning, students are able to share their ideas and opinions with the class, computer managed learning systems help to ensure that all students are engaged, regardless of their ability to contribute or not.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'The learning process is more immersive, allowing instructors to provide valuable support and guidance to students.',\n },\n ],\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Cons of synchronous eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Students have to adhere to a specific training schedule.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Enough of bandwidth is required to support all participants at once.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'It does not allow for learners to study at their own schedule.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Learning activity may be interrupted due to software or hardware issues.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'The key concepts may not be conveyed in a way that makes them immediately understandable.',\n },\n ],\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Examples of synchronous eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'eLearning course in form of virtual classrooms',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Live presentations',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Live chat',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Live polls',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Quizzes',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Q&A sessions',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Live demonstrations',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Interactive discussions',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'What is asynchronous eLearning?',\n id: 'What is asynchronous eLearning?',\n content: [\n {\n key: 'p',\n text: 'Asynchronous eLearning is where participants access content at their own pace. It is ideal for those who have busy schedules or live in remote locations, as it allows them to complete coursework at their convenience.',\n },\n {\n key: 'p',\n text: 'Asynchronous online learning can be done at the learner’s convenience. Students are able to follow the curriculum without having to worry about scheduling conflicts.',\n },\n {\n key: 'list',\n listTitle: 'Pros of asynchronous eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Asynchronous learning offers lots of flexibility.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'The technology is becoming more and more advanced, which means that you have the ability to create more interactive elements in your courses.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'It’s a great way to improve the quality and efficiency of your sales training by including such things as self-paced courses, software tutorials, interactive video, etc.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'It\\'s a cost effective way to train learners that are based in varying locations.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Students have more time to reflect on the learning materials.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Video based learning is a great way to deliver instruction to students.',\n },\n ],\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Cons of asynchronous eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Some individuals may feel isolated.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Self-discipline is required: if students are unable to focus on the task at hand, they end up procrastinating.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'It can be hard to keep students motivated because they don\\'t have any personal connection with the instructor.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'It is challenging to provide students in medical and health fields with the support they need.',\n },\n ],\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Examples of asynchronous eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Self-paced course',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Online courses',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Digital training materials',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Interactive videos, standalone training videos, and video tutorials',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Discussion groups',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Forums/message boards',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Polls and quizzes',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Digital documents',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Recorded audio and video',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Slides with or without narration',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'What is blended eLearning?',\n id: 'What is blended eLearning?',\n content: [\n {\n key: 'p',\n text: 'Blended (also known as polysynchronous or hybrid) eLearning is a combination of synchronous and asynchronous approaches—a mix of in-person/real-time and self-paced learning activities. In the online learning context, this means that one portion of learning is instructor-led, commonly through webinars, and the other portion is self-paced.',\n },\n {\n key: 'p',\n text: 'You get all the benefits of online learning—such as flexible learning schedules, 24/7 access, and no travel time—with all of the advantages that come from teaching in person: improved retention rates, increased engagement levels, and better overall retention rates.',\n },\n {\n key: 'list',\n listTitle: 'Pros of blended eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'It offers an interactive eLearning experience that combines self-paced coursework with face-to-face instruction.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'You can use computer assisted instruction to learn exactly what works best for you—whether it\\'s through mobile devices or through traditional classroom settings.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Students get an engaging way to learn and individualized support.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Helpful online resources are available to students at any time.',\n },\n ],\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Cons of blended eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Blended learning courses are more time-consuming to design.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Students can start overdoing with educational activities and experience cognitive load.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'It is quite a hassle to create assignments from scratch.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'You need to use a Learning Management System/Learning Experience Platform capable of supporting blended learning.',\n },\n ],\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Examples of blended eLearning',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Discussion forums',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Embedded videos',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Virtual reality',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Augmented reality',\n },\n ],\n },\n ],\n },\n ],\n },\n // {\n // title: 'Advantages & limitations of synchronous, asynchronous and blended eLearning',\n // id: 'Advantages & limitations of synchronous, asynchronous and blended eLearning',\n // content: [\n // {\n // key: 'p',\n // text: 'One important question that arises when we\\'re talking about eLearning implementation is whether or not it should be synchronous, asynchronous, or blended. It\\'s important to understand the advantages and limitations each type offers.',\n // },\n // {\n // key: 'table',\n // tableData: {\n // columns: [\n // {\n // Header: '',\n // accessor: 'col1',\n // },\n // {\n // Header: 'Synchronous eLearning',\n // accessor: 'col2',\n // },\n // {\n // Header: 'Asynchronous eLearning',\n // accessor: 'col3',\n // },\n // {\n // Header: 'Blended eLearning',\n // accessor: 'col4',\n // },\n // ],\n // data: [\n // {\n // col1: 'Advantages',\n // col2: 'Engagement: it enables real-time support, communication, discussion, and sharing insights.\\n'\n // + '\\n'\n // + 'Assessment: it enables instructors to monitor student progress and provide instant feedback.',\n // col3: 'Deep processing: more time is available for deep processing and practice\\n'\n // + '\\n'\n // + 'Personalisation: you can tailor your course to each individual\\'s needs.\\n'\n // + '\\n'\n // + 'Focus: it allows students to take time to process new information without feeling overwhelmed.',\n // col4: 'Scalability: blended learning can be scaled up or down to suit the needs of your organization’s demand for training.\\n'\n // + '\\n'\n // + 'Flexibility: it allows you to use multiple delivery methods to target different types of learners, which means you can offer training that better meets their needs',\n // },\n // {\n // col1: 'Limitations',\n // col2: 'Inflexibility: class speed may be too fast or too slow for some. \\n'\n // + '\\n'\n // + 'Limited time: there might not be enough time for processing and practice.\\n'\n // + '\\n'\n // + 'Interruption: students and teachers may expect disruptions from bandwidth and technical problems.',\n // col3: 'Isolation: Communication lag time delays support, help, clarification, and feedback, if these options are available at all.\\n'\n // + '\\n'\n // + 'Technical problems: it requires students to have certain technical skills.',\n // col4: 'Technology can be an obstacle: if you don\\'t have access to the right tools, it can be difficult to implement some aspects of your program effectively.\\n'\n // + '\\n'\n // + 'Content delivery: it can be hard to find a good balance between synchronous and asynchronous elements.',\n // },\n // ],\n // },\n // },\n // ],\n // },\n {\n title: 'Which type of eLearning is best?',\n id: 'Which type of eLearning is best?',\n content: [\n {\n key: 'p',\n text: 'Your choice will depend on the audience, your unique learning environment, objectives you want to achieve, and how you want your students to engage with your content.',\n },\n {\n key: 'listWithBigTitleWithoutDots',\n listData: [\n {\n title: 'Asynchronous eLearning',\n itemData: [\n {\n key: 'text',\n text: 'is best for those who want their learners to work independently. In asynchronous eLearning, learners complete tasks on their own schedule. This type of learning is perfect for those who want to give their students more freedom in how they learn.',\n },\n ],\n },\n {\n title: 'Synchronous eLearning',\n itemData: [\n {\n key: 'text',\n text: 'is best for students who want to interact with a teacher or another learner. Students will be able to ask questions, discuss concepts, and ask for clarification about the material being presented.',\n },\n ],\n },\n {\n title: 'Blended eLearning',\n itemData: [\n {\n key: 'text',\n text: 'combines both synchronous and asynchronous formats by having access to instructors via video calls or chat sessions, as well as being able to practice on your own time using resources such as textbooks and online tutorials.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'If you plan to develop an eLearning solution, we can help you choose the best type of online learning for your software product. We know that it can be hard to figure out which type of eLearning is right for your business—and we want to make that easier. Our experts have years of experience in developing different types of eLearning platforms, so they\\'ll be able to help you find the right approach for your organization.',\n },\n ],\n },\n {\n title: 'How Moai Team can help you implement eLeaning for your organization',\n id: 'How Moai Team can help you implement eLeaning for your organization',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Moai Team is a full-service software development company,',\n },\n {\n key: 'link',\n text: 'highly rated by Clutch.',\n link: 'https://clutch.co/profile/moai-team',\n },\n {\n key: 'text',\n text: 'We help companies build complex eLearning solutions.',\n },\n ],\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Successful projects: We have had the privilege of',\n },\n {\n key: 'link',\n text: 'helping many business owners',\n path: '/portfolio',\n linkToOurSite: true,\n },\n {\n key: 'text',\n text: 'make their ideas come true. Our team created several successful eLearning apps for our clients, including',\n },\n {\n key: 'link',\n text: 'SmartExpert',\n path: 'https://www.linkedin.com/company/smartexpert/?roistat_visit=248274',\n },\n {\n key: 'text',\n text: 'and',\n },\n {\n key: 'link',\n text: 'Addictive Learning.',\n path: 'https://www.linkedin.com/company/addictive-learning/',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Focus: We limit the number of projects on which we work at any given time so that we can give each project our full attention.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Comprehensive approach: We bring a perspective that goes beyond the technical aspects of projects, covering marketing, business model, user experience, and more. Also, we involve both the product manager and the technical architect from day one.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Fluent English: We have a team of experienced developers with fluent English skills that will be able to communicate clearly with you throughout the process.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Social good: We allocate part of our profits to charitable organizations providing emergency assistance to families in Ukraine.',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Our',\n },\n {\n key: 'link',\n text: 'eLearning software development',\n link: '/elearning-software-development-everything-you-need-to-know',\n linkToOurSite: true,\n },\n {\n key: 'text',\n text: 'process is built around your unique needs—we\\'ll work with you to understand what makes your business tick, then we\\'ll build an interactive platform that allows you to deliver on your goals in the way that\\'s best for your audience. We know that each business is unique, and we want to work with you to create an online learning experience that’s tailored to your customers’ needs.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you have questions about any aspect of eLearning, we would be happy to give honest advice. You can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n","import { IPost } from '../../entities/IPost';\nimport bannerBG\n from '../../assets/images/top-10-eLearning-apps.banner.webp';\nimport previewImg\n from '../../assets/images/top-10-eLearning-apps.bannerPreview.webp';\nimport postAuthorImage from '../../assets/images/Aleksandr-Duchenchuk.webp';\n\nimport img1 from '../../assets/images/top-10-elearning-apps-graph.webp';\nimport img2 from '../../assets/images/Google-Classroom.webp';\nimport img3 from '../../assets/images/Duolingo-screenshot.jpg';\nimport img4 from '../../assets/images/edX-screenshot.jpg';\nimport img5 from '../../assets/images/Coursera-screenshot.jpg';\nimport img6 from '../../assets/images/Khan-Academy-screen.jpg';\nimport img7 from '../../assets/images/Photomath-screenshot.jpg';\nimport img8 from '../../assets/images/SoloLearn-screenshot.jpg';\nimport img9 from '../../assets/images/WizIQ-screenshot.jpg';\nimport img10 from '../../assets/images/BenchPrep-screenshot.jpg';\nimport img11 from '../../assets/images/Yousician-screenshot.jpg';\n\nexport const top10MobileAppsData: IPost = {\n title: 'Top 10 eLearning mobile apps for your inspiration',\n subtitle: 'Education is the third most popular category on the App Store, beaten by Games and Business, and on Google Play, eLearning is even higher in second place. If you are from the education industry, now is the best time to go for eLearning mobile app development.',\n previewDescription: 'Education is the third most popular category on the App Store, beaten by Games and Business, and on Google Play, eLearning is even higher in second place. If you are from the education industry, now is the best time to go for eLearning mobile app development.',\n date: 'December 10, 2022',\n path: '/top-10-eLearning-mobile-apps-for-your-inspiration',\n timeToRead: 8,\n banner: bannerBG,\n bannerAlt: 'Top 10 elearning apps',\n previewImage: previewImg,\n author: {\n name: 'Aleksandr Duchenchuk',\n description: 'I hope you’ll enjoy reading this guide. If you have any questions about eLearning software development, I’d be happy to discuss ways I might be able to help.',\n position: 'CEO and co-founder of Moai Team',\n image: postAuthorImage,\n socialMedias: [\n {\n iconId: 1,\n path: 'https://www.linkedin.com/company/moai-team/',\n },\n {\n iconId: 2,\n path: 'https://www.facebook.com/moai.team',\n },\n ],\n },\n postListData: [\n {\n content: [\n {\n key: 'p',\n text: 'The mobile app industry is booming. In Q3 2022, Android users had access to 3.55 million apps, the Apple App Store offered 1.6 million apps, and the Amazon Appstore had approximately 483,328 apps. Whereas the exact figures fluctuate as low-quality apps are regularly removed, the number has been increasing over the years.',\n },\n {\n key: 'image',\n imageData: {\n image: img1,\n alt: 'Number of apps available in leading app stores as of 3rd quarter 2022',\n description: 'Number of apps available in leading app stores as of 3rd quarter 2022',\n descriptionLink: 'https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/',\n },\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Education is the',\n },\n {\n key: 'link',\n text: 'third most popular category',\n link: 'https://www.statista.com/statistics/270291/popular-categories-in-the-app-store/',\n },\n {\n key: 'text',\n text: 'on the App Store, beaten by Games and Business, and on Google Play, eLearning is even higher in',\n },\n {\n key: 'link',\n text: 'second place',\n link: 'https://www.statista.com/statistics/279286/google-play-android-app-categories/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n {\n key: 'text',\n text: 'If you are from the education industry, now is the best time to go for eLearning mobile app development.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'There are numerous opportunities for companies that are interested in',\n },\n {\n key: 'link',\n text: 'developing educational mobile apps',\n link: 'https://medium.com/@Aleksandr_Duchenchuk/make-or-break-startup-choice-in-house-software-development-vs-outsourcing-detailed-comparison-fec2fdee7e40',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n {\n key: 'text',\n text: 'The challenge is to create a solution that can meet all of the functional requirements, is user-friendly, and is competitive in the marketplace.',\n },\n ],\n },\n {\n key: 'p',\n text: 'To help your planning, we’ve compiled a list of the best apps for mobile learning today. By examining these successful applications, you can identify what makes them so effective and apply these principles to your product.',\n },\n ],\n },\n {\n id: '10 best examples of eLearning mobile apps today',\n title: '10 best examples of eLearning mobile apps today',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'The eLearning market size crossed $315 billion in 2021, and it’s projected to reach',\n },\n {\n key: 'link',\n link: '$1 trillion',\n text: 'https://www.gminsights.com/industry-analysis/elearning-market-size',\n },\n {\n key: 'text',\n text: 'in 2028. However, there are only a few apps that stand out from the crowd. Here are ten examples of mobile apps that demonstrate the best in eLearning.',\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '1. Google Classroom — a platform that aims to simplify creating, distributing, and grading assignments',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img2,\n alt: 'Google Classroom screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/google-classroom/id924620788',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=com.google.android.apps.classroom&hl=uk&gl=US&pli=1',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/google-classroom/id924620788',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Google Classroom is a free, Google-developed blended learning platform that makes it easy to create classes, distribute assignments, and stay organized. It attracted approximately',\n },\n {\n key: 'link',\n text: '150 million users',\n link: 'https://blog.google/outreach-initiatives/education/classroom-roadmap/',\n },\n {\n key: 'text',\n text: 'worldwide.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Integrations:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Google Classroom integrates several Google apps, such as Google Drive, Google Docs, Google Sheets, Google Slides, Google Forms, Google Sites, Gmail, and Google Calendar.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Assignments:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Teachers can create assignments using various templates; files are hosted on the student’s Drive and then submitted for grading.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Grading:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Students may submit their assignments for comments by the instructor before the final submission.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Communication:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Teachers can post announcements to the class stream, which students can comment on. Students may also post to the class stream, though teachers retain a moderator role.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Plagiarism detection:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'There is a built-in plagiarism detection tool that both students and teachers can access.',\n },\n ],\n },\n ],\n },\n {\n key: 'p',\n text: 'Archive: Teachers can archive courses at the end of a term or year.',\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '2. Duolingo — language learning app',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img3,\n alt: 'Duolingo screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/duolingo-language-lessons/id570060128',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=com.duolingo&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/duolingo-language-lessons/id570060128',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Duolingo is one of the most popular language-learning apps. As of 2022, Duolingo has 95 available courses in 38 languages with over',\n },\n {\n key: 'link',\n text: '500 million downloads',\n link: 'https://techcrunch.com/2021/05/03/duolingo-ec1-origin/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Progressive lessons:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'learning programs provide a clear route toward improved language skills.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Motivation system:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Duolingo gamifies the language learning process through lingots, crowns, and streaks.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Competition:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Learners can check to see how they are doing compared to friends and their league.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Changing languages:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'You can switch back and forth between the languages you’re learning.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '3. edX — online course provider',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img4,\n alt: 'edX screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/edx-courses-by-harvard-mit/id945480667',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=org.edx.mobile&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/edx-courses-by-harvard-mit/id945480667',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'edX is a US-based educational app founded by MIT and Havard that offers online courses from the world’s best universities and industry-leading companies. The platform has served more than 30 million learners since 2012. Over 3500 courses are available in various subjects such as AI, science, law, and engineering.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: '',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Pacing:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'edX courses are either self-paced or instructor-paced.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Discussion groups:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Course discussions allow learners to start conversations with other students.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Wiki-based collaborative learning:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Wiki offers a public forum for both learners and the course team to access, share, and collaboratively edit information relating to the course.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Assessment:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Student progress is assessed through a course.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Cohort-specific content and discussions:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Content groups are a way to control what content is visible to which cohorts.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Certification:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'edX provides digital course certificates.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '4. Coursera — online learning platform',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img5,\n alt: 'Coursera screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/coursera-learn-career-skills/id736535961',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=org.coursera.android&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/coursera-learn-career-skills/id736535961',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Coursera is a massive open online course provider. The platform offers more than 5,200 courses, professional certificates, and degrees from world-class universities and companies. As of 2022, Coursera reached',\n },\n {\n key: 'link',\n text: '107 million',\n link: 'https://investor.coursera.com/news/news-details/2022/Coursera-Reports-Second-Quarter-2022-Financial-Results/default.aspx',\n },\n {\n key: 'text',\n text: 'registered learners.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Course creation:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Users can make and scale an online course or learning program, make content private, and customize classes for particular students.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Collaboration:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Students can work with peers and get feedback from experts.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Languages:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Users can access classes with multiple languages on videos, readings, and assignments.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Integrations:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'The platform could be integrated with university systems and other learning programs.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Certificates:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Learners can share and post certificates to LinkedIn upon completion of specific courses.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Affiliate:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Individuals looking to sell classes for a commission can join an affiliate program.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '5. Khan Academy — a set of online tools that help educate students',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img6,\n alt: 'Coursera screen',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/coursera-learn-career-skills/id736535961',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=org.khanacademy.android&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/khan-academy/id469863705',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Khan Academy is an educational app that includes a set of online tools that help educate students. As of 2022, the platform counts more than',\n },\n {\n key: 'link',\n text: '135 million people',\n link: 'https://www.khanacademy.org/donors',\n },\n {\n key: 'text',\n text: 'from 190 countries.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Personalized learning:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Students can practice at their own pace.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Trusted content:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Created by experts, Khan Academy’s library covers a wide spectrum of academic subjects.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Tools to empower teachers:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Instructors can identify gaps in their students’ understanding and tailor their lessons.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '6. Photomath — digital math tutor',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img7,\n alt: 'Photomath screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/photomath/id919087726',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=com.microblink.photomath&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/photomath/id919087726',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Photomath leverages AI technology to recognize math problems and produce sequential explanations. Its an augmented optical character recognition system is designed for use with a smartphone’s camera to scan and recognize mathematical equations. Photomath breaks down multiple solving methods along with animated instructions so that you don’t mug up the answers but actually understand the principles. As of 2022, the app has over',\n },\n {\n key: 'link',\n text: '300 million',\n link: 'https://photomath.com/',\n },\n {\n key: 'text',\n text: 'downloads.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Camera mode:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'You can use the camera on your phone to take a photo of any handwritten and print-based math problem. Photomath solves equations almost instantly and provides step-by-step explanations.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Calculator mode:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Photomath’s scientific calculator lets you input or edit math problems.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '7. SoloLearn — mobile-first coding education app',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img8,\n alt: 'SoloLearn screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/sololearn-learn-to-code/id1210079064',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=com.sololearn&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/sololearn-learn-to-code/id1210079064',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Sololearn is a free app that allows users to learn a variety of programming languages, including JavaScript, Java, C++, Python, HTML, and SQL. Sololearn has over',\n },\n {\n key: 'link',\n text: '21 million',\n link: 'https://techcrunch.com/2021/07/21/sololearn-raises-24m-for-its-bite-sized-duolingo-like-mobile-first-coding-education-app/',\n },\n {\n key: 'text',\n text: 'users across',\n },\n {\n key: 'link',\n text: '25 curriculum categories',\n link: 'https://www.sololearn.com/learning',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Community:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Students can share their code or questions and get instant feedback.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Progress statistics:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Learner stats depend on your progress in the tutorial courses.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Daily goals:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'By setting specific learning goals, learners can master a programming course over time; the bite-sized lesson format allows learning at your own pace.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Virtual currency:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Students can earn bits to unlock more practice opportunities.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '8. WizIQ — a cloud-based learning delivery platform',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img9,\n alt: 'WizIQ screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/wiziq-virtual-classroom/id540018386',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=air.com.wiziq.ipadvc&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/wiziq-virtual-classroom/id540018386',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'WizIQ is a cloud-based learning management solution (LMS) and a virtual classroom that lets tutors, institutes, and organizations deliver live online classes and launch self-paced courses. It has over',\n },\n {\n key: 'link',\n text: '68 million',\n link: 'https://dergipark.org.tr/en/download/article-file/971457#:~:text=E%2Dlearning%20Platforms%20(WIZIQ%20%26%20MOODLE)&text=It%20is%20the%20most%20widely,users%20world%2Dwide%20(MOODLE.',\n },\n {\n key: 'text',\n text: 'users worldwide.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Course creation:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Users can launch their own custom-branded training programs with features such as virtual classrooms, tests, and assessment builders.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Track students’ performance:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'You can track student performance over time to identify skills they need to improve.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Set milestones for learners:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'You can set milestones for students to reach as they progress through the course.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Analytics dashboards:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'These tools provide information on student progress and the performance of particular training content.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '9. BenchPrep — test preparation platform',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img10,\n alt: 'BenchPrep screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/benchprep-companion/id1036399853',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=com.benchprep.companionapp&hl=en&gl=US',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/benchprep-companion/id1036399853',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'BenchPrep provides cloud-based study guides for standardized tests, professional certifications, and K-12 classroom learning. More than',\n },\n {\n key: 'link',\n text: '8 million',\n link: 'https://www.linkedin.com/company/benchprep#:~:text=More%20than%208%20million%20learners,attain%20academic%20and%20professional%20success.',\n },\n {\n key: 'text',\n text: 'learners have used BenchPrep to attain academic and professional success.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Course builder:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'This tool allows users to create custom courses.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Learning paths:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Users can create sequences of classes that must be taken in a specific order.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Communication & notifications:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'It offers functionality to communicate and send notifications to users.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Gamification:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'BenchPrep motivates users by tracking points, achievements, and badges.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Certifications:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'The platform provides custom certifications to distribute after course completion.',\n },\n ],\n },\n ],\n },\n\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: '10. Yousician — music learning app',\n extraTextStyles: { fontWeight: 700 },\n },\n ],\n },\n {\n key: 'image',\n imageData: {\n image: img11,\n alt: 'Yousician screenshot',\n description: 'Image source',\n descriptionLink: 'https://apps.apple.com/us/app/yousician/id959883039',\n },\n },\n {\n key: 'list',\n listData: [\n {\n itemData: [\n {\n key: 'link',\n text: 'Android',\n path: 'https://play.google.com/store/apps/details?id=com.yousician.yousician&hl=en',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'link',\n text: 'iOS',\n path: 'https://apps.apple.com/us/app/yousician/id959883039',\n },\n ],\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'Yousician is the largest music educator in the world with over',\n },\n {\n key: 'link',\n text: '25 million',\n link: 'https://www.crunchbase.com/organization/yousician',\n },\n {\n key: 'text',\n text: 'users. This engaging app helps users learn the guitar, piano, bass, ukulele, or singing. You can follow lesson plans created by real music teachers, learn fast with interactive tutorials, and stay motivated with goals and progress tracking. When you’re ready for your lesson, you turn on the app, select your instrument, and choose a lesson or song to play. The app will play the background music, display the song tutorial, and listen to you play to give you immediate feedback about how you’re doing.',\n },\n ],\n },\n {\n key: 'list',\n listTitle: 'Main features',\n listData: [\n {\n itemData: [\n {\n key: 'text',\n text: 'Immediate feedback:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'Users can play along with the app and get instant feedback on precision and timing.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Gamification:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'The service combines the addictive features of computer games with guitar exercises to make the learning process easy, fun, and motivating.',\n },\n ],\n },\n {\n itemData: [\n {\n key: 'text',\n text: 'Tons of popular songs:',\n extraTextStyles: { fontWeight: 700 },\n },\n {\n key: 'text',\n text: 'You can dive into the song library and learn to play your favorite songs.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: 'Ways eLearning mobile apps are revolutionizing the education industry',\n id: 'Ways eLearning mobile apps are revolutionizing the education industry',\n content: [\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'link',\n text: '71% of millennials',\n link: 'https://markinstyle.co.uk/mobile-learning-statistics/',\n },\n {\n key: 'text',\n text: 'prefer eLearning more than other forms of studying. But why are mobile apps so popular in education? Let’s take a look at some of the most common ways that eLearning apps are',\n },\n {\n key: 'link',\n text: 'transforming the industry',\n link: 'https://medium.com/@Aleksandr_Duchenchuk/7-practical-ways-to-use-artificial-intelligence-in-education-789e26823d8c',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n ],\n },\n {\n key: 'listWithTitleAndDescriptionInNewLine',\n listData: [\n {\n title: 'Enhanced learning experience',\n itemData: [\n {\n key: 'text',\n text: 'Students have access to a wide variety of learning tools including videos, simulations, games, and more — all of which help them learn faster and better than ever before.',\n },\n ],\n },\n {\n title: 'Learning at your own pace',\n itemData: [\n {\n key: 'text',\n text: 'The ability to learn at your own pace without getting distracted is one of the biggest benefits of using eLearning mobile apps.',\n },\n ],\n },\n {\n title: 'Access to knowledge anytime/anywhere',\n itemData: [\n {\n key: 'text',\n text: 'Students can use their phones or tablets while commuting or waiting in line at the bank, making it much easier for them to study on the go.',\n },\n ],\n },\n {\n title: 'Cost-effectiveness and scalability',\n itemData: [\n {\n key: 'text',\n text: 'Mobile apps also allow educators to scale their learning programs easily — which means they can reach more people than ever before.',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n title: '',\n id: '',\n content: [\n {\n key: 'p',\n text: '',\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'We’ve created several successful eLearning apps for our clients, including',\n },\n {\n key: 'link',\n text: 'SmartExpert',\n link: 'https://www.linkedin.com/company/smartexpert/?roistat_visit=248274',\n },\n {\n key: 'text',\n text: 'and',\n },\n {\n key: 'link',\n text: 'Addictive Learning',\n link: 'https://www.linkedin.com/company/addictive-learning/',\n withoutSpace: true,\n },\n {\n key: 'text',\n text: '.',\n },\n {\n key: 'text',\n text: 'Our team is here to help you build your eLearning app in a way that’s efficient and effective for your business.',\n },\n ],\n },\n {\n key: 'textWithLink',\n textWithLink: [\n {\n key: 'text',\n text: 'If you have any questions about eLearning or its implementation, you can reach out to us at service@moai.team or schedule a free consultation via',\n },\n {\n key: 'link',\n text: 'https://calendly.com/moaiteam/call-with-moai-team',\n link: 'https://calendly.com/moaiteam/call-with-moai-team',\n },\n ],\n },\n ],\n },\n ],\n};\n","import styled from 'styled-components';\n\nexport const PostStyles = styled.div`\n .banner {\n .content {\n display: flex;\n flex-direction: column;\n\n padding: 45px 0;\n \n @media (min-width: 769px) {\n padding: 111px 0;\n }\n\n .bannerTitle {\n margin-bottom: 16px;\n }\n\n .bannerDescription {\n margin-bottom: 40px;\n width: 100%;\n }\n }\n }\n \n .emptyBlock {\n padding-bottom: 48px;\n \n @media (min-width: 769px) {\n padding-bottom: 100px;\n }\n }\n\n .sloganWrapper {\n background: #FDFDFD;\n }\n \n .slogan {\n display: grid;\n place-items: center;\n padding: 56px 0;\n \n text-align: center;\n \n h2 {\n margin-bottom: 12px;\n }\n \n .textContainer {\n margin-bottom: 24px;\n }\n }\n`;\n","import React from 'react';\nimport { PostStyles } from './PostStyles';\nimport Banner from '../../components/banner/Banner';\n\nimport LinksPath from '../../components/linksPath/LinksPath';\nimport PostList from '../../components/postList/PostList';\nimport { IPost } from '../../entities/IPost';\nimport FAQ from '../../components/FAQ/FAQ';\n\ninterface Props {\n pathArr: {name: string, path: string}[],\n postData: IPost,\n}\n\nfunction Post({\n postData, pathArr,\n}: Props) {\n return (\n \n \n\n \n\n \n\n {postData.faqData ? (\n \n ) : (\n
    \n )}\n\n
    \n
    \n
    \n
    \n

    Do you have any questions about the eLearning software development process?

    \n

    We’re delighted to offer a free, no-obligation consultation to answer all your questions and give honest advice.

    \n
    \n\n Schedule a free 30-minute consultation\n\n
    \n
    \n
    \n \n );\n}\n\nexport default Post;\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\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\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 return _extends.apply(this, arguments);\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\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","/**\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\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","/**\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 TAG_NAMES[name]);\n\nexport const 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\nexport const HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nexport const HELMET_ATTRIBUTE = 'data-rh';\n","import { TAG_NAMES, TAG_PROPERTIES, ATTRIBUTE_NAMES } from './constants';\n\nconst 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 PRIORITIZE_SEO_TAGS: 'prioritizeSeoTags',\n};\n\nconst getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nconst getTitleFromPropsList = propsList => {\n let innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join('');\n }\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nconst getOnChangeClientState = propsList =>\n getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {});\n\nconst getAttributesFromPropsList = (tagType, propsList) =>\n propsList\n .filter(props => typeof props[tagType] !== 'undefined')\n .map(props => props[tagType])\n .reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\n\nconst getBaseTagFromPropsList = (primaryAttributes, propsList) =>\n propsList\n .filter(props => typeof props[TAG_NAMES.BASE] !== 'undefined')\n .map(props => props[TAG_NAMES.BASE])\n .reverse()\n .reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n tag[lowerCaseAttributeKey]\n ) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n\n// eslint-disable-next-line no-console\nconst warn = msg => console && typeof console.warn === 'function' && console.warn(msg);\n\nconst getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n const approvedSeenTags = {};\n\n return propsList\n .filter(props => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== 'undefined') {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[\n tagName\n ]}\"`\n );\n }\n return false;\n })\n .map(props => props[tagName])\n .reverse()\n .reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n\n instanceTags\n .filter(tag => {\n let primaryAttributeKey;\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n !(\n primaryAttributeKey === TAG_PROPERTIES.REL &&\n tag[primaryAttributeKey].toLowerCase() === 'canonical'\n ) &&\n !(\n lowerCaseAttributeKey === TAG_PROPERTIES.REL &&\n tag[lowerCaseAttributeKey].toLowerCase() === 'stylesheet'\n )\n ) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (\n primaryAttributes.indexOf(attributeKey) !== -1 &&\n (attributeKey === TAG_PROPERTIES.INNER_HTML ||\n attributeKey === TAG_PROPERTIES.CSS_TEXT ||\n attributeKey === TAG_PROPERTIES.ITEM_PROP)\n ) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n const 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 })\n .reverse()\n .forEach(tag => approvedTags.push(tag));\n\n // Update seen tags with tags from this instance\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey],\n };\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, [])\n .reverse();\n};\n\nconst getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\n\nconst reducePropsToState = propsList => ({\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF], 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(\n TAG_NAMES.LINK,\n [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n TAG_NAMES.META,\n [\n TAG_PROPERTIES.NAME,\n TAG_PROPERTIES.CHARSET,\n TAG_PROPERTIES.HTTPEQUIV,\n TAG_PROPERTIES.PROPERTY,\n TAG_PROPERTIES.ITEM_PROP,\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n TAG_NAMES.SCRIPT,\n [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML],\n propsList\n ),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS),\n});\n\nexport const flattenArray = possibleArray =>\n Array.isArray(possibleArray) ? possibleArray.join('') : possibleArray;\n\nexport { reducePropsToState };\n\nconst checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n // e.g. if rel exists in the list of allowed props [amphtml, alternate, etc]\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\n\nexport const prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList };\n};\n\nexport const without = (obj, key) => {\n return {\n ...obj,\n [key]: undefined,\n };\n};\n","import React from 'react';\nimport {\n HELMET_ATTRIBUTE,\n TAG_NAMES,\n REACT_TAG_MAP,\n TAG_PROPERTIES,\n ATTRIBUTE_NAMES,\n SEO_PRIORITY_TAGS,\n} from './constants';\nimport { flattenArray, prioritizer } from './utils';\n\nconst SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nconst encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n\n return String(str)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n};\n\nconst generateElementAttributesAsString = attributes =>\n Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== 'undefined' ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n }, '');\n\nconst generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString\n ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`\n : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`;\n};\n\nconst generateTagsAsString = (type, tags, encode) =>\n tags.reduce((str, tag) => {\n const attributeHtml = Object.keys(tag)\n .filter(\n attribute =>\n !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT)\n )\n .reduce((string, attribute) => {\n const attr =\n typeof tag[attribute] === 'undefined'\n ? attribute\n : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, '');\n\n const tagContent = tag.innerHTML || tag.cssText || '';\n\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${\n isSelfClosing ? `/>` : `>${tagContent}`\n }`;\n }, '');\n\nconst convertElementAttributesToReactProps = (attributes, initProps = {}) =>\n Object.keys(attributes).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n\nconst generateTitleAsReactComponent = (type, title, attributes) => {\n // assigning into an array to define toString function on it\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true,\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nconst generateTagsAsReactComponent = (type, tags) =>\n tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true,\n };\n\n Object.keys(tag).forEach(attribute => {\n const mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (\n mappedAttribute === TAG_PROPERTIES.INNER_HTML ||\n mappedAttribute === TAG_PROPERTIES.CSS_TEXT\n ) {\n const 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\nconst getMethodsForTag = (type, tags, encode) => {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: () =>\n generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode),\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags),\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode),\n };\n }\n};\n\nconst getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n\n // need to have toComponent() and toString()\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(TAG_NAMES.META, meta.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.LINK, link.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.SCRIPT, script.priority),\n ],\n toString: () =>\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(TAG_NAMES.META, meta.priority, encode)} ${getMethodsForTag(\n TAG_NAMES.LINK,\n link.priority,\n encode\n )} ${getMethodsForTag(TAG_NAMES.SCRIPT, script.priority, encode)}`,\n };\n\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default,\n };\n};\n\nconst mapStateOnServer = props => {\n const {\n baseTag,\n bodyAttributes,\n encode,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = '',\n titleAttributes,\n prioritizeSeoTags,\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {},\n toString: () => '',\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\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, titleAttributes }, encode),\n };\n};\n\nexport default mapStateOnServer;\n","import mapStateOnServer from './server';\n\nconst instances = [];\n\nexport function clearInstances() {\n instances.length = 0;\n}\n\nexport default class HelmetData {\n instances = [];\n\n value = {\n setHelmet: serverState => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => (this.canUseDOM ? instances : this.instances),\n add: instance => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: instance => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n },\n },\n };\n\n constructor(context, canUseDOM = typeof document !== 'undefined') {\n this.context = context;\n this.canUseDOM = canUseDOM;\n\n if (!canUseDOM) {\n context.helmet = 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}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport HelmetData from './HelmetData';\n\nconst defaultValue = {};\n\nexport const Context = React.createContext(defaultValue);\n\nexport const providerShape = PropTypes.shape({\n setHelmet: PropTypes.func,\n helmetInstances: PropTypes.shape({\n get: PropTypes.func,\n add: PropTypes.func,\n remove: PropTypes.func,\n }),\n});\n\nconst canUseDOM = typeof document !== 'undefined';\n\nexport default class Provider extends Component {\n static canUseDOM = canUseDOM;\n\n static propTypes = {\n context: PropTypes.shape({\n helmet: PropTypes.shape(),\n }),\n children: PropTypes.node.isRequired,\n };\n\n static defaultProps = {\n context: {},\n };\n\n static displayName = 'HelmetProvider';\n\n constructor(props) {\n super(props);\n\n this.helmetData = new HelmetData(this.props.context, Provider.canUseDOM);\n }\n\n render() {\n return {this.props.children};\n }\n}\n","import { HELMET_ATTRIBUTE, TAG_NAMES, TAG_PROPERTIES } from './constants';\nimport { flattenArray } from './utils';\n\nconst updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n\n if (tags && tags.length) {\n tags.forEach(tag => {\n const newElement = document.createElement(type);\n\n // eslint-disable-next-line\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, 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 const 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 (\n oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })\n ) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(tag => tag.parentNode.removeChild(tag));\n newTags.forEach(tag => headElement.appendChild(tag));\n\n return {\n oldTags,\n newTags,\n };\n};\n\nconst updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(',') : [];\n const attributesToRemove = [].concat(helmetAttributes);\n const attributeKeys = Object.keys(attributes);\n\n for (let i = 0; i < attributeKeys.length; i += 1) {\n const attribute = attributeKeys[i];\n const 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 const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\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\nconst 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\nconst commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes,\n } = newState;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n const 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 const addedTags = {};\n const removedTags = {};\n\n Object.keys(tagUpdates).forEach(tagType => {\n const { newTags, oldTags } = tagUpdates[tagType];\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n if (cb) {\n cb();\n }\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\n// eslint-disable-next-line\nlet _helmetCallback = null;\n\nconst handleStateChangeOnClient = newState => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nexport default handleStateChangeOnClient;\n","import { Component } from 'react';\nimport shallowEqual from 'shallowequal';\nimport handleStateChangeOnClient from './client';\nimport mapStateOnServer from './server';\nimport { reducePropsToState } from './utils';\nimport Provider, { providerShape } from './Provider';\n\nexport default class Dispatcher extends Component {\n static propTypes = {\n context: providerShape.isRequired,\n };\n\n static displayName = 'HelmetDispatcher';\n\n rendered = false;\n\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n\n componentDidUpdate() {\n this.emitChange();\n }\n\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map(instance => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (Provider.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n serverState = mapStateOnServer(state);\n }\n setHelmet(serverState);\n }\n\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n\n this.rendered = true;\n\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n\n render() {\n this.init();\n\n return null;\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport fastCompare from 'react-fast-compare';\nimport invariant from 'invariant';\nimport { Context } from './Provider';\nimport HelmetData from './HelmetData';\nimport Dispatcher from './Dispatcher';\nimport { without } from './utils';\nimport { TAG_NAMES, VALID_TAG_NAMES, HTML_TAG_MAP } from './constants';\n\nexport { default as HelmetData } from './HelmetData';\nexport { default as HelmetProvider } from './Provider';\n\n/* eslint-disable class-methods-use-this */\nexport class Helmet extends Component {\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 * @param {Boolean} prioritizeSeoTags: false\n */\n /* eslint-disable react/forbid-prop-types, react/require-default-props */\n static 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 prioritizeSeoTags: PropTypes.bool,\n helmetData: PropTypes.object,\n };\n /* eslint-enable react/prop-types, react/forbid-prop-types, react/require-default-props */\n\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false,\n };\n\n static displayName = 'Helmet';\n\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, 'helmetData'), without(nextProps, 'helmetData'));\n }\n\n 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 default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n\n flattenArrayTypeChildren({ child, arrayTypeChildren, newChildProps, nestedChildren }) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...(arrayTypeChildren[child.type] || []),\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren),\n },\n ],\n };\n }\n\n mapObjectTypeChildren({ child, newProps, newChildProps, nestedChildren }) {\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.BODY:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.HTML:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps },\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps },\n };\n }\n }\n\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n\n Object.keys(arrayTypeChildren).forEach(arrayChildName => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName],\n };\n });\n\n return newFlattenedProps;\n }\n\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some(name => child.type === name),\n typeof child.type === 'function'\n ? `You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.`\n : `Only elements types ${VALID_TAG_NAMES.join(\n ', '\n )} are allowed. Helmet does not support rendering <${\n child.type\n }> elements. Refer to our API for more information.`\n );\n\n invariant(\n !nestedChildren ||\n typeof nestedChildren === 'string' ||\n (Array.isArray(nestedChildren) &&\n !nestedChildren.some(nestedChild => typeof nestedChild !== 'string')),\n `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 return true;\n }\n\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n\n React.Children.forEach(children, child => {\n if (!child || !child.props) {\n return;\n }\n\n const { children: nestedChildren, ...childProps } = child.props;\n // convert React props to HTML attributes\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n\n let { type } = child;\n if (typeof type === 'symbol') {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n\n switch (type) {\n case TAG_NAMES.FRAGMENT:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n\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 = this.flattenArrayTypeChildren({\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren,\n });\n break;\n\n default:\n newProps = this.mapObjectTypeChildren({\n child,\n newProps,\n newChildProps,\n nestedChildren,\n });\n break;\n }\n });\n\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n if (helmetData && !(helmetData instanceof HelmetData)) {\n helmetData = new HelmetData(helmetData.context, helmetData.instances);\n }\n\n return helmetData ? (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n ) : (\n \n {(\n context // eslint-disable-next-line react/jsx-props-no-spreading\n ) => }\n \n );\n }\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` 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","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\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 * 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 { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, 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// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\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_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// 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 });\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 });\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\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\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 { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\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 }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\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 location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\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 ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\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 = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\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 }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n 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.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\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 let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\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\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\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 ParamParseSegment extends string\n ? ParamParseSegment\n : string;\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 route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\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: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | 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(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\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 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({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\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 branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\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 params: matchedParams,\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 * 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/docs/en/v6/api#matchpath\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 {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\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 * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\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\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\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 let from: string;\n if (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 value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\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\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 let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\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 NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __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)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar unitConverter_1 = require(\"./helpers/unitConverter\");\nvar animation_1 = require(\"./helpers/animation\");\nvar moon = (0, animation_1.createAnimation)(\"MoonLoader\", \"100% {transform: rotate(360deg)}\", \"moon\");\nfunction MoonLoader(_a) {\n var _b = _a.loading, loading = _b === void 0 ? true : _b, _c = _a.color, color = _c === void 0 ? \"#000000\" : _c, _d = _a.speedMultiplier, speedMultiplier = _d === void 0 ? 1 : _d, _e = _a.cssOverride, cssOverride = _e === void 0 ? {} : _e, _f = _a.size, size = _f === void 0 ? 60 : _f, additionalprops = __rest(_a, [\"loading\", \"color\", \"speedMultiplier\", \"cssOverride\", \"size\"]);\n var _g = (0, unitConverter_1.parseLengthAndUnit)(size), value = _g.value, unit = _g.unit;\n var moonSize = value / 7;\n var wrapper = __assign({ display: \"inherit\", position: \"relative\", width: \"\".concat(\"\".concat(value + moonSize * 2).concat(unit)), height: \"\".concat(\"\".concat(value + moonSize * 2).concat(unit)), animation: \"\".concat(moon, \" \").concat(0.6 / speedMultiplier, \"s 0s infinite linear\"), animationFillMode: \"forwards\" }, cssOverride);\n var ballStyle = function (size) {\n return {\n width: (0, unitConverter_1.cssValue)(size),\n height: (0, unitConverter_1.cssValue)(size),\n borderRadius: \"100%\",\n };\n };\n var ball = __assign(__assign({}, ballStyle(moonSize)), { backgroundColor: \"\".concat(color), opacity: \"0.8\", position: \"absolute\", top: \"\".concat(\"\".concat(value / 2 - moonSize / 2).concat(unit)), animation: \"\".concat(moon, \" \").concat(0.6 / speedMultiplier, \"s 0s infinite linear\"), animationFillMode: \"forwards\" });\n var circle = __assign(__assign({}, ballStyle(value)), { border: \"\".concat(moonSize, \"px solid \").concat(color), opacity: \"0.1\", boxSizing: \"content-box\", position: \"absolute\" });\n if (!loading) {\n return null;\n }\n return (React.createElement(\"span\", __assign({ style: wrapper }, additionalprops),\n React.createElement(\"span\", { style: ball }),\n React.createElement(\"span\", { style: circle })));\n}\nexports.default = MoonLoader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAnimation = void 0;\nvar createAnimation = function (loaderName, frames, suffix) {\n var animationName = \"react-spinners-\".concat(loaderName, \"-\").concat(suffix);\n if (typeof window == \"undefined\" || !window.document) {\n return animationName;\n }\n var styleEl = document.createElement(\"style\");\n document.head.appendChild(styleEl);\n var styleSheet = styleEl.sheet;\n var keyFrames = \"\\n @keyframes \".concat(animationName, \" {\\n \").concat(frames, \"\\n }\\n \");\n if (styleSheet) {\n styleSheet.insertRule(keyFrames, 0);\n }\n return animationName;\n};\nexports.createAnimation = createAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssValue = exports.parseLengthAndUnit = void 0;\nvar cssUnit = {\n cm: true,\n mm: true,\n in: true,\n px: true,\n pt: true,\n pc: true,\n em: true,\n ex: true,\n ch: true,\n rem: true,\n vw: true,\n vh: true,\n vmin: true,\n vmax: true,\n \"%\": true,\n};\n/**\n * If size is a number, append px to the value as default unit.\n * If size is a string, validate against list of valid units.\n * If unit is valid, return size as is.\n * If unit is invalid, console warn issue, replace with px as the unit.\n *\n * @param {(number | string)} size\n * @return {LengthObject} LengthObject\n */\nfunction parseLengthAndUnit(size) {\n if (typeof size === \"number\") {\n return {\n value: size,\n unit: \"px\",\n };\n }\n var value;\n var valueString = (size.match(/^[0-9.]*/) || \"\").toString();\n if (valueString.includes(\".\")) {\n value = parseFloat(valueString);\n }\n else {\n value = parseInt(valueString, 10);\n }\n var unit = (size.match(/[^0-9]*$/) || \"\").toString();\n if (cssUnit[unit]) {\n return {\n value: value,\n unit: unit,\n };\n }\n console.warn(\"React Spinners: \".concat(size, \" is not a valid css value. Defaulting to \").concat(value, \"px.\"));\n return {\n value: value,\n unit: \"px\",\n };\n}\nexports.parseLengthAndUnit = parseLengthAndUnit;\n/**\n * Take value as an input and return valid css value\n *\n * @param {(number | string)} value\n * @return {string} valid css value\n */\nfunction cssValue(value) {\n var lengthWithunit = parseLengthAndUnit(value);\n return \"\".concat(lengthWithunit.value).concat(lengthWithunit.unit);\n}\nexports.cssValue = cssValue;\n","import React from 'react'\n\nlet renderErr = 'Renderer Error ☝️'\n\nexport const actions = {\n init: 'init',\n}\n\nexport const defaultRenderer = ({ value = '' }) => value;\nexport const emptyRenderer = () => <> ;\n\nexport const defaultColumn = {\n Cell: defaultRenderer,\n width: 150,\n minWidth: 0,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nfunction mergeProps(...propList) {\n return propList.reduce((props, next) => {\n const { style, className, ...rest } = next\n\n props = {\n ...props,\n ...rest,\n }\n\n if (style) {\n props.style = props.style\n ? { ...(props.style || {}), ...(style || {}) }\n : style\n }\n\n if (className) {\n props.className = props.className\n ? props.className + ' ' + className\n : className\n }\n\n if (props.className === '') {\n delete props.className\n }\n\n return props\n }, {})\n}\n\nfunction handlePropGetter(prevProps, userProps, meta) {\n // Handle a lambda, pass it the previous props\n if (typeof userProps === 'function') {\n return handlePropGetter({}, userProps(prevProps, meta))\n }\n\n // Handle an array, merge each item as separate props\n if (Array.isArray(userProps)) {\n return mergeProps(prevProps, ...userProps)\n }\n\n // Handle an object by default, merge the two objects\n return mergeProps(prevProps, userProps)\n}\n\nexport const makePropGetter = (hooks, meta = {}) => {\n return (userProps = {}) =>\n [...hooks, userProps].reduce(\n (prev, next) =>\n handlePropGetter(prev, next, {\n ...meta,\n userProps,\n }),\n {}\n )\n}\n\nexport const reduceHooks = (hooks, initial, meta = {}, allowUndefined) =>\n hooks.reduce((prev, next) => {\n const nextValue = next(prev, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (!allowUndefined && typeof nextValue === 'undefined') {\n console.info(next)\n throw new Error(\n 'React Table: A reducer hook ☝️ just returned undefined! This is not allowed.'\n )\n }\n }\n return nextValue\n }, initial)\n\nexport const loopHooks = (hooks, context, meta = {}) =>\n hooks.forEach(hook => {\n const nextValue = hook(context, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (typeof nextValue !== 'undefined') {\n console.info(hook, nextValue)\n throw new Error(\n 'React Table: A loop-type hook ☝️ just returned a value! This is not allowed.'\n )\n }\n }\n })\n\nexport function ensurePluginOrder(plugins, befores, pluginName, afters) {\n if (process.env.NODE_ENV !== 'production' && afters) {\n throw new Error(\n `Defining plugins in the \"after\" section of ensurePluginOrder is no longer supported (see plugin ${pluginName})`\n )\n }\n const pluginIndex = plugins.findIndex(\n plugin => plugin.pluginName === pluginName\n )\n\n if (pluginIndex === -1) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`The plugin \"${pluginName}\" was not found in the plugin list!\nThis usually means you need to need to name your plugin hook by setting the 'pluginName' property of the hook function, eg:\n\n ${pluginName}.pluginName = '${pluginName}'\n`)\n }\n }\n\n befores.forEach(before => {\n const beforeIndex = plugins.findIndex(\n plugin => plugin.pluginName === before\n )\n if (beforeIndex > -1 && beforeIndex > pluginIndex) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `React Table: The ${pluginName} plugin hook must be placed after the ${before} plugin hook!`\n )\n }\n }\n })\n}\n\nexport function functionalUpdate(updater, old) {\n return typeof updater === 'function' ? updater(old) : updater\n}\n\nexport function useGetLatest(obj) {\n const ref = React.useRef()\n ref.current = obj\n\n return React.useCallback(() => ref.current, [])\n}\n\n// SSR has issues with useLayoutEffect still, so use useEffect during SSR\nexport const safeUseLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport function useMountedLayoutEffect(fn, deps) {\n const mountedRef = React.useRef(false)\n\n safeUseLayoutEffect(() => {\n if (mountedRef.current) {\n fn()\n }\n mountedRef.current = true\n // eslint-disable-next-line\n }, deps)\n}\n\nexport function useAsyncDebounce(defaultFn, defaultWait = 0) {\n const debounceRef = React.useRef({})\n\n const getDefaultFn = useGetLatest(defaultFn)\n const getDefaultWait = useGetLatest(defaultWait)\n\n return React.useCallback(\n async (...args) => {\n if (!debounceRef.current.promise) {\n debounceRef.current.promise = new Promise((resolve, reject) => {\n debounceRef.current.resolve = resolve\n debounceRef.current.reject = reject\n })\n }\n\n if (debounceRef.current.timeout) {\n clearTimeout(debounceRef.current.timeout)\n }\n\n debounceRef.current.timeout = setTimeout(async () => {\n delete debounceRef.current.timeout\n try {\n debounceRef.current.resolve(await getDefaultFn()(...args))\n } catch (err) {\n debounceRef.current.reject(err)\n } finally {\n delete debounceRef.current.promise\n }\n }, getDefaultWait())\n\n return debounceRef.current.promise\n },\n [getDefaultFn, getDefaultWait]\n )\n}\n\nexport function makeRenderer(instance, column, meta = {}) {\n return (type, userProps = {}) => {\n const Comp = typeof type === 'string' ? column[type] : type\n\n if (typeof Comp === 'undefined') {\n console.info(column)\n throw new Error(renderErr)\n }\n\n return flexRender(Comp, { ...instance, column, ...meta, ...userProps })\n }\n}\n\nexport function flexRender(Comp, props) {\n return isReactComponent(Comp) ? : Comp\n}\n\nfunction isReactComponent(component) {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n","import { defaultColumn, emptyRenderer } from './publicUtils'\n\n// Find the depth of the columns\nexport function findMaxDepth(columns, depth = 0) {\n return columns.reduce((prev, curr) => {\n if (curr.columns) {\n return Math.max(prev, findMaxDepth(curr.columns, depth + 1))\n }\n return depth\n }, 0)\n}\n\n// Build the visible columns, headers and flat column list\nexport function linkColumnStructure(columns, parent, depth = 0) {\n return columns.map(column => {\n column = {\n ...column,\n parent,\n depth,\n }\n\n assignColumnAccessor(column)\n\n if (column.columns) {\n column.columns = linkColumnStructure(column.columns, column, depth + 1)\n }\n return column\n })\n}\n\nexport function flattenColumns(columns) {\n return flattenBy(columns, 'columns')\n}\n\nexport function assignColumnAccessor(column) {\n // First check for string accessor\n let { id, accessor, Header } = column\n\n if (typeof accessor === 'string') {\n id = id || accessor\n const accessorPath = accessor.split('.')\n accessor = row => getBy(row, accessorPath)\n }\n\n if (!id && typeof Header === 'string' && Header) {\n id = Header\n }\n\n if (!id && column.columns) {\n console.error(column)\n throw new Error('A column ID (or unique \"Header\" value) is required!')\n }\n\n if (!id) {\n console.error(column)\n throw new Error('A column ID (or string accessor) is required!')\n }\n\n Object.assign(column, {\n id,\n accessor,\n })\n\n return column\n}\n\nexport function decorateColumn(column, userDefaultColumn) {\n if (!userDefaultColumn) {\n throw new Error()\n }\n Object.assign(column, {\n // Make sure there is a fallback header, just in case\n Header: emptyRenderer,\n Footer: emptyRenderer,\n ...defaultColumn,\n ...userDefaultColumn,\n ...column,\n })\n\n Object.assign(column, {\n originalWidth: column.width,\n })\n\n return column\n}\n\n// Build the header groups from the bottom up\nexport function makeHeaderGroups(\n allColumns,\n defaultColumn,\n additionalHeaderProperties = () => ({})\n) {\n const headerGroups = []\n\n let scanColumns = allColumns\n\n let uid = 0\n const getUID = () => uid++\n\n while (scanColumns.length) {\n // The header group we are creating\n const headerGroup = {\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const parentColumns = []\n\n const hasParents = scanColumns.some(d => d.parent)\n\n // Scan each column for parents\n scanColumns.forEach(column => {\n // What is the latest (last) parent column?\n let latestParentColumn = [...parentColumns].reverse()[0]\n\n let newParent\n\n if (hasParents) {\n // If the column has a parent, add it if necessary\n if (column.parent) {\n newParent = {\n ...column.parent,\n originalId: column.parent.id,\n id: `${column.parent.id}_${getUID()}`,\n headers: [column],\n ...additionalHeaderProperties(column),\n }\n } else {\n // If other columns have parents, we'll need to add a place holder if necessary\n const originalId = `${column.id}_placeholder`\n newParent = decorateColumn(\n {\n originalId,\n id: `${column.id}_placeholder_${getUID()}`,\n placeholderOf: column,\n headers: [column],\n ...additionalHeaderProperties(column),\n },\n defaultColumn\n )\n }\n\n // If the resulting parent columns are the same, just add\n // the column and increment the header span\n if (\n latestParentColumn &&\n latestParentColumn.originalId === newParent.originalId\n ) {\n latestParentColumn.headers.push(column)\n } else {\n parentColumns.push(newParent)\n }\n }\n\n headerGroup.headers.push(column)\n })\n\n headerGroups.push(headerGroup)\n\n // Start scanning the parent columns\n scanColumns = parentColumns\n }\n\n return headerGroups.reverse()\n}\n\nconst pathObjCache = new Map()\n\nexport function getBy(obj, path, def) {\n if (!path) {\n return obj\n }\n const cacheKey = typeof path === 'function' ? path : JSON.stringify(path)\n\n const pathObj =\n pathObjCache.get(cacheKey) ||\n (() => {\n const pathObj = makePathArray(path)\n pathObjCache.set(cacheKey, pathObj)\n return pathObj\n })()\n\n let val\n\n try {\n val = pathObj.reduce((cursor, pathPart) => cursor[pathPart], obj)\n } catch (e) {\n // continue regardless of error\n }\n return typeof val !== 'undefined' ? val : def\n}\n\nexport function getFirstDefined(...args) {\n for (let i = 0; i < args.length; i += 1) {\n if (typeof args[i] !== 'undefined') {\n return args[i]\n }\n }\n}\n\nexport function getElementDimensions(element) {\n const rect = element.getBoundingClientRect()\n const style = window.getComputedStyle(element)\n const margins = {\n left: parseInt(style.marginLeft),\n right: parseInt(style.marginRight),\n }\n const padding = {\n left: parseInt(style.paddingLeft),\n right: parseInt(style.paddingRight),\n }\n return {\n left: Math.ceil(rect.left),\n width: Math.ceil(rect.width),\n outerWidth: Math.ceil(\n rect.width + margins.left + margins.right + padding.left + padding.right\n ),\n marginLeft: margins.left,\n marginRight: margins.right,\n paddingLeft: padding.left,\n paddingRight: padding.right,\n scrollWidth: element.scrollWidth,\n }\n}\n\nexport function isFunction(a) {\n if (typeof a === 'function') {\n return a\n }\n}\n\nexport function flattenBy(arr, key) {\n const flat = []\n\n const recurse = arr => {\n arr.forEach(d => {\n if (!d[key]) {\n flat.push(d)\n } else {\n recurse(d[key])\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\nexport function expandRows(\n rows,\n { manualExpandedKey, expanded, expandSubRows = true }\n) {\n const expandedRows = []\n\n const handleRow = (row, addToExpandedRows = true) => {\n row.isExpanded =\n (row.original && row.original[manualExpandedKey]) || expanded[row.id]\n\n row.canExpand = row.subRows && !!row.subRows.length\n\n if (addToExpandedRows) {\n expandedRows.push(row)\n }\n\n if (row.subRows && row.subRows.length && row.isExpanded) {\n row.subRows.forEach(row => handleRow(row, expandSubRows))\n }\n }\n\n rows.forEach(row => handleRow(row))\n\n return expandedRows\n}\n\nexport function getFilterMethod(filter, userFilterTypes, filterTypes) {\n return (\n isFunction(filter) ||\n userFilterTypes[filter] ||\n filterTypes[filter] ||\n filterTypes.text\n )\n}\n\nexport function shouldAutoRemoveFilter(autoRemove, value, column) {\n return autoRemove ? autoRemove(value, column) : typeof value === 'undefined'\n}\n\nexport function unpreparedAccessWarning() {\n throw new Error(\n 'React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.'\n )\n}\n\nlet passiveSupported = null\nexport function passiveEventSupported() {\n // memoize support to avoid adding multiple test events\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n window.addEventListener('test', null, options)\n window.removeEventListener('test', null, options)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n//\n\nconst reOpenBracket = /\\[/g\nconst reCloseBracket = /\\]/g\n\nfunction makePathArray(obj) {\n return (\n flattenDeep(obj)\n // remove all periods in parts\n .map(d => String(d).replace('.', '_'))\n // join parts using period\n .join('.')\n // replace brackets with periods\n .replace(reOpenBracket, '.')\n .replace(reCloseBracket, '')\n // split it back out on periods\n .split('.')\n )\n}\n\nfunction flattenDeep(arr, newArr = []) {\n if (!Array.isArray(arr)) {\n newArr.push(arr)\n } else {\n for (let i = 0; i < arr.length; i += 1) {\n flattenDeep(arr[i], newArr)\n }\n }\n return newArr\n}\n","const defaultGetTableProps = props => ({\n role: 'table',\n ...props,\n})\n\nconst defaultGetTableBodyProps = props => ({\n role: 'rowgroup',\n ...props,\n})\n\nconst defaultGetHeaderProps = (props, { column }) => ({\n key: `header_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n role: 'columnheader',\n ...props,\n})\n\nconst defaultGetFooterProps = (props, { column }) => ({\n key: `footer_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n ...props,\n})\n\nconst defaultGetHeaderGroupProps = (props, { index }) => ({\n key: `headerGroup_${index}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetFooterGroupProps = (props, { index }) => ({\n key: `footerGroup_${index}`,\n ...props,\n})\n\nconst defaultGetRowProps = (props, { row }) => ({\n key: `row_${row.id}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetCellProps = (props, { cell }) => ({\n key: `cell_${cell.row.id}_${cell.column.id}`,\n role: 'cell',\n ...props,\n})\n\nexport default function makeDefaultPluginHooks() {\n return {\n useOptions: [],\n stateReducers: [],\n useControlledState: [],\n columns: [],\n columnsDeps: [],\n allColumns: [],\n allColumnsDeps: [],\n accessValue: [],\n materializedColumns: [],\n materializedColumnsDeps: [],\n useInstanceAfterData: [],\n visibleColumns: [],\n visibleColumnsDeps: [],\n headerGroups: [],\n headerGroupsDeps: [],\n useInstanceBeforeDimensions: [],\n useInstance: [],\n prepareRow: [],\n getTableProps: [defaultGetTableProps],\n getTableBodyProps: [defaultGetTableBodyProps],\n getHeaderGroupProps: [defaultGetHeaderGroupProps],\n getFooterGroupProps: [defaultGetFooterGroupProps],\n getHeaderProps: [defaultGetHeaderProps],\n getFooterProps: [defaultGetFooterProps],\n getRowProps: [defaultGetRowProps],\n getCellProps: [defaultGetCellProps],\n useFinalInstance: [],\n }\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useGetLatest,\n makePropGetter,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nactions.resetHiddenColumns = 'resetHiddenColumns'\nactions.toggleHideColumn = 'toggleHideColumn'\nactions.setHiddenColumns = 'setHiddenColumns'\nactions.toggleHideAllColumns = 'toggleHideAllColumns'\n\nexport const useColumnVisibility = hooks => {\n hooks.getToggleHiddenProps = [defaultGetToggleHiddenProps]\n hooks.getToggleHideAllColumnsProps = [defaultGetToggleHideAllColumnsProps]\n\n hooks.stateReducers.push(reducer)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n hooks.headerGroupsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.hiddenColumns,\n ])\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnVisibility.pluginName = 'useColumnVisibility'\n\nconst defaultGetToggleHiddenProps = (props, { column }) => [\n props,\n {\n onChange: e => {\n column.toggleHidden(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: column.isVisible,\n title: 'Toggle Column Visible',\n },\n]\n\nconst defaultGetToggleHideAllColumnsProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleHideAllColumns(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: !instance.allColumnsHidden && !instance.state.hiddenColumns.length,\n title: 'Toggle All Columns Hidden',\n indeterminate:\n !instance.allColumnsHidden && instance.state.hiddenColumns.length,\n },\n]\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n hiddenColumns: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetHiddenColumns) {\n return {\n ...state,\n hiddenColumns: instance.initialState.hiddenColumns || [],\n }\n }\n\n if (action.type === actions.toggleHideColumn) {\n const should =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.includes(action.columnId)\n\n const hiddenColumns = should\n ? [...state.hiddenColumns, action.columnId]\n : state.hiddenColumns.filter(d => d !== action.columnId)\n\n return {\n ...state,\n hiddenColumns,\n }\n }\n\n if (action.type === actions.setHiddenColumns) {\n return {\n ...state,\n hiddenColumns: functionalUpdate(action.value, state.hiddenColumns),\n }\n }\n\n if (action.type === actions.toggleHideAllColumns) {\n const shouldAll =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.length\n\n return {\n ...state,\n hiddenColumns: shouldAll ? instance.allColumns.map(d => d.id) : [],\n }\n }\n}\n\nfunction useInstanceBeforeDimensions(instance) {\n const {\n headers,\n state: { hiddenColumns },\n } = instance\n\n const isMountedRef = React.useRef(false)\n\n if (!isMountedRef.current) {\n }\n\n const handleColumn = (column, parentVisible) => {\n column.isVisible = parentVisible && !hiddenColumns.includes(column.id)\n\n let totalVisibleHeaderCount = 0\n\n if (column.headers && column.headers.length) {\n column.headers.forEach(\n subColumn =>\n (totalVisibleHeaderCount += handleColumn(subColumn, column.isVisible))\n )\n } else {\n totalVisibleHeaderCount = column.isVisible ? 1 : 0\n }\n\n column.totalVisibleHeaderCount = totalVisibleHeaderCount\n\n return totalVisibleHeaderCount\n }\n\n let totalVisibleHeaderCount = 0\n\n headers.forEach(\n subHeader => (totalVisibleHeaderCount += handleColumn(subHeader, true))\n )\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n flatHeaders,\n dispatch,\n allColumns,\n getHooks,\n state: { hiddenColumns },\n autoResetHiddenColumns = true,\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n const allColumnsHidden = allColumns.length === hiddenColumns.length\n\n const toggleHideColumn = React.useCallback(\n (columnId, value) =>\n dispatch({ type: actions.toggleHideColumn, columnId, value }),\n [dispatch]\n )\n\n const setHiddenColumns = React.useCallback(\n value => dispatch({ type: actions.setHiddenColumns, value }),\n [dispatch]\n )\n\n const toggleHideAllColumns = React.useCallback(\n value => dispatch({ type: actions.toggleHideAllColumns, value }),\n [dispatch]\n )\n\n const getToggleHideAllColumnsProps = makePropGetter(\n getHooks().getToggleHideAllColumnsProps,\n { instance: getInstance() }\n )\n\n flatHeaders.forEach(column => {\n column.toggleHidden = value => {\n dispatch({\n type: actions.toggleHideColumn,\n columnId: column.id,\n value,\n })\n }\n\n column.getToggleHiddenProps = makePropGetter(\n getHooks().getToggleHiddenProps,\n {\n instance: getInstance(),\n column,\n }\n )\n })\n\n const getAutoResetHiddenColumns = useGetLatest(autoResetHiddenColumns)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetHiddenColumns()) {\n dispatch({ type: actions.resetHiddenColumns })\n }\n }, [dispatch, columns])\n\n Object.assign(instance, {\n allColumnsHidden,\n toggleHideColumn,\n setHiddenColumns,\n toggleHideAllColumns,\n getToggleHideAllColumnsProps,\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n linkColumnStructure,\n flattenColumns,\n assignColumnAccessor,\n unpreparedAccessWarning,\n makeHeaderGroups,\n decorateColumn,\n} from '../utils'\n\nimport {\n useGetLatest,\n reduceHooks,\n actions,\n loopHooks,\n makePropGetter,\n makeRenderer,\n} from '../publicUtils'\n\nimport makeDefaultPluginHooks from '../makeDefaultPluginHooks'\n\nimport { useColumnVisibility } from './useColumnVisibility'\n\nconst defaultInitialState = {}\nconst defaultColumnInstance = {}\nconst defaultReducer = (state, action, prevState) => state\nconst defaultGetSubRows = (row, index) => row.subRows || []\nconst defaultGetRowId = (row, index, parent) =>\n `${parent ? [parent.id, index].join('.') : index}`\nconst defaultUseControlledState = d => d\n\nfunction applyDefaults(props) {\n const {\n initialState = defaultInitialState,\n defaultColumn = defaultColumnInstance,\n getSubRows = defaultGetSubRows,\n getRowId = defaultGetRowId,\n stateReducer = defaultReducer,\n useControlledState = defaultUseControlledState,\n ...rest\n } = props\n\n return {\n ...rest,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n }\n}\n\nexport const useTable = (props, ...plugins) => {\n // Apply default props\n props = applyDefaults(props)\n\n // Add core plugins\n plugins = [useColumnVisibility, ...plugins]\n\n // Create the table instance\n let instanceRef = React.useRef({})\n\n // Create a getter for the instance (helps avoid a lot of potential memory leaks)\n const getInstance = useGetLatest(instanceRef.current)\n\n // Assign the props, plugins and hooks to the instance\n Object.assign(getInstance(), {\n ...props,\n plugins,\n hooks: makeDefaultPluginHooks(),\n })\n\n // Allow plugins to register hooks as early as possible\n plugins.filter(Boolean).forEach(plugin => {\n plugin(getInstance().hooks)\n })\n\n // Consume all hooks and make a getter for them\n const getHooks = useGetLatest(getInstance().hooks)\n getInstance().getHooks = getHooks\n delete getInstance().hooks\n\n // Allow useOptions hooks to modify the options coming into the table\n Object.assign(\n getInstance(),\n reduceHooks(getHooks().useOptions, applyDefaults(props))\n )\n\n const {\n data,\n columns: userColumns,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n } = getInstance()\n\n // Setup user reducer ref\n const getStateReducer = useGetLatest(stateReducer)\n\n // Build the reducer\n const reducer = React.useCallback(\n (state, action) => {\n // Detect invalid actions\n if (!action.type) {\n console.info({ action })\n throw new Error('Unknown Action 👆')\n }\n\n // Reduce the state from all plugin reducers\n return [\n ...getHooks().stateReducers,\n // Allow the user to add their own state reducer(s)\n ...(Array.isArray(getStateReducer())\n ? getStateReducer()\n : [getStateReducer()]),\n ].reduce(\n (s, handler) => handler(s, action, state, getInstance()) || s,\n state\n )\n },\n [getHooks, getStateReducer, getInstance]\n )\n\n // Start the reducer\n const [reducerState, dispatch] = React.useReducer(reducer, undefined, () =>\n reducer(initialState, { type: actions.init })\n )\n\n // Allow the user to control the final state with hooks\n const state = reduceHooks(\n [...getHooks().useControlledState, useControlledState],\n reducerState,\n { instance: getInstance() }\n )\n\n Object.assign(getInstance(), {\n state,\n dispatch,\n })\n\n // Decorate All the columns\n const columns = React.useMemo(\n () =>\n linkColumnStructure(\n reduceHooks(getHooks().columns, userColumns, {\n instance: getInstance(),\n })\n ),\n [\n getHooks,\n getInstance,\n userColumns,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().columnsDeps, [], { instance: getInstance() }),\n ]\n )\n getInstance().columns = columns\n\n // Get the flat list of all columns and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let allColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().allColumns, flattenColumns(columns), {\n instance: getInstance(),\n }).map(assignColumnAccessor),\n [\n columns,\n getHooks,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().allColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().allColumns = allColumns\n\n // Access the row model using initial columns\n const [rows, flatRows, rowsById] = React.useMemo(() => {\n let rows = []\n let flatRows = []\n const rowsById = {}\n\n const allColumnsQueue = [...allColumns]\n\n while (allColumnsQueue.length) {\n const column = allColumnsQueue.shift()\n accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks: getHooks().accessValue,\n getInstance,\n })\n }\n\n return [rows, flatRows, rowsById]\n }, [allColumns, data, getRowId, getSubRows, getHooks, getInstance])\n\n Object.assign(getInstance(), {\n rows,\n initialRows: [...rows],\n flatRows,\n rowsById,\n // materializedColumns,\n })\n\n loopHooks(getHooks().useInstanceAfterData, getInstance())\n\n // Get the flat list of all columns AFTER the rows\n // have been access, and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let visibleColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().visibleColumns, allColumns, {\n instance: getInstance(),\n }).map(d => decorateColumn(d, defaultColumn)),\n [\n getHooks,\n allColumns,\n getInstance,\n defaultColumn,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().visibleColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n\n // Combine new visible columns with all columns\n allColumns = React.useMemo(() => {\n const columns = [...visibleColumns]\n\n allColumns.forEach(column => {\n if (!columns.find(d => d.id === column.id)) {\n columns.push(column)\n }\n })\n\n return columns\n }, [allColumns, visibleColumns])\n getInstance().allColumns = allColumns\n\n if (process.env.NODE_ENV !== 'production') {\n const duplicateColumns = allColumns.filter((column, i) => {\n return allColumns.findIndex(d => d.id === column.id) !== i\n })\n\n if (duplicateColumns.length) {\n console.info(allColumns)\n throw new Error(\n `Duplicate columns were found with ids: \"${duplicateColumns\n .map(d => d.id)\n .join(', ')}\" in the columns array above`\n )\n }\n }\n\n // Make the headerGroups\n const headerGroups = React.useMemo(\n () =>\n reduceHooks(\n getHooks().headerGroups,\n makeHeaderGroups(visibleColumns, defaultColumn),\n getInstance()\n ),\n [\n getHooks,\n visibleColumns,\n defaultColumn,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().headerGroupsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().headerGroups = headerGroups\n\n // Get the first level of headers\n const headers = React.useMemo(\n () => (headerGroups.length ? headerGroups[0].headers : []),\n [headerGroups]\n )\n getInstance().headers = headers\n\n // Provide a flat header list for utilities\n getInstance().flatHeaders = headerGroups.reduce(\n (all, headerGroup) => [...all, ...headerGroup.headers],\n []\n )\n\n loopHooks(getHooks().useInstanceBeforeDimensions, getInstance())\n\n // Filter columns down to visible ones\n const visibleColumnsDep = visibleColumns\n .filter(d => d.isVisible)\n .map(d => d.id)\n .sort()\n .join('_')\n\n visibleColumns = React.useMemo(\n () => visibleColumns.filter(d => d.isVisible),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [visibleColumns, visibleColumnsDep]\n )\n getInstance().visibleColumns = visibleColumns\n\n // Header Visibility is needed by this point\n const [\n totalColumnsMinWidth,\n totalColumnsWidth,\n totalColumnsMaxWidth,\n ] = calculateHeaderWidths(headers)\n\n getInstance().totalColumnsMinWidth = totalColumnsMinWidth\n getInstance().totalColumnsWidth = totalColumnsWidth\n getInstance().totalColumnsMaxWidth = totalColumnsMaxWidth\n\n loopHooks(getHooks().useInstance, getInstance())\n\n // Each materialized header needs to be assigned a render function and other\n // prop getter properties here.\n ;[...getInstance().flatHeaders, ...getInstance().allColumns].forEach(\n column => {\n // Give columns/headers rendering power\n column.render = makeRenderer(getInstance(), column)\n\n // Give columns/headers a default getHeaderProps\n column.getHeaderProps = makePropGetter(getHooks().getHeaderProps, {\n instance: getInstance(),\n column,\n })\n\n // Give columns/headers a default getFooterProps\n column.getFooterProps = makePropGetter(getHooks().getFooterProps, {\n instance: getInstance(),\n column,\n })\n }\n )\n\n getInstance().headerGroups = React.useMemo(\n () =>\n headerGroups.filter((headerGroup, i) => {\n // Filter out any headers and headerGroups that don't have visible columns\n headerGroup.headers = headerGroup.headers.filter(column => {\n const recurse = headers =>\n headers.filter(column => {\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n }).length\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n })\n\n // Give headerGroups getRowProps\n if (headerGroup.headers.length) {\n headerGroup.getHeaderGroupProps = makePropGetter(\n getHooks().getHeaderGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n headerGroup.getFooterGroupProps = makePropGetter(\n getHooks().getFooterGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n return true\n }\n\n return false\n }),\n [headerGroups, getInstance, getHooks]\n )\n\n getInstance().footerGroups = [...getInstance().headerGroups].reverse()\n\n // The prepareRow function is absolutely necessary and MUST be called on\n // any rows the user wishes to be displayed.\n\n getInstance().prepareRow = React.useCallback(\n row => {\n row.getRowProps = makePropGetter(getHooks().getRowProps, {\n instance: getInstance(),\n row,\n })\n\n // Build the visible cells for each row\n row.allCells = allColumns.map(column => {\n const value = row.values[column.id]\n\n const cell = {\n column,\n row,\n value,\n }\n\n // Give each cell a getCellProps base\n cell.getCellProps = makePropGetter(getHooks().getCellProps, {\n instance: getInstance(),\n cell,\n })\n\n // Give each cell a renderer function (supports multiple renderers)\n cell.render = makeRenderer(getInstance(), column, {\n row,\n cell,\n value,\n })\n\n return cell\n })\n\n row.cells = visibleColumns.map(column =>\n row.allCells.find(cell => cell.column.id === column.id)\n )\n\n // need to apply any row specific hooks (useExpanded requires this)\n loopHooks(getHooks().prepareRow, row, { instance: getInstance() })\n },\n [getHooks, getInstance, allColumns, visibleColumns]\n )\n\n getInstance().getTableProps = makePropGetter(getHooks().getTableProps, {\n instance: getInstance(),\n })\n\n getInstance().getTableBodyProps = makePropGetter(\n getHooks().getTableBodyProps,\n {\n instance: getInstance(),\n }\n )\n\n loopHooks(getHooks().useFinalInstance, getInstance())\n\n return getInstance()\n}\n\nfunction calculateHeaderWidths(headers, left = 0) {\n let sumTotalMinWidth = 0\n let sumTotalWidth = 0\n let sumTotalMaxWidth = 0\n let sumTotalFlexWidth = 0\n\n headers.forEach(header => {\n let { headers: subHeaders } = header\n\n header.totalLeft = left\n\n if (subHeaders && subHeaders.length) {\n const [\n totalMinWidth,\n totalWidth,\n totalMaxWidth,\n totalFlexWidth,\n ] = calculateHeaderWidths(subHeaders, left)\n header.totalMinWidth = totalMinWidth\n header.totalWidth = totalWidth\n header.totalMaxWidth = totalMaxWidth\n header.totalFlexWidth = totalFlexWidth\n } else {\n header.totalMinWidth = header.minWidth\n header.totalWidth = Math.min(\n Math.max(header.minWidth, header.width),\n header.maxWidth\n )\n header.totalMaxWidth = header.maxWidth\n header.totalFlexWidth = header.canResize ? header.totalWidth : 0\n }\n if (header.isVisible) {\n left += header.totalWidth\n sumTotalMinWidth += header.totalMinWidth\n sumTotalWidth += header.totalWidth\n sumTotalMaxWidth += header.totalMaxWidth\n sumTotalFlexWidth += header.totalFlexWidth\n }\n })\n\n return [sumTotalMinWidth, sumTotalWidth, sumTotalMaxWidth, sumTotalFlexWidth]\n}\n\nfunction accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks,\n getInstance,\n}) {\n // Access the row's data column-by-column\n // We do it this way so we can incrementally add materialized\n // columns after the first pass and avoid excessive looping\n const accessRow = (originalRow, rowIndex, depth = 0, parent, parentRows) => {\n // Keep the original reference around\n const original = originalRow\n\n const id = getRowId(originalRow, rowIndex, parent)\n\n let row = rowsById[id]\n\n // If the row hasn't been created, let's make it\n if (!row) {\n row = {\n id,\n original,\n index: rowIndex,\n depth,\n cells: [{}], // This is a dummy cell\n }\n\n // Override common array functions (and the dummy cell's getCellProps function)\n // to show an error if it is accessed without calling prepareRow\n row.cells.map = unpreparedAccessWarning\n row.cells.filter = unpreparedAccessWarning\n row.cells.forEach = unpreparedAccessWarning\n row.cells[0].getCellProps = unpreparedAccessWarning\n\n // Create the cells and values\n row.values = {}\n\n // Push this row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n row.originalSubRows = getSubRows(originalRow, rowIndex)\n\n // Then recursively access them\n if (row.originalSubRows) {\n const subRows = []\n row.originalSubRows.forEach((d, i) =>\n accessRow(d, i, depth + 1, row, subRows)\n )\n // Keep the new subRows array on the row\n row.subRows = subRows\n }\n } else if (row.subRows) {\n // If the row exists, then it's already been accessed\n // Keep recursing, but don't worry about passing the\n // accumlator array (those rows already exist)\n row.originalSubRows.forEach((d, i) => accessRow(d, i, depth + 1, row))\n }\n\n // If the column has an accessor, use it to get a value\n if (column.accessor) {\n row.values[column.id] = column.accessor(\n originalRow,\n rowIndex,\n row,\n parentRows,\n data\n )\n }\n\n // Allow plugins to manipulate the column value\n row.values[column.id] = reduceHooks(\n accessValueHooks,\n row.values[column.id],\n {\n row,\n column,\n instance: getInstance(),\n },\n true\n )\n }\n\n data.forEach((originalRow, rowIndex) =>\n accessRow(originalRow, rowIndex, 0, undefined, rows)\n )\n}\n","import React from 'react'\n\nimport { expandRows } from '../utils'\n\nimport {\n useGetLatest,\n actions,\n useMountedLayoutEffect,\n makePropGetter,\n ensurePluginOrder,\n} from '../publicUtils'\n\n// Actions\nactions.resetExpanded = 'resetExpanded'\nactions.toggleRowExpanded = 'toggleRowExpanded'\nactions.toggleAllRowsExpanded = 'toggleAllRowsExpanded'\n\nexport const useExpanded = hooks => {\n hooks.getToggleAllRowsExpandedProps = [defaultGetToggleAllRowsExpandedProps]\n hooks.getToggleRowExpandedProps = [defaultGetToggleRowExpandedProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseExpanded.pluginName = 'useExpanded'\n\nconst defaultGetToggleAllRowsExpandedProps = (props, { instance }) => [\n props,\n {\n onClick: e => {\n instance.toggleAllRowsExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle All Rows Expanded',\n },\n]\n\nconst defaultGetToggleRowExpandedProps = (props, { row }) => [\n props,\n {\n onClick: () => {\n row.toggleRowExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle Row Expanded',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n expanded: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetExpanded) {\n return {\n ...state,\n expanded: instance.initialState.expanded || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsExpanded) {\n const { value } = action\n const { rowsById } = instance\n\n const isAllRowsExpanded =\n Object.keys(rowsById).length === Object.keys(state.expanded).length\n\n const expandAll = typeof value !== 'undefined' ? value : !isAllRowsExpanded\n\n if (expandAll) {\n const expanded = {}\n\n Object.keys(rowsById).forEach(rowId => {\n expanded[rowId] = true\n })\n\n return {\n ...state,\n expanded,\n }\n }\n\n return {\n ...state,\n expanded: {},\n }\n }\n\n if (action.type === actions.toggleRowExpanded) {\n const { id, value: setExpanded } = action\n const exists = state.expanded[id]\n\n const shouldExist =\n typeof setExpanded !== 'undefined' ? setExpanded : !exists\n\n if (!exists && shouldExist) {\n return {\n ...state,\n expanded: {\n ...state.expanded,\n [id]: true,\n },\n }\n } else if (exists && !shouldExist) {\n const { [id]: _, ...rest } = state.expanded\n return {\n ...state,\n expanded: rest,\n }\n } else {\n return state\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n rowsById,\n manualExpandedKey = 'expanded',\n paginateExpandedRows = true,\n expandSubRows = true,\n autoResetExpanded = true,\n getHooks,\n plugins,\n state: { expanded },\n dispatch,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useSortBy', 'useGroupBy', 'usePivotColumns', 'useGlobalFilter'],\n 'useExpanded'\n )\n\n const getAutoResetExpanded = useGetLatest(autoResetExpanded)\n\n let isAllRowsExpanded = Boolean(\n Object.keys(rowsById).length && Object.keys(expanded).length\n )\n\n if (isAllRowsExpanded) {\n if (Object.keys(rowsById).some(id => !expanded[id])) {\n isAllRowsExpanded = false\n }\n }\n\n // Bypass any effects from firing when this changes\n useMountedLayoutEffect(() => {\n if (getAutoResetExpanded()) {\n dispatch({ type: actions.resetExpanded })\n }\n }, [dispatch, data])\n\n const toggleRowExpanded = React.useCallback(\n (id, value) => {\n dispatch({ type: actions.toggleRowExpanded, id, value })\n },\n [dispatch]\n )\n\n const toggleAllRowsExpanded = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsExpanded, value }),\n [dispatch]\n )\n\n const expandedRows = React.useMemo(() => {\n if (paginateExpandedRows) {\n return expandRows(rows, { manualExpandedKey, expanded, expandSubRows })\n }\n\n return rows\n }, [paginateExpandedRows, rows, manualExpandedKey, expanded, expandSubRows])\n\n const expandedDepth = React.useMemo(() => findExpandedDepth(expanded), [\n expanded,\n ])\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsExpandedProps = makePropGetter(\n getHooks().getToggleAllRowsExpandedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n preExpandedRows: rows,\n expandedRows,\n rows: expandedRows,\n expandedDepth,\n isAllRowsExpanded,\n toggleRowExpanded,\n toggleAllRowsExpanded,\n getToggleAllRowsExpandedProps,\n })\n}\n\nfunction prepareRow(row, { instance: { getHooks }, instance }) {\n row.toggleRowExpanded = set => instance.toggleRowExpanded(row.id, set)\n\n row.getToggleRowExpandedProps = makePropGetter(\n getHooks().getToggleRowExpandedProps,\n {\n instance,\n row,\n }\n )\n}\n\nfunction findExpandedDepth(expanded) {\n let maxDepth = 0\n\n Object.keys(expanded).forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n","export const text = (rows, ids, filterValue) => {\n rows = rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return String(rowValue)\n .toLowerCase()\n .includes(String(filterValue).toLowerCase())\n })\n })\n return rows\n}\n\ntext.autoRemove = val => !val\n\nexport const exactText = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase()\n : true\n })\n })\n}\n\nexactText.autoRemove = val => !val\n\nexport const exactTextCase = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue) === String(filterValue)\n : true\n })\n })\n}\n\nexactTextCase.autoRemove = val => !val\n\nexport const includes = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue.includes(filterValue)\n })\n })\n}\n\nincludes.autoRemove = val => !val || !val.length\n\nexport const includesAll = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.every(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesAll.autoRemove = val => !val || !val.length\n\nexport const includesSome = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.some(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesSome.autoRemove = val => !val || !val.length\n\nexport const includesValue = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return filterValue.includes(rowValue)\n })\n })\n}\n\nincludesValue.autoRemove = val => !val || !val.length\n\nexport const exact = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue === filterValue\n })\n })\n}\n\nexact.autoRemove = val => typeof val === 'undefined'\n\nexport const equals = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n // eslint-disable-next-line eqeqeq\n return rowValue == filterValue\n })\n })\n}\n\nequals.autoRemove = val => val == null\n\nexport const between = (rows, ids, filterValue) => {\n let [min, max] = filterValue || []\n\n min = typeof min === 'number' ? min : -Infinity\n max = typeof max === 'number' ? max : Infinity\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue >= min && rowValue <= max\n })\n })\n}\n\nbetween.autoRemove = val =>\n !val || (typeof val[0] !== 'number' && typeof val[1] !== 'number')\n","import React from 'react'\n\nimport {\n getFirstDefined,\n getFilterMethod,\n shouldAutoRemoveFilter,\n} from '../utils'\n\nimport {\n actions,\n useGetLatest,\n functionalUpdate,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetFilters = 'resetFilters'\nactions.setFilter = 'setFilter'\nactions.setAllFilters = 'setAllFilters'\n\nexport const useFilters = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseFilters.pluginName = 'useFilters'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n filters: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetFilters) {\n return {\n ...state,\n filters: instance.initialState.filters || [],\n }\n }\n\n if (action.type === actions.setFilter) {\n const { columnId, filterValue } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n const previousfilter = state.filters.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n filterValue,\n previousfilter && previousfilter.value\n )\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter, column)) {\n return {\n ...state,\n filters: state.filters.filter(d => d.id !== columnId),\n }\n }\n\n if (previousfilter) {\n return {\n ...state,\n filters: state.filters.map(d => {\n if (d.id === columnId) {\n return { id: columnId, value: newFilter }\n }\n return d\n }),\n }\n }\n\n return {\n ...state,\n filters: [...state.filters, { id: columnId, value: newFilter }],\n }\n }\n\n if (action.type === actions.setAllFilters) {\n const { filters } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n return {\n ...state,\n // Filter out undefined values\n filters: functionalUpdate(filters, state.filters).filter(filter => {\n const column = allColumns.find(d => d.id === filter.id)\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (\n shouldAutoRemoveFilter(filterMethod.autoRemove, filter.value, column)\n ) {\n return false\n }\n return true\n }),\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n manualFilters,\n defaultCanFilter = false,\n disableFilters,\n state: { filters },\n dispatch,\n autoResetFilters = true,\n } = instance\n\n const setFilter = React.useCallback(\n (columnId, filterValue) => {\n dispatch({ type: actions.setFilter, columnId, filterValue })\n },\n [dispatch]\n )\n\n const setAllFilters = React.useCallback(\n filters => {\n dispatch({\n type: actions.setAllFilters,\n filters,\n })\n },\n [dispatch]\n )\n\n allColumns.forEach(column => {\n const {\n id,\n accessor,\n defaultCanFilter: columnDefaultCanFilter,\n disableFilters: columnDisableFilters,\n } = column\n\n // Determine if a column is filterable\n column.canFilter = accessor\n ? getFirstDefined(\n columnDisableFilters === true ? false : undefined,\n disableFilters === true ? false : undefined,\n true\n )\n : getFirstDefined(columnDefaultCanFilter, defaultCanFilter, false)\n\n // Provide the column a way of updating the filter value\n column.setFilter = val => setFilter(column.id, val)\n\n // Provide the current filter value to the column for\n // convenience\n const found = filters.find(d => d.id === id)\n column.filterValue = found && found.value\n })\n\n const [\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n ] = React.useMemo(() => {\n if (manualFilters || !filters.length) {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n // Filters top level and nested rows\n const filterRows = (rows, depth = 0) => {\n let filteredRows = rows\n\n filteredRows = filters.reduce(\n (filteredSoFar, { id: columnId, value: filterValue }) => {\n // Find the filters column\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n return filteredSoFar\n }\n\n if (depth === 0) {\n column.preFilteredRows = filteredSoFar\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(\n `Could not find a valid 'column.filter' for column with the ID: ${column.id}.`\n )\n return filteredSoFar\n }\n\n // Pass the rows, id, filterValue and column to the filterMethod\n // to get the filtered rows back\n column.filteredRows = filterMethod(\n filteredSoFar,\n [columnId],\n filterValue\n )\n\n return column.filteredRows\n },\n rows\n )\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n if (!row.subRows) {\n return\n }\n\n row.subRows =\n row.subRows && row.subRows.length > 0\n ? filterRows(row.subRows, depth + 1)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualFilters,\n filters,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userFilterTypes,\n ])\n\n React.useMemo(() => {\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = allColumns.filter(\n column => !filters.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n nonFilteredColumns.forEach(column => {\n column.preFilteredRows = filteredRows\n column.filteredRows = filteredRows\n })\n }, [filteredRows, filters, allColumns])\n\n const getAutoResetFilters = useGetLatest(autoResetFilters)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetFilters()) {\n dispatch({ type: actions.resetFilters })\n }\n }, [dispatch, manualFilters ? null : data])\n\n Object.assign(instance, {\n preFilteredRows: rows,\n preFilteredFlatRows: flatRows,\n preFilteredRowsById: rowsById,\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n rows: filteredRows,\n flatRows: filteredFlatRows,\n rowsById: filteredRowsById,\n setFilter,\n setAllFilters,\n })\n}\n","import React from 'react'\n\nimport {\n getFilterMethod,\n shouldAutoRemoveFilter,\n getFirstDefined,\n} from '../utils'\n\nimport {\n actions,\n useMountedLayoutEffect,\n functionalUpdate,\n useGetLatest,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetGlobalFilter = 'resetGlobalFilter'\nactions.setGlobalFilter = 'setGlobalFilter'\n\nexport const useGlobalFilter = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseGlobalFilter.pluginName = 'useGlobalFilter'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.resetGlobalFilter) {\n return {\n ...state,\n globalFilter: instance.initialState.globalFilter || undefined,\n }\n }\n\n if (action.type === actions.setGlobalFilter) {\n const { filterValue } = action\n const { userFilterTypes } = instance\n\n const filterMethod = getFilterMethod(\n instance.globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n const newFilter = functionalUpdate(filterValue, state.globalFilter)\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter)) {\n const { globalFilter, ...stateWithoutGlobalFilter } = state\n return stateWithoutGlobalFilter\n }\n\n return {\n ...state,\n globalFilter: newFilter,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n globalFilter,\n manualGlobalFilter,\n state: { globalFilter: globalFilterValue },\n dispatch,\n autoResetGlobalFilter = true,\n disableGlobalFilter,\n } = instance\n\n const setGlobalFilter = React.useCallback(\n filterValue => {\n dispatch({ type: actions.setGlobalFilter, filterValue })\n },\n [dispatch]\n )\n\n // TODO: Create a filter cache for incremental high speed multi-filtering\n // This gets pretty complicated pretty fast, since you have to maintain a\n // cache for each row group (top-level rows, and each row's recursive subrows)\n // This would make multi-filtering a lot faster though. Too far?\n\n const [\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n ] = React.useMemo(() => {\n if (manualGlobalFilter || typeof globalFilterValue === 'undefined') {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n const filterMethod = getFilterMethod(\n globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(`Could not find a valid 'globalFilter' option.`)\n return rows\n }\n\n allColumns.forEach(column => {\n const { disableGlobalFilter: columnDisableGlobalFilter } = column\n\n column.canFilter = getFirstDefined(\n columnDisableGlobalFilter === true ? false : undefined,\n disableGlobalFilter === true ? false : undefined,\n true\n )\n })\n\n const filterableColumns = allColumns.filter(c => c.canFilter === true)\n\n // Filters top level and nested rows\n const filterRows = filteredRows => {\n filteredRows = filterMethod(\n filteredRows,\n filterableColumns.map(d => d.id),\n globalFilterValue\n )\n\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n\n row.subRows =\n row.subRows && row.subRows.length\n ? filterRows(row.subRows)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualGlobalFilter,\n globalFilterValue,\n globalFilter,\n userFilterTypes,\n allColumns,\n rows,\n flatRows,\n rowsById,\n disableGlobalFilter,\n ])\n\n const getAutoResetGlobalFilter = useGetLatest(autoResetGlobalFilter)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGlobalFilter()) {\n dispatch({ type: actions.resetGlobalFilter })\n }\n }, [dispatch, manualGlobalFilter ? null : data])\n\n Object.assign(instance, {\n preGlobalFilteredRows: rows,\n preGlobalFilteredFlatRows: flatRows,\n preGlobalFilteredRowsById: rowsById,\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n rows: globalFilteredRows,\n flatRows: globalFilteredFlatRows,\n rowsById: globalFilteredRowsById,\n setGlobalFilter,\n disableGlobalFilter,\n })\n}\n","export function sum(values, aggregatedValues) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return aggregatedValues.reduce(\n (sum, next) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nexport function min(values) {\n let min = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n }\n })\n\n return min\n}\n\nexport function max(values) {\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n max = Math.max(max, value)\n }\n })\n\n return max\n}\n\nexport function minMax(values) {\n let min = values[0] || 0\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return `${min}..${max}`\n}\n\nexport function average(values) {\n return sum(null, values) / values.length\n}\n\nexport function median(values) {\n if (!values.length) {\n return null\n }\n\n const mid = Math.floor(values.length / 2)\n const nums = [...values].sort((a, b) => a - b)\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2\n}\n\nexport function unique(values) {\n return Array.from(new Set(values).values())\n}\n\nexport function uniqueCount(values) {\n return new Set(values).size\n}\n\nexport function count(values) {\n return values.length\n}\n","import React from 'react'\n\nimport * as aggregations from '../aggregations'\n\nimport { getFirstDefined, flattenBy } from '../utils'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst emptyArray = []\nconst emptyObject = {}\n\n// Actions\nactions.resetGroupBy = 'resetGroupBy'\nactions.setGroupBy = 'setGroupBy'\nactions.toggleGroupBy = 'toggleGroupBy'\n\nexport const useGroupBy = hooks => {\n hooks.getGroupByToggleProps = [defaultGetGroupByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.groupBy,\n ])\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseGroupBy.pluginName = 'useGroupBy'\n\nconst defaultGetGroupByToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canGroupBy\n ? e => {\n e.persist()\n header.toggleGroupBy()\n }\n : undefined,\n style: {\n cursor: header.canGroupBy ? 'pointer' : undefined,\n },\n title: 'Toggle GroupBy',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n groupBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetGroupBy) {\n return {\n ...state,\n groupBy: instance.initialState.groupBy || [],\n }\n }\n\n if (action.type === actions.setGroupBy) {\n const { value } = action\n return {\n ...state,\n groupBy: value,\n }\n }\n\n if (action.type === actions.toggleGroupBy) {\n const { columnId, value: setGroupBy } = action\n\n const resolvedGroupBy =\n typeof setGroupBy !== 'undefined'\n ? setGroupBy\n : !state.groupBy.includes(columnId)\n\n if (resolvedGroupBy) {\n return {\n ...state,\n groupBy: [...state.groupBy, columnId],\n }\n }\n\n return {\n ...state,\n groupBy: state.groupBy.filter(d => d !== columnId),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { groupBy },\n },\n }\n) {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n\n const groupByColumns = groupBy\n .map(g => columns.find(col => col.id === g))\n .filter(Boolean)\n\n const nonGroupByColumns = columns.filter(col => !groupBy.includes(col.id))\n\n columns = [...groupByColumns, ...nonGroupByColumns]\n\n columns.forEach(column => {\n column.isGrouped = groupBy.includes(column.id)\n column.groupedIndex = groupBy.indexOf(column.id)\n })\n\n return columns\n}\n\nconst defaultUserAggregations = {}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n flatHeaders,\n groupByFn = defaultGroupByFn,\n manualGroupBy,\n aggregations: userAggregations = defaultUserAggregations,\n plugins,\n state: { groupBy },\n dispatch,\n autoResetGroupBy = true,\n disableGroupBy,\n defaultCanGroupBy,\n getHooks,\n } = instance\n\n ensurePluginOrder(plugins, ['useColumnOrder', 'useFilters'], 'useGroupBy')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultGroupBy: defaultColumnGroupBy,\n disableGroupBy: columnDisableGroupBy,\n } = column\n\n column.canGroupBy = accessor\n ? getFirstDefined(\n column.canGroupBy,\n columnDisableGroupBy === true ? false : undefined,\n disableGroupBy === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canGroupBy,\n defaultColumnGroupBy,\n defaultCanGroupBy,\n false\n )\n\n if (column.canGroupBy) {\n column.toggleGroupBy = () => instance.toggleGroupBy(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const toggleGroupBy = React.useCallback(\n (columnId, value) => {\n dispatch({ type: actions.toggleGroupBy, columnId, value })\n },\n [dispatch]\n )\n\n const setGroupBy = React.useCallback(\n value => {\n dispatch({ type: actions.setGroupBy, value })\n },\n [dispatch]\n )\n\n flatHeaders.forEach(header => {\n header.getGroupByToggleProps = makePropGetter(\n getHooks().getGroupByToggleProps,\n { instance: getInstance(), header }\n )\n })\n\n const [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ] = React.useMemo(() => {\n if (manualGroupBy || !groupBy.length) {\n return [\n rows,\n flatRows,\n rowsById,\n emptyArray,\n emptyObject,\n flatRows,\n rowsById,\n ]\n }\n\n // Ensure that the list of filtered columns exist\n const existingGroupBy = groupBy.filter(g =>\n allColumns.find(col => col.id === g)\n )\n\n // Find the columns that can or are aggregating\n // Uses each column to aggregate rows into a single value\n const aggregateRowsToValues = (leafRows, groupedRows, depth) => {\n const values = {}\n\n allColumns.forEach(column => {\n // Don't aggregate columns that are in the groupBy\n if (existingGroupBy.includes(column.id)) {\n values[column.id] = groupedRows[0]\n ? groupedRows[0].values[column.id]\n : null\n return\n }\n\n // Aggregate the values\n let aggregateFn =\n typeof column.aggregate === 'function'\n ? column.aggregate\n : userAggregations[column.aggregate] ||\n aggregations[column.aggregate]\n\n if (aggregateFn) {\n // Get the columnValues to aggregate\n const groupedValues = groupedRows.map(row => row.values[column.id])\n\n // Get the columnValues to aggregate\n const leafValues = leafRows.map(row => {\n let columnValue = row.values[column.id]\n\n if (!depth && column.aggregateValue) {\n const aggregateValueFn =\n typeof column.aggregateValue === 'function'\n ? column.aggregateValue\n : userAggregations[column.aggregateValue] ||\n aggregations[column.aggregateValue]\n\n if (!aggregateValueFn) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregateValue option for column listed above`\n )\n }\n\n columnValue = aggregateValueFn(columnValue, row, column)\n }\n return columnValue\n })\n\n values[column.id] = aggregateFn(leafValues, groupedValues)\n } else if (column.aggregate) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregate option for column listed above`\n )\n } else {\n values[column.id] = null\n }\n })\n\n return values\n }\n\n let groupedFlatRows = []\n const groupedRowsById = {}\n const onlyGroupedFlatRows = []\n const onlyGroupedRowsById = {}\n const nonGroupedFlatRows = []\n const nonGroupedRowsById = {}\n\n // Recursively group the data\n const groupUpRecursively = (rows, depth = 0, parentId) => {\n // This is the last level, just return the rows\n if (depth === existingGroupBy.length) {\n return rows.map((row) => ({ ...row, depth }))\n }\n\n const columnId = existingGroupBy[depth]\n\n // Group the rows together for this level\n let rowGroupsMap = groupByFn(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Object.entries(rowGroupsMap).map(\n ([groupByVal, groupedRows], index) => {\n let id = `${columnId}:${groupByVal}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, 'leafRows')\n : groupedRows\n\n const values = aggregateRowsToValues(leafRows, groupedRows, depth)\n\n const row = {\n id,\n isGrouped: true,\n groupByID: columnId,\n groupByVal,\n values,\n subRows,\n leafRows,\n depth,\n index,\n }\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rows)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n // Assign the new data\n return [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ]\n }, [\n manualGroupBy,\n groupBy,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userAggregations,\n groupByFn,\n ])\n\n const getAutoResetGroupBy = useGetLatest(autoResetGroupBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGroupBy()) {\n dispatch({ type: actions.resetGroupBy })\n }\n }, [dispatch, manualGroupBy ? null : data])\n\n Object.assign(instance, {\n preGroupedRows: rows,\n preGroupedFlatRow: flatRows,\n preGroupedRowsById: rowsById,\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n toggleGroupBy,\n setGroupBy,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the groupBy and the pivot cell for the row\n cell.isGrouped = cell.column.isGrouped && cell.column.id === row.groupByID\n // Placeholder cells are any columns in the groupBy that are not grouped\n cell.isPlaceholder = !cell.isGrouped && cell.column.isGrouped\n // Aggregated cells are not grouped, not repeated, but still have subRows\n cell.isAggregated =\n !cell.isGrouped && !cell.isPlaceholder && row.subRows?.length\n })\n}\n\nexport function defaultGroupByFn(rows, columnId) {\n return rows.reduce((prev, row, i) => {\n // TODO: Might want to implement a key serializer here so\n // irregular column values can still be grouped if needed?\n const resKey = `${row.values[columnId]}`\n prev[resKey] = Array.isArray(prev[resKey]) ? prev[resKey] : []\n prev[resKey].push(row)\n return prev\n }, {})\n}\n","const reSplitAlphaNumeric = /([0-9]+)/gm\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nexport const alphanumeric = (rowA, rowB, columnId) => {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n // Force to strings (or \"\" for unsupported types)\n a = toString(a)\n b = toString(b)\n\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n a = a.split(reSplitAlphaNumeric).filter(Boolean)\n b = b.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n let aa = a.shift()\n let bb = b.shift()\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\nexport function datetime(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n a = a.getTime()\n b = b.getTime()\n\n return compareBasic(a, b)\n}\n\nexport function basic(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n return compareBasic(a, b)\n}\n\nexport function string(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n a = a.split('').filter(Boolean)\n b = b.split('').filter(Boolean)\n\n while (a.length && b.length) {\n let aa = a.shift()\n let bb = b.shift()\n\n let alower = aa.toLowerCase()\n let blower = bb.toLowerCase()\n\n // Case insensitive comparison until characters match\n if (alower > blower) {\n return 1\n }\n if (blower > alower) {\n return -1\n }\n // If lowercase characters are identical\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n return a.length - b.length\n}\n\nexport function number(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n const replaceNonNumeric = /[^0-9.]/gi\n\n a = Number(String(a).replace(replaceNonNumeric, ''))\n b = Number(String(b).replace(replaceNonNumeric, ''))\n\n return compareBasic(a, b)\n}\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction getRowValuesByColumnID(row1, row2, columnId) {\n return [row1.values[columnId], row2.values[columnId]]\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n","import React from 'react'\n\nimport {\n actions,\n ensurePluginOrder,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, isFunction } from '../utils'\n\nimport * as sortTypes from '../sortTypes'\n\n// Actions\nactions.resetSortBy = 'resetSortBy'\nactions.setSortBy = 'setSortBy'\nactions.toggleSortBy = 'toggleSortBy'\nactions.clearSortBy = 'clearSortBy'\n\ndefaultColumn.sortType = 'alphanumeric'\ndefaultColumn.sortDescFirst = false\n\nexport const useSortBy = hooks => {\n hooks.getSortByToggleProps = [defaultGetSortByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseSortBy.pluginName = 'useSortBy'\n\nconst defaultGetSortByToggleProps = (props, { instance, column }) => {\n const { isMultiSortEvent = e => e.shiftKey } = instance\n\n return [\n props,\n {\n onClick: column.canSort\n ? e => {\n e.persist()\n column.toggleSortBy(\n undefined,\n !instance.disableMultiSort && isMultiSortEvent(e)\n )\n }\n : undefined,\n style: {\n cursor: column.canSort ? 'pointer' : undefined,\n },\n title: column.canSort ? 'Toggle SortBy' : undefined,\n },\n ]\n}\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n sortBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetSortBy) {\n return {\n ...state,\n sortBy: instance.initialState.sortBy || [],\n }\n }\n\n if (action.type === actions.clearSortBy) {\n const { sortBy } = state\n const newSortBy = sortBy.filter(d => d.id !== action.columnId)\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n\n if (action.type === actions.setSortBy) {\n const { sortBy } = action\n return {\n ...state,\n sortBy,\n }\n }\n\n if (action.type === actions.toggleSortBy) {\n const { columnId, desc, multi } = action\n\n const {\n allColumns,\n disableMultiSort,\n disableSortRemove,\n disableMultiRemove,\n maxMultiSortColCount = Number.MAX_SAFE_INTEGER,\n } = instance\n\n const { sortBy } = state\n\n // Find the column for this columnId\n const column = allColumns.find(d => d.id === columnId)\n const { sortDescFirst } = column\n\n // Find any existing sortBy for this column\n const existingSortBy = sortBy.find(d => d.id === columnId)\n const existingIndex = sortBy.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSortBy = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (!disableMultiSort && multi) {\n if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (existingIndex !== sortBy.length - 1 || sortBy.length !== 1) {\n sortAction = 'replace'\n } else if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sortBy\n if (\n sortAction === 'toggle' && // Must be toggling\n !disableSortRemove && // If disableSortRemove, disable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? !disableMultiRemove : true) && // If multi, don't allow if disableMultiRemove\n ((existingSortBy && // Finally, detect if it should indeed be removed\n existingSortBy.desc &&\n !sortDescFirst) ||\n (!existingSortBy.desc && sortDescFirst))\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSortBy = [\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n } else if (sortAction === 'add') {\n newSortBy = [\n ...sortBy,\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n // Take latest n columns\n newSortBy.splice(0, newSortBy.length - maxMultiSortColCount)\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSortBy = sortBy.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc : !existingSortBy.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSortBy = sortBy.filter(d => d.id !== columnId)\n }\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n allColumns,\n orderByFn = defaultOrderByFn,\n sortTypes: userSortTypes,\n manualSortBy,\n defaultCanSort,\n disableSortBy,\n flatHeaders,\n state: { sortBy },\n dispatch,\n plugins,\n getHooks,\n autoResetSortBy = true,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGlobalFilter', 'useGroupBy', 'usePivotColumns'],\n 'useSortBy'\n )\n\n const setSortBy = React.useCallback(\n sortBy => {\n dispatch({ type: actions.setSortBy, sortBy })\n },\n [dispatch]\n )\n\n // Updates sorting based on a columnId, desc flag and multi flag\n const toggleSortBy = React.useCallback(\n (columnId, desc, multi) => {\n dispatch({ type: actions.toggleSortBy, columnId, desc, multi })\n },\n [dispatch]\n )\n\n // use reference to avoid memory leak in #1608\n const getInstance = useGetLatest(instance)\n\n // Add the getSortByToggleProps method to columns and headers\n flatHeaders.forEach(column => {\n const {\n accessor,\n canSort: defaultColumnCanSort,\n disableSortBy: columnDisableSortBy,\n id,\n } = column\n\n const canSort = accessor\n ? getFirstDefined(\n columnDisableSortBy === true ? false : undefined,\n disableSortBy === true ? false : undefined,\n true\n )\n : getFirstDefined(defaultCanSort, defaultColumnCanSort, false)\n\n column.canSort = canSort\n\n if (column.canSort) {\n column.toggleSortBy = (desc, multi) =>\n toggleSortBy(column.id, desc, multi)\n\n column.clearSortBy = () => {\n dispatch({ type: actions.clearSortBy, columnId: column.id })\n }\n }\n\n column.getSortByToggleProps = makePropGetter(\n getHooks().getSortByToggleProps,\n {\n instance: getInstance(),\n column,\n }\n )\n\n const columnSort = sortBy.find(d => d.id === id)\n column.isSorted = !!columnSort\n column.sortedIndex = sortBy.findIndex(d => d.id === id)\n column.isSortedDesc = column.isSorted ? columnSort.desc : undefined\n })\n\n const [sortedRows, sortedFlatRows] = React.useMemo(() => {\n if (manualSortBy || !sortBy.length) {\n return [rows, flatRows]\n }\n\n const sortedFlatRows = []\n\n // Filter out sortBys that correspond to non existing columns\n const availableSortBy = sortBy.filter(sort =>\n allColumns.find(col => col.id === sort.id)\n )\n\n const sortData = rows => {\n // Use the orderByFn to compose multiple sortBy's together.\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = orderByFn(\n rows,\n availableSortBy.map(sort => {\n // Support custom sorting methods for each column\n const column = allColumns.find(d => d.id === sort.id)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${sort.id} while sorting`\n )\n }\n\n const { sortType } = column\n\n // Look up sortBy functions in this order:\n // column function\n // column string lookup on user sortType\n // column string lookup on built-in sortType\n // default function\n // default string lookup on user sortType\n // default string lookup on built-in sortType\n const sortMethod =\n isFunction(sortType) ||\n (userSortTypes || {})[sortType] ||\n sortTypes[sortType]\n\n if (!sortMethod) {\n throw new Error(\n `React-Table: Could not find a valid sortType of '${sortType}' for column '${sort.id}'.`\n )\n }\n\n // Return the correct sortFn.\n // This function should always return in ascending order\n return (a, b) => sortMethod(a, b, sort.id, sort.desc)\n }),\n // Map the directions\n availableSortBy.map(sort => {\n // Detect and use the sortInverted option\n const column = allColumns.find(d => d.id === sort.id)\n\n if (column && column.sortInverted) {\n return sort.desc\n }\n\n return !sort.desc\n })\n )\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length === 0) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return [sortData(rows), sortedFlatRows]\n }, [\n manualSortBy,\n sortBy,\n rows,\n flatRows,\n allColumns,\n orderByFn,\n userSortTypes,\n ])\n\n const getAutoResetSortBy = useGetLatest(autoResetSortBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSortBy()) {\n dispatch({ type: actions.resetSortBy })\n }\n }, [manualSortBy ? null : data])\n\n Object.assign(instance, {\n preSortedRows: rows,\n preSortedFlatRows: flatRows,\n sortedRows,\n sortedFlatRows,\n rows: sortedRows,\n flatRows: sortedFlatRows,\n setSortBy,\n toggleSortBy,\n })\n}\n\nexport function defaultOrderByFn(arr, funcs, dirs) {\n return [...arr].sort((rowA, rowB) => {\n for (let i = 0; i < funcs.length; i += 1) {\n const sortFn = funcs[i]\n const desc = dirs[i] === false || dirs[i] === 'desc'\n const sortInt = sortFn(rowA, rowB)\n if (sortInt !== 0) {\n return desc ? -sortInt : sortInt\n }\n }\n return dirs[0] ? rowA.index - rowB.index : rowB.index - rowA.index\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n actions,\n ensurePluginOrder,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { expandRows } from '../utils'\n\nconst pluginName = 'usePagination'\n\n// Actions\nactions.resetPage = 'resetPage'\nactions.gotoPage = 'gotoPage'\nactions.setPageSize = 'setPageSize'\n\nexport const usePagination = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nusePagination.pluginName = pluginName\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pageSize: 10,\n pageIndex: 0,\n ...state,\n }\n }\n\n if (action.type === actions.resetPage) {\n return {\n ...state,\n pageIndex: instance.initialState.pageIndex || 0,\n }\n }\n\n if (action.type === actions.gotoPage) {\n const { pageCount, page } = instance\n const newPageIndex = functionalUpdate(action.pageIndex, state.pageIndex)\n let canNavigate = false\n\n if (newPageIndex > state.pageIndex) {\n // next page\n canNavigate =\n pageCount === -1\n ? page.length >= state.pageSize\n : newPageIndex < pageCount\n } else if (newPageIndex < state.pageIndex) {\n // prev page\n canNavigate = newPageIndex > -1\n }\n\n if (!canNavigate) {\n return state\n }\n\n return {\n ...state,\n pageIndex: newPageIndex,\n }\n }\n\n if (action.type === actions.setPageSize) {\n const { pageSize } = action\n const topRowIndex = state.pageSize * state.pageIndex\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...state,\n pageIndex,\n pageSize,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n rows,\n autoResetPage = true,\n manualExpandedKey = 'expanded',\n plugins,\n pageCount: userPageCount,\n paginateExpandedRows = true,\n expandSubRows = true,\n state: {\n pageSize,\n pageIndex,\n expanded,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n },\n dispatch,\n data,\n manualPagination,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useGlobalFilter', 'useFilters', 'useGroupBy', 'useSortBy', 'useExpanded'],\n 'usePagination'\n )\n\n const getAutoResetPage = useGetLatest(autoResetPage)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPage()) {\n dispatch({ type: actions.resetPage })\n }\n }, [\n dispatch,\n manualPagination ? null : data,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n ])\n\n const pageCount = manualPagination\n ? userPageCount\n : Math.ceil(rows.length / pageSize)\n\n const pageOptions = React.useMemo(\n () =>\n pageCount > 0\n ? [...new Array(pageCount)].fill(null).map((d, i) => i)\n : [],\n [pageCount]\n )\n\n const page = React.useMemo(() => {\n let page\n\n if (manualPagination) {\n page = rows\n } else {\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n page = rows.slice(pageStart, pageEnd)\n }\n\n if (paginateExpandedRows) {\n return page\n }\n\n return expandRows(page, { manualExpandedKey, expanded, expandSubRows })\n }, [\n expandSubRows,\n expanded,\n manualExpandedKey,\n manualPagination,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n rows,\n ])\n\n const canPreviousPage = pageIndex > 0\n const canNextPage =\n pageCount === -1 ? page.length >= pageSize : pageIndex < pageCount - 1\n\n const gotoPage = React.useCallback(\n pageIndex => {\n dispatch({ type: actions.gotoPage, pageIndex })\n },\n [dispatch]\n )\n\n const previousPage = React.useCallback(() => {\n return gotoPage(old => old - 1)\n }, [gotoPage])\n\n const nextPage = React.useCallback(() => {\n return gotoPage(old => old + 1)\n }, [gotoPage])\n\n const setPageSize = React.useCallback(\n pageSize => {\n dispatch({ type: actions.setPageSize, pageSize })\n },\n [dispatch]\n )\n\n Object.assign(instance, {\n pageOptions,\n pageCount,\n page,\n canPreviousPage,\n canNextPage,\n gotoPage,\n previousPage,\n nextPage,\n setPageSize,\n })\n}\n","/* istanbul ignore file */\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { flattenColumns, getFirstDefined } from '../utils'\n\n// Actions\nactions.resetPivot = 'resetPivot'\nactions.togglePivot = 'togglePivot'\n\nexport const _UNSTABLE_usePivotColumns = hooks => {\n hooks.getPivotToggleProps = [defaultGetPivotToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstanceAfterData.push(useInstanceAfterData)\n hooks.allColumns.push(allColumns)\n hooks.accessValue.push(accessValue)\n hooks.materializedColumns.push(materializedColumns)\n hooks.materializedColumnsDeps.push(materializedColumnsDeps)\n hooks.visibleColumns.push(visibleColumns)\n hooks.visibleColumnsDeps.push(visibleColumnsDeps)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\n_UNSTABLE_usePivotColumns.pluginName = 'usePivotColumns'\n\nconst defaultPivotColumns = []\n\nconst defaultGetPivotToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canPivot\n ? e => {\n e.persist()\n header.togglePivot()\n }\n : undefined,\n style: {\n cursor: header.canPivot ? 'pointer' : undefined,\n },\n title: 'Toggle Pivot',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pivotColumns: defaultPivotColumns,\n ...state,\n }\n }\n\n if (action.type === actions.resetPivot) {\n return {\n ...state,\n pivotColumns: instance.initialState.pivotColumns || defaultPivotColumns,\n }\n }\n\n if (action.type === actions.togglePivot) {\n const { columnId, value: setPivot } = action\n\n const resolvedPivot =\n typeof setPivot !== 'undefined'\n ? setPivot\n : !state.pivotColumns.includes(columnId)\n\n if (resolvedPivot) {\n return {\n ...state,\n pivotColumns: [...state.pivotColumns, columnId],\n }\n }\n\n return {\n ...state,\n pivotColumns: state.pivotColumns.filter(d => d !== columnId),\n }\n }\n}\n\nfunction useInstanceAfterData(instance) {\n instance.allColumns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n })\n}\n\nfunction allColumns(columns, { instance }) {\n columns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n column.uniqueValues = new Set()\n })\n return columns\n}\n\nfunction accessValue(value, { column }) {\n if (column.uniqueValues && typeof value !== 'undefined') {\n column.uniqueValues.add(value)\n }\n return value\n}\n\nfunction materializedColumns(materialized, { instance }) {\n const { allColumns, state } = instance\n\n if (!state.pivotColumns.length || !state.groupBy || !state.groupBy.length) {\n return materialized\n }\n\n const pivotColumns = state.pivotColumns\n .map(id => allColumns.find(d => d.id === id))\n .filter(Boolean)\n\n const sourceColumns = allColumns.filter(\n d =>\n !d.isPivotSource &&\n !state.groupBy.includes(d.id) &&\n !state.pivotColumns.includes(d.id)\n )\n\n const buildPivotColumns = (depth = 0, parent, pivotFilters = []) => {\n const pivotColumn = pivotColumns[depth]\n\n if (!pivotColumn) {\n return sourceColumns.map(sourceColumn => {\n // TODO: We could offer support here for renesting pivoted\n // columns inside copies of their header groups. For now,\n // that seems like it would be (1) overkill on nesting, considering\n // you already get nesting for every pivot level and (2)\n // really hard. :)\n\n return {\n ...sourceColumn,\n canPivot: false,\n isPivoted: true,\n parent,\n depth: depth,\n id: `${parent ? `${parent.id}.${sourceColumn.id}` : sourceColumn.id}`,\n accessor: (originalRow, i, row) => {\n if (pivotFilters.every(filter => filter(row))) {\n return row.values[sourceColumn.id]\n }\n },\n }\n })\n }\n\n const uniqueValues = Array.from(pivotColumn.uniqueValues).sort()\n\n return uniqueValues.map(uniqueValue => {\n const columnGroup = {\n ...pivotColumn,\n Header:\n pivotColumn.PivotHeader || typeof pivotColumn.header === 'string'\n ? `${pivotColumn.Header}: ${uniqueValue}`\n : uniqueValue,\n isPivotGroup: true,\n parent,\n depth,\n id: parent\n ? `${parent.id}.${pivotColumn.id}.${uniqueValue}`\n : `${pivotColumn.id}.${uniqueValue}`,\n pivotValue: uniqueValue,\n }\n\n columnGroup.columns = buildPivotColumns(depth + 1, columnGroup, [\n ...pivotFilters,\n row => row.values[pivotColumn.id] === uniqueValue,\n ])\n\n return columnGroup\n })\n }\n\n const newMaterialized = flattenColumns(buildPivotColumns())\n\n return [...materialized, ...newMaterialized]\n}\n\nfunction materializedColumnsDeps(\n deps,\n {\n instance: {\n state: { pivotColumns, groupBy },\n },\n }\n) {\n return [...deps, pivotColumns, groupBy]\n}\n\nfunction visibleColumns(visibleColumns, { instance: { state } }) {\n visibleColumns = visibleColumns.filter(d => !d.isPivotSource)\n\n if (state.pivotColumns.length && state.groupBy && state.groupBy.length) {\n visibleColumns = visibleColumns.filter(\n column => column.isGrouped || column.isPivoted\n )\n }\n\n return visibleColumns\n}\n\nfunction visibleColumnsDeps(deps, { instance }) {\n return [...deps, instance.state.pivotColumns, instance.state.groupBy]\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n allColumns,\n flatHeaders,\n // pivotFn = defaultPivotFn,\n // manualPivot,\n getHooks,\n plugins,\n dispatch,\n autoResetPivot = true,\n manaulPivot,\n disablePivot,\n defaultCanPivot,\n } = instance\n\n ensurePluginOrder(plugins, ['useGroupBy'], 'usePivotColumns')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultPivot: defaultColumnPivot,\n disablePivot: columnDisablePivot,\n } = column\n\n column.canPivot = accessor\n ? getFirstDefined(\n column.canPivot,\n columnDisablePivot === true ? false : undefined,\n disablePivot === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canPivot,\n defaultColumnPivot,\n defaultCanPivot,\n false\n )\n\n if (column.canPivot) {\n column.togglePivot = () => instance.togglePivot(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const togglePivot = (columnId, value) => {\n dispatch({ type: actions.togglePivot, columnId, value })\n }\n\n flatHeaders.forEach(header => {\n header.getPivotToggleProps = makePropGetter(\n getHooks().getPivotToggleProps,\n {\n instance: getInstance(),\n header,\n }\n )\n })\n\n const getAutoResetPivot = useGetLatest(autoResetPivot)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPivot()) {\n dispatch({ type: actions.resetPivot })\n }\n }, [dispatch, manaulPivot ? null : columns])\n\n Object.assign(instance, {\n togglePivot,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the pivotColumns and the pivot cell for the row\n cell.isPivoted = cell.column.isPivoted\n })\n}\n","import React from 'react'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nconst pluginName = 'useRowSelect'\n\n// Actions\nactions.resetSelectedRows = 'resetSelectedRows'\nactions.toggleAllRowsSelected = 'toggleAllRowsSelected'\nactions.toggleRowSelected = 'toggleRowSelected'\nactions.toggleAllPageRowsSelected = 'toggleAllPageRowsSelected'\n\nexport const useRowSelect = hooks => {\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps]\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps]\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowSelect.pluginName = pluginName\n\nconst defaultGetToggleRowSelectedProps = (props, { instance, row }) => {\n const { manualRowSelectedKey = 'isSelected' } = instance\n let checked = false\n\n if (row.original && row.original[manualRowSelectedKey]) {\n checked = true\n } else {\n checked = row.isSelected\n }\n\n return [\n props,\n {\n onChange: e => {\n row.toggleRowSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked,\n title: 'Toggle Row Selected',\n indeterminate: row.isSomeSelected,\n },\n ]\n}\n\nconst defaultGetToggleAllRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleAllRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length\n ),\n },\n]\n\nconst defaultGetToggleAllPageRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange(e) {\n instance.toggleAllPageRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }) => instance.state.selectedRowIds[id])\n ),\n },\n]\n\n// eslint-disable-next-line max-params\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action\n const {\n isAllRowsSelected,\n rowsById,\n nonGroupedRowsById = rowsById,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllRowsSelected\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = Object.assign({}, state.selectedRowIds)\n\n if (selectAll) {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n selectedRowIds[rowId] = true\n })\n } else {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n delete selectedRowIds[rowId]\n })\n }\n\n return {\n ...state,\n selectedRowIds,\n }\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action\n const { rowsById, selectSubRows = true, getSubRows } = instance\n const isSelected = state.selectedRowIds[id]\n const shouldExist =\n typeof setSelected !== 'undefined' ? setSelected : !isSelected\n\n if (isSelected === shouldExist) {\n return state\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (row) {\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n }\n\n handleRowById(id)\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllPageRowsSelected\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (!row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n\n page.forEach(row => handleRowById(row.id))\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n return state\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n state: { selectedRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGroupBy', 'useSortBy', 'useExpanded', 'usePagination'],\n 'useRowSelect'\n )\n\n const selectedFlatRows = React.useMemo(() => {\n const selectedFlatRows = []\n\n rows.forEach(row => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id]\n row.isSelected = !!isSelected\n row.isSomeSelected = isSelected === null\n\n if (isSelected) {\n selectedFlatRows.push(row)\n }\n })\n\n return selectedFlatRows\n }, [rows, selectSubRows, selectedRowIds, getSubRows])\n\n let isAllRowsSelected = Boolean(\n Object.keys(nonGroupedRowsById).length && Object.keys(selectedRowIds).length\n )\n\n let isAllPageRowsSelected = isAllRowsSelected\n\n if (isAllRowsSelected) {\n if (Object.keys(nonGroupedRowsById).some(id => !selectedRowIds[id])) {\n isAllRowsSelected = false\n }\n }\n\n if (!isAllRowsSelected) {\n if (page && page.length && page.some(({ id }) => !selectedRowIds[id])) {\n isAllPageRowsSelected = false\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows })\n }\n }, [dispatch, data])\n\n const toggleAllRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch]\n )\n\n const toggleAllPageRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch]\n )\n\n const toggleRowSelected = React.useCallback(\n (id, value) => dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch]\n )\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n { instance: getInstance() }\n )\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n selectedFlatRows,\n isAllRowsSelected,\n isAllPageRowsSelected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n row.toggleRowSelected = set => instance.toggleRowSelected(row.id, set)\n\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n { instance: instance, row }\n )\n}\n\nfunction getRowIsSelected(row, selectedRowIds, getSubRows) {\n if (selectedRowIds[row.id]) {\n return true\n }\n\n const subRows = getSubRows(row)\n\n if (subRows && subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n return allChildrenSelected ? true : someSelected ? null : false\n }\n\n return false\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst defaultInitialRowStateAccessor = row => ({})\nconst defaultInitialCellStateAccessor = cell => ({})\n\n// Actions\nactions.setRowState = 'setRowState'\nactions.setCellState = 'setCellState'\nactions.resetRowState = 'resetRowState'\n\nexport const useRowState = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowState.pluginName = 'useRowState'\n\nfunction reducer(state, action, previousState, instance) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n rowsById,\n } = instance\n\n if (action.type === actions.init) {\n return {\n rowState: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetRowState) {\n return {\n ...state,\n rowState: instance.initialState.rowState || {},\n }\n }\n\n if (action.type === actions.setRowState) {\n const { rowId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: functionalUpdate(value, oldRowState),\n },\n }\n }\n\n if (action.type === actions.setCellState) {\n const { rowId, columnId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n const oldCellState =\n typeof oldRowState?.cellState?.[columnId] !== 'undefined'\n ? oldRowState.cellState[columnId]\n : initialCellStateAccessor(\n rowsById[rowId]?.cells?.find(cell => cell.column.id === columnId)\n )\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: {\n ...oldRowState,\n cellState: {\n ...(oldRowState.cellState || {}),\n [columnId]: functionalUpdate(value, oldCellState),\n },\n },\n },\n }\n }\n}\n\nfunction useInstance(instance) {\n const { autoResetRowState = true, data, dispatch } = instance\n\n const setRowState = React.useCallback(\n (rowId, value) =>\n dispatch({\n type: actions.setRowState,\n rowId,\n value,\n }),\n [dispatch]\n )\n\n const setCellState = React.useCallback(\n (rowId, columnId, value) =>\n dispatch({\n type: actions.setCellState,\n rowId,\n columnId,\n value,\n }),\n [dispatch]\n )\n\n const getAutoResetRowState = useGetLatest(autoResetRowState)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetRowState()) {\n dispatch({ type: actions.resetRowState })\n }\n }, [data])\n\n Object.assign(instance, {\n setRowState,\n setCellState,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n state: { rowState },\n } = instance\n\n if (row) {\n row.state =\n typeof rowState[row.id] !== 'undefined'\n ? rowState[row.id]\n : initialRowStateAccessor(row)\n\n row.setState = updater => {\n return instance.setRowState(row.id, updater)\n }\n\n row.cells.forEach(cell => {\n if (!row.state.cellState) {\n row.state.cellState = {}\n }\n\n cell.state =\n typeof row.state.cellState[cell.column.id] !== 'undefined'\n ? row.state.cellState[cell.column.id]\n : initialCellStateAccessor(cell)\n\n cell.setState = updater => {\n return instance.setCellState(row.id, cell.column.id, updater)\n }\n })\n }\n}\n","import React from 'react'\n\nimport { functionalUpdate, actions } from '../publicUtils'\n\n// Actions\nactions.resetColumnOrder = 'resetColumnOrder'\nactions.setColumnOrder = 'setColumnOrder'\n\nexport const useColumnOrder = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => {\n return [...deps, instance.state.columnOrder]\n })\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnOrder.pluginName = 'useColumnOrder'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n columnOrder: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetColumnOrder) {\n return {\n ...state,\n columnOrder: instance.initialState.columnOrder || [],\n }\n }\n\n if (action.type === actions.setColumnOrder) {\n return {\n ...state,\n columnOrder: functionalUpdate(action.columnOrder, state.columnOrder),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { columnOrder },\n },\n }\n) {\n // If there is no order, return the normal columns\n if (!columnOrder || !columnOrder.length) {\n return columns\n }\n\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n const columnsInOrder = []\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId)\n if (foundIndex > -1) {\n columnsInOrder.push(columnsCopy.splice(foundIndex, 1)[0])\n }\n }\n\n // If there are any columns left, add them to the end\n return [...columnsInOrder, ...columnsCopy]\n}\n\nfunction useInstance(instance) {\n const { dispatch } = instance\n\n instance.setColumnOrder = React.useCallback(\n columnOrder => {\n return dispatch({ type: actions.setColumnOrder, columnOrder })\n },\n [dispatch]\n )\n}\n","import React from 'react'\n\nimport {\n actions,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n ensurePluginOrder,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, passiveEventSupported } from '../utils'\n\n// Default Column\ndefaultColumn.canResize = true\n\n// Actions\nactions.columnStartResizing = 'columnStartResizing'\nactions.columnResizing = 'columnResizing'\nactions.columnDoneResizing = 'columnDoneResizing'\nactions.resetResize = 'resetResize'\n\nexport const useResizeColumns = hooks => {\n hooks.getResizerProps = [defaultGetResizerProps]\n hooks.getHeaderProps.push({\n style: {\n position: 'relative',\n },\n })\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n}\n\nconst defaultGetResizerProps = (props, { instance, header }) => {\n const { dispatch } = instance\n\n const onResizeStart = (e, header) => {\n let isTouchEvent = false\n if (e.type === 'touchstart') {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n isTouchEvent = true\n }\n const headersToResize = getLeafHeaders(header)\n const headerIdWidths = headersToResize.map(d => [d.id, d.totalWidth])\n\n const clientX = isTouchEvent ? Math.round(e.touches[0].clientX) : e.clientX\n\n let raf\n let mostRecentClientX\n\n const dispatchEnd = () => {\n window.cancelAnimationFrame(raf)\n raf = null\n dispatch({ type: actions.columnDoneResizing })\n }\n const dispatchMove = () => {\n window.cancelAnimationFrame(raf)\n raf = null\n dispatch({ type: actions.columnResizing, clientX: mostRecentClientX })\n }\n\n const scheduleDispatchMoveOnNextAnimationFrame = clientXPos => {\n mostRecentClientX = clientXPos\n if (!raf) {\n raf = window.requestAnimationFrame(dispatchMove)\n }\n }\n\n const handlersAndEvents = {\n mouse: {\n moveEvent: 'mousemove',\n moveHandler: e => scheduleDispatchMoveOnNextAnimationFrame(e.clientX),\n upEvent: 'mouseup',\n upHandler: e => {\n document.removeEventListener(\n 'mousemove',\n handlersAndEvents.mouse.moveHandler\n )\n document.removeEventListener(\n 'mouseup',\n handlersAndEvents.mouse.upHandler\n )\n dispatchEnd()\n },\n },\n touch: {\n moveEvent: 'touchmove',\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n scheduleDispatchMoveOnNextAnimationFrame(e.touches[0].clientX)\n return false\n },\n upEvent: 'touchend',\n upHandler: e => {\n document.removeEventListener(\n handlersAndEvents.touch.moveEvent,\n handlersAndEvents.touch.moveHandler\n )\n document.removeEventListener(\n handlersAndEvents.touch.upEvent,\n handlersAndEvents.touch.moveHandler\n )\n dispatchEnd()\n },\n },\n }\n\n const events = isTouchEvent\n ? handlersAndEvents.touch\n : handlersAndEvents.mouse\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n document.addEventListener(\n events.moveEvent,\n events.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n events.upEvent,\n events.upHandler,\n passiveIfSupported\n )\n\n dispatch({\n type: actions.columnStartResizing,\n columnId: header.id,\n columnWidth: header.totalWidth,\n headerIdWidths,\n clientX,\n })\n }\n\n return [\n props,\n {\n onMouseDown: e => e.persist() || onResizeStart(e, header),\n onTouchStart: e => e.persist() || onResizeStart(e, header),\n style: {\n cursor: 'col-resize',\n },\n draggable: false,\n role: 'separator',\n },\n ]\n}\n\nuseResizeColumns.pluginName = 'useResizeColumns'\n\nfunction reducer(state, action) {\n if (action.type === actions.init) {\n return {\n columnResizing: {\n columnWidths: {},\n },\n ...state,\n }\n }\n\n if (action.type === actions.resetResize) {\n return {\n ...state,\n columnResizing: {\n columnWidths: {},\n },\n }\n }\n\n if (action.type === actions.columnStartResizing) {\n const { clientX, columnId, columnWidth, headerIdWidths } = action\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: clientX,\n headerIdWidths,\n columnWidth,\n isResizingColumn: columnId,\n },\n }\n }\n\n if (action.type === actions.columnResizing) {\n const { clientX } = action\n const { startX, columnWidth, headerIdWidths = [] } = state.columnResizing\n\n const deltaX = clientX - startX\n const percentageDeltaX = deltaX / columnWidth\n\n const newColumnWidths = {}\n\n headerIdWidths.forEach(([headerId, headerWidth]) => {\n newColumnWidths[headerId] = Math.max(\n headerWidth + headerWidth * percentageDeltaX,\n 0\n )\n })\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n columnWidths: {\n ...state.columnResizing.columnWidths,\n ...newColumnWidths,\n },\n },\n }\n }\n\n if (action.type === actions.columnDoneResizing) {\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: null,\n isResizingColumn: null,\n },\n }\n }\n}\n\nconst useInstanceBeforeDimensions = instance => {\n const {\n flatHeaders,\n disableResizing,\n getHooks,\n state: { columnResizing },\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n flatHeaders.forEach(header => {\n const canResize = getFirstDefined(\n header.disableResizing === true ? false : undefined,\n disableResizing === true ? false : undefined,\n true\n )\n\n header.canResize = canResize\n header.width =\n columnResizing.columnWidths[header.id] ||\n header.originalWidth ||\n header.width\n header.isResizing = columnResizing.isResizingColumn === header.id\n\n if (canResize) {\n header.getResizerProps = makePropGetter(getHooks().getResizerProps, {\n instance: getInstance(),\n header,\n })\n }\n })\n}\n\nfunction useInstance(instance) {\n const { plugins, dispatch, autoResetResize = true, columns } = instance\n\n ensurePluginOrder(plugins, ['useAbsoluteLayout'], 'useResizeColumns')\n\n const getAutoResetResize = useGetLatest(autoResetResize)\n useMountedLayoutEffect(() => {\n if (getAutoResetResize()) {\n dispatch({ type: actions.resetResize })\n }\n }, [columns])\n\n const resetResizing = React.useCallback(\n () => dispatch({ type: actions.resetResize }),\n [dispatch]\n )\n\n Object.assign(instance, {\n resetResizing,\n })\n}\n\nfunction getLeafHeaders(header) {\n const leafHeaders = []\n const recurseHeader = header => {\n if (header.columns && header.columns.length) {\n header.columns.map(recurseHeader)\n }\n leafHeaders.push(header)\n }\n recurseHeader(header)\n return leafHeaders\n}\n","const cellStyles = {\n position: 'absolute',\n top: 0,\n}\n\nexport const useAbsoluteLayout = hooks => {\n hooks.getTableBodyProps.push(getRowStyles)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${cell.column.totalLeft}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseAbsoluteLayout.pluginName = 'useAbsoluteLayout'\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n position: 'relative',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n","const cellStyles = {\n display: 'inline-block',\n boxSizing: 'border-box',\n}\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n\nexport const useBlockLayout = hooks => {\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseBlockLayout.pluginName = 'useBlockLayout'\n","export function useFlexLayout(hooks) {\n hooks.getTableProps.push(getTableProps)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n hooks.getHeaderProps.push(getHeaderProps)\n hooks.getCellProps.push(getCellProps)\n hooks.getFooterProps.push(getFooterProps)\n}\n\nuseFlexLayout.pluginName = 'useFlexLayout'\n\nconst getTableProps = (props, { instance }) => [\n props,\n {\n style: {\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n flex: '1 0 auto',\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n\nconst getCellProps = (props, { cell }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: `${cell.column.totalFlexWidth} 0 auto`,\n minWidth: `${cell.column.totalMinWidth}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n]\n\nconst getFooterProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n","import { actions } from '../publicUtils'\n\n// Actions\nactions.columnStartResizing = 'columnStartResizing'\nactions.columnResizing = 'columnResizing'\nactions.columnDoneResizing = 'columnDoneResizing'\nactions.resetResize = 'resetResize'\n\nexport function useGridLayout(hooks) {\n hooks.stateReducers.push(reducer)\n hooks.getTableProps.push(getTableProps)\n hooks.getHeaderProps.push(getHeaderProps)\n hooks.getRowProps.push(getRowProps)\n}\n\nuseGridLayout.pluginName = 'useGridLayout'\n\nconst getTableProps = (props, { instance }) => {\n const gridTemplateColumns = instance.visibleColumns.map(column => {\n if (instance.state.gridLayout.columnWidths[column.id])\n return `${instance.state.gridLayout.columnWidths[column.id]}px`\n // When resizing, lock the width of all unset columns\n // instead of using user-provided width or defaultColumn width,\n // which could potentially be 'auto' or 'fr' units that don't scale linearly\n if (instance.state.columnResizing?.isResizingColumn)\n return `${instance.state.gridLayout.startWidths[column.id]}px`\n if (typeof column.width === 'number') return `${column.width}px`\n return column.width\n })\n return [\n props,\n {\n style: {\n display: `grid`,\n gridTemplateColumns: gridTemplateColumns.join(` `),\n },\n },\n ]\n}\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n id: `header-cell-${column.id}`,\n style: {\n position: `sticky`, //enables a scroll wrapper to be placed around the table and have sticky headers\n gridColumn: `span ${column.totalVisibleHeaderCount}`,\n },\n },\n]\n\nconst getRowProps = (props, { row }) => {\n if (row.isExpanded) {\n return [\n props,\n {\n style: {\n gridColumn: `1 / ${row.cells.length + 1}`,\n },\n },\n ]\n }\n return [props, {}]\n}\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n gridLayout: {\n columnWidths: {},\n },\n ...state,\n }\n }\n\n if (action.type === actions.resetResize) {\n return {\n ...state,\n gridLayout: {\n columnWidths: {},\n },\n }\n }\n\n if (action.type === actions.columnStartResizing) {\n const { columnId, headerIdWidths } = action\n const columnWidth = getElementWidth(columnId)\n\n if (columnWidth !== undefined) {\n const startWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: getElementWidth(column.id),\n }),\n {}\n )\n const minWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: column.minWidth,\n }),\n {}\n )\n const maxWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: column.maxWidth,\n }),\n {}\n )\n\n const headerIdGridWidths = headerIdWidths.map(([headerId]) => [\n headerId,\n getElementWidth(headerId),\n ])\n\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n startWidths,\n minWidths,\n maxWidths,\n headerIdGridWidths,\n columnWidth,\n },\n }\n } else {\n return state\n }\n }\n\n if (action.type === actions.columnResizing) {\n const { clientX } = action\n const { startX } = state.columnResizing\n const {\n columnWidth,\n minWidths,\n maxWidths,\n headerIdGridWidths = [],\n } = state.gridLayout\n\n const deltaX = clientX - startX\n const percentageDeltaX = deltaX / columnWidth\n\n const newColumnWidths = {}\n\n headerIdGridWidths.forEach(([headerId, headerWidth]) => {\n newColumnWidths[headerId] = Math.min(\n Math.max(\n minWidths[headerId],\n headerWidth + headerWidth * percentageDeltaX\n ),\n maxWidths[headerId]\n )\n })\n\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n columnWidths: {\n ...state.gridLayout.columnWidths,\n ...newColumnWidths,\n },\n },\n }\n }\n\n if (action.type === actions.columnDoneResizing) {\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n startWidths: {},\n minWidths: {},\n maxWidths: {},\n },\n }\n }\n}\n\nfunction getElementWidth(columnId) {\n const width = document.getElementById(`header-cell-${columnId}`)?.offsetWidth\n\n if (width !== undefined) {\n return width\n }\n}\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/react-table.production.min.js')\n} else {\n module.exports = require('./dist/react-table.development.js')\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'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 stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","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","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|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|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|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|scale|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|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","// @flow\nimport type { Interpolation } from '../types';\n\nexport default (\n strings: Array,\n interpolations: Array\n): Array => {\n const result = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n};\n","// @flow\nimport { typeOf } from 'react-is';\n\nexport default (x: any): boolean =>\n x !== null &&\n typeof x === 'object' &&\n (x.toString ? x.toString() : Object.prototype.toString.call(x)) === '[object Object]' &&\n !typeOf(x);\n","// @flow\nexport const EMPTY_ARRAY = Object.freeze([]);\nexport const EMPTY_OBJECT = Object.freeze({});\n","// @flow\nexport default function isFunction(test: any): boolean %checks {\n return typeof test === 'function';\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function getComponentName(\n target: $PropertyType\n): string {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n // $FlowFixMe\n target.displayName ||\n // $FlowFixMe\n target.name ||\n 'Component'\n );\n}\n","// @flow\nexport default function isStyledComponent(target: any): boolean %checks {\n return target && typeof target.styledComponentId === 'string';\n}\n","// @flow\n\ndeclare var SC_DISABLE_SPEEDY: ?boolean;\ndeclare var __VERSION__: string;\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY =\n Boolean(typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : (typeof process !== 'undefined' && typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' && process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false' ? false : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : (typeof process !== 'undefined' && typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' && process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false' ? false : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n )\n ));\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","// @flow\nimport errorMap from './errors';\n\nconst ERRORS = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: Array\n) {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n `An error occurred. See https://git.io/JUIaE#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n throw new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport type { GroupedTag, Tag } from './types';\nimport { SPLITTER } from '../constants';\nimport throwStyledError from '../utils/error';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag): GroupedTag => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nclass DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n\n length: number;\n\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number): number {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]): void {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throwStyledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number): void {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number): string {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n}\n","// @flow\n\nimport throwStyledError from '../utils/error';\n\nconst MAX_SMI = 1 << 31 - 1;\n\nlet groupIDRegister: Map = new Map();\nlet reverseRegister: Map = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return (groupIDRegister.get(id): any);\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (\n process.env.NODE_ENV !== 'production' &&\n ((group | 0) < 0 || group > MAX_SMI)\n ) {\n throwStyledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n if (group >= nextFreeGroup) {\n nextFreeGroup = group + 1;\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n","// @flow\n\nimport { SPLITTER, SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport type { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (!names || !rules || !names.size) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n // eslint-disable-next-line\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent || '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = ((nodes[i]: any): HTMLStyleElement);\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n","// @flow\n/* eslint-disable camelcase, no-undef */\n\ndeclare var window: { __webpack_nonce__: string };\n\nconst getNonce = () => {\n\n return typeof window !== 'undefined'\n ? typeof window.__webpack_nonce__ !== 'undefined'\n ? window.__webpack_nonce__\n : null\n : null;\n};\n\nexport default getNonce;\n","// @flow\n\nimport { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport getNonce from '../utils/nonce';\nimport throwStyledError from '../utils/error';\n\nconst ELEMENT_TYPE = 1; /* Node.ELEMENT_TYPE */\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: HTMLElement): void | HTMLStyleElement => {\n const { childNodes } = target;\n\n for (let i = childNodes.length; i >= 0; i--) {\n const child = ((childNodes[i]: any): ?HTMLElement);\n if (child && child.nodeType === ELEMENT_TYPE && child.hasAttribute(SC_ATTR)) {\n return ((child: any): HTMLStyleElement);\n }\n }\n\n return undefined;\n};\n\n/** Create a style element inside `target` or after the last */\nexport const makeStyleTag = (target?: HTMLElement): HTMLStyleElement => {\n const head = ((document.head: any): HTMLElement);\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return ((tag.sheet: any): CSSStyleSheet);\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return ((sheet: any): CSSStyleSheet);\n }\n }\n\n throwStyledError(17);\n return (undefined: any);\n};\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport { makeStyleTag, getSheet } from './dom';\nimport type { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions): Tag => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n\n // Avoid Edge bug where empty style elements don't create sheets\n element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule !== undefined && typeof rule.cssText === 'string') {\n return rule.cssText;\n } else {\n return '';\n }\n }\n}\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport class TextTag implements Tag {\n element: HTMLStyleElement;\n\n nodes: NodeList;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n this.nodes = element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.nodes[index].textContent;\n } else {\n return '';\n }\n }\n}\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: HTMLElement) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n}\n","// @flow\nimport { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport type { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean,\n useCSSOMInjection?: boolean,\n target?: HTMLElement,\n};\n\ntype GlobalStylesAllocationMap = { [key: string]: number };\ntype NamesAllocationMap = Map>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n\n names: NamesAllocationMap;\n\n options: SheetOptions;\n\n server: boolean;\n\n tag: void | GroupedTag;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT,\n globalStyles?: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames?: boolean = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag(): GroupedTag {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id): any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id): any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id): any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n\n /** Outputs the current sheet as a CSS string with markers for SSR */\n toString(): string {\n return outputSheet(this);\n }\n}\n","// @flow\n/* eslint-disable no-bitwise */\n\nconst AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number): string =>\n String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number): string {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","// @flow\n/* eslint-disable */\n\nexport const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string): number => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string): number => {\n return phash(SEED, x);\n};\n","// @flow\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\nimport type { RuleSet } from '../types';\n\nexport default function isStaticRules(rules: RuleSet): boolean {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n","// @flow\nimport { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n\n baseStyle: ?ComponentStyle;\n\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n staticRulesId: string;\n\n constructor(rules: RuleSet, componentId: string, baseStyle?: ComponentStyle) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic = process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n this.baseHash = phash(SEED, componentId);\n\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n generateAndInjectStyles(executionContext: Object, styleSheet: StyleSheet, stylis: Stringifier) {\n const { componentId } = this;\n\n const names = [];\n\n if (this.baseStyle) {\n names.push(this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis));\n }\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(componentId, this.staticRulesId)) {\n names.push(this.staticRulesId);\n } else {\n const cssStatic = flatten(this.rules, executionContext, styleSheet, stylis).join('');\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, componentId);\n\n styleSheet.insertRules(componentId, name, cssStaticFormatted);\n }\n\n names.push(name);\n this.staticRulesId = name;\n }\n } else {\n const { length } = this.rules;\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule + i);\n } else if (partRule) {\n const partChunk = flatten(partRule, executionContext, styleSheet, stylis);\n const partString = Array.isArray(partChunk) ? partChunk.join('') : partChunk;\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssFormatted = stylis(css, `.${name}`, undefined, componentId);\n styleSheet.insertRules(componentId, name, cssFormatted);\n }\n\n names.push(name);\n }\n }\n\n return names.join(' ');\n }\n}\n","import Stylis from '@emotion/stylis';\nimport { type Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { phash, SEED } from './hash';\nimport insertRulePlugin from './stylisPluginInsertRule';\n\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\nconst COMPLEX_SELECTOR_PREFIX = [':', '[', '.', '#'];\n\ntype StylisInstanceConstructorArgs = {\n options?: Object,\n plugins?: Array,\n};\n\nexport default function createStylisInstance({\n options = EMPTY_OBJECT,\n plugins = EMPTY_ARRAY,\n}: StylisInstanceConstructorArgs = EMPTY_OBJECT) {\n const stylis = new Stylis(options);\n\n // Wrap `insertRulePlugin to build a list of rules,\n // and then make our own plugin to return the rules. This\n // makes it easier to hook into the existing SSR architecture\n\n let parsingRules = [];\n\n // eslint-disable-next-line consistent-return\n const returnRulesPlugin = context => {\n if (context === -2) {\n const parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n };\n\n const parseRulesPlugin = insertRulePlugin(rule => {\n parsingRules.push(rule);\n });\n\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n let _consecutiveSelfRefRegExp: RegExp;\n\n const selfReferenceReplacer = (match, offset, string) => {\n if (\n // do not replace the first occurrence if it is complex (has a modifier)\n (offset === 0 ? COMPLEX_SELECTOR_PREFIX.indexOf(string[_selector.length]) === -1 : true) &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n !string.match(_consecutiveSelfRefRegExp)\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v3.5.4#plugins <- more info about the context phase values\n * \"2\" means this plugin is taking effect at the very end after all other processing is complete\n */\n const selfReferenceReplacementPlugin = (context, _, selectors) => {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n stylis.use([...plugins, selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\n\n function stringifyRules(css, selector, prefix, componentId = '&'): Stringifier {\n const flatCSS = css.replace(COMMENT_REGEX, '');\n const cssStr = selector && prefix ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n _consecutiveSelfRefRegExp = new RegExp(`(\\\\${_selector}\\\\b){2,}`);\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n }\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2016 Sultan Tarimo\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR\n * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/* eslint-disable */\n\nexport default function(insertRule) {\n const delimiter = '/*|*/';\n const needle = `${delimiter}}`;\n\n function toSheet(block) {\n if (block) {\n try {\n insertRule(`${block}}`);\n } catch (e) {}\n }\n }\n\n return function ruleSheet(\n context,\n content,\n selectors,\n parents,\n line,\n column,\n length,\n ns,\n depth,\n at\n ) {\n switch (context) {\n // property\n case 1:\n // @import\n if (depth === 0 && content.charCodeAt(0) === 64) return insertRule(`${content};`), '';\n break;\n // selector\n case 2:\n if (ns === 0) return content + delimiter;\n break;\n // at-rule\n case 3:\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n return insertRule(selectors[0] + content), '';\n default:\n return content + (at === 0 ? delimiter : '');\n }\n case -2:\n content.split(needle).forEach(toSheet);\n }\n };\n}\n","// @flow\nimport React, { type Context, type Node, useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport StyleSheet from '../sheet';\nimport type { Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\ntype Props = {\n children?: Node,\n disableCSSOMInjection?: boolean,\n disableVendorPrefixes?: boolean,\n sheet?: StyleSheet,\n stylisPlugins?: Array,\n target?: HTMLElement,\n};\n\nexport const StyleSheetContext: Context = React.createContext();\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\nexport const StylisContext: Context = React.createContext();\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport const masterSheet: StyleSheet = new StyleSheet();\nexport const masterStylis: Stringifier = createStylisInstance();\n\nexport function useStyleSheet(): StyleSheet {\n return useContext(StyleSheetContext) || masterSheet;\n}\n\nexport function useStylis(): Stringifier {\n return useContext(StylisContext) || masterStylis;\n}\n\nexport default function StyleSheetManager(props: Props) {\n const [plugins, setPlugins] = useState(props.stylisPlugins);\n const contextStyleSheet = useStyleSheet();\n\n const styleSheet = useMemo(() => {\n let sheet = contextStyleSheet;\n\n if (props.sheet) {\n // eslint-disable-next-line prefer-destructuring\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target]);\n\n const stylis = useMemo(\n () =>\n createStylisInstance({\n options: { prefix: !props.disableVendorPrefixes },\n plugins,\n }),\n [props.disableVendorPrefixes, plugins]\n );\n\n useEffect(() => {\n if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n }, [props.stylisPlugins]);\n\n return (\n \n \n {process.env.NODE_ENV !== 'production'\n ? React.Children.only(props.children)\n : props.children}\n \n \n );\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport { type Stringifier } from '../types';\nimport throwStyledError from '../utils/error';\nimport { masterStylis } from './StyleSheetManager';\n\nexport default class Keyframes {\n id: string;\n\n name: string;\n\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = masterStylis) => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n toString = () => {\n return throwStyledError(12, String(this.name));\n };\n\n getName(stylisInstance: Stringifier = masterStylis) {\n return this.name + stylisInstance.hash;\n }\n}\n","// @flow\n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nconst uppercaseCheck = /([A-Z])/;\nconst uppercasePattern = /([A-Z])/g;\nconst msPattern = /^ms-/;\nconst prefixAndLowerCase = (char: string): string => `-${char.toLowerCase()}`;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nexport default function hyphenateStyleName(string: string): string {\n return uppercaseCheck.test(string)\n ? string\n .replace(uppercasePattern, prefixAndLowerCase)\n .replace(msPattern, '-ms-')\n : string;\n}\n","// @flow\nimport { isElement } from 'react-is';\nimport getComponentName from './getComponentName';\nimport isFunction from './isFunction';\nimport isStatelessFunction from './isStatelessFunction';\nimport isPlainObject from './isPlainObject';\nimport isStyledComponent from './isStyledComponent';\nimport Keyframes from '../models/Keyframes';\nimport hyphenate from './hyphenateStyleName';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { type Stringifier } from '../types';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = chunk => chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Object, prevKey?: string): Array => {\n const rules = [];\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || isFalsish(obj[key])) continue;\n\n if ((Array.isArray(obj[key]) && obj[key].isCss) || isFunction(obj[key])) {\n rules.push(`${hyphenate(key)}:`, obj[key], ';');\n } else if (isPlainObject(obj[key])) {\n rules.push(...objToCssArray(obj[key], key));\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, obj[key])};`);\n }\n }\n\n return prevKey ? [`${prevKey} {`, ...rules, '}'] : rules;\n};\n\nexport default function flatten(\n chunk: any,\n executionContext: ?Object,\n styleSheet: ?Object,\n stylisInstance: ?Stringifier\n): any {\n if (Array.isArray(chunk)) {\n const ruleSet = [];\n\n for (let i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet, stylisInstance);\n\n if (result === '') continue;\n else if (Array.isArray(result)) ruleSet.push(...result);\n else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return '';\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return `.${chunk.styledComponentId}`;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(result)) {\n // eslint-disable-next-line no-console\n console.warn(\n `${getComponentName(\n chunk\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten(result, executionContext, styleSheet, stylisInstance);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return chunk.getName(stylisInstance);\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n","// @flow\nexport default function isStatelessFunction(test: any): boolean {\n return (\n typeof test === 'function'\n && !(\n test.prototype\n && test.prototype.isReactComponent\n )\n );\n}\n","// @flow\nimport unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any): any {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n","// @flow\nimport interleave from '../utils/interleave';\nimport isPlainObject from '../utils/isPlainObject';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport isFunction from '../utils/isFunction';\nimport flatten from '../utils/flatten';\nimport type { Interpolation, RuleSet, Styles } from '../types';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = arg => {\n if (Array.isArray(arg)) {\n // eslint-disable-next-line no-param-reassign\n arg.isCss = true;\n }\n return arg;\n};\n\nexport default function css(styles: Styles, ...interpolations: Array): RuleSet {\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return addTag(flatten(interleave(EMPTY_ARRAY, [styles, ...interpolations])));\n }\n\n if (interpolations.length === 0 && styles.length === 1 && typeof styles[0] === 'string') {\n // $FlowFixMe\n return styles;\n }\n\n // $FlowFixMe\n return addTag(flatten(interleave(styles, interpolations)));\n}\n","// @flow\n\nimport { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string) => {\n if (process.env.NODE_ENV !== 'production') {\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error // eslint-disable-line no-console\n try {\n let didNotCallInvalidHook = true\n /* $FlowIgnore[cannot-write] */\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => { // eslint-disable-line no-console\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n }\n // We purposefully call `useRef` outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useRef();\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n // eslint-disable-next-line no-console\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(error.message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n /* $FlowIgnore[cannot-write] */\n console.error = originalConsoleError; // eslint-disable-line no-console\n }\n }\n};\n","// @flow\nimport { EMPTY_OBJECT } from './empties';\n\ntype Props = {\n theme?: any,\n};\n\nexport default (props: Props, providedTheme: any, defaultProps: any = EMPTY_OBJECT) => {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n};\n","// @flow\n\n// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string): string {\n return (\n str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '')\n );\n}\n","// @flow\n/* eslint-disable */\nimport generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default (str: string): string => {\n return generateAlphabeticName(hash(str) >>> 0);\n};\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function isTag(target: $PropertyType): boolean %checks {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n","/* eslint-disable */\n/**\n mixin-deep; https://github.com/jonschlinkert/mixin-deep\n Inlined such that it will be consistently transpiled to an IE-compatible syntax.\n\n The MIT License (MIT)\n\n Copyright (c) 2014-present, Jon Schlinkert.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\n\nconst isObject = val => {\n return (\n typeof val === 'function' || (typeof val === 'object' && val !== null && !Array.isArray(val))\n );\n};\n\nconst isValidKey = key => {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n};\n\nfunction mixin(target, val, key) {\n const obj = target[key];\n if (isObject(val) && isObject(obj)) {\n mixinDeep(obj, val);\n } else {\n target[key] = val;\n }\n}\n\nexport default function mixinDeep(target, ...rest) {\n for (const obj of rest) {\n if (isObject(obj)) {\n for (const key in obj) {\n if (isValidKey(key)) {\n mixin(target, obj[key], key);\n }\n }\n }\n }\n\n return target;\n}\n","// @flow\nimport React, { useContext, useMemo, type Element, type Context } from 'react';\nimport throwStyledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\nexport type Theme = { [key: string]: mixed };\n\ntype ThemeArgument = Theme | ((outerTheme?: Theme) => Theme);\n\ntype Props = {\n children?: Element,\n theme: ThemeArgument,\n};\n\nexport const ThemeContext: Context = React.createContext();\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: Theme): Theme {\n if (!theme) {\n return throwStyledError(14);\n }\n\n if (isFunction(theme)) {\n const mergedTheme = theme(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n return throwStyledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n return throwStyledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props) {\n const outerTheme = useContext(ThemeContext);\n const themeContext = useMemo(() => mergeTheme(props.theme, outerTheme), [\n props.theme,\n outerTheme,\n ]);\n\n if (!props.children) {\n return null;\n }\n\n return {props.children};\n}\n","// @flow\nimport validAttr from '@emotion/is-prop-valid';\nimport hoist from 'hoist-non-react-statics';\nimport React, { createElement, type Ref, useContext, useDebugValue } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n Attrs,\n IStyledComponent,\n IStyledStatics,\n RuleSet,\n ShouldForwardProp,\n Target,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport getComponentName from '../utils/getComponentName';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport joinStrings from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheet, useStylis } from './StyleSheetManager';\nimport { ThemeContext } from './ThemeProvider';\n\nconst identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(displayName?: string, parentComponentId?: string) {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useResolvedAttrs(theme: any = EMPTY_OBJECT, props: Config, attrs: Attrs) {\n // NOTE: can't memoize this\n // returns [context, resolvedAttrs]\n // where resolvedAttrs is only the things injected by the attrs themselves\n const context = { ...props, theme };\n const resolvedAttrs = {};\n\n attrs.forEach(attrDef => {\n let resolvedAttrDef = attrDef;\n let key;\n\n if (isFunction(resolvedAttrDef)) {\n resolvedAttrDef = resolvedAttrDef(context);\n }\n\n /* eslint-disable guard-for-in */\n for (key in resolvedAttrDef) {\n context[key] = resolvedAttrs[key] =\n key === 'className'\n ? joinStrings(resolvedAttrs[key], resolvedAttrDef[key])\n : resolvedAttrDef[key];\n }\n /* eslint-enable guard-for-in */\n });\n\n return [context, resolvedAttrs];\n}\n\nfunction useInjectedStyle(\n componentStyle: ComponentStyle,\n isStatic: boolean,\n resolvedAttrs: T,\n warnTooManyClasses?: $Call\n) {\n const styleSheet = useStyleSheet();\n const stylis = useStylis();\n\n const className = isStatic\n ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis)\n : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n if (process.env.NODE_ENV !== 'production') useDebugValue(className);\n\n if (process.env.NODE_ENV !== 'production' && !isStatic && warnTooManyClasses) {\n warnTooManyClasses(className);\n }\n\n return className;\n}\n\nfunction useStyledComponentImpl(\n forwardedComponent: IStyledComponent,\n props: Object,\n forwardedRef: Ref,\n isStatic: boolean\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n shouldForwardProp,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n if (process.env.NODE_ENV !== 'production') useDebugValue(styledComponentId);\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, useContext(ThemeContext), defaultProps);\n\n const [context, attrs] = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs);\n\n const generatedClassName = useInjectedStyle(\n componentStyle,\n isStatic,\n context,\n process.env.NODE_ENV !== 'production' ? forwardedComponent.warnTooManyClasses : undefined\n );\n\n const refToForward = forwardedRef;\n\n const elementToBeCreated: Target = attrs.$as || props.$as || attrs.as || props.as || target;\n\n const isTargetTag = isTag(elementToBeCreated);\n const computedProps = attrs !== props ? { ...props, ...attrs } : props;\n const propsForElement = {};\n\n // eslint-disable-next-line guard-for-in\n for (const key in computedProps) {\n if (key[0] === '$' || key === 'as') continue;\n else if (key === 'forwardedAs') {\n propsForElement.as = computedProps[key];\n } else if (\n shouldForwardProp\n ? shouldForwardProp(key, validAttr, elementToBeCreated)\n : isTargetTag\n ? validAttr(key)\n : true\n ) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (props.style && attrs.style !== props.style) {\n propsForElement.style = { ...props.style, ...attrs.style };\n }\n\n propsForElement.className = Array.prototype\n .concat(\n foldedComponentIds,\n styledComponentId,\n generatedClassName !== styledComponentId ? generatedClassName : null,\n props.className,\n attrs.className\n )\n .filter(Boolean)\n .join(' ');\n\n propsForElement.ref = refToForward;\n\n return createElement(elementToBeCreated, propsForElement);\n}\n\nexport default function createStyledComponent(\n target: $PropertyType,\n options: {\n attrs?: Attrs,\n componentId: string,\n displayName?: string,\n parentComponentId?: string,\n shouldForwardProp?: ShouldForwardProp,\n },\n rules: RuleSet\n) {\n const isTargetStyledComp = isStyledComponent(target);\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && ((target: any): IStyledComponent).attrs\n ? Array.prototype.concat(((target: any): IStyledComponent).attrs, attrs).filter(Boolean)\n : attrs;\n\n // eslint-disable-next-line prefer-destructuring\n let shouldForwardProp = options.shouldForwardProp;\n\n if (isTargetStyledComp && target.shouldForwardProp) {\n if (options.shouldForwardProp) {\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, filterFn, elementToBeCreated) =>\n ((((target: any): IStyledComponent).shouldForwardProp: any): ShouldForwardProp)(\n prop,\n filterFn,\n elementToBeCreated\n ) &&\n ((options.shouldForwardProp: any): ShouldForwardProp)(prop, filterFn, elementToBeCreated);\n } else {\n // eslint-disable-next-line prefer-destructuring\n shouldForwardProp = ((target: any): IStyledComponent).shouldForwardProp;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? ((target: Object).componentStyle: ComponentStyle) : undefined\n );\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n const isStatic = componentStyle.isStatic && attrs.length === 0;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent: IStyledComponent;\n\n const forwardRef = (props, ref) =>\n // eslint-disable-next-line\n useStyledComponentImpl(WrappedStyledComponent, props, ref, isStatic);\n\n forwardRef.displayName = displayName;\n\n WrappedStyledComponent = ((React.forwardRef(forwardRef): any): IStyledComponent);\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.displayName = displayName;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? Array.prototype.concat(\n ((target: any): IStyledComponent).foldedComponentIds,\n ((target: any): IStyledComponent).styledComponentId\n )\n : EMPTY_ARRAY;\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp\n ? ((target: any): IStyledComponent).target\n : target;\n\n WrappedStyledComponent.withComponent = function withComponent(tag: Target) {\n const { componentId: previousComponentId, ...optionsToCopy } = options;\n\n const newComponentId =\n previousComponentId &&\n `${previousComponentId}-${isTag(tag) ? tag : escape(getComponentName(tag))}`;\n\n const newOptions = {\n ...optionsToCopy,\n attrs: finalAttrs,\n componentId: newComponentId,\n };\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, ((target: any): IStyledComponent).defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n WrappedStyledComponent.toString = () => `.${WrappedStyledComponent.styledComponentId}`;\n\n if (isCompositeComponent) {\n hoist<\n IStyledStatics,\n $PropertyType,\n { [key: $Keys]: true }\n >(WrappedStyledComponent, ((target: any): $PropertyType), {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n withComponent: true,\n });\n }\n\n return WrappedStyledComponent;\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(\n target: $PropertyType\n): string {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport default function joinStrings(a: ?String, b: ?String): ?String {\n return a && b ? `${a} ${b}` : a || b;\n}\n","// @flow\n// Thanks to ReactDOMFactories for this handy list!\n\nexport default [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'textPath',\n 'tspan',\n];\n","// @flow\nimport constructWithOptions from './constructWithOptions';\nimport StyledComponent from '../models/StyledComponent';\nimport domElements from '../utils/domElements';\n\nimport type { Target } from '../types';\n\nconst styled = (tag: Target) => constructWithOptions(StyledComponent, tag);\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n styled[domElement] = styled(domElement);\n});\n\nexport default styled;\n","// @flow\nimport { isValidElementType } from 'react-is';\nimport css from './css';\nimport throwStyledError from '../utils/error';\nimport { EMPTY_OBJECT } from '../utils/empties';\n\nimport type { Target } from '../types';\n\nexport default function constructWithOptions(\n componentConstructor: Function,\n tag: Target,\n options: Object = EMPTY_OBJECT\n) {\n if (!isValidElementType(tag)) {\n return throwStyledError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n const templateFunction = (...args) => componentConstructor(tag, options, css(...args));\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = config =>\n constructWithOptions(componentConstructor, tag, { ...options, ...config });\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = attrs =>\n constructWithOptions(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n return templateFunction;\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\n\nexport default class GlobalStyle {\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n constructor(rules: RuleSet, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n const flatCSS = flatten(this.rules, executionContext, styleSheet, stylis);\n const css = stylis(flatCSS.join(''), '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet) {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n","// @flow\n/* eslint-disable no-underscore-dangle */\nimport React from 'react';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport throwStyledError from '../utils/error';\nimport getNonce from '../utils/nonce';\nimport StyleSheet from '../sheet';\nimport StyleSheetManager from './StyleSheetManager';\n\ndeclare var __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n isStreaming: boolean;\n\n instance: StyleSheet;\n\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n if (!css) return '';\n\n const nonce = getNonce();\n const attrs = [nonce && `nonce=\"${nonce}\"`, `${SC_ATTR}=\"true\"`, `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`];\n const htmlAttr = attrs.filter(Boolean).join(' ');\n\n return ``;\n };\n\n collectStyles(children: any) {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: this.instance.toString(),\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props: any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [