{"version":3,"sources":["../node_modules/antd/es/row/style/index.js","../node_modules/antd/es/grid/row.js","../node_modules/antd/es/row/index.js","components/NavbarLandingPage/loadable.js","components/toolTipCourse/loadable.js","components/FooterLandingPage/loadable.js","images/BGcarouselLanding.svg","containers/landingPage/style.js","images/BannerLanding1.svg","images/BannerLanding2.svg","images/BannerLanding3.svg","images/BannerLanding4.png","containers/landingPage/component/Carousel/style.js","containers/landingPage/component/Carousel/index.js","containers/landingPage/component/Feedback/style.js","images/icons/IconLandingPage/Avatar1FeedbackLanding.svg","images/icons/IconLandingPage/Avatar2FeedbackLanding.svg","images/icons/IconLandingPage/Avatar3FeedbackLanding.svg","images/icons/IconLandingPage/quoteFeedbackLanding.svg","images/icons/IconLandingPage/StarFeedbackLanding.svg","containers/landingPage/component/Feedback/index.js","containers/landingPage/component/DetailClasswin/style.js","containers/landingPage/component/style.js","containers/landingPage/component/TextPicture/index.js","images/CertificateLanding.svg","images/icons/IconLandingPage/TalkLanding.svg","images/icons/IconLandingPage/CreateLanding.svg","containers/landingPage/component/DetailClasswin/index.js","images/ForStudentLanding.svg","images/ForTeacherLanding.svg","containers/landingPage/component/SelectType/style.js","containers/landingPage/component/SelectType/index.js","images/icons/IconLandingPage/StatisticLandingDesktop.png","images/icons/IconLandingPage/StatisticLandingMobile.svg","containers/landingPage/component/Statistic/index.js","images/CreateCourseBGLanding1.jpg","images/SaleCourseBGLanding1.jpg","containers/landingPage/component/CreateSale/style.js","containers/landingPage/component/CreateSale/index.js","containers/landingPage/component/RecommendCard/style.js","containers/landingPage/component/ListView/index.js","containers/landingPage/component/RecommendCard/index.js","containers/landingPage/component/OrganizeCard/style.js","containers/landingPage/component/OrganizeCard/index.js","containers/landingPage/index.js"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","tuple","Row","React","props","ref","_classNames","customizePrefixCls","prefixCls","justify","align","className","style","children","_props$gutter","gutter","wrap","others","_React$useContext","ConfigContext","getPrefixCls","direction","_React$useState","xs","sm","md","lg","xl","xxl","_React$useState2","_slicedToArray","screens","setScreens","supportFlexGap","useFlexGapSupport","gutterRef","token","ResponsiveObserve","subscribe","screen","currentGutter","current","Array","isArray","_typeof","unsubscribe","gutters","results","undefined","forEach","g","index","responsiveArray","breakpoint","getGutter","classes","classNames","_defineProperty","concat","rowStyle","horizontalGutter","verticalGutter","marginLeft","marginRight","_gutters","rowGap","marginTop","marginBottom","_gutters2","gutterH","gutterV","rowContext","RowContext","Provider","value","_extends","Loadable","loader","loading","RowStyle","styled","img","Typography","theme","primary8","div","src","Container","Button","primary1","section","ColCarousel","BGcarousel","Banner","CarouselStyle","DataNoButton","title1","title2","desc","BannerLaning3","BannerLaning2","BannerLaning1","DataNoButtonSmall","desc1","desc2","MyCarousel","maxWidth","showArrows","autoPlay","interval","infiniteLoop","showStatus","showThumbs","display","justifyContent","alignItems","flexDirection","paddingTop","fontSize","color","fontWeight","padding","to","bgColor","width","heightButton","height","BannerLaning4","alt","map","item","idx","minWidth","primary","ColStyleReview","TypoDescReview","CustomGrid","gap","Feedback","reviewData","avatar","Avatar1","name","icon","quote","star","Star","Avatar2","Avatar3","reviewDataSlice","slice","review","span","bold","TypoGradient","ColStyle","Image","TextPicture","title","sizeTitle","sizeDesc","margin","lineHeight","superbold","DetailClasswin","CertificateLanding","offset","TalkLanding","CreateLanding","SelectTypeStyle","image","ButtonStyleSelectType","TypoStyleCreateSale","selectType","ForStudentLanding","ForTeacherLanding","statistic","StatisticLandingPageMobile","objectFit","StatisticLandingDesktop","CreateSaleStyle","ButtonStyleCreate","primary16","ButtonStyleSale","Createsale","CreateBG","SaleBG","href","target","rel","Wrapper","gray8","isFirst","locale","css","url","button","active","background","gray6","primary2","EmptyCard","ListView","id","data","dataLength","renderItem","emptyTitle","emptyDesc","fetchMoreData","skip","EmptyButton","addCard","addCardVisible","useState","hasMore","setHasMore","loadMore","setLoadMore","setLoading","newSkip","setNewSkip","location","useHistory","useEffect","search","next","a","setTimeout","ContenLoader","_","isEmpty","Custom2","noMargin","small","btn","EmptyFolder","overflow","Padding","toString","defaultProps","selection","store","select","models","isTeacher","AppUser","connect","state","Course","courseList","courseListCount","courseCategories","CourseCategories","courseLevels","CourseLevels","appUser","Language","showInstructor","ModalState","getCourseCatalog","getCourseCatalogCount","getCourseCategoriesWithCount","getCourseLevels","fetchMe","updateProfile","onOpenShowInstructor","getCourseCategories","updateLocale","setOpenProfileMenu","Intro","recommendCourses","setReommendCourses","fetchData","axios","get","response","recommendedCourses","console","log","error","levels","reduce","obj","slicedData","link","slug","OrganizeCourses","setOrganizeCourses","workCourses","LandingPage","backgroundColor","Carousel","Statistic","SelectType"],"mappings":"kHAAA,gB,4ICKIA,EAAgC,SAAUC,EAAGC,GAC/C,IAAIC,EAAI,GAER,IAAK,IAAIC,KAAKH,EACRI,OAAOC,UAAUC,eAAeC,KAAKP,EAAGG,IAAMF,EAAEO,QAAQL,GAAK,IAAGD,EAAEC,GAAKH,EAAEG,IAG/E,GAAS,MAALH,GAAqD,oBAAjCI,OAAOK,sBAA2C,KAAIC,EAAI,EAAb,IAAgBP,EAAIC,OAAOK,sBAAsBT,GAAIU,EAAIP,EAAEQ,OAAQD,IAClIT,EAAEO,QAAQL,EAAEO,IAAM,GAAKN,OAAOC,UAAUO,qBAAqBL,KAAKP,EAAGG,EAAEO,MAAKR,EAAEC,EAAEO,IAAMV,EAAEG,EAAEO,KAEhG,OAAOR,GAUOW,YAAM,MAAO,SAAU,SAAU,WAChCA,YAAM,QAAS,MAAO,SAAU,eAAgB,gBAAiB,gBAoHnEC,MAnHQC,cAAiB,SAAUC,EAAOC,GACvD,IAAIC,EAEAC,EAAqBH,EAAMI,UAC3BC,EAAUL,EAAMK,QAChBC,EAAQN,EAAMM,MACdC,EAAYP,EAAMO,UAClBC,EAAQR,EAAMQ,MACdC,EAAWT,EAAMS,SACjBC,EAAgBV,EAAMW,OACtBA,OAA2B,IAAlBD,EAA2B,EAAIA,EACxCE,EAAOZ,EAAMY,KACbC,EAAS9B,EAAOiB,EAAO,CAAC,YAAa,UAAW,QAAS,YAAa,QAAS,WAAY,SAAU,SAErGc,EAAoBf,aAAiBgB,KACrCC,EAAeF,EAAkBE,aACjCC,EAAYH,EAAkBG,UAE9BC,EAAkBnB,WAAe,CACnCoB,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,KAAK,IAEHC,EAAmBC,YAAeR,EAAiB,GACnDS,EAAUF,EAAiB,GAC3BG,EAAaH,EAAiB,GAE9BI,EAAiBC,cACjBC,EAAYhC,SAAaY,GAE7BZ,aAAgB,WACd,IAAIiC,EAAQC,IAAkBC,WAAU,SAAUC,GAChD,IAAIC,EAAgBL,EAAUM,SAAW,IAEpCC,MAAMC,QAAQH,IAA6C,WAA3BI,YAAQJ,IAA+BE,MAAMC,QAAQH,KAAiD,WAA9BI,YAAQJ,EAAc,KAAkD,WAA9BI,YAAQJ,EAAc,OAC3KR,EAAWO,MAGf,OAAO,WACL,OAAOF,IAAkBQ,YAAYT,MAEtC,IAEH,IAoBI5B,EAAYY,EAAa,MAAOb,GAChCuC,EArBY,WACd,IAAIC,EAAU,MAACC,OAAWA,GAgB1B,OAfuBN,MAAMC,QAAQ5B,GAAUA,EAAS,CAACA,OAAQiC,IAChDC,SAAQ,SAAUC,EAAGC,GACpC,GAAmB,WAAfP,YAAQM,GACV,IAAK,IAAIpD,EAAI,EAAGA,EAAIsD,IAAgBrD,OAAQD,IAAK,CAC/C,IAAIuD,EAAaD,IAAgBtD,GAEjC,GAAIiC,EAAQsB,SAAiCL,IAAlBE,EAAEG,GAA2B,CACtDN,EAAQI,GAASD,EAAEG,GACnB,YAIJN,EAAQI,GAASD,KAGdH,EAIKO,GACVC,EAAUC,IAAWhD,GAAYF,EAAc,GAAImD,YAAgBnD,EAAa,GAAGoD,OAAOlD,EAAW,aAAsB,IAATQ,GAAiByC,YAAgBnD,EAAa,GAAGoD,OAAOlD,EAAW,KAAKkD,OAAOjD,GAAUA,GAAUgD,YAAgBnD,EAAa,GAAGoD,OAAOlD,EAAW,KAAKkD,OAAOhD,GAAQA,GAAQ+C,YAAgBnD,EAAa,GAAGoD,OAAOlD,EAAW,QAAuB,QAAda,GAAsBf,GAAcK,GAElYgD,EAAW,GACXC,EAAiC,MAAdd,EAAQ,IAAcA,EAAQ,GAAK,EAAIA,EAAQ,IAAM,OAAIE,EAC5Ea,EAA+B,MAAdf,EAAQ,IAAcA,EAAQ,GAAK,EAAIA,EAAQ,IAAM,OAAIE,EAO9E,GALIY,IACFD,EAASG,WAAaF,EACtBD,EAASI,YAAcH,GAGrB3B,EAAgB,CAElB,IAAI+B,EAAWlC,YAAegB,EAAS,GAEvCa,EAASM,OAASD,EAAS,QAClBH,IACTF,EAASO,UAAYL,EACrBF,EAASQ,aAAeN,GAK1B,IAAIO,EAAYtC,YAAegB,EAAS,GACpCuB,EAAUD,EAAU,GACpBE,EAAUF,EAAU,GAEpBG,EAAapE,WAAc,WAC7B,MAAO,CACLY,OAAQ,CAACsD,EAASC,GAClBtD,KAAMA,EACNiB,eAAgBA,KAEjB,CAACoC,EAASC,EAAStD,EAAMiB,IAC5B,OAAoB9B,gBAAoBqE,IAAWC,SAAU,CAC3DC,MAAOH,GACOpE,gBAAoB,MAAOwE,YAAS,GAAI1D,EAAQ,CAC9DN,UAAW4C,EACX3C,MAAO+D,YAASA,YAAS,GAAIhB,GAAW/C,GACxCP,IAAKA,IACHQ,OCtISX,O,kCCDf,kBAEe0E,GAAS,CACtBC,OAAQ,kBAAM,sEACdC,QAAS,kBAAM,S,kCCJjB,qBAEeF,QAAS,CACtBC,OAAQ,kBAAM,kCACdC,QAAS,kBAAM,S,kCCJjB,qBAEeF,QAAS,CACtBC,OAAQ,kBAAM,kCACdC,QAAS,kBAAM,S,kCCJF,QAA0B,+C,wPC2LnCC,IAtLQC,WAAOC,IAAV,iWAsBED,mBAAOE,KAAPF,CAAH,qQAKK,qBAAGG,MAAkB,gBAEzB,SAAC/E,GAAD,OAAWA,EAAM+E,MAAMC,YAGjB,qBAAGD,MAAkB,eAKvBH,WAAOK,IAAV,gdACc,SAACjF,GAAD,OAAWA,EAAMkF,OAkBxBN,mBAAOO,KAAPP,CAAH,0LAWIA,WAAOC,IAAV,uIAQCD,WAAOK,IAAV,uEAKQL,WAAOK,IAAV,gDAIJL,mBAAOQ,KAAPR,CAAH,gLAES,SAAC5E,GAAD,OAAWA,EAAM+E,MAAMM,YAIrB,SAACrF,GAAD,OAAWA,EAAM+E,MAAMM,YAG3BT,mBAAOQ,KAAPR,CAAH,6ZAMF,qBAAGG,MAAkB,cAGhC,GAKE,IAGW,qBAAGA,MAAkB,eAKtBH,WAAOU,QAAV,mYAOP,IAwBUV,WAAOK,IAAV,4hBAoCIL,mBAAO,KAAPA,CAAH,yMAYRW,GAAcX,mBAAO,KAAPA,CAAH,sRACSY,M,WCxMX,I,QAAA,IAA0B,4CCA1B,OAA0B,2CCA1B,OAA0B,2CCA1B,OAA0B,2CCGnCC,GAASb,WAAOC,IAAV,2PA6BNa,IAdcd,WAAOC,IAAV,iPAcKD,WAAOK,IAAV,wL,mCClBbU,GAAe,CACnB,CACEC,OAAQ,yGACRC,OAAQ,6FACRC,KAAM,oSACNZ,IAAKa,IAEP,CACEH,OAAQ,uIACRC,OAAQ,6IACRC,KAAM,8cACNZ,IAAKc,IAEP,CACEJ,OAAQ,gKACRC,OAAQ,uDACRC,KAAM,oSACNZ,IAAKe,KAIHC,GAAoB,CACxB,CACEN,OAAQ,yGACRC,OAAQ,6FACRM,MAAO,oSACPC,MAAO,iLACPlB,IAAKa,IAEP,CACEH,OAAQ,uIACRC,OAAQ,6IACRM,MAAO,sPACPC,MAAO,2NACPlB,IAAKc,IAEP,CACEJ,OAAQ,gKACRC,OAAQ,uDACRM,MAAO,qHACPC,MAAO,kLACPlB,IAAKe,KA8OMI,GA1OI,WACjB,OACE,gBAAC,KAAD,WACE,eAAC,KAAD,CAAQC,SAAU,IAAlB,SACE,gBAAC,YAAD,CACEC,YAAY,EACZC,UAAU,EACVC,SAAU,IACVC,cAAc,EACdC,YAAY,EACZC,YAAY,EANd,UAQE,sBACEpG,MAAO,CACLqG,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZC,cAAe,SACfC,WAAY,QANhB,UASE,eAAC,KAAD,CAAYC,SAAS,UAAUC,MAAM,QAAQC,WAAW,OAAxD,oKAGA,eAAC,KAAD,CAAYF,SAAS,UAAUC,MAAM,QAAQC,WAAW,OAAxD,+CAGA,eAAC,KAAD,CACEF,SAAS,UACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,kUAQA,eAAC,KAAD,CACEH,SAAS,UACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,gHAQA,sBACE7G,MAAO,CACLqG,QAAS,OACTC,eAAgB,UAHpB,SAME,eAAC,KAAD,CAAMQ,GAAG,cAAT,SACE,eAAC,KAAD,CAAQC,QAAQ,UAAUC,MAAO,IAAKC,aAAc,GAAIJ,QAAQ,kBAAhE,SACE,eAAC,KAAD,CAAYH,SAAS,UAAUC,MAAM,QAAQC,WAAW,OAAxD,8GAMN,sBACE5G,MAAO,CAAEgH,MAAO,QAASE,OAAQ,QAAS5D,UAAW,QACrDoB,IAAKyC,GACLC,IAAI,SAGP1B,GAAkB2B,KAAI,SAACC,EAAMC,GAAP,OACrB,gBAACrC,GAAD,WACE,eAAC,KAAD,CAAYwB,SAAS,UAAUC,MAAM,QAAQC,WAAW,OAAxD,SACGU,EAAKlC,SAER,eAAC,KAAD,CAAYsB,SAAS,UAAUC,MAAM,QAAQC,WAAW,OAAxD,SACGU,EAAKjC,SAER,eAAC,KAAD,CACEqB,SAAS,UACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,SAMGS,EAAK3B,QAER,eAAC,KAAD,CACEe,SAAS,UACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,SAMGS,EAAK1B,QAER,eAACX,GAAD,CAAQP,IAAK4C,EAAK5C,IAAK0C,IAAI,YAvBTG,WA4B1B,eAAC,KAAD,CAAQC,SAAU,IAAK1B,SAAU,KAAjC,SACE,gBAAC,YAAD,CACEC,YAAY,EACZC,UAAU,EACVC,SAAU,IACVC,cAAc,EACdC,YAAY,EACZC,YAAY,EANd,UAQE,sBACEpG,MAAO,CACLqG,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZC,cAAe,SACfC,WAAY,SANhB,UASE,eAAC,KAAD,CAAYC,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,oKAGA,eAAC,KAAD,CAAYF,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,+CAGA,eAAC,KAAD,CACEF,SAAS,YACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,kUAQA,eAAC,KAAD,CACEH,SAAS,YACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,gHAQA,sBAAK7G,MAAO,CAAEqG,QAAS,OAAQC,eAAgB,UAA/C,SACE,eAAC,KAAD,CAAMQ,GAAG,cAAT,SACE,eAAC,KAAD,CAAQW,SAAO,EAACT,MAAO,IAAvB,4GAKJ,sBACEhH,MAAO,CAAEgH,MAAO,QAASE,OAAQ,QAAS5D,UAAW,QACrDoB,IAAKyC,GACLC,IAAI,SAGPjC,GAAakC,KAAI,SAACC,EAAMC,GAAP,OAChB,gBAACrC,GAAD,WACE,eAAC,KAAD,CAAYwB,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,SACGU,EAAKlC,SAER,eAAC,KAAD,CAAYsB,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,SACGU,EAAKjC,SAER,eAAC,KAAD,CAAYqB,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAAOC,QAAQ,WAAzE,SACGS,EAAKhC,OAER,eAACL,GAAD,CAAQP,IAAK4C,EAAK5C,IAAK0C,IAAI,YAVTG,WAe1B,eAAC,KAAD,CAAQC,SAAU,KAAlB,SACE,gBAAC,YAAD,CACEzB,YAAY,EACZC,UAAU,EACVC,SAAU,IACVC,cAAc,EACdC,YAAY,EACZC,YAAY,EANd,UAQE,sBACEpG,MAAO,CACLqG,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZC,cAAe,SACfC,WAAY,SANhB,UASE,eAAC,KAAD,CAAYC,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,oKAGA,eAAC,KAAD,CAAYF,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,+CAGA,eAAC,KAAD,CACEF,SAAS,YACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,kUAQA,eAAC,KAAD,CACEH,SAAS,YACTC,MAAM,QACNC,WAAW,OACXC,QAAQ,mBAJV,gHAQA,sBAAK7G,MAAO,CAAEqG,QAAS,OAAQC,eAAgB,UAA/C,SACE,eAAC,KAAD,CAAMQ,GAAG,cAAT,SACE,eAAC,KAAD,CAAQW,SAAO,EAACT,MAAO,IAAvB,4GAKJ,sBACEhH,MAAO,CAAEgH,MAAO,QAASE,OAAQ,QAAS5D,UAAW,QACrDoB,IAAKyC,GACLC,IAAI,SAGPjC,GAAakC,KAAI,SAACC,EAAMC,GAAP,OAChB,gBAACrC,GAAD,WACE,eAAC,KAAD,CAAYwB,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,SACGU,EAAKlC,SAER,eAAC,KAAD,CAAYsB,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAA1D,SACGU,EAAKjC,SAER,eAAC,KAAD,CAAYqB,SAAS,YAAYC,MAAM,QAAQC,WAAW,OAAOC,QAAQ,WAAzE,SACGS,EAAKhC,OAER,eAACL,GAAD,CAAQP,IAAK4C,EAAK5C,IAAK0C,IAAI,YAVTG,eCtQ1BG,GAAiBtD,WAAOK,IAAV,+PAsBdkD,IARiBvD,WAAOK,IAAV,kFAIAL,WAAOC,IAAV,6CAIMD,mBAAOE,KAAPF,CAAH,qGAMdwD,GAAaxD,WAAOK,IAAV,qOAIkB,SAACjF,GAAD,OAAWA,EAAMwH,OAAS,KACxC,SAACxH,GAAD,OAAWA,EAAM0H,QAAU,UACjC,SAAC1H,GAAD,OAAWA,EAAMqI,KAAO,UAEtB,SAACrI,GAAD,OAAWA,EAAMqI,KAAO,SChDzB,OAA0B,mDCA1B,OAA0B,mDCA1B,OAA0B,mDCA1B,OAA0B,iDCA1B,OAA0B,gDC+G1BC,GApGE,WACf,IAAMC,EAAa,CACjB,CACEC,OAAQC,GACRC,KAAM,wFACN5C,KAAM,ohCACN6C,KAAMC,GACNC,KAAMC,IAER,CACEN,OAAQO,GACRL,KAAM,8FACN5C,KAAM,gmBACN6C,KAAMC,GACNC,KAAMC,IAER,CACEN,OAAQQ,GACRN,KAAM,8IACN5C,KAAM,ohBACN6C,KAAMC,GACNC,KAAMC,KAGJG,EAAkBV,EAAWW,MAAM,EAAG,GAC5C,OACE,gBAAC,KAAD,WACE,eAAC,KAAD,CAAQlB,SAAU,KAAlB,SACE,eAACI,GAAD,CAAYZ,MAAO,EAAnB,SACGe,EAAWV,KAAI,SAACsB,EAAQpG,GAAT,OACd,gBAACmF,GAAD,WACE,gCACE,qBAAKkB,KAAM,EAAX,SACE,sBAAKlE,IAAKiE,EAAOX,OAAQZ,IAAI,aAE/B,sBAAKwB,KAAM,GAAX,UACE,eAAC,KAAD,CAAYjC,MAAM,YAAYD,SAAS,UAAUmC,MAAI,EAArD,SACGF,EAAOT,OAEV,sBAAKxD,IAAKiE,EAAON,KAAMjB,IAAKuB,EAAON,UAErC,qBAAKO,KAAM,EAAX,SACE,sBAAKlE,IAAKiE,EAAOR,KAAMf,IAAI,QAAQpH,MAAO,CAAEgH,MAAO,OAAQE,OAAQ,eAGvE,eAACS,GAAD,UAAiBgB,EAAOrD,SAfL/C,UAoB3B,eAAC,KAAD,CAAQiF,SAAU,IAAK1B,SAAU,KAAjC,SACE,eAAC8B,GAAD,CAAYZ,MAAO,EAAnB,SACGyB,EAAgBpB,KAAI,SAACsB,EAAQpG,GAAT,OACnB,gBAACmF,GAAD,WACE,gCACE,qBAAKkB,KAAM,EAAX,SACE,sBAAKlE,IAAKiE,EAAOX,OAAQZ,IAAI,aAE/B,sBAAKwB,KAAM,GAAX,UACE,eAAC,KAAD,CAAYjC,MAAM,YAAYD,SAAS,UAAUmC,MAAI,EAArD,SACGF,EAAOT,OAEV,sBAAKxD,IAAKiE,EAAON,KAAMjB,IAAKuB,EAAON,UAErC,qBAAKO,KAAM,EAAX,SACE,sBAAKlE,IAAKiE,EAAOR,KAAMf,IAAI,QAAQpH,MAAO,CAAEgH,MAAO,OAAQE,OAAQ,eAGvE,eAACS,GAAD,UAAiBgB,EAAOrD,SAfL/C,UAoB3B,eAAC,KAAD,CAAQuD,SAAU,IAAlB,SACE,eAAC8B,GAAD,CAAYZ,MAAO,EAAnB,SACGyB,EAAgBpB,KAAI,SAACsB,EAAQpG,GAAT,OACnB,gBAACmF,GAAD,WACE,gCACE,qBAAKkB,KAAM,EAAX,SACE,sBAAKlE,IAAKiE,EAAOX,OAAQZ,IAAI,aAE/B,sBAAKwB,KAAM,GAAX,UACE,eAAC,KAAD,CAAYjC,MAAM,YAAYD,SAAS,UAAUmC,MAAI,EAArD,SACGF,EAAOT,OAEV,sBAAKxD,IAAKiE,EAAON,KAAMjB,IAAKuB,EAAON,UAErC,qBAAKO,KAAM,EAAX,SACE,sBAAKlE,IAAKiE,EAAOR,KAAMf,IAAI,QAAQpH,MAAO,CAAEgH,MAAO,OAAQE,OAAQ,eAGvE,eAACS,GAAD,UAAiBgB,EAAOrD,SAfL/C,cCnF3BuG,GAAe1E,mBAAOE,KAAPF,CAAH,uRAWZ2E,GAAW3E,mBAAO,KAAPA,CAAH,2DAGRsD,GAAiBtD,mBAAO,KAAPA,CAAH,mGChBd4E,GAAQ5E,WAAOC,IAAV,8DC2BI4E,GAzBK,SAAC,GAA+C,IAA7CvE,EAA4C,EAA5CA,IAAKwE,EAAuC,EAAvCA,MAAO5D,EAAgC,EAAhCA,KAAM6D,EAA0B,EAA1BA,UAAWC,EAAe,EAAfA,SAClD,OACE,iCACE,eAAC,GAAD,CAAOhC,IAAI,QAAQ1C,IAAKA,IACxB,eAAC,KAAD,CACE2E,OAAO,oBACP3C,SAAUyC,GAAwB,UAClCG,WAAW,OACXC,WAAS,EACT5C,MAAM,YALR,SAOGuC,IAEH,eAAC,KAAD,CACEG,OAAO,oBACP3C,SAAU0C,GAAsB,YAChCE,WAAW,OACX3C,MAAM,WAJR,SAMGrB,QCvBM,OAA0B,+CCA1B,OAA0B,wCCA1B,OAA0B,0CC0F1BkE,GAhFQ,WACrB,OACE,gBAAC,KAAD,WACE,gBAAC,KAAD,CAAQhC,SAAU,IAAlB,UACE,eAAC,KAAD,CAAQA,SAAU,IAAK1B,SAAU,KAAjC,SACE,eAACgD,GAAD,CAAcpC,SAAS,WAAvB,yHAEF,eAAC,KAAD,CAAQc,SAAU,KAAlB,SACE,eAACsB,GAAD,CAAcpC,SAAS,WAAvB,yHAEF,gCACE,eAACqC,GAAD,CAAUH,KAAM,EAAhB,SACE,eAAC,GAAD,CACElE,IAAK+E,GACLP,MAAM,iFACNC,UAAU,UACVC,SAAS,YACT9D,KAAK,gmBAGT,eAACyD,GAAD,CAAUH,KAAM,EAAGc,OAAQ,EAA3B,SACE,eAAC,GAAD,CACEhF,IAAKiF,GACLT,MAAM,6EACNC,UAAU,UACVC,SAAS,YACT9D,KAAK,qmBAGT,eAACyD,GAAD,CAAUH,KAAM,EAAGc,OAAQ,EAA3B,SACE,eAAC,GAAD,CACEhF,IAAKkF,GACLV,MAAM,+GACNC,UAAU,UACVC,SAAS,YACT9D,KAAK,wkBAKb,gBAAC,KAAD,WACE,eAACwD,GAAD,CAAcpC,SAAS,UAAvB,uHACA,8BACE,eAAC,GAAD,CAAgBkC,KAAM,GAAI5I,MAAO,CAAE6G,QAAS,qBAA5C,SACE,eAAC,GAAD,CACEnC,IAAK+E,GACLP,MAAM,iFACNC,UAAU,UACVC,SAAS,UACT9D,KAAK,kmBAIX,8BACE,eAAC,GAAD,CAAgBsD,KAAM,GAAI5I,MAAO,CAAE6G,QAAS,qBAA5C,SACE,eAAC,GAAD,CACEnC,IAAKiF,GACLR,UAAU,UACVC,SAAS,UACTF,MAAM,6EACN5D,KAAK,umBAIX,8BACE,eAAC,GAAD,CAAgBsD,KAAM,GAAI5I,MAAO,CAAE6G,QAAS,qBAA5C,SACE,eAAC,GAAD,CACEnC,IAAKkF,GACLT,UAAU,UACVC,SAAS,UACTF,MAAM,+GACN5D,KAAK,2kBCjFJ,I,QAAA,IAA0B,+CCA1B,OAA0B,8CCGnCuE,GAAkBzF,WAAOK,IAAV,inBAKC,SAACjF,GAAD,oBAAkBA,EAAMsK,MAAxB,QAyBhBC,GAAwB3F,mBAAOQ,KAAPR,CAAH,ycAChB,SAAC5E,GAAD,gBAAcA,EAAMwH,MAApB,SAeLgD,GAAsB5F,mBAAOE,KAAPF,CAAH,gFCWV6F,GAnDI,WACjB,OACE,iCACE,eAAC,KAAD,CAAQzC,SAAU,IAAlB,SACE,sBAAKxH,MAAO,CAAEsD,UAAW,QAAzB,UACE,qBAAKsF,KAAM,GAAX,SACE,eAACiB,GAAD,CAAiBC,MAAOI,GAAxB,SACE,eAAC,KAAD,CAAMpD,GAAG,kBAAT,SACE,eAACiD,GAAD,CAAuB/C,MAAO,GAA9B,SACE,eAACgD,GAAD,2GAKR,qBAAKpB,KAAM,GAAX,SACE,eAACiB,GAAD,CAAiBC,MAAOK,GAAxB,SACE,eAAC,KAAD,CAAMrD,GAAG,kBAAT,SACE,eAACiD,GAAD,CAAuB/C,MAAO,GAA9B,SACE,eAACgD,GAAD,oGAOZ,eAAC,KAAD,CAAQlE,SAAU,IAAlB,SACE,sBAAK9F,MAAO,CAAEsD,UAAW,QAAzB,UACE,qBAAKsF,KAAM,GAAX,SACE,eAACiB,GAAD,CAAiBC,MAAOI,GAAxB,SACE,eAAC,KAAD,CAAMpD,GAAG,kBAAT,SACE,eAACiD,GAAD,CAAuB/C,MAAO,GAA9B,SACE,eAACgD,GAAD,2GAKR,qBAAKpB,KAAM,GAAX,SACE,eAACiB,GAAD,CAAiBC,MAAOK,GAAxB,SACE,eAAC,KAAD,CAAMrD,GAAG,kBAAT,SACE,eAACiD,GAAD,CAAuB/C,MAAO,GAA9B,SACE,eAACgD,GAAD,wGCjDH,OAA0B,oDCA1B,OAA0B,mDC2B1BI,GArBG,WAChB,OACE,gBAAC,KAAD,WACE,eAAC,KAAD,CAAQtE,SAAU,IAAlB,SACE,sBACEsB,IAAI,UACJ1C,IAAK2F,GACLrK,MAAO,CAAEgH,MAAO,OAAQE,OAAQ,OAAQoD,UAAW,aAGvD,eAAC,KAAD,CAAQ9C,SAAU,IAAlB,SACE,sBACEJ,IAAI,UACJ1C,IAAK6F,GACLvK,MAAO,CAAEgH,MAAO,OAAQE,OAAQ,OAAQoD,UAAW,iBCpB9C,OAA0B,mDCA1B,OAA0B,iDCGnCE,GAAkBpG,WAAOK,IAAV,4uBAIC,SAACjF,GAAD,oBAAkBA,EAAMsK,MAAxB,QA8BhBW,GAAoBrG,mBAAOQ,KAAPR,CAAH,sXACZ,SAAC5E,GAAD,gBAAcA,EAAMwH,MAApB,SAIW,SAACxH,GAAD,OAAWA,EAAM+E,MAAMmG,aAMvCC,GAAkBvG,mBAAOQ,KAAPR,CAAH,sXACV,SAAC5E,GAAD,gBAAcA,EAAMwH,MAApB,SAIW,SAACxH,GAAD,OAAWA,EAAM+E,MAAMmG,aAMvCV,GAAsB5F,mBAAOE,KAAPF,CAAH,iSCkEVwG,GArHI,WAOjB,OACE,gBAAC,KAAD,WACE,eAAC,KAAD,CAAQ9E,SAAU,IAAlB,SACE,sBAAK9F,MAAO,CAAEsD,UAAW,UAAzB,UACE,qBAAKsF,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOe,GAAxB,SACE,eAAC,KAAD,CAAM/D,GAAG,mCAAT,SACE,eAAC2D,GAAD,CAAmBzD,MAAO,GAA1B,SACE,eAAC,GAAD,qGAKR,qBAAK4B,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOgB,GAAxB,SACE,oBACEC,KAAK,sCACLC,OAAO,SACPC,IAAI,sBAHN,SAKE,eAACN,GAAD,CAAiB3D,MAAO,GAAxB,SACE,eAAC,GAAD,uGAOZ,eAAC,KAAD,CAAQQ,SAAU,IAAK1B,SAAU,KAAjC,SACE,sBAAK9F,MAAO,CAAEsD,UAAW,UAAzB,UACE,qBAAKsF,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOe,GAAxB,SACE,eAAC,KAAD,CAAM/D,GAAG,mCAAT,SACE,eAAC2D,GAAD,CAAmBzD,MAAO,GAA1B,SACE,eAAC,GAAD,qGAKR,qBAAK4B,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOgB,GAAxB,SACE,oBACEC,KAAK,sCACLC,OAAO,SACPC,IAAI,sBAHN,SAKE,eAACN,GAAD,CAAiB3D,MAAO,GAAxB,SACE,eAAC,GAAD,uGAOZ,eAAC,KAAD,CAAQQ,SAAU,KAAM1B,SAAU,KAAlC,SACE,sBAAK9F,MAAO,CAAEsD,UAAW,UAAzB,UACE,qBAAKsF,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOe,GAAxB,SACE,eAAC,KAAD,CAAM/D,GAAG,mCAAT,SACE,eAAC2D,GAAD,CAAmBzD,MAAO,GAA1B,SACE,eAAC,GAAD,qGAKR,qBAAK4B,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOgB,GAAxB,SACE,oBACEC,KAAK,sCACLC,OAAO,SACPC,IAAI,sBAHN,SAKE,eAACN,GAAD,CAAiB3D,MAAO,GAAxB,SACE,eAAC,GAAD,uGAOZ,eAAC,KAAD,CAAQQ,SAAU,KAAlB,SACE,sBAAKxH,MAAO,CAAEsD,UAAW,UAAzB,UACE,qBAAKsF,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOe,GAAxB,SACE,eAAC,KAAD,CAAM/D,GAAG,mCAAT,SACE,eAAC2D,GAAD,CAAmBzD,MAAO,GAA1B,SACE,eAAC,GAAD,qGAKR,qBAAK4B,KAAM,GAAX,SACE,eAAC4B,GAAD,CAAiBV,MAAOgB,GAAxB,SACE,oBACEC,KAAK,sCACLC,OAAO,SACPC,IAAI,sBAHN,SAKE,eAACN,GAAD,CAAiB3D,MAAO,GAAxB,SACE,eAAC,GAAD,2G,gEC/GZrC,GAAYP,WAAOK,IAAV,kDAITyG,GAAU9G,WAAOK,IAAV,4CAuXPqE,IApXc1E,WAAOC,IAAV,2BACDD,WAAOK,IAAV,0cAQa,SAACjF,GAAD,OAAWA,EAAM+E,MAAM4G,SAc/B/G,WAAOK,IAAV,inBAmCHL,WAAOK,IAAV,8PAcWL,mBAAOE,KAAPF,CAAH,qEAEb,YAA0B,IAAvBgH,EAAsB,EAAtBA,QAASC,EAAa,EAAbA,OACZ,OAAID,GAAsB,OAAXC,EACNC,eAAP,kMAUKA,eAAP,8BAEA,YACA,GADe,EAAZpC,MAED,OAAOoC,eAAP,kNACe,SAAC9L,GAAD,OAAWA,EAAM+E,MAAM,cAErB,SAAC/E,GAAD,OAAWA,EAAM+E,MAAM,gBAGvB,SAAC/E,GAAD,OAAWA,EAAM+E,MAAM,iBAM5BH,WAAOK,IAAV,gQACW,qBAAG8G,OAUAnH,WAAOK,IAAV,8VACA,qBAAG8G,OAiBRnH,WAAOC,IAAV,+DAICD,WAAOoH,OAAV,weACU,qBAAGD,OAOzB,YACA,OADgB,EAAbE,OAEMH,eAAP,qGAKKA,eAAP,yDAmBalH,WAAOK,IAAV,qoDAIV,YACA,MAAmB,WADC,EAAjBiH,WAEMJ,eAAP,6DAIKA,eAAP,8BAuEiBlH,WAAOK,IAAV,mDAIUL,WAAOK,IAAV,iZAsBEL,WAAOK,IAAV,wTAiBHL,WAAOK,IAAV,ioCAMN,SAACjF,GAAD,OAAWA,EAAM+E,MAAMoH,SAOvB,SAACnM,GAAD,OAAWA,EAAM+E,MAAMqH,YA8ChB,qBAAGrH,MAAkB,eAoBnBH,mBAAOE,KAAPF,CAAH,oQ,oNCpXZyH,GAAYzH,WAAOK,IAAV,kFAITqH,GAAW,SAAC,GAaX,IAZLC,EAYI,EAZJA,GACAC,EAWI,EAXJA,KACAC,EAUI,EAVJA,WACAC,EASI,EATJA,WACAC,EAQI,EARJA,WACAC,EAOI,EAPJA,UACAC,EAMI,EANJA,cACAC,EAKI,EALJA,KACAC,EAII,EAJJA,YACAC,EAGI,EAHJA,QAGI,IAFJC,sBAEI,SADDjN,EACC,mBACJ,EAA8BkN,qBAAS,GAAvC,oBAAOC,EAAP,KAAgBC,EAAhB,KACA,EAAgCF,qBAAS,GAAzC,oBAAOG,EAAP,KAAiBC,EAAjB,KACA,EAA8BJ,qBAAS,GAAvC,oBAAOxI,EAAP,KAAgB6I,EAAhB,KAEA,EAA8BL,oBAASJ,GAAvC,oBAAOU,EAAP,KAAgBC,EAAhB,KAEQC,EADQC,eACRD,SAERE,sBAAU,WACRL,GAAW,GACXH,GAAW,GACXK,EAAWX,KAEV,CAACY,EAASG,SAEbD,sBAAU,WACRN,GAAY,GACZC,GAAW,KACV,CAACf,IAEJ,IAAMsB,EAAI,yCAAG,uBAAAC,EAAA,2DACPvB,EAAK7M,QAAU8M,GADR,uBAETW,GAAW,GAFF,0BAMXY,WAAU,wBAAC,uBAAAD,EAAA,yDACJV,EADI,gCAEDC,GAAY,GAFX,uBAGDT,EAAc,EAAGC,EAAOU,GAHvB,uBAIDC,EAAWX,EAAOU,GAJjB,2CAMR,KAZQ,2CAAH,qDAgCV,OAAKhB,GAAQ9H,EACJ,eAACuJ,GAAA,EAAD,IAGLC,KAAEC,QAAQ3B,GAEV,eAAC,KAAD,UACE,eAACH,GAAD,UACE,eAAC,KAAD,CACE+B,SAAO,EACPC,UAAQ,EACRC,OAAK,EACL/B,GAAIA,EACJ7C,MAAOiD,EACP7G,KAAM8G,EACN2B,IAAKxB,EACLzC,MAAOkE,KACPhO,MAAO,CAAEqJ,OAAQ,SAQzB,+BACE,gBAAC,KAAD,CACErJ,MAAO,CAAEiO,SAAU,UACnBhC,WAAYD,EAAK7M,OACjBmO,KAAMA,EACNX,QAASA,EACT1I,OAAQ,eAAC,KAAD,IALV,UAOE,gBAAC,KAAD,CAAK9D,OAAQ,CAAC,IAAd,UACGqM,GAAWC,EAAiB,eAAC,KAAD,6BAASjN,GAAT,aAAiBgN,OAAmB,yBAChER,EAAK3E,KAAI,SAACC,EAAM/E,GACf,OACE,eAAC,KAAD,6BAAgC/C,GAAhC,IAAuC0O,QAAQ,WAA/C,SACGhC,EAAW5E,KADJ/E,EAAM4L,mBAMpBxB,QAMVb,GAASsC,aAAe,CACtBjC,WAAY,kBACZC,UAAW,wEACXE,KAAM,IAGOR,I,wEAAAA,M,kECfTuC,GAAYC,KAAMC,QAAO,SAACC,GAAD,MAAa,CAC1CC,UAAWD,EAAOE,QAAQD,cA2CbE,iBAxCE,SAACC,GAChB,MAOIA,EANFC,OAAUC,EADZ,EACYA,WAAYC,EADxB,EACwBA,gBACFC,EAKlBJ,EALFK,iBAAoBD,iBACJE,EAIdN,EAJFO,aAAgBD,aACLE,EAGTR,EAHFF,QAAWU,QACC/D,EAEVuD,EAFFS,SAAYhE,OACEiE,EACZV,EADFW,WAAcD,eAEhB,OAAO,cACLR,aACAC,kBACAC,mBACAE,eACAE,UACA/D,SACAiE,kBACGjB,GAAUO,OAIG,SAAC,GAAD,QAClBC,OAAUW,EADQ,EACRA,iBAAkBC,EADV,EACUA,sBACRC,EAFF,EAElBT,iBAAoBS,6BACJC,EAHE,EAGlBR,aAAgBQ,gBAHE,IAIlBjB,QAAWkB,EAJO,EAIPA,QAASC,EAJF,EAIEA,cACNC,EALI,EAKlBP,WAAcO,qBALI,MAQb,CACLN,mBACAC,wBACAM,oBAAqBL,EACrBC,kBACAC,UACAC,gBACAG,aAfkB,EAMlBX,SAAYW,aAUZF,uBACAG,mBAjBkB,EAOlBC,MAASD,sBAYItB,EAnJO,SAACnP,GACrB,IAAQ0P,EAAiB1P,EAAjB0P,aACR,EAA+CxC,oBAAS,IAAxD,oBAAOyD,EAAP,KAAyBC,EAAzB,KACAhD,sBAAU,WACR,IAAMiD,EAAS,yCAAG,6BAAA9C,EAAA,+EAES+C,KAAMC,IAAI,yBAFnB,OAERC,EAFQ,OAGdJ,EAAmBI,EAASxE,KAAKyE,oBACjCC,QAAQC,IAAIH,EAASxE,MAJP,gDAMd0E,QAAQE,MAAM,uBAAd,MANc,yDAAH,qDAUfP,MACC,IACH,IAAMQ,EAAS3B,EAAa4B,QAAO,SAACC,EAAKzJ,GAAN,oBAAC,gBAAoByJ,GAArB,mBAA2BzJ,EAAKyE,GAAKzE,EAAKY,SAAS,IAEhF8I,EAAab,EAAmBA,EAAiBzH,MAAM,EAAG,GAAK,GACrE,OACE,gBAAC,KAAD,WACE,eAAC,KAAD,CAAQ5C,SAAU,KAAlB,SACE,eAACoF,GAAD,UACE,gBAACvG,GAAD,WACE,uBACE3E,MAAO,CACLuG,WAAY,SACZF,QAAS,OACTC,eAAgB,iBAJpB,UAOE,eAAC,GAAD,CAAcI,SAAS,UAAUmC,MAAI,EAAC7I,MAAO,CAAEkD,WAAY,QAA3D,0EAGA,eAAC,KAAD,CAAM4D,GAAG,wBAAwB9G,MAAO,CAAEmD,YAAa,QAAvD,SACE,eAAC,KAAD,CAAYwD,MAAM,WAAWD,SAAS,UAAtC,6DAKJ,eAAC,GAAD,CACEsF,KAAMgF,EACN/E,WAAY,EACZC,WAAY,SAAC5E,GAAD,OACV,eAAC,WAAD,6BACMA,GADN,IAEEtH,MAAO,CAAEqJ,OAAQ,eACjB4H,KAAI,mBAAc3J,EAAK4J,UAG3BlQ,IAAK,EACLD,GAAI,EACJD,GAAI,GACJD,GAAI,GACJD,GAAI,YAKZ,eAAC,KAAD,CAAQ4G,SAAU,KAAlB,SACE,eAAC0D,GAAD,UACE,gBAACvG,GAAD,WACE,uBACE3E,MAAO,CACLuG,WAAY,SACZF,QAAS,OACTC,eAAgB,iBAJpB,UAOE,eAAC,GAAD,CAAcI,SAAS,WAAWmC,MAAI,EAAC7I,MAAO,CAAEkD,WAAY,QAA5D,0EAGA,eAAC,KAAD,CAAM4D,GAAG,wBAAwB9G,MAAO,CAAEmD,YAAa,QAAvD,SACE,eAAC,KAAD,CAAYwD,MAAM,WAAWD,SAAS,YAAtC,6DAKJ,eAAC,GAAD,CACEsF,KAAMmE,EACNlE,WAAY,EACZC,WAAY,SAAC5E,GAAD,OACV,eAAC,KAAD,CAAeA,KAAMA,EAAMuJ,OAAQA,EAAnC,SACE,eAAC,WAAD,6BACMvJ,GADN,IAEE2J,KAAI,mBAAc3J,EAAK4J,MACvBlR,MAAO,CAAEqJ,OAAQ,qBAIvBrI,IAAK,EACLD,GAAI,EACJD,GAAI,EACJD,GAAI,GACJD,GAAI,kBC5GZ+D,GAAYP,WAAOK,IAAV,oDAITyG,GAAU9G,WAAOK,IAAV,8CAuXPqE,IApXc1E,WAAOC,IAAV,6BACDD,WAAOK,IAAV,4cAQa,SAACjF,GAAD,OAAWA,EAAM+E,MAAM4G,SAc/B/G,WAAOK,IAAV,mnBAmCHL,WAAOK,IAAV,gQAcWL,mBAAOE,KAAPF,CAAH,uEAEb,YAA0B,IAAvBgH,EAAsB,EAAtBA,QAASC,EAAa,EAAbA,OACZ,OAAID,GAAsB,OAAXC,EACNC,eAAP,oMAUKA,eAAP,gCAEA,YACA,GADe,EAAZpC,MAED,OAAOoC,eAAP,oNACe,SAAC9L,GAAD,OAAWA,EAAM+E,MAAM,cAErB,SAAC/E,GAAD,OAAWA,EAAM+E,MAAM,gBAGvB,SAAC/E,GAAD,OAAWA,EAAM+E,MAAM,iBAM5BH,WAAOK,IAAV,kQACW,qBAAG8G,OAUAnH,WAAOK,IAAV,gWACA,qBAAG8G,OAiBRnH,WAAOC,IAAV,iEAICD,WAAOoH,OAAV,0eACU,qBAAGD,OAOzB,YACA,OADgB,EAAbE,OAEMH,eAAP,uGAKKA,eAAP,2DAmBalH,WAAOK,IAAV,uoDAIV,YACA,MAAmB,WADC,EAAjBiH,WAEMJ,eAAP,+DAIKA,eAAP,gCAuEiBlH,WAAOK,IAAV,mDAIUL,WAAOK,IAAV,iZAsBEL,WAAOK,IAAV,wTAiBHL,WAAOK,IAAV,ioCAMN,SAACjF,GAAD,OAAWA,EAAM+E,MAAMoH,SAOvB,SAACnM,GAAD,OAAWA,EAAM+E,MAAMqH,YA8ChB,qBAAGrH,MAAkB,eAoBnBH,mBAAOE,KAAPF,CAAH,oQC1QZiK,GAAYC,KAAMC,QAAO,SAACC,GAAD,MAAa,CAC1CC,UAAWD,EAAOE,QAAQD,cA2CbE,iBAxCE,SAACC,GAChB,MAOIA,EANFC,OAAUC,EADZ,EACYA,WAAYC,EADxB,EACwBA,gBACFC,EAKlBJ,EALFK,iBAAoBD,iBACJE,EAIdN,EAJFO,aAAgBD,aACLE,EAGTR,EAHFF,QAAWU,QACC/D,EAEVuD,EAFFS,SAAYhE,OACEiE,EACZV,EADFW,WAAcD,eAEhB,OAAO,cACLR,aACAC,kBACAC,mBACAE,eACAE,UACA/D,SACAiE,kBACGjB,GAAUO,OAIG,SAAC,GAAD,QAClBC,OAAUW,EADQ,EACRA,iBAAkBC,EADV,EACUA,sBACRC,EAFF,EAElBT,iBAAoBS,6BACJC,EAHE,EAGlBR,aAAgBQ,gBAHE,IAIlBjB,QAAWkB,EAJO,EAIPA,QAASC,EAJF,EAIEA,cACNC,EALI,EAKlBP,WAAcO,qBALI,MAQb,CACLN,mBACAC,wBACAM,oBAAqBL,EACrBC,kBACAC,UACAC,gBACAG,aAfkB,EAMlBX,SAAYW,aAUZF,uBACAG,mBAjBkB,EAOlBC,MAASD,sBAYItB,EA/IM,SAACnP,GACKA,EAAjB0P,aAAR,IACA,EAA8CxC,oBAAS,IAAvD,oBAAOyE,EAAP,KAAwBC,EAAxB,KACAhE,sBAAU,WACR,IAAMiD,EAAS,yCAAG,6BAAA9C,EAAA,+EAES+C,KAAMC,IAAI,yBAFnB,OAERC,EAFQ,OAGdE,QAAQC,IAAIH,EAASxE,MACrBoF,EAAmBZ,EAASxE,KAAKqF,aAJnB,gDAMdX,QAAQE,MAAM,uBAAd,MANc,yDAAH,qDAUfP,MACC,IAEH,IAAMW,EAAaG,EAAkBA,EAAgBzI,MAAM,EAAG,GAAK,GACnE,OACE,gBAAC,KAAD,WACE,eAAC,KAAD,CAAQ5C,SAAU,KAAlB,SACE,eAAC,GAAD,UACE,gBAAC,GAAD,WACE,uBACE9F,MAAO,CACLuG,WAAY,SACZF,QAAS,OACTC,eAAgB,iBAJpB,UAOE,eAAC,GAAD,CAAcI,SAAS,UAAUmC,MAAI,EAAC7I,MAAO,CAAEkD,WAAY,QAA3D,oHAGA,eAAC,KAAD,CAAM4D,GAAG,wCAAwC9G,MAAO,CAAEmD,YAAa,QAAvE,SACE,eAAC,KAAD,CAAYwD,MAAM,WAAWD,SAAS,UAAtC,6DAKJ,eAAC,GAAD,CACEsF,KAAMgF,EACN/E,WAAY,EACZC,WAAY,SAAC5E,GAAD,OACV,eAAC,WAAD,6BACMA,GADN,IAEE2J,KAAI,mBAAc3J,EAAK4J,MACvBlR,MAAO,CAAEqJ,OAAQ,mBAGrBrI,IAAK,EACLD,GAAI,EACJD,GAAI,GACJD,GAAI,GACJD,GAAI,YAKZ,eAAC,KAAD,CAAQ4G,SAAU,KAAlB,SACE,eAAC,GAAD,UACE,gBAAC,GAAD,WACE,uBACExH,MAAO,CACLuG,WAAY,SACZF,QAAS,OACTC,eAAgB,iBAJpB,UAOE,eAAC,GAAD,CAAcI,SAAS,WAAWmC,MAAI,EAAC7I,MAAO,CAAEkD,WAAY,QAA5D,oHAGA,eAAC,KAAD,CAAM4D,GAAG,wCAAwC9G,MAAO,CAAEmD,YAAa,QAAvE,SACE,eAAC,KAAD,CAAYwD,MAAM,WAAWD,SAAS,YAAtC,6DAKJ,eAAC,GAAD,CACEsF,KAAMmF,EACNlF,WAAY,EACZC,WAAY,SAAC5E,GAAD,OACV,eAAC,WAAD,6BACMA,GADN,IAEE2J,KAAI,mBAAc3J,EAAK4J,MACvBlR,MAAO,CAAEqJ,OAAQ,mBAGrBrI,IAAK,EACLD,GAAI,EACJD,GAAI,EACJD,GAAI,GACJD,GAAI,kB,qBC5BH0Q,UAjEK,WAClB,OAEE,eADA,CACA,OAAKtR,MAAO,CAAEuR,gBAAiB,SAA/B,UAME,8BACE,eAACxM,GAAD,CAAa6D,KAAM,GAAnB,SACE,eAAC4I,GAAD,QAGJ,eAACrN,GAAD,UACE,8BACE,qBAAKyE,KAAM,GAAX,SACE,eAAC,GAAD,UAIN,8BACE,qBAAKA,KAAM,GAAX,SACE,eAAC6I,GAAD,QAGJ,eAACtN,GAAD,UACE,qBAAKyE,KAAM,GAAX,SACE,eAAC,GAAD,QAGJ,eAACzE,GAAD,UACE,qBAAKyE,KAAM,GAAX,SACE,eAAC,GAAD,QAMJ,eAACzE,GAAD,UACE,qBAAKyE,KAAM,GAAX,SACE,eAAC,GAAD,QAGJ,eAACzE,GAAD,UACE,qBAAKyE,KAAM,GAAX,SACE,eAAC8I,GAAD,QAMJ,eAACvN,GAAD,UACE,qBAAKyE,KAAM,GAAX,SACE,eAAC,GAAD,QAGJ,8BACE,eAAC,KAAD","file":"static/js/59.58973777.chunk.js","sourcesContent":["import '../../style/default.less'; // style dependencies\n// deps-lint-skip: grid\n\nimport '../../grid/style';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport { tuple } from '../_util/type';\nimport RowContext from './RowContext';\nvar RowAligns = tuple('top', 'middle', 'bottom', 'stretch');\nvar RowJustify = tuple('start', 'end', 'center', 'space-around', 'space-between', 'space-evenly');\nvar Row = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var customizePrefixCls = props.prefixCls,\n justify = props.justify,\n align = props.align,\n className = props.className,\n style = props.style,\n children = props.children,\n _props$gutter = props.gutter,\n gutter = _props$gutter === void 0 ? 0 : _props$gutter,\n wrap = props.wrap,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useState = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n screens = _React$useState2[0],\n setScreens = _React$useState2[1];\n\n var supportFlexGap = useFlexGapSupport();\n var gutterRef = React.useRef(gutter); // ================================== Effect ==================================\n\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (screen) {\n var currentGutter = gutterRef.current || 0;\n\n if (!Array.isArray(currentGutter) && _typeof(currentGutter) === 'object' || Array.isArray(currentGutter) && (_typeof(currentGutter[0]) === 'object' || _typeof(currentGutter[1]) === 'object')) {\n setScreens(screen);\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []); // ================================== Render ==================================\n\n var getGutter = function getGutter() {\n var results = [undefined, undefined];\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach(function (g, index) {\n if (_typeof(g) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n\n var prefixCls = getPrefixCls('row', customizePrefixCls);\n var gutters = getGutter();\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-no-wrap\"), wrap === false), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(justify), justify), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(align), align), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className); // Add gutter related style\n\n var rowStyle = {};\n var horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n var verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n var _gutters = _slicedToArray(gutters, 2);\n\n rowStyle.rowGap = _gutters[1];\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n } // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n\n\n var _gutters2 = _slicedToArray(gutters, 2),\n gutterH = _gutters2[0],\n gutterV = _gutters2[1];\n\n var rowContext = React.useMemo(function () {\n return {\n gutter: [gutterH, gutterV],\n wrap: wrap,\n supportFlexGap: supportFlexGap\n };\n }, [gutterH, gutterV, wrap, supportFlexGap]);\n return /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes,\n style: _extends(_extends({}, rowStyle), style),\n ref: ref\n }), children));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\n\nexport default Row;","import { Row } from '../grid';\nexport default Row;","import Loadable from 'react-loadable'\n\nexport default Loadable({\n loader: () => import('./index'),\n loading: () => null,\n})\n","import Loadable from 'react-loadable'\n\nexport default Loadable({\n loader: () => import('./index'),\n loading: () => null,\n})\n","import Loadable from 'react-loadable'\n\nexport default Loadable({\n loader: () => import('./index'),\n loading: () => null,\n})\n","export default __webpack_public_path__ + \"static/media/BGcarouselLanding.08967fb8.svg\";","import styled from 'styled-components'\nimport { Typography, Container, Button, Dropdown } from '../../components'\nimport { Col, Row } from 'antd'\nimport BGcarousel from 'images/BGcarouselLanding.svg'\n\nconst Image = styled.img`\n object-fit: contain;\n &.line {\n /* padding-bottom: 7px; */\n width: 22px;\n height: 22px;\n }\n &.icon {\n width: 30px;\n height: 30px;\n margin-right: 5px;\n @media (max-width: 768px) {\n width: 20px;\n height: 20px;\n }\n }\n &.photo {\n width: 100%;\n height: auto;\n }\n`\n\nconst Text = styled(Typography)`\n font-weight: bold;\n text-align: center;\n align-items: center;\n justify-content: center;\n font-size: ${({ theme }) => theme['text-x4xl']};\n margin-top: 30px;\n color: ${(props) => props.theme.primary8};\n\n @media (max-width: 768px) {\n font-size: ${({ theme }) => theme['text-8xl']};\n margin: 30px 0;\n }\n`\n\nconst Header = styled.div`\n background-image: url(${(props) => props.src});\n background-position: center;\n height: 1000px;\n background-size: cover;\n background-repeat: no-repeat;\n position: relative;\n @media (max-width: 767px) {\n background-size: contain;\n height: 580px;\n background-position-y: bottom;\n }\n @media (min-width: 768px) and (max-width: 1024px) {\n background-size: contain;\n height: 700px;\n background-position-y: bottom;\n }\n`\n\nconst _Container = styled(Container)`\n width: 100%;\n &.aboutus {\n @media (max-width: 768px) {\n padding: 0;\n }\n @media (min-width: 1900px) {\n margin: auto;\n }\n }\n`\nconst CloseButton = styled.img`\n position: absolute;\n top: 10px;\n right: 10px;\n width: 30px;\n height: 30px;\n cursor: pointer;\n`\nconst ActionBox = styled.div`\n display: flex;\n align-items: center;\n`\n\nconst ActionBoxSpace = styled.div`\n margin: 0 10px;\n`\n\nconst _Button = styled(Button)`\n background-color: inherit;\n border: 2px solid ${(props) => props.theme.primary1};\n padding: 6px 12px;\n border-radius: 10px;\n &.line {\n background-color: ${(props) => props.theme.primary1};\n }\n`\nconst GetStartBtn = styled(Button)`\n color: White;\n width: 250px;\n height: 60px;\n justify-content: center;\n font-weight: bold;\n font-size: ${({ theme }) => theme['text-6xl']};\n border-radius: 10px;\n border: none;\n ${'' /* cursor: pointer; */}\n outline: none;\n background: linear-gradient(to right, #253e87 0%, #159bd7 100%);\n\n @media (max-width: 768px) {\n ${'' /* margin-top: 10px; */}\n width: 250px;\n height: 60px;\n font-size: ${({ theme }) => theme['text-3xl']};\n margin: 10px auto;\n }\n`\n\nconst Section = styled.section`\n &.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n ${\n '' /* .right {\n position: absolute;\n display: inline-flex;\n right: 0;\n } */\n }\n }\n\n &.brand {\n display: block;\n padding: 170px 0;\n\n @media (max-width: 768px) {\n padding: 20px 0;\n text-align: center;\n }\n }\n\n &.carousel {\n @media (max-width: 768px) {\n margin-top: 130px;\n }\n }\n`\nconst Content = styled.div`\n &.row {\n display: flex;\n flex: 1 1 auto;\n }\n &.col-6 {\n display: flex;\n flex: 0 0 50%;\n max-width: 50%;\n }\n &.col-12 {\n display: flex;\n flex: 0 0 100%;\n max-width: 100%;\n }\n &.align-center {\n align-items: center;\n }\n &.px-6 {\n padding: 0 60px;\n }\n &.pt {\n padding-top: 50px;\n }\n &.aboutUs {\n padding: 50px;\n display: flex;\n @media (max-width: 768px) {\n padding: 0;\n }\n }\n &.sidebar {\n padding: 40px 20px;\n }\n`\n\nconst RowStyle = styled(Row)`\n padding: 0px 100px;\n\n @media (max-width: 600px) {\n padding: 0px 16px;\n }\n\n @media (max-width: 1024px) and (min-width: 601px) {\n padding: 0px 32px;\n }\n`\n\nconst ColCarousel = styled(Col)`\n background-image: url(${BGcarousel});\n background-size: 100%, 100%, contain;\n background-repeat: no-repeat;\n padding-bottom: 100px;\n @media (max-width: 600px) {\n padding-bottom: 50px;\n }\n @media (min-width: 1441px) {\n height: 65vw;\n }\n`\n\nexport {\n Image,\n _Container as Container,\n Header,\n Section,\n Content,\n Text,\n _Button as Button,\n ActionBox,\n ActionBoxSpace,\n GetStartBtn,\n CloseButton,\n Typography,\n Dropdown,\n RowStyle,\n ColCarousel,\n}\n","export default __webpack_public_path__ + \"static/media/BannerLanding1.9cc8fd13.svg\";","export default __webpack_public_path__ + \"static/media/BannerLanding2.fdca126d.svg\";","export default __webpack_public_path__ + \"static/media/BannerLanding3.2824fc22.svg\";","export default __webpack_public_path__ + \"static/media/BannerLanding4.5ca3c8e3.png\";","import styled from 'styled-components'\nimport 'react-responsive-carousel/lib/styles/carousel.min.css'\n\nconst Banner = styled.img`\n width: 820px;\n height: 450px;\n\n @media (max-width: 600px) {\n padding: 0px 30px;\n width: 250px;\n height: 250px;\n }\n\n @media (max-width: 1024px) and (min-width: 601px) {\n padding: 0px 60px;\n }\n`\n\nconst BannerStyle = styled.img`\n width: 820px;\n height: 500px;\n\n @media (max-width: 600px) {\n width: 250px;\n height: 250px;\n }\n\n @media (max-width: 1024px) and (min-width: 601px) {\n width: 470x;\n height: 270px;\n }\n`\nconst CarouselStyle = styled.div`\n padding-top: 100px;\n @media (max-width: 601px) {\n padding-top: 75px;\n }\n // @media (min-width: 1601px) {\n // padding-top: 300px;\n // }\n`\nexport { Banner, CarouselStyle, BannerStyle }\n","import React from 'react'\nimport { Carousel } from 'react-responsive-carousel'\nimport 'react-responsive-carousel/lib/styles/carousel.min.css'\nimport BannerLaning1 from 'images/BannerLanding1.svg'\nimport BannerLaning2 from 'images/BannerLanding2.svg'\nimport BannerLaning3 from 'images/BannerLanding3.svg'\nimport BannerLaning4 from 'images/BannerLanding4.png'\nimport { Banner, CarouselStyle } from './style'\nimport { Typography, Button } from 'components'\nimport { Custom } from 'utils/displayResponsive'\nimport ErrorBoundary from 'components/errorBoundary'\nimport { Link } from 'react-router-dom'\nimport { Col } from 'antd'\n\nconst DataNoButton = [\n {\n title1: 'คอร์สเรียนออนไลน์',\n title2: 'จากผู้เชี่ยวชาญ',\n desc: 'เรียนจบรับใบประกาศฯ พร้อมความรู้ที่นำไปใช้ได้จริง',\n src: BannerLaning3,\n },\n {\n title1: 'สร้างคอร์สเรียนออนไลน์',\n title2: 'พร้อมระบบติดตามผู้เรียน',\n desc: 'ไม่ว่าคุณจะเป็นครู, วิทยากร หรือบุคคลทั่วไปก็สามารถมาเป็นส่วนหนึ่งของคลาสวินได้',\n src: BannerLaning2,\n },\n {\n title1: 'ฝึกอบรมพนักงานให้กับองค์กร ',\n title2: 'ด้วยระบบ LMS',\n desc: 'เรียนจบรับใบประกาศฯ พร้อมความรู้ที่นำไปใช้ได้จริง',\n src: BannerLaning1,\n },\n]\n\nconst DataNoButtonSmall = [\n {\n title1: 'คอร์สเรียนออนไลน์',\n title2: 'จากผู้เชี่ยวชาญ',\n desc1: 'เรียนจบรับใบประกาศฯ พร้อมความรู้ที่นำไปใช้ได้จริง',\n desc2: 'พร้อมความรู้ที่นำไปใช้ได้จริง',\n src: BannerLaning3,\n },\n {\n title1: 'สร้างคอร์สเรียนออนไลน์',\n title2: 'พร้อมระบบติดตามผู้เรียน',\n desc1: 'ไม่ว่าคุณจะเป็นครู, วิทยากร หรือบุคคลทั่วไป',\n desc2: 'ก็สามารถมาเป็นส่วนหนึ่งของคลาสวินได้',\n src: BannerLaning2,\n },\n {\n title1: 'ฝึกอบรมพนักงานให้กับองค์กร ',\n title2: 'ด้วยระบบ LMS',\n desc1: 'เรียนจบรับใบประกาศฯ',\n desc2: ' พร้อมความรู้ที่นำไปใช้ได้จริง',\n src: BannerLaning1,\n },\n]\n\nconst MyCarousel = () => {\n return (\n \n \n \n \n \n เรียนออนไลน์ได้ง่ายที่สุด\n \n \n ด้วย Classwin\n \n \n คอร์สเรียนคุณภาพ ราคาคุ้มค่า มีที่นี่ที่เดียวเท่านั้น\n \n \n ทดลองเรียนได้เลย !\n \n \n \n \n \n \n \n \n {DataNoButtonSmall.map((item, idx) => (\n \n \n {item.title1}\n \n \n {item.title2}\n \n \n {item.desc1}\n \n \n {item.desc2}\n \n \n \n ))}\n \n \n \n \n \n \n เรียนออนไลน์ได้ง่ายที่สุด\n \n \n ด้วย Classwin\n \n \n คอร์สเรียนคุณภาพ ราคาคุ้มค่า มีที่นี่ที่เดียวเท่านั้น\n \n \n ทดลองเรียนได้เลย !\n \n
\n \n \n \n
\n \n \n {DataNoButton.map((item, idx) => (\n \n \n {item.title1}\n \n \n {item.title2}\n \n \n {item.desc}\n \n \n \n ))}\n \n
\n \n \n \n \n เรียนออนไลน์ได้ง่ายที่สุด\n \n \n ด้วย Classwin\n \n \n คอร์สเรียนคุณภาพ ราคาคุ้มค่า มีที่นี่ที่เดียวเท่านั้น\n \n \n ทดลองเรียนได้เลย !\n \n
\n \n \n \n
\n \n \n {DataNoButton.map((item, idx) => (\n \n \n {item.title1}\n \n \n {item.title2}\n \n \n {item.desc}\n \n \n \n ))}\n \n
\n
\n )\n}\n\nexport default MyCarousel\n","import styled from 'styled-components'\n// import { Col } from 'antd'\nimport { Typography } from 'components'\n\n// const ColStyleReview = styled(Col)`\n// padding: 16px;\n// border-radius: 14.972px;\n// background: white;\n// box-shadow: 0px 2.5764636993408203px 3.8615760803222656px 0px rgba(0, 0, 0, 0.05),\n// 0px 6.4318013191223145px 9.6508207321167px 0px rgba(0, 0, 0, 0.1);\n// `\n\nconst ColStyleReview = styled.div`\n padding: 24px;\n border-radius: 14.972px;\n background: white;\n box-shadow: 0px 2.5764636993408203px 3.8615760803222656px 0px rgba(0, 0, 0, 0.05),\n 0px 6.4318013191223145px 9.6508207321167px 0px rgba(0, 0, 0, 0.1);\n`\n// const ColStyleReview = styled(Col)`\n// display: flex;\n// justify-content: center;\n// align-items: center;\n// border-radius: 14.972px;\n// `\n\nconst FirstRowReview = styled.div`\n display: flex;\n justify-content: space-between;\n`\nconst ImageReview = styled.img`\n width: 100%;\n`\n\nconst TypoDescReview = styled(Typography)`\n margin-top: 5px;\n text-overflow: ellipsis;\n whitespace: nowrap;\n`\n\nconst CustomGrid = styled.div`\n padding: 16px;\n margin: 50px 0px;\n display: grid;\n grid-template-columns: repeat(${(props) => props.width || 1}, 1fr);\n grid-auto-rows: ${(props) => props.height || 'auto'};\n grid-gap: ${(props) => props.gap || '16px'};\n @media (min-width: 1600px) {\n grid-gap: ${(props) => props.gap || '2vw'};\n }\n`\n\nexport { ImageReview, ColStyleReview, FirstRowReview, TypoDescReview, CustomGrid }\n","export default __webpack_public_path__ + \"static/media/Avatar1FeedbackLanding.ced59b00.svg\";","export default __webpack_public_path__ + \"static/media/Avatar2FeedbackLanding.df5d548c.svg\";","export default __webpack_public_path__ + \"static/media/Avatar3FeedbackLanding.351b8f25.svg\";","export default __webpack_public_path__ + \"static/media/quoteFeedbackLanding.22e103da.svg\";","export default __webpack_public_path__ + \"static/media/StarFeedbackLanding.7a088824.svg\";","import React from 'react'\nimport { Row, Col } from 'antd'\nimport ErrorBoundary from 'components/errorBoundary'\nimport { ColStyleReview, TypoDescReview, CustomGrid } from './style'\nimport { Custom } from 'utils/displayResponsive'\nimport Avatar1 from 'images/icons/IconLandingPage/Avatar1FeedbackLanding.svg'\nimport Avatar2 from 'images/icons/IconLandingPage/Avatar2FeedbackLanding.svg'\nimport Avatar3 from 'images/icons/IconLandingPage/Avatar3FeedbackLanding.svg'\nimport quote from 'images/icons/IconLandingPage/quoteFeedbackLanding.svg'\nimport { Typography } from 'components'\nimport Star from 'images/icons/IconLandingPage/StarFeedbackLanding.svg'\nconst Feedback = () => {\n const reviewData = [\n {\n avatar: Avatar1,\n name: 'ธัชพัทญ์ นาคเสน',\n desc: 'โดยส่วนตัวสุใช้คลาสวินมาร่วมๆ 1 ปีได้แล้ว รู้สึกตอบ โจทย์มากค่ะ เป็นตัวช่วยในการเก็บคะแนนเด็กๆ และ นักเรียนยังสามารถเข้ามาทบทวนเนื้อหาได้ตลอด อยากให้ครูทุกคนได้มีโอกาสลองใช้งานดูค่ะ',\n icon: quote,\n star: Star,\n },\n {\n avatar: Avatar2,\n name: 'เปมิกา ศรีสมวงศ์',\n desc: 'แจนชอบคลาสวินตรงที่ใช้งานง่าย สามารถเข้าเรียนได้ในทุก device มีใบประกาศฯ และ badgeรับรอง อยากให้ทุกคนได้มาลองกันค่ะ',\n icon: quote,\n star: Star,\n },\n {\n avatar: Avatar3,\n name: 'ศุจินันท์ วิสิทธิ์ศาสตร์',\n desc: 'คลาสวินช่วยในการจัดอบรมแบบ Hybrid ได้อย่าง มีประสิทธิภาพ ทำคอร์สครั้งเดียวเก็บไว้สอน ได้ใน ระยะยาว',\n icon: quote,\n star: Star,\n },\n ]\n const reviewDataSlice = reviewData.slice(0, 2)\n return (\n \n \n \n {reviewData.map((review, index) => (\n \n \n \n \"avatar\"\n \n \n \n {review.name}\n \n {review.star}\n \n \n \"quote\"\n \n \n {review.desc}\n \n ))}\n \n \n \n \n {reviewDataSlice.map((review, index) => (\n \n \n \n \"avatar\"\n \n \n \n {review.name}\n \n {review.star}\n \n \n \"quote\"\n \n \n {review.desc}\n \n ))}\n \n \n \n \n {reviewDataSlice.map((review, index) => (\n \n \n \n \"avatar\"\n \n \n \n {review.name}\n \n {review.star}\n \n \n \"quote\"\n \n \n {review.desc}\n \n ))}\n \n \n \n )\n}\n\nexport default Feedback\n","import styled from 'styled-components'\nimport { Typography } from 'components'\nimport { Col } from 'antd'\n\nconst TypoGradient = styled(Typography)`\n display: flex;\n font-weight: bold;\n justify-content: center;\n align-items: center;\n background: linear-gradient(90deg, #6c51fe, #40b1ff);\n -webkit-background-clip: text;\n background-clip: text;\n -webkit-text-fill-color: transparent;\n`\n\nconst ColStyle = styled(Col)`\n padding: 64px 5px 0px 5px;\n`\nconst ColStyleReview = styled(Col)`\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nexport { TypoGradient, ColStyle, ColStyleReview }\n","import styled from 'styled-components'\n\nconst Image = styled.img`\n width: 84px;\n height: 84px;\n`\n\nexport { Image }\n","import React from 'react'\nimport { Image } from '../style'\nimport { Typography } from 'components'\n\nconst TextPicture = ({ src, title, desc, sizeTitle, sizeDesc }) => {\n return (\n
\n \"image\"\n \n {title}\n \n \n {desc}\n \n
\n )\n}\n\nexport default TextPicture\n","export default __webpack_public_path__ + \"static/media/CertificateLanding.aefb7bb2.svg\";","export default __webpack_public_path__ + \"static/media/TalkLanding.7fe69226.svg\";","export default __webpack_public_path__ + \"static/media/CreateLanding.e53cd0b7.svg\";","import React from 'react'\nimport { TypoGradient, ColStyle, ColStyleReview } from './style'\nimport { Row } from 'antd'\nimport ErrorBoundary from 'components/errorBoundary'\nimport TextPicture from '../TextPicture'\nimport CertificateLanding from 'images/CertificateLanding.svg'\nimport TalkLanding from 'images/icons/IconLandingPage/TalkLanding.svg'\nimport CreateLanding from 'images/icons/IconLandingPage/CreateLanding.svg'\nimport { Small, Custom } from 'utils/displayResponsive'\n\nconst DetailClasswin = () => {\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 DetailClasswin\n","export default __webpack_public_path__ + \"static/media/ForStudentLanding.f6a50043.svg\";","export default __webpack_public_path__ + \"static/media/ForTeacherLanding.f32435bf.svg\";","import styled from 'styled-components'\nimport { Button, Typography } from 'components'\n\nconst SelectTypeStyle = styled.div`\n display: flex;\n padding: 16px;\n justify-content: flex-end;\n align-items: end;\n background-image: ${(props) => `url(${props.image})`};\n background-size: contain;\n background-repeat: no-repeat;\n @media (max-width: 600px) {\n width: 90vw;\n height: 36vw;\n padding: 10vw;\n }\n @media (min-width: 601px) and (max-width: 1024px) {\n padding: 5vw;\n width: 45vw;\n height: 18vw;\n }\n @media (min-width: 1025px) and (max-width: 1919px) {\n padding: 5vw;\n width: 43vw;\n height: 17.2vw;\n }\n @media (min-width: 1920px) {\n padding: 5vw;\n width: 45vw;\n height: 18vw;\n }\n`\n\nconst ButtonStyleSelectType = styled(Button)`\n width: ${(props) => `${props.width}vw`};\n font-size: calc(16px + 1vw);\n height: calc(40px + 5vw);\n @media (min-width: 601px) and (max-width: 1024px) {\n min-width: 160px;\n }\n @media (min-width: 1025px) {\n min-width: 220px;\n }\n border-radius: 50px;\n background: linear-gradient(90deg, #6c51fe, #40b1ff);\n box-shadow: 0px 4.125px 6.1875px -2.0625px rgba(0, 0, 0, 0.05),\n 0px 10.3125px 15.46875px -3.09375px rgba(0, 0, 0, 0.1);\n`\n\nconst TypoStyleCreateSale = styled(Typography)`\n color: white;\n font-size: calc(16px + 0.3vw);\n`\n\nexport { SelectTypeStyle, ButtonStyleSelectType, TypoStyleCreateSale }\n","import React from 'react'\nimport { Row, Col } from 'antd'\nimport 'antd/dist/antd.css'\nimport ForStudentLanding from 'images/ForStudentLanding.svg'\nimport ForTeacherLanding from 'images/ForTeacherLanding.svg'\nimport { Custom } from 'utils/displayResponsive'\nimport { SelectTypeStyle, ButtonStyleSelectType, TypoStyleCreateSale } from './style'\nimport { Link } from 'react-router-dom'\n\nconst selectType = () => {\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\nexport default selectType\n","export default __webpack_public_path__ + \"static/media/StatisticLandingDesktop.335c9b8a.png\";","export default __webpack_public_path__ + \"static/media/StatisticLandingMobile.47438850.svg\";","import React from 'react'\nimport StatisticLandingDesktop from 'images/icons/IconLandingPage/StatisticLandingDesktop.png'\nimport StatisticLandingPageMobile from 'images/icons/IconLandingPage/StatisticLandingMobile.svg'\nimport { Custom } from 'utils/displayResponsive'\nimport ErrorBoundary from 'components/errorBoundary'\n\nconst statistic = () => {\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default statistic\n","export default __webpack_public_path__ + \"static/media/CreateCourseBGLanding1.405e8a7b.jpg\";","export default __webpack_public_path__ + \"static/media/SaleCourseBGLanding1.1efb8858.jpg\";","import styled from 'styled-components'\nimport { Button, Typography } from 'components'\n\nconst CreateSaleStyle = styled.div`\n display: flex;\n justify-content: center;\n align-items: end;\n background-image: ${(props) => `url(${props.image})`};\n background-size: 100% 100%;\n background-repeat: no-repeat;\n @media (max-width: 600px) {\n width: 90vw;\n height: 90vw;\n max-height: 550px;\n max-width: 550px;\n padding: 15vw;\n }\n @media (min-width: 601px) and (max-width: 768px) {\n padding: 8vw;\n width: 45vw;\n height: 45vw;\n max-height: 550px;\n max-width: 550px;\n }\n @media (min-width: 769px) and (max-width: 1024px) {\n padding: 8vw;\n width: 46.5vw;\n height: 46.5vw;\n max-height: 550px;\n max-width: 550px;\n }\n @media (min-width: 1025px) {\n padding: 8vw;\n width: 43vw;\n height: 43vw;\n }\n`\nconst ButtonStyleCreate = styled(Button)`\n width: ${(props) => `${props.width}vw`};\n font-size: calc(16px + 1vw);\n height: calc(40px + 5vw);\n min-width: 160px;\n background-color: ${(props) => props.theme.primary16};\n border-radius: 36.735px;\n box-shadow: 0px 3.0306098461151123px 4.545914649963379px -1.5153049230575562px rgba(0, 0, 0, 0.05),\n 0px 7.57652473449707px 11.364786148071289px -2.2729573249816895px rgba(0, 0, 0, 0.1);\n`\n\nconst ButtonStyleSale = styled(Button)`\n width: ${(props) => `${props.width}vw`};\n font-size: calc(16px + 1vw);\n height: calc(40px + 5vw);\n min-width: 220px;\n background-color: ${(props) => props.theme.primary16};\n border-radius: 36.735px;\n box-shadow: 0px 3.0306098461151123px 4.545914649963379px -1.5153049230575562px rgba(0, 0, 0, 0.05),\n 0px 7.57652473449707px 11.364786148071289px -2.2729573249816895px rgba(0, 0, 0, 0.1);\n`\n\nconst TypoStyleCreateSale = styled(Typography)`\n color: white;\n\n @media (max-width: 600px) {\n font-size: calc(16px + 0.3vw);\n }\n @media (min-width: 601px) and (max-width: 1024px) {\n font-size: calc(18px + 0.2vw);\n }\n @media (min-width: 1025px) {\n font-size: calc(21px + 0.3vw);\n }\n`\n\nexport { CreateSaleStyle, ButtonStyleCreate, TypoStyleCreateSale, ButtonStyleSale }\n","import React from 'react'\nimport CreateBG from 'images/CreateCourseBGLanding1.jpg'\nimport SaleBG from 'images/SaleCourseBGLanding1.jpg'\nimport ErrorBoundary from 'components/errorBoundary'\nimport { CreateSaleStyle, ButtonStyleCreate, TypoStyleCreateSale, ButtonStyleSale } from './style'\nimport { Custom } from 'utils/displayResponsive'\nimport { Row, Col } from 'antd'\nimport { Link } from 'react-router-dom'\nconst Createsale = () => {\n // const formUrl = 'https://forms.gle/5XUN8SZj8VeREHJn7'\n\n // const handleOpenForm = () => {\n // window.open(formUrl, '_blank')\n // }\n\n return (\n \n \n \n \n \n \n \n สร้างคอร์สเอง\n \n \n \n \n \n \n \n \n ขายคอร์สกับ Classwin\n \n \n \n \n \n \n \n \n \n \n \n \n สร้างคอร์สเอง\n \n \n \n \n \n \n \n \n ขายคอร์สกับ Classwin\n \n \n \n \n \n \n \n \n \n \n \n \n สร้างคอร์สเอง\n \n \n \n \n \n \n \n \n ขายคอร์สกับ Classwin\n \n \n \n \n \n \n \n \n \n \n \n \n สร้างคอร์สเอง\n \n \n \n \n \n \n \n \n ขายคอร์สกับ Classwin\n \n \n \n \n \n \n \n )\n}\n\nexport default Createsale\n","import styled, { css } from 'styled-components'\nimport { Typography } from 'components'\n\nconst Container = styled.div`\n margin-top: 50px;\n`\n\nconst Wrapper = styled.div`\n z-index: 5;\n`\nconst BannerImage = styled.img``\nconst Heading = styled.div`\n margin-top: 5px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1);\n background: #fff;\n border-top: 1px solid ${(props) => props.theme.gray8};\n padding: 8px 150px;\n z-index: 5;\n height: 60px;\n @media (max-width: 1024px) {\n padding: 8px 50px;\n }\n @media (max-width: 768px) {\n padding: 8px 20px;\n button {\n padding: 6px;\n }\n }\n`\nconst SelectCat = styled.div`\n display: flex;\n\n @media (max-width: 1024px) {\n width: 100%;\n justify-content: flex-end;\n gap: 10px;\n }\n\n > div {\n width: 200px;\n margin-left: 10px;\n @media (max-width: 1024px) {\n width: 100%;\n margin-left: 0px;\n }\n\n > div {\n border-radius: 5px;\n }\n\n /* @media (max-width: 768px) {\n width: 150px;\n } */\n @media (max-width: 460px) {\n margin-left: 0px;\n width: 49%;\n }\n @media (max-width: 430px) {\n justify-content: space-between;\n margin-left: 0px;\n width: 100%;\n }\n }\n`\nconst Div = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n @media (max-width: 768px) {\n width: 100%;\n justify-content: flex-end;\n }\n @media (max-width: 426px) {\n width: 100%;\n padding: 0px;\n }\n`\n\nconst _Typography = styled(Typography)`\n white-space: pre-wrap;\n ${({ isFirst, locale }) => {\n if (isFirst && locale === 'en') {\n return css`\n /* @media (max-width: 768px) {\n line-height: 1.5; */\n }\n\n @media (max-width: 426px) {\n margin-top: 0;\n }\n `\n }\n return css``\n }}\n ${({ title }) => {\n if (title) {\n return css`\n font-size: ${(props) => props.theme['text-xl']};\n @media (max-width: 768px) {\n font-size: ${(props) => props.theme['text-base']};\n }\n @media (max-width: 426px) {\n font-size: ${(props) => props.theme['text-sm']};\n }\n `\n }\n }}\n`\nconst ImageInfo = styled.div`\n background-image: url(${({ url }) => url});\n background-repeat: no-repeat;\n width: 100%;\n height: 317px;\n background-position: center;\n background-size: contain;\n @media screen and (max-height: 450px) {\n height: 100px;\n }\n`\nexport const ImageGreeting = styled.div`\n background-image: url(${({ url }) => url});\n background-repeat: no-repeat;\n width: 100%;\n height: 200px;\n\n background-position: center;\n background-size: contain;\n @media (max-width: 768px) {\n width: 80%;\n\n height: 160px;\n }\n @media screen and (max-width: 426px) {\n height: 140px;\n width: 100%;\n }\n`\nexport const Image = styled.img`\n width: 100%;\n height: 220px;\n`\nconst ButtonInfo = styled.button`\n background-image: url(${({ url }) => url});\n background-repeat: no-repeat;\n width: 240px;\n height: 240px;\n background-position: center;\n background-size: contain;\n background-color: transparent;\n ${({ active }) => {\n if (active) {\n return css`\n border: solid 3px #5a69fe;\n border-radius: 10px;\n `\n }\n return css`\n border: none;\n `\n }}\n\n @media screen and (max-width: 429px) {\n width: 120px;\n height: 120px;\n }\n @media screen and (max-width: 379px) {\n width: 100px;\n height: 100px;\n }\n @media screen and (max-width: 329px) {\n width: 90px;\n height: 90px;\n }\n`\n\nconst Checkbox = styled.div`\n display: flex;\n align-items: center;\n\n ${({ background }) => {\n if (background === 'mobile') {\n return css`\n margin-top: 8px;\n `\n }\n return css``\n }}\n padding: 12px;\n border-radius: 6px;\n\n background: #eef0ff4d;\n\n &:hover {\n opacity: 100%;\n background: #eef0ff;\n }\n cursor: pointer;\n & > input {\n width: 16px;\n height: 16px;\n margin-right: 10px;\n }\n .ant-checkbox-input {\n border-color: #5a69fe !important;\n &:hover {\n border-color: #5a69fe !important;\n }\n }\n\n .ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #5a69fe !important;\n &:hover {\n border-color: #5a69fe !important;\n }\n }\n .ant-checkbox-wrapper:hover {\n border-color: #5a69fe !important;\n }\n .ant-checkbox .ant-checkbox-wrapper {\n border-color: #5a69fe !important;\n }\n .ant-checkbox-inner {\n border-radius: 4px !important;\n &::after {\n top: 45%;\n }\n &:hover {\n /* background-color: #5a69fe !important; */\n border-color: #5a69fe !important;\n }\n }\n .ant-checkbox-wrapper:hover .ant-checkbox-inner,\n .ant-checkbox:hover .ant-checkbox-inner,\n .ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #5a69fe !important;\n }\n .ant-checkbox-checked {\n border-radius: 4px !important;\n background-color: #5a69fe !important;\n &:hover {\n background-color: #5a69fe !important;\n }\n\n &::after {\n border-radius: 4px !important;\n border-color: #5a69fe !important;\n }\n }\n .ant-checkbox-checked .ant-checkbox-inner {\n background-color: #5a69fe !important;\n border-color: #5a69fe !important;\n &:hover {\n background-color: #5a69fe !important;\n }\n }\n`\nconst ContainerImg = styled.div`\n cursor: pointer;\n`\n\nconst SearchBarContainer2 = styled.div`\n display: flex;\n justify-content: space-between;\n height: 56px;\n width: 100%;\n position: fixed;\n top: 0;\n z-index: 2;\n background-color: white;\n @media (max-width: 601px) {\n padding: 8px 16px;\n }\n\n @media (min-width: 601px) and (max-width: 1023px) {\n padding: 8px 32px;\n }\n\n @media (min-width: 1023px) {\n padding: 8px 144px;\n }\n`\n\nconst CoursebarContainer = styled.div`\n display: flex;\n justify-content: space-between;\n height: 56px;\n width: 100%;\n position: fixed;\n top: 50px;\n z-index: 1;\n @media (max-width: 601px) {\n padding: 8px 16px;\n }\n\n @media (min-width: 601px) and (max-width: 1023px) {\n padding: 8px 32px;\n }\n`\n\nconst SearchBarTop = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n\n .notification-icon {\n fill: ${(props) => props.theme.gray6};\n width: 32px;\n height: 32px;\n margin-top: 12px;\n }\n\n .notification-icon:hover {\n fill: ${(props) => props.theme.primary2};\n }\n\n .row {\n display: flex;\n align-items: center;\n }\n\n > :first-child {\n margin-left: 0px;\n }\n\n .centre {\n display: flex;\n align-items: center;\n }\n\n .flexend {\n display: flex;\n justify-content: flex-end;\n }\n\n .justify {\n justify-content: space-evenly;\n @media (max-width: 660px) {\n justify-content: flex-end;\n }\n }\n\n .full {\n flex: 1;\n }\n\n img:hover {\n cursor: pointer;\n }\n\n /* > :last-child:hover {\n cursor: pointer;\n } */\n\n @media (max-width: 1024px) {\n display: flex;\n justify-content: space-between;\n button {\n padding: 0px;\n font-size: ${({ theme }) => theme['text-xxs']};\n }\n\n img {\n width: 20px;\n height: 20px;\n }\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n\n > :last-child {\n width: 30px;\n height: 30px;\n /* margin-right: 10px; */\n }\n }\n`\n\nconst TypoGradient = styled(Typography)`\n display: flex;\n justify-content: center;\n align-items: center;\n background: linear-gradient(90deg, #6c51fe, #40b1ff);\n -webkit-background-clip: text;\n background-clip: text;\n -webkit-text-fill-color: transparent;\n`\nexport {\n Container,\n Heading,\n SelectCat,\n Div,\n Checkbox,\n _Typography as Typography,\n Wrapper,\n ImageInfo,\n ButtonInfo,\n BannerImage,\n ContainerImg,\n SearchBarContainer2,\n SearchBarTop,\n CoursebarContainer,\n TypoGradient,\n}\n","import React, { useState, useEffect } from 'react'\nimport _ from 'lodash'\nimport { useHistory } from 'react-router-dom'\nimport InfiniteScroll from 'react-infinite-scroll-component'\nimport styled from 'styled-components'\nimport { Row, Col, Empty, Card } from 'components/index'\nimport ContenLoader from 'components/listView/ContenLoader'\nimport Loader from 'components/loader'\nimport EmptyFolder from 'images/EmptyFolder.svg'\n\nconst EmptyCard = styled.div`\n background-color: white;\n border-radius: 8px;\n`\nconst ListView = ({\n id,\n data,\n dataLength,\n renderItem,\n emptyTitle,\n emptyDesc,\n fetchMoreData,\n skip,\n EmptyButton,\n addCard,\n addCardVisible = true,\n ...props\n}) => {\n const [hasMore, setHasMore] = useState(true)\n const [loadMore, setLoadMore] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const [newSkip, setNewSkip] = useState(skip)\n const history = useHistory()\n const { location } = history\n\n useEffect(() => {\n setLoading(true)\n setHasMore(true)\n setNewSkip(skip)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n useEffect(() => {\n setLoadMore(false)\n setLoading(false)\n }, [data])\n\n const next = async () => {\n if (data.length >= dataLength) {\n setHasMore(false)\n return\n }\n\n setTimeout(async () => {\n if (!loadMore) {\n await setLoadMore(true)\n await fetchMoreData(0, skip + newSkip)\n await setNewSkip(skip + newSkip)\n }\n }, 500)\n }\n\n // const renderEndMessage = () => {\n // // return (\n // //
\n // // \n // // You’ve reached the end of the list\n // // \n // //
\n // // )\n // return (\n //
\n // \n // Powered by Classwin Co.,Ltd.\n // \n //
\n // )\n // }\n\n if (!data || loading) {\n return \n }\n\n if (_.isEmpty(data)) {\n return (\n \n \n \n \n \n )\n }\n\n return (\n
\n }\n >\n \n {addCard && addCardVisible ? {addCard()} :
}\n {data.map((item, index) => {\n return (\n \n {renderItem(item)}\n \n )\n })}\n \n {!hasMore}\n \n
\n )\n}\n\nListView.defaultProps = {\n emptyTitle: 'No course found',\n emptyDesc: 'There is no course found. Please check your keyword and search again.',\n skip: 20,\n}\n\nexport default ListView\n","/* eslint-disable no-unused-vars */\nimport CourseCard2 from 'components/courseCard2'\nimport { Heading, Container, SelectCat, Wrapper, TypoGradient } from './style'\nimport { Custom } from 'utils/displayResponsive'\nimport ErrorBoundary from 'components/errorBoundary'\nimport ListView from '../ListView/index'\nimport theme from 'theme'\nimport { Link, withRouter } from 'react-router-dom'\nimport React, { useState, useEffect, useRef } from 'react'\nimport qs from 'qs'\nimport axios from 'axios'\n// import ListViewWithoutEnd from './ListViewWithoutEnd'\nimport { Typography } from 'components'\nimport TooltipCourse from 'components/toolTipCourse/loadable'\nimport store from 'store'\nimport { connect } from 'react-redux'\n\nconst RecommendCard = (props) => {\n const { courseLevels } = props\n const [recommendCourses, setReommendCourses] = useState([])\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await axios.get('/courses/landing-page')\n setReommendCourses(response.data.recommendedCourses)\n console.log(response.data)\n } catch (error) {\n console.error('Error fetching data:', error)\n }\n }\n\n fetchData()\n }, [])\n const levels = courseLevels.reduce((obj, item) => ({ ...obj, [item.id]: item.name }), {})\n\n const slicedData = recommendCourses ? recommendCourses.slice(0, 2) : []\n return (\n \n \n \n \n \n \n แนะนำคอร์ส\n \n \n \n ทั้งหมด\n \n \n
\n (\n \n )}\n xxl={8}\n xl={8}\n lg={12}\n md={12}\n sm={12}\n />\n \n \n \n \n \n \n \n \n แนะนำคอร์ส\n \n \n \n ทั้งหมด\n \n \n \n (\n \n \n \n )}\n xxl={8}\n xl={8}\n lg={8}\n md={12}\n sm={12}\n />\n \n \n \n \n )\n}\n\nconst selection = store.select((models) => ({\n isTeacher: models.AppUser.isTeacher,\n}))\n\nconst mapState = (state) => {\n const {\n Course: { courseList, courseListCount },\n CourseCategories: { courseCategories },\n CourseLevels: { courseLevels },\n AppUser: { appUser },\n Language: { locale },\n ModalState: { showInstructor },\n } = state\n return {\n courseList,\n courseListCount,\n courseCategories,\n courseLevels,\n appUser,\n locale,\n showInstructor,\n ...selection(state),\n }\n}\n\nconst mapDispatch = ({\n Course: { getCourseCatalog, getCourseCatalogCount },\n CourseCategories: { getCourseCategoriesWithCount },\n CourseLevels: { getCourseLevels },\n AppUser: { fetchMe, updateProfile },\n ModalState: { onOpenShowInstructor },\n Language: { updateLocale },\n Intro: { setOpenProfileMenu },\n}) => ({\n getCourseCatalog,\n getCourseCatalogCount,\n getCourseCategories: getCourseCategoriesWithCount,\n getCourseLevels,\n fetchMe,\n updateProfile,\n updateLocale,\n onOpenShowInstructor,\n setOpenProfileMenu,\n})\nexport default connect(mapState, mapDispatch)(RecommendCard)\n","import styled, { css } from 'styled-components'\nimport { Typography } from 'components'\n\nconst Container = styled.div`\n margin-top: 50px;\n`\n\nconst Wrapper = styled.div`\n z-index: 5;\n`\nconst BannerImage = styled.img``\nconst Heading = styled.div`\n margin-top: 5px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1);\n background: #fff;\n border-top: 1px solid ${(props) => props.theme.gray8};\n padding: 8px 150px;\n z-index: 5;\n height: 60px;\n @media (max-width: 1024px) {\n padding: 8px 50px;\n }\n @media (max-width: 768px) {\n padding: 8px 20px;\n button {\n padding: 6px;\n }\n }\n`\nconst SelectCat = styled.div`\n display: flex;\n\n @media (max-width: 1024px) {\n width: 100%;\n justify-content: flex-end;\n gap: 10px;\n }\n\n > div {\n width: 200px;\n margin-left: 10px;\n @media (max-width: 1024px) {\n width: 100%;\n margin-left: 0px;\n }\n\n > div {\n border-radius: 5px;\n }\n\n /* @media (max-width: 768px) {\n width: 150px;\n } */\n @media (max-width: 460px) {\n margin-left: 0px;\n width: 49%;\n }\n @media (max-width: 430px) {\n justify-content: space-between;\n margin-left: 0px;\n width: 100%;\n }\n }\n`\nconst Div = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n @media (max-width: 768px) {\n width: 100%;\n justify-content: flex-end;\n }\n @media (max-width: 426px) {\n width: 100%;\n padding: 0px;\n }\n`\n\nconst _Typography = styled(Typography)`\n white-space: pre-wrap;\n ${({ isFirst, locale }) => {\n if (isFirst && locale === 'en') {\n return css`\n /* @media (max-width: 768px) {\n line-height: 1.5; */\n }\n\n @media (max-width: 426px) {\n margin-top: 0;\n }\n `\n }\n return css``\n }}\n ${({ title }) => {\n if (title) {\n return css`\n font-size: ${(props) => props.theme['text-xl']};\n @media (max-width: 768px) {\n font-size: ${(props) => props.theme['text-base']};\n }\n @media (max-width: 426px) {\n font-size: ${(props) => props.theme['text-sm']};\n }\n `\n }\n }}\n`\nconst ImageInfo = styled.div`\n background-image: url(${({ url }) => url});\n background-repeat: no-repeat;\n width: 100%;\n height: 317px;\n background-position: center;\n background-size: contain;\n @media screen and (max-height: 450px) {\n height: 100px;\n }\n`\nexport const ImageGreeting = styled.div`\n background-image: url(${({ url }) => url});\n background-repeat: no-repeat;\n width: 100%;\n height: 200px;\n\n background-position: center;\n background-size: contain;\n @media (max-width: 768px) {\n width: 80%;\n\n height: 160px;\n }\n @media screen and (max-width: 426px) {\n height: 140px;\n width: 100%;\n }\n`\nexport const Image = styled.img`\n width: 100%;\n height: 220px;\n`\nconst ButtonInfo = styled.button`\n background-image: url(${({ url }) => url});\n background-repeat: no-repeat;\n width: 240px;\n height: 240px;\n background-position: center;\n background-size: contain;\n background-color: transparent;\n ${({ active }) => {\n if (active) {\n return css`\n border: solid 3px #5a69fe;\n border-radius: 10px;\n `\n }\n return css`\n border: none;\n `\n }}\n\n @media screen and (max-width: 429px) {\n width: 120px;\n height: 120px;\n }\n @media screen and (max-width: 379px) {\n width: 100px;\n height: 100px;\n }\n @media screen and (max-width: 329px) {\n width: 90px;\n height: 90px;\n }\n`\n\nconst Checkbox = styled.div`\n display: flex;\n align-items: center;\n\n ${({ background }) => {\n if (background === 'mobile') {\n return css`\n margin-top: 8px;\n `\n }\n return css``\n }}\n padding: 12px;\n border-radius: 6px;\n\n background: #eef0ff4d;\n\n &:hover {\n opacity: 100%;\n background: #eef0ff;\n }\n cursor: pointer;\n & > input {\n width: 16px;\n height: 16px;\n margin-right: 10px;\n }\n .ant-checkbox-input {\n border-color: #5a69fe !important;\n &:hover {\n border-color: #5a69fe !important;\n }\n }\n\n .ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #5a69fe !important;\n &:hover {\n border-color: #5a69fe !important;\n }\n }\n .ant-checkbox-wrapper:hover {\n border-color: #5a69fe !important;\n }\n .ant-checkbox .ant-checkbox-wrapper {\n border-color: #5a69fe !important;\n }\n .ant-checkbox-inner {\n border-radius: 4px !important;\n &::after {\n top: 45%;\n }\n &:hover {\n /* background-color: #5a69fe !important; */\n border-color: #5a69fe !important;\n }\n }\n .ant-checkbox-wrapper:hover .ant-checkbox-inner,\n .ant-checkbox:hover .ant-checkbox-inner,\n .ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #5a69fe !important;\n }\n .ant-checkbox-checked {\n border-radius: 4px !important;\n background-color: #5a69fe !important;\n &:hover {\n background-color: #5a69fe !important;\n }\n\n &::after {\n border-radius: 4px !important;\n border-color: #5a69fe !important;\n }\n }\n .ant-checkbox-checked .ant-checkbox-inner {\n background-color: #5a69fe !important;\n border-color: #5a69fe !important;\n &:hover {\n background-color: #5a69fe !important;\n }\n }\n`\nconst ContainerImg = styled.div`\n cursor: pointer;\n`\n\nconst SearchBarContainer2 = styled.div`\n display: flex;\n justify-content: space-between;\n height: 56px;\n width: 100%;\n position: fixed;\n top: 0;\n z-index: 2;\n background-color: white;\n @media (max-width: 601px) {\n padding: 8px 16px;\n }\n\n @media (min-width: 601px) and (max-width: 1023px) {\n padding: 8px 32px;\n }\n\n @media (min-width: 1023px) {\n padding: 8px 144px;\n }\n`\n\nconst CoursebarContainer = styled.div`\n display: flex;\n justify-content: space-between;\n height: 56px;\n width: 100%;\n position: fixed;\n top: 50px;\n z-index: 1;\n @media (max-width: 601px) {\n padding: 8px 16px;\n }\n\n @media (min-width: 601px) and (max-width: 1023px) {\n padding: 8px 32px;\n }\n`\n\nconst SearchBarTop = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n\n .notification-icon {\n fill: ${(props) => props.theme.gray6};\n width: 32px;\n height: 32px;\n margin-top: 12px;\n }\n\n .notification-icon:hover {\n fill: ${(props) => props.theme.primary2};\n }\n\n .row {\n display: flex;\n align-items: center;\n }\n\n > :first-child {\n margin-left: 0px;\n }\n\n .centre {\n display: flex;\n align-items: center;\n }\n\n .flexend {\n display: flex;\n justify-content: flex-end;\n }\n\n .justify {\n justify-content: space-evenly;\n @media (max-width: 660px) {\n justify-content: flex-end;\n }\n }\n\n .full {\n flex: 1;\n }\n\n img:hover {\n cursor: pointer;\n }\n\n /* > :last-child:hover {\n cursor: pointer;\n } */\n\n @media (max-width: 1024px) {\n display: flex;\n justify-content: space-between;\n button {\n padding: 0px;\n font-size: ${({ theme }) => theme['text-xxs']};\n }\n\n img {\n width: 20px;\n height: 20px;\n }\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n\n > :last-child {\n width: 30px;\n height: 30px;\n /* margin-right: 10px; */\n }\n }\n`\n\nconst TypoGradient = styled(Typography)`\n display: flex;\n justify-content: center;\n align-items: center;\n background: linear-gradient(90deg, #6c51fe, #40b1ff);\n -webkit-background-clip: text;\n background-clip: text;\n -webkit-text-fill-color: transparent;\n`\nexport {\n Container,\n Heading,\n SelectCat,\n Div,\n Checkbox,\n _Typography as Typography,\n Wrapper,\n ImageInfo,\n ButtonInfo,\n BannerImage,\n ContainerImg,\n SearchBarContainer2,\n SearchBarTop,\n CoursebarContainer,\n TypoGradient,\n}\n","/* eslint-disable no-unused-vars */\nimport CourseCard2 from 'components/courseCard2'\nimport { Heading, Container, SelectCat, Wrapper, TypoGradient } from './style'\nimport { Custom } from 'utils/displayResponsive'\nimport ErrorBoundary from 'components/errorBoundary'\nimport ListView from '../ListView/index'\nimport theme from 'theme'\nimport { Link, withRouter } from 'react-router-dom'\nimport React, { useState, useEffect, useRef } from 'react'\nimport qs from 'qs'\nimport axios from 'axios'\n// import ListViewWithoutEnd from './ListViewWithoutEnd'\nimport { Typography } from 'components'\nimport TooltipCourse from 'components/toolTipCourse/loadable'\nimport store from 'store'\nimport { connect } from 'react-redux'\n\nconst OrganizeCard = (props) => {\n const { courseLevels } = props\n const [OrganizeCourses, setOrganizeCourses] = useState([])\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await axios.get('/courses/landing-page')\n console.log(response.data)\n setOrganizeCourses(response.data.workCourses)\n } catch (error) {\n console.error('Error fetching data:', error)\n }\n }\n\n fetchData()\n }, [])\n\n const slicedData = OrganizeCourses ? OrganizeCourses.slice(0, 2) : []\n return (\n \n \n \n \n \n \n คอร์สสำหรับองค์กร\n \n \n \n ทั้งหมด\n \n \n \n (\n \n )}\n xxl={8}\n xl={8}\n lg={12}\n md={12}\n sm={12}\n />\n \n \n \n \n \n \n \n \n คอร์สสำหรับองค์กร\n \n \n \n ทั้งหมด\n \n \n \n (\n \n )}\n xxl={8}\n xl={8}\n lg={8}\n md={12}\n sm={12}\n />\n \n \n \n \n )\n}\nconst selection = store.select((models) => ({\n isTeacher: models.AppUser.isTeacher,\n}))\n\nconst mapState = (state) => {\n const {\n Course: { courseList, courseListCount },\n CourseCategories: { courseCategories },\n CourseLevels: { courseLevels },\n AppUser: { appUser },\n Language: { locale },\n ModalState: { showInstructor },\n } = state\n return {\n courseList,\n courseListCount,\n courseCategories,\n courseLevels,\n appUser,\n locale,\n showInstructor,\n ...selection(state),\n }\n}\n\nconst mapDispatch = ({\n Course: { getCourseCatalog, getCourseCatalogCount },\n CourseCategories: { getCourseCategoriesWithCount },\n CourseLevels: { getCourseLevels },\n AppUser: { fetchMe, updateProfile },\n ModalState: { onOpenShowInstructor },\n Language: { updateLocale },\n Intro: { setOpenProfileMenu },\n}) => ({\n getCourseCatalog,\n getCourseCatalogCount,\n getCourseCategories: getCourseCategoriesWithCount,\n getCourseLevels,\n fetchMe,\n updateProfile,\n updateLocale,\n onOpenShowInstructor,\n setOpenProfileMenu,\n})\nexport default connect(mapState, mapDispatch)(OrganizeCard)\n","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { RowStyle, ColCarousel } from './style'\nimport { Row, Col, Card } from 'antd'\n\nimport Carousel from './component/Carousel/index'\nimport Feedback from './component/Feedback/index'\nimport DetailClasswin from './component/DetailClasswin/index'\nimport SelectType from './component/SelectType/index'\nimport Statistic from './component/Statistic/index'\nimport Createsale from './component/CreateSale/index'\nimport RecommendCard from './component/RecommendCard/index'\nimport OrganizeCard from './component/OrganizeCard/index'\nimport NavbarLandingPage from 'components/NavbarLandingPage/loadable'\nimport FooterLanding from 'components/FooterLandingPage/loadable'\nconst LandingPage = () => {\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 Button คอร์สเรียน Exclusive\n */}\n \n \n \n \n \n \n \n \n
\n //
\n )\n}\n\nexport default LandingPage\n"],"sourceRoot":""}