{"version":3,"sources":["utils/constants.js","utils/helperFunctions.js","utils/DataManagement.js","assets/images/avatar/admin.png","assets/images/avatar/editor.png","assets/images/sidebar/sidebar-4.jpg","components/Layout/Content.js","components/Layout/EmptyLayout.js","components/Layout/Footer.js","utils/breadcrumbs.js","components/Layout/Header.js","components/Layout/MainLayout.js","components/Layout/Sidebar.js","components/PageSpinner.js","components/AuthForm.js","pages/AuthPage.js","components/PrivateRoute.js","utils/utilityFunctions.js","App.js","index.js","utils/databaseFunctions.js","utils/bemnames.js","configs.js"],"names":["localStrings","sortableType","standart","website","fastSearchType","service","product","sortByTurkishCharacters","a","b","alfabe","length","i","ai","indexOf","bi","DM","findCategory","id","categories","find","item","category_id","fetchCategories","then","res","findBrand","brands","brand_id","localeCompare","fetchBrands","brand_name","findProduct","products","materia_id","fetchProducts","product_id","setLoggedInUser","user","loggedInUser","getLoggedInUser","data","username","localStorage","getItem","name","role","access_token","findService","services","service_id","fetchServices","findServiceFastSearch","uid","serviceFastSearches","_uid","fetchFastSearches","findProductFastSearch","productFastSearches","getHomepageSegment","type","homepageSegments","segment","segmentId","segmentType","segment_id","console","log","this","productsForAudit","dealers","users","personels","blogs","slider","feedbacks","professionals","index","_","findIndex","push","remove","personel","dealer","dealer_id","brand","index_1","index_2","category","feedback","_id","professional","fastSearches","fastSearch","segments","module","exports","bem","bn","create","Content","Tag","tag","className","restProps","classes","defaultProps","Container","EmptyLayout","children","fluid","Footer","Navbar","Nav","navbar","NavItem","allPaths","path","breadcrumb","active","link","Meta","Card","configURL","config","server_url","Header","state","isNotificationConfirmed","undefined","loadToLoggedInUser","avatar","adminAvatar","editorAvatar","capitalizeFirstLetter","setState","string","charAt","toUpperCase","slice","logout","url","requestOptions","method","headers","credentials","withCredentials","fetch","response","json","message","info","clear","handleSidebarControlButton","event","preventDefault","stopPropagation","document","querySelector","classList","toggle","pathname","props","crumb","filter","menu","ListGroup","ListGroupItem","action","style","width","borderRadius","color","src","title","description","to","onClick","danger","block","alignItems","justifyContent","marginTop","size","marginRight","light","expand","marginLeft","Breadcrumb","e","map","BreadcrumbItem","key","overlay","placement","arrow","trigger","NavLink","React","Component","MainLayout","handleContentClick","isSidebarOpen","breakpoint","openSidebar","checkBreakpoint","setTimeout","openOrClose","add","location","contains","sidebarBackground","backgroundImage","sidebarBgImage","backgroundSize","backgroundRepeat","roles","Sidebar","userRole","isOpenHomepage","isOpenAdmin","isOpenExplore","isOpenBrandCatalog","isOpenProServices","isOpenAds","isOpenUserManage","isOpenSssAndFooter","isOpenBlogManage","isOpenShortcut","isOpenBrandDealerManage","isOpenProductManage","isOpenBrandCategoryManage","isOpenProServiceCategoryManage","isOpenFeaturedServices","topList","subList","handleClick","listType","list","concat","prevState","isOpen","obj","objList","Object","assign","textTransformToUppercase","text","toLocaleUpperCase","topNavItems","exact","Icon","forRole","subItems","Admin","Explore","BrandCatalog","subSubItems","UserManage","MdVerifiedUser","MdPersonPin","ImProfile","BlogManage","MdSlideshow","MdDashboard","BrandDealerManage","VscSymbolMethod","GiCheckboxTree","ProductManage","FaListAlt","MdPlaylistAdd","HiBadgeCheck","BrandCategoryManage","ImTree","childrenCheck","array","alt","fontSize","paddingLeft","vertical","Fragment","fontWeight","padding","transform","transitionDuration","transitionProperty","Collapse","PageSpinner","Spinner","AuthForm","redirect","handleInputChange","target","email","value","password","handleSubmit","body","JSON","stringify","postId","success","setItem","loading","error","showLogo","usernameLabel","usernameInputProps","passwordLabel","passwordInputProps","onkeydown","window","Form","FormGroup","Label","for","Input","onChange","Button","placeholder","AuthPage","Row","height","Col","md","lg","authState","PrivateRoute","onEnter","Array","prototype","last","Homepage","lazy","Users","Personels","Products","ProductAdd","ProductEdit","ProductAudit","BrandManagement","BrandAdd","BrandEdit","DealerManagement","DealerEdit","DealerAdd","CategoryManagementPage","CategoryGalleriesPage","BlogManagement","BlogSliderManagement","Professionals","Ads","SssFooter","Shortcut","HomepageEdits","FeaturedServices","ServiceFastSearch","ProductFastSearch","ServiceCategoryManage","App","isLoggedIn","exist","component","layout","Suspense","fallback","componentQueries","ReactDOM","render","getElementById","requestToServer","endPoint","status","catch","err","checkToken","getCategories","setCategories","getBrands","setBrands","fetchBrand","existBrand","updateBrands","queries","getProducts","setProducts","fetchDealers","getDealers","setDealers","deleteProduct","deleteBrand","deleteDealer","fetchUsers","getUsers","setUsers","fetchPersonels","getPersonels","setPersonels","deleteUser","deleteCategory","fetchBlogs","getBlogs","setBlogs","fetchSlider","getSlider","setSlider","fetchBrandsCollectionNames","count","sort","fetchBrandsModels","collection_name","getProductsForAudit","fetchProfessionals","getProfessionals","setProfessionals","getServices","setServices","deleteService","getServiceFastSearches","setServiceFastSearches","getProductFastSearches","setProductFastSearches","fetchHomepageSegments","getHomepageSegments","setHomepageSegments","namespace","bemNames","blockName","more","classNames","m","process","REACT_APP_CONFIG_URL","genders","ages","productAuditFields","defaultFields","alphabet"],"mappings":";kIAAA,kCAAO,IAAMA,EAAe,CAC1BC,aAAc,CACZC,SAAU,WACVC,QAAS,WAEXC,eAAgB,CACdC,QAAS,UACTC,QAAS,a,iCCNb,kCAAO,IAAMC,EAA0B,SAACC,EAAGC,GACvC,IAAMC,EAAS,6HACf,GAAiB,IAAbF,EAAEG,QAA6B,IAAbF,EAAEE,OACpB,OAAOH,EAAEG,OAASF,EAAEE,OAExB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAEG,QAAUC,EAAIH,EAAEE,OAAQC,IAAK,CAC/C,IAAMC,EAAKH,EAAOI,QAAQN,EAAEI,IACtBG,EAAKL,EAAOI,QAAQL,EAAEG,IAC5B,GAAIC,IAAOE,EACP,OAAOF,EAAKE,K,6ECPhBX,E,OAAmBJ,EAAnBI,eAKFY,E,WAEF,aAAe,IAAD,gCAgNdC,aAAe,SAACC,GACZ,GAAuB,MAAnB,EAAKC,WAIF,MAAU,IAAND,EACA,EAAKC,WAAWC,MAAK,SAAAC,GAAI,MAAwB,KAApBA,EAAKC,eAElC,EAAKH,WAAWC,MAAK,SAAAC,GAAI,OAAIA,EAAKC,aAAeJ,KANxDK,cAAkBC,MAAK,SAAAC,GACnB,OAAOA,EAAIL,MAAK,SAAAC,GAAI,OAAIA,EAAKC,aAAeJ,SAnN1C,KAiOdQ,UAAY,SAACR,GACT,OAAKA,EAGA,EAAKS,OAKC,EAAKA,OAAOP,MAAK,SAAAC,GAAI,OAAuC,GAAnCA,EAAKO,SAASC,cAAcX,WAJ5DY,cAAcN,MAAK,SAAAC,GACf,OAAOA,EAAIL,MAAK,SAAAC,GAAI,OAAuC,GAAnCA,EAAKO,SAASC,cAAcX,SAJjD,CAAEa,WAAY,KAnOf,KA+OdC,YAAc,SAACd,GAEX,OAAK,EAAKe,SAKH,EAAKA,SAASb,MAAK,SAAAC,GAAI,OAAIA,EAAKa,YAAchB,MAJjDiB,cACO,CAAEC,WAAY,MAnPf,KAyPdC,gBAAkB,SAACC,GACf,EAAKC,aAAeD,GA1PV,KA6PdE,gBAAkB,WACd,IAAK,EAAKD,aAAc,CACpB,IAAIE,EAAO,CACPC,SAAUC,aAAaC,QAAQ,YAC/BC,KAAMF,aAAaC,QAAQ,QAC3BE,KAAMH,aAAaC,QAAQ,QAC3BG,aAAcJ,aAAaC,QAAQ,iBAGvC,OADA,EAAKP,gBAAgBI,GACdA,EAEX,OAAO,EAAKF,cAxQF,KA4UdS,YAAc,SAAC9B,GACX,GAAqB,MAAjB,EAAK+B,SAIF,MAAU,IAAN/B,EACA,EAAK+B,SAAS7B,MAAK,SAAAC,GAAI,MAAuB,KAAnBA,EAAK6B,cAEhC,EAAKD,SAAS7B,MAAK,SAAAC,GAAI,OAAIA,EAAK6B,YAAchC,KANrDiC,cAAgB3B,MAAK,SAAAC,GACjB,OAAOA,EAAIL,MAAK,SAAAC,GAAI,OAAIA,EAAK6B,YAAchC,SA/UzC,KA+WdkC,sBAAwB,SAACC,GACrB,GAAiC,OAA7B,EAAKC,oBAKL,OAAO,EAAKA,oBAAoBlC,MAAK,SAAAC,GAAI,OAAIA,EAAKkC,OAASF,KAJ3DG,YAAkBpD,EAAeC,SAASmB,MAAK,SAAAC,GAC3C,OAAOA,EAAIL,MAAK,SAAAC,GAAI,OAAIA,EAAKkC,OAASF,SAlXpC,KA+YdI,sBAAwB,SAACJ,GACrB,GAAiC,OAA7B,EAAKK,oBAKL,OAAO,EAAKA,oBAAoBtC,MAAK,SAAAC,GAAI,OAAIA,EAAKkC,OAASF,KAJ3DG,YAAkBpD,EAAeE,SAASkB,MAAK,SAAAC,GAC3C,OAAOA,EAAIL,MAAK,SAAAC,GAAI,OAAIA,EAAKkC,OAASF,SAlZpC,KA8bdM,mBAAqB,SAACC,GAClB,OAAK,EAAKC,iBAIH,EAAKA,iBAAiBzC,MAAK,SAAA0C,GAAO,OAAIA,EAAQC,UAAUC,YAAcJ,KAHlE,CAAEK,WAAY,KA9bzBC,QAAQC,IAAI,uCAEZC,KAAKjD,WAAa,KAClBiD,KAAKzC,OAAS,KACdyC,KAAKnC,SAAW,GAChBmC,KAAKC,iBAAmB,GACxBD,KAAKE,QAAU,KACfF,KAAKG,MAAQ,KACbH,KAAKI,UAAY,KACjBJ,KAAK7B,aAAe,KACpB6B,KAAKK,MAAQ,KACbL,KAAKM,OAAS,KACdN,KAAKO,UAAY,KACjBP,KAAKQ,cAAgB,KACrBR,KAAKnB,SAAW,KAChBmB,KAAKd,oBAAsB,KAC3Bc,KAAKV,oBAAsB,KAC3BU,KAAKP,iBAAmB,K,qDAGnBU,GACLH,KAAKG,MAAQA,I,iCAIb,OAAOH,KAAKG,Q,kCAGJjC,GACR,IAAIuC,EAAQC,IAAEC,UAAUX,KAAKG,MAAO,CAAE7B,SAAUJ,EAAKI,YAEvC,GAAVmC,EACAT,KAAKG,MAAMS,KAAK1C,GAEhB8B,KAAKG,MAAMM,GAASvC,I,iCAMjBI,GACP0B,KAAKG,MAAQO,IAAEG,OAAOb,KAAKG,OAAO,SAACjC,GAAW,OAAOA,EAAKI,WAAaA,O,mCAG9D8B,GACTJ,KAAKI,UAAYA,I,qCAIjB,OAAOJ,KAAKI,Y,qCAGD9B,GACX0B,KAAKI,UAAYM,IAAEG,OAAOb,KAAKI,WAAW,SAACU,GAAe,OAAOA,EAASxC,WAAaA,O,sCAG3EJ,GACZ,IAAIuC,EAAQC,IAAEC,UAAUX,KAAKI,UAAW,CAAE9B,SAAUJ,EAAKI,YAE3C,GAAVmC,EACAT,KAAKI,UAAUQ,KAAK1C,GAEpB8B,KAAKI,UAAUK,GAASvC,I,iCAMrBgC,GACPF,KAAKE,QAAUA,I,mCAIf,OAAOF,KAAKE,U,oCASFa,GACV,IAAIN,EAAQC,IAAEC,UAAUX,KAAKE,QAAS,CAAEc,UAAWD,EAAOC,aAM5C,GAAVP,EACAT,KAAKE,QAAQU,KAAKG,GAElBf,KAAKE,QAAQO,GAASM,I,gCAMpBxD,GACNyC,KAAKzC,OAASA,I,kCAId,OAAOyC,KAAKzC,S,mCAGH0D,GACT,IAAIR,EAAQC,IAAEC,UAAUX,KAAKzC,OAAQ,CAAEC,SAAUyD,EAAMzD,YAEzC,GAAViD,EACAT,KAAKzC,OAAOqD,KAAKK,GAEjBjB,KAAKzC,OAAOkD,GAASQ,I,oCAIflE,GACViD,KAAKjD,WAAaA,I,sCAIlB,OAAOiD,KAAKjD,a,iCAOLb,GAGP,IAAIuE,EAAQC,IAAEC,UAAUX,KAAKnC,SAAU,CAAEC,WAAY5B,EAAQ4B,cAM/C,GAAV2C,EACAT,KAAKnC,SAAS+C,KAAK1E,GAEnB8D,KAAKnC,SAAS4C,GAASvE,I,4CAITA,GAClB,IAAIgF,EAAUR,IAAEC,UAAUX,KAAKC,iBAAkB,CAAEnC,WAAY5B,EAAQ4B,cACtD,IAAboD,IACAlB,KAAKC,iBAAiBiB,GAAWhF,GAGrC,IAAIiF,EAAUT,IAAEC,UAAUX,KAAKnC,SAAU,CAAEC,WAAY5B,EAAQ4B,cAC9C,IAAbqD,IACAnB,KAAKnC,SAASsD,GAAWjF,K,oCAMnB4B,GACVkC,KAAKnC,SAAW6C,IAAEG,OAAOb,KAAKnC,UAAU,SAAC3B,GAAc,OAAOA,EAAQ4B,aAAeA,O,kCAG7EN,GACRwC,KAAKzC,OAASmD,IAAEG,OAAOb,KAAKzC,QAAQ,SAAC0D,GAAY,OAAOA,EAAMzD,WAAaA,O,mCAGlEwD,GACThB,KAAKE,QAAUQ,IAAEG,OAAOb,KAAKE,SAAS,SAACa,GAAa,OAAOA,EAAOC,YAAcA,O,qCAGrE9D,GACX8C,KAAKjD,WAAa2D,IAAEG,OAAOb,KAAKjD,YAAY,SAACqE,GAAe,OAAOA,EAASlE,cAAgBA,O,uCAG/EkE,GACb,IAAIX,EAAQC,IAAEC,UAAUX,KAAKjD,WAAY,CAAEG,YAAakE,EAASlE,eAEnD,GAAVuD,EACAT,KAAKjD,WAAW6D,KAAKQ,GAErBpB,KAAKjD,WAAW0D,GAASW,I,kCAIrBvD,GACRmC,KAAKnC,SAAWA,I,oCAIhB,OAAOmC,KAAKnC,W,0CAGIA,GAChBmC,KAAKC,iBAAmBpC,I,4CAIxB,OAAOmC,KAAKC,mB,+BAoEPI,GACLL,KAAKK,MAAQA,I,iCAIb,OAAOL,KAAKK,Q,gCAGNC,GACNN,KAAKM,OAASA,I,kCAId,OAAON,KAAKM,S,mCAGHC,GACTP,KAAKO,UAAYA,I,qCAIjB,OAAOP,KAAKO,Y,sCAGAc,GACZ,IAAIZ,EAAQC,IAAEC,UAAUX,KAAKO,UAAW,CAAEe,IAAKD,EAASC,OAEzC,IAAXb,IACAT,KAAKO,UAAUE,GAASY,K,qCAIjBvE,GACXkD,KAAKO,UAAYG,IAAEG,OAAOb,KAAKO,WAAW,SAACc,GAAe,OAAOA,EAASC,MAAQxE,O,uCAGrE0D,GACbR,KAAKQ,cAAgBA,I,yCAIrB,OAAOR,KAAKQ,gB,0CAGIe,GAChB,IAAId,EAAQC,IAAEC,UAAUX,KAAKQ,cAAe,CAAEc,IAAKC,EAAaD,OAEjD,IAAXb,IACAT,KAAKQ,cAAcC,GAASc,K,kCASxB1C,GACRmB,KAAKnB,SAAWA,I,oCAIhB,OAAOmB,KAAKnB,W,oCAeF5C,GACV,IAAIwE,EAAQC,IAAEC,UAAUX,KAAKnB,SAAU,CAAEyC,IAAKrF,EAAQqF,OAEvC,IAAXb,EACAT,KAAKnB,SAAS+B,KAAK3E,GAEnB+D,KAAKnB,SAAS4B,GAASxE,I,oCAIjBa,GACVkD,KAAKnB,SAAW6B,IAAEG,OAAOb,KAAKnB,UAAU,SAAC5C,GAAc,OAAOA,EAAQqF,MAAQxE,O,6CAI3D0E,GACnBxB,KAAKd,oBAAsBsC,I,+CAI3B,OAAOxB,KAAKd,sB,4CAaMuC,GAClB,IAAIhB,EAAQC,IAAEC,UAAUX,KAAKd,oBAAqB,CAAEC,KAAMsC,EAAWtC,QAEtD,IAAXsB,EACAT,KAAKd,oBAAoB0B,KAAKa,GAE9BzB,KAAKd,oBAAoBuB,GAASgB,I,8CAIlBxC,GACpBe,KAAKd,oBAAsBwB,IAAEG,OAAOb,KAAKd,qBAAqB,SAACuC,GAAiB,OAAOA,EAAWtC,OAASF,O,6CAGxFuC,GACnBxB,KAAKV,oBAAsBkC,I,+CAI3B,OAAOxB,KAAKV,sB,4CAaMmC,GAClB,IAAIhB,EAAQC,IAAEC,UAAUX,KAAKV,oBAAqB,CAAEH,KAAMsC,EAAWtC,QAEtD,IAAXsB,EACAT,KAAKV,oBAAoBsB,KAAKa,GAE9BzB,KAAKV,oBAAoBmB,GAASgB,I,8CAIlBxC,GACpBe,KAAKV,oBAAsBoB,IAAEG,OAAOb,KAAKV,qBAAqB,SAACmC,GAAiB,OAAOA,EAAWtC,OAASF,O,yCAG5FS,GACf,IAAIe,EAAQC,IAAEC,UAAUX,KAAKP,iBAAkB,CAAEG,YAAaF,EAAQ5C,MAExD,GAAV2D,EACAT,KAAKP,iBAAiBmB,KAAKlB,GAG3BM,KAAKP,iBAAiBgB,GAASf,I,0CAInBgC,GAChB1B,KAAKP,iBAAmBiC,I,4CAIxB,OAAO1B,KAAKP,mB,4CAGMD,GAClBQ,KAAKP,iBAAmBiB,IAAEG,OAAOb,KAAKP,kBAAkB,SAACC,GAAc,OAAOA,EAAQC,UAAUC,cAAgBJ,S,KAaxG,QAAI5C,G,oBCldpB+E,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,uC,kMCMrCC,EAAMC,IAAGC,OAAO,WAEhBC,EAAU,SAAC,GAA2C,IAApCC,EAAmC,EAAxCC,IAAUC,EAA8B,EAA9BA,UAAcC,EAAgB,mCACnDC,EAAUR,EAAIxF,EAAE8F,GAEtB,OAAO,kBAACF,EAAD,eAAKE,UAAWE,GAAaD,KAGtCJ,EAAQM,aAAe,CACrBJ,IAAKK,KAGQP,QCTAQ,EANK,SAAC,GAAD,IAAGC,EAAH,EAAGA,SAAaL,EAAhB,mCAClB,wCAAMD,UAAU,mBAAsBC,GACpC,kBAAC,EAAD,CAASM,OAAK,GAAED,K,2BCaLE,EAZA,WACb,OACE,kBAACC,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,QAAM,GACT,kBAACC,EAAA,EAAD,S,mICVKC,EAAW,CACpB,CAAEC,KAAM,IAAKC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,OAC/D,CAAEH,KAAM,sBAAuBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,uBAAqB0E,QAAQ,KACvK,CAAEF,KAAM,qBAAsBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,qBAAsB0E,QAAQ,KACvK,CAAEF,KAAM,wBAAyBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,yBAAuB0E,QAAQ,KACjI,CAAEF,KAAM,SAAUC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,kCAAsB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAgB0E,QAAQ,KAC1L,CAAEF,KAAM,aAAcC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,kCAAsB0E,QAAQ,GAAQ,CAAE1E,KAAM,cAAe0E,QAAQ,KAC7L,CAAEF,KAAM,iBAAkBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,kCAAsB0E,QAAQ,GAAQ,CAAE1E,KAAM,iBAAkB0E,QAAQ,KACpM,CAAEF,KAAM,uBAAwBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,kCAAsB0E,QAAQ,GAAQ,CAAE1E,KAAM,oBAAqB0E,QAAQ,KAC7M,CAAEF,KAAM,qBAAsBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,kCAAsB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAuB0E,QAAQ,KAC7M,CAAEF,KAAM,kBAAmBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,kCAAsB0E,QAAQ,GAAQ,CAAE1E,KAAM,cAAe0E,QAAQ,GAAQ,CAAE1E,KAAM,QAAS0E,QAAQ,KACnO,CAAEF,KAAM,oBAAqBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,kCAAsB0E,QAAQ,GAAQ,CAAE1E,KAAM,cAAe0E,QAAQ,GAAQ,CAAE1E,KAAM,eAAgB0E,QAAQ,KAC5O,CAAEF,KAAM,YAAaC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAiB0E,QAAQ,KACzJ,CAAEF,KAAM,eAAgBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAiB0E,QAAQ,GAAQ,CAAE1E,KAAM,kBAAa0E,QAAQ,KACjM,CAAEF,KAAM,iBAAkBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAiB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAe0E,QAAQ,KACrM,CAAEF,KAAM,eAAgBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAiB0E,QAAQ,GAAQ,CAAE1E,KAAM,0BAAkB0E,QAAQ,KACtM,CAAEF,KAAM,gBAAiBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,yBAAiB0E,QAAQ,GAAQ,CAAE1E,KAAM,sBAAiB0E,QAAQ,KACtM,CAAEF,KAAM,mBAAoBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAyB0E,QAAQ,GAAQ,CAAE1E,KAAM,oBAAkB0E,QAAQ,KAClN,CAAEF,KAAM,eAAgBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAyB0E,QAAQ,GAAQ,CAAE1E,KAAM,oBAAkB0E,QAAQ,EAAMC,KAAK,oBAAsB,CAAE3E,KAAM,oBAAgB0E,QAAQ,KAC/Q,CAAEF,KAAM,YAAaC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAyB0E,QAAQ,GAAQ,CAAE1E,KAAM,oBAAkB0E,QAAQ,EAAMC,KAAK,oBAAsB,CAAE3E,KAAM,eAAgB0E,QAAQ,KAC5Q,CAAEF,KAAM,aAAcC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAyB0E,QAAQ,GAAQ,CAAE1E,KAAM,oBAAkB0E,QAAQ,EAAMC,KAAM,oBAAsB,CAAE3E,KAAM,qBAAmB0E,QAAQ,KACjR,CAAEF,KAAM,oBAAqBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAyB0E,QAAQ,GAAQ,CAAE1E,KAAM,mBAAiB0E,QAAQ,KACnN,CAAEF,KAAM,aAAcC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAyB0E,QAAQ,GAAQ,CAAE1E,KAAM,mBAAiB0E,QAAQ,EAAMC,KAAK,qBAAuB,CAAE3E,KAAM,cAAe0E,QAAQ,KAC7Q,CAAEF,KAAM,cAAeC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAyB0E,QAAQ,GAAO,CAAE1E,KAAM,mBAAiB0E,QAAQ,EAAMC,KAAK,qBAAuB,CAAE3E,KAAM,oBAAkB0E,QAAQ,KAChR,CAAEF,KAAM,kBAAmBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,mBAAiB0E,QAAQ,GAAS,CAAE1E,KAAM,cAAe0E,QAAQ,KAC/L,CAAEF,KAAM,wBAAyBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,mBAAiB0E,QAAQ,GAAS,CAAE1E,KAAM,SAAU0E,QAAQ,KAChM,CAAEF,KAAM,sBAAuBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,0CAA0B0E,QAAQ,KAEnI,CAAEF,KAAM,2BAA4BC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,WAAY0E,QAAQ,KAC1H,CAAEF,KAAM,aAAcC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,SAAU0E,QAAQ,KAC1I,CAAEF,KAAM,oBAAqBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,QAAS0E,QAAQ,GAAQ,CAAE1E,KAAM,eAAgB0E,QAAQ,KACvJ,CAAEF,KAAM,oBAAqBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,cAAU0E,QAAQ,GAAQ,CAAE1E,KAAM,WAAY0E,QAAQ,KACpJ,CAAEF,KAAM,0BAA2BC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,gBAAiB0E,QAAQ,GAAQ,CAAE1E,KAAM,iCAAuB0E,QAAQ,KAC5K,CAAEF,KAAM,6CAA8CC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,gBAAiB0E,QAAQ,GAAQ,CAAE1E,KAAM,mCAA4B0E,QAAQ,KACpM,CAAEF,KAAM,6BAA8BC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,gBAAiB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAkB0E,QAAQ,KAC1K,CAAEF,KAAM,6BAA8BC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAO,CAAE3E,KAAM,sBAAkB0E,QAAQ,GAAQ,CAAE1E,KAAM,2BAAkB0E,QAAQ,KAE3K,CAAEF,KAAM,aAAcC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,qBAAmB0E,QAAQ,KACnH,CAAEF,KAAM,eAAgBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,cAAe0E,QAAQ,KACjH,CAAEF,KAAM,WAAYC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,UAAW0E,QAAQ,KACzG,CAAEF,KAAM,SAAUC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,QAAS0E,QAAQ,KACrG,CAAEF,KAAM,WAAYC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,UAAW0E,QAAQ,KACzG,CAAEF,KAAM,cAAeC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,aAAc0E,QAAQ,KAC/G,CAAEF,KAAM,UAAWC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,SAAU0E,QAAQ,KACvG,CAAEF,KAAM,UAAWC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,SAAU0E,QAAQ,KACvG,CAAEF,KAAM,UAAWC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,SAAU0E,QAAQ,KACvG,CAAEF,KAAM,iBAAkBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,gBAAiB0E,QAAQ,KACrH,CAAEF,KAAM,aAAcC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,YAAa0E,QAAQ,KAC7G,CAAEF,KAAM,YAAaC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,WAAY0E,QAAQ,KAC3G,CAAEF,KAAM,UAAWC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,SAAU0E,QAAQ,KACvG,CAAEF,KAAM,SAAUC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,QAAS0E,QAAQ,KACrG,CAAEF,KAAM,gBAAiBC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,eAAgB0E,QAAQ,KACnH,CAAEF,KAAM,UAAWC,WAAY,CAAC,CAAEzE,KAAM,aAAS0E,QAAQ,EAAMC,KAAM,KAAQ,CAAE3E,KAAM,SAAU0E,QAAQ,M,oDCxCnGE,EAASC,IAATD,KACFxB,EAAMC,IAAGC,OAAO,UAChBwB,EAAYC,IAAOC,WAyHVC,E,4MAtHbC,MAAQ,CACNC,yBAAyB,EACzBzF,kBAAc0F,G,EAOhBC,mBAAqB,WACnB,IAAI5F,EAAOtB,IAAGwB,kBACdF,EAAK6F,OAAuB,UAAd7F,EAAKQ,KAAmBsF,IAAcC,IACpD/F,EAAKQ,KAAO,EAAKwF,sBAAsBhG,EAAKQ,MAC5C,EAAKyF,SAAS,CAAEhG,aAAcD,K,EAGhCgG,sBAAwB,SAACE,GACvB,OAAIA,EACKA,EAAOC,OAAO,GAAGC,cAAgBF,EAAOG,MAAM,GAE9C,I,EAIXC,O,sBAAS,8BAAApI,EAAA,sDACHqI,EAAMlB,EAAY,gBAChBmB,EAAiB,CACrBC,OAAQ,MACRC,QAAS,CACP,cAAiB,WAAarG,aAAaC,QAAQ,iBAErDqG,YAAa,cACbC,iBAAiB,GAEnBC,MAAMN,EAAKC,GACRtH,MAAK,SAAA4H,GAAQ,OAAIA,EAASC,UAC1B7H,MAAK,SAAAiB,GACJ6G,IAAQC,KAAK,iDAEd/H,KACCmB,aAAa6G,SAhBV,2C,EAoBTC,2BAA6B,SAAAC,GAC3BA,EAAMC,iBACND,EAAME,kBAENC,SAASC,cAAc,eAAeC,UAAUC,OAAO,qB,mEA1CvD5F,KAAK8D,uB,+BA6CG,IAAD,OACC+B,EAAa7F,KAAK8F,MAAlBD,SACFE,EAAQ/C,EAASgD,QAAO,SAAAxJ,GAAC,OAAIA,EAAEyG,MAAQ4C,KAAU,GAAG3C,WAClD/E,EAAiB6B,KAAK2D,MAAtBxF,aACF4F,EAAS5F,GAAgBA,EAAa4F,OACtCkC,EACJ,kBAACC,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAeC,QAAM,EAACjE,UAAU,gBAC9B,kBAAC,IAAD,CACEkE,MAAO,CAAEC,MAAO,IAAKC,aAAc,EAAGC,MAAO,UAC7C,kBAACnD,EAAD,CACEU,OAAQ,kBAAC,IAAD,CAAQ0C,IAAK1C,IACrB2C,MAAOvI,EAAeA,EAAaM,KAAO,GAC1CkI,YAAaxI,EAAeA,EAAaO,KAAO,KAGlD,kBAAC,IAAD,CAAMkI,GAAG,SAASC,QAAS,kBAAM,EAAKrC,WACpC,kBAAC,IAAD,CAAQhF,KAAK,UAAUsH,QAAM,EAACC,OAAK,EAACV,MAAO,CAAEW,WAAY,SAAUC,eAAgB,SAAUC,UAAW,KACtG,kBAAC,IAAD,CAAaC,KAAM,GAAId,MAAO,CAAEe,YAAa,EAAGZ,MAAO,WADzD,+BAaV,OACI,kBAAC5D,EAAA,EAAD,CAAQyE,OAAK,EAACC,QAAM,EAACnF,UAAWN,EAAIxF,EAAE,YAAagK,MAAO,CAAEa,UAAW,IAErE,kBAACrE,EAAA,EAAD,CAAKC,QAAM,EAACX,UAAU,QACpB,kBAAC,IAAD,CAAQ0E,QAAS7G,KAAKqF,4BACpB,kBAAC,IAAD,CAAY8B,KAAM,OAItB,kBAACtE,EAAA,EAAD,CAAKwD,MAAO,CAAEkB,WAAY,EAAGL,UAAW,OACtC,kBAACM,EAAA,EAAD,CAAYrF,UAAWN,EAAI4F,EAAE,eAC1B1B,EAAMxJ,QACLwJ,EAAM2B,KAAI,WAAyBjH,GAAzB,IAAGhC,EAAH,EAAGA,KAAM0E,EAAT,EAASA,OAAQC,EAAjB,EAAiBA,KAAjB,OACR,kBAACuE,EAAA,EAAD,CAAgBC,IAAKnH,EAAO0C,OAAQA,GACjCC,EAAO,kBAAC,IAAD,CAAMwD,GAAIxD,GAAO3E,GAAe,8BAAOA,SAMzD,kBAACoE,EAAA,EAAD,CAAKC,QAAM,EAACX,UAAWN,EAAI4F,EAAE,cAC3B,kBAAC1E,EAAA,EAAD,KACE,kBAAC,IAAD,CAAU8E,QAAS5B,EAAM6B,UAAU,cAAcC,OAAK,EAACC,QAAS,CAAC,UAC/D,kBAACC,EAAA,EAAD,KACE,kBAAC,IAAD,CACExB,IAAK1C,a,GA3GJmE,IAAMC,W,QC8DZC,E,4MAlDbC,mBAAqB,SAAC/C,IAGlB8C,EAAWE,iBACgB,OAA1B,EAAKxC,MAAMyC,YACgB,OAA1B,EAAKzC,MAAMyC,YACe,OAA1B,EAAKzC,MAAMyC,YAEb,EAAKC,YAAY,U,2EAzBsB,IAAfD,EAAc,EAAdA,WACtBA,IAAevI,KAAK8F,MAAMyC,YAC5BvI,KAAKyI,gBAAgBF,K,0CAKvBvI,KAAKyI,gBAAgBzI,KAAK8F,MAAMyC,YAChC,IAAM9J,EAAOF,aAAaC,QAAQ,QACrB,OAATC,GACFiK,YAAW,kBACTxD,IAAQC,KAAR,yBAA0B1G,EAA1B,QACE,O,sCAiBQ8J,GACd,OAAQA,GACN,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAOvI,KAAKwI,YAAY,SAE1B,IAAK,KACL,IAAK,KACL,QACE,OAAOxI,KAAKwI,YAAY,W,kCAIlBG,GACV,GAAoB,SAAhBA,EACF,OAAOlD,SACJC,cAAc,eACdC,UAAUiD,IAAI,oBAEnBnD,SAASC,cAAc,eAAeC,UAAU9E,OAAO,sB,+BAG/C,IACA4B,EAAazC,KAAK8F,MAAlBrD,SACR,OACE,0BAAMN,UAAU,mBACd,kBAAC,GAAD,MACA,kBAAC,EAAD,CAASO,OAAK,EAACmE,QAAS7G,KAAKqI,oBAC3B,kBAAC,EAAD,CAAQxC,SAAU7F,KAAK8F,MAAM+C,SAAShD,WACrCpD,EACD,kBAAC,EAAD,W,uCAjEN,OAAOgD,SACJC,cAAc,eACdC,UAAUmD,SAAS,wB,GAJDZ,IAAMC,W,+FCsBzBY,GAAoB,CACxBC,gBAAgB,QAAD,OAAUC,IAAV,MACfC,eAAgB,QAChBC,iBAAkB,aAGdC,GACG,QADHA,GAEI,SAGJvH,GAAMC,IAAGC,OAAO,WA4gBPsH,G,4MAzgBb1F,MAAQ,CACN2F,SAAU,KACVC,gBAAgB,EAChBC,aAAa,EACbC,eAAe,EACfC,oBAAoB,EACpBC,mBAAmB,EACnBC,WAAW,EACXC,kBAAkB,EAClBC,oBAAoB,EACpBC,kBAAkB,EAClBC,gBAAgB,EAChBC,yBAAyB,EACzBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,gCAAgC,EAChCC,wBAAwB,G,EAG1BC,QAAU,CAAC,WAAY,QAAS,UAAW,eAAgB,e,EAE3DC,QAAU,CACR,MACA,aACA,eACA,aACA,WACA,oBACA,gBACA,sBACA,2BACA,oB,EAQFC,YAAc,SAACC,EAAUhM,GAAX,OAAoB,WAChC,IAAMiM,EACS,QAAbD,EAAqB,EAAKH,QAAQK,OAAO,EAAKJ,SAAW,EAAKA,QAChE,EAAKpG,UAAS,SAACyG,GACb,IAAMC,EAASD,EAAU,SAAD,OAAUnM,IAC5BqM,EAAG,+BAAerM,IAAUoM,GAC9BE,EAAUL,EACX1E,QAAO,SAACxJ,GAAD,OAAOA,IAAMiC,KACpBiJ,KAAI,SAAClL,GACJ,OAAO,+BAAYA,IAAM,MAG7B,OADAuO,EAAQnK,KAAKkK,GACNE,OAAOC,OAAP,MAAAD,OAAM,CAAQ,IAAR,mBAAeD,U,EAIhCG,yBAA2B,SAACC,GAAD,OAAUA,EAAKC,kBAAkB,U,mEApB1D,IAAMlN,EAAOtB,IAAGwB,kBAChB4B,KAAKmE,SAAS,CAAEmF,SAAUpL,EAAKQ,S,+BAqBvB,IAAD,SAkBHsB,KAAK2D,MAhBP2F,EAFK,EAELA,SACAC,EAHK,EAGLA,eACAC,EAJK,EAILA,YACAC,EALK,EAKLA,cACAC,EANK,EAMLA,mBAEAE,GARK,EAOLD,kBAPK,EAQLC,WACAC,EATK,EASLA,iBACAC,EAVK,EAULA,mBACAC,EAXK,EAWLA,iBACAC,EAZK,EAYLA,eACAC,EAbK,EAaLA,wBACAC,EAdK,EAcLA,oBACAC,EAfK,EAeLA,0BAKIkB,GApBC,EAgBLjB,+BAhBK,EAiBLC,uBAGkB,CAClB,CACEzD,GAAI,2BACJnI,KAAM,WACNmJ,IAAK,WACLjE,MAAO4F,EACP+B,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,SACJnI,KAAM,QACNmJ,IAAK,QACLjE,MAAO6F,EACP8B,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,IACJnI,KAAM,cACNmJ,IAAK,UACLjE,MAAO8F,EACP6B,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,kBACJnI,KAAM,sBACNmJ,IAAK,eACLjE,MAAO+F,EACP4B,OAAO,EACPC,KAAM,KACNC,QAASpC,MAYPqC,EAAW,CACfC,MAAO,CACL,CACE9E,GAAI,aACJnI,KAAM,SACNmJ,IAAK,MACLjE,MAAOiG,EACP0B,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,IACJnI,KAAM,kCACNmJ,IAAK,aACLjE,MAAOkG,EACPyB,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,oBACJnI,KAAM,gBACNmJ,IAAK,eACLjE,MAAOmG,EACPwB,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,IACJnI,KAAM,mBACNmJ,IAAK,aACLjE,MAAOoG,EACPuB,OAAO,EACPC,KAAM,KACNC,QAASpC,KAGbuC,QAAS,CACP,CACE/E,GAAI,oBACJnI,KAAM,WACNmJ,IAAK,WACLjE,MAAOqG,EACPsB,OAAO,EACPC,KAAM,KACNC,QAASpC,KAGbwC,aAAc,CACZ,CACEhF,GAAI,IACJnI,KAAM,2BACNmJ,IAAK,oBACLjE,MAAOsG,EACPqB,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,IACJnI,KAAM,yBACNmJ,IAAK,gBACLjE,MAAOuG,EACPoB,OAAO,EACPC,KAAM,KACNC,QAASpC,IAEX,CACExC,GAAI,IACJnI,KAAM,uBACNmJ,IAAK,sBACLjE,MAAOwG,EACPmB,OAAO,EACPC,KAAM,KACNC,QAASpC,MAwBTyC,EAAc,CAClBC,WAAY,CACV,CACElF,GAAI,aACJnI,KAAM,cACN6M,OAAO,EACPC,KAAMQ,IACNP,QAASpC,IAEX,CACExC,GAAI,SACJnI,KAAM,yBACN6M,OAAO,EACPC,KAAMS,IACNR,QAASpC,IAEX,CACExC,GAAI,iBACJnI,KAAM,iBACN6M,OAAO,EACPC,KAAMU,KACNT,QAASpC,KAGb8C,WAAY,CACV,CACEtF,GAAI,wBACJnI,KAAM,SACN6M,OAAO,EACPC,KAAMY,IACNX,QAASpC,IAEX,CACExC,GAAI,kBACJnI,KAAM,cACN6M,OAAO,EACPC,KAAMa,IACNZ,QAASpC,KAGbiD,kBAAmB,CACjB,CACEzF,GAAI,mBACJnI,KAAM,iBACN6M,OAAO,EACPC,KAAMe,KACNd,QAASpC,IAEX,CACExC,GAAI,oBACJnI,KAAM,gBACN6M,OAAO,EACPC,KAAMgB,KACNf,QAASpC,KAGboD,cAAe,CACb,CACE5F,GAAI,YACJnI,KAAM,uBACN6M,OAAO,EACPC,KAAMkB,KACNjB,QAASpC,IAEX,CACExC,GAAI,eACJnI,KAAM,kBACN6M,OAAO,EACPC,KAAMmB,IACNlB,QAASpC,IAEX,CACExC,GAAI,gBACJnI,KAAM,sBACN6M,OAAO,EACPC,KAAMoB,KACNnB,QAASpC,KAGbwD,oBAAqB,CACnB,CACEhG,GAAI,sBACJnI,KAAM,cACN6M,OAAO,EACPC,KAAMsB,KACNrB,QAASpC,IAEX,CACExC,GAAI,qBACJnI,KAAM,8BACN6M,OAAO,EACPC,KAAMsB,KACNrB,QAASpC,IAEX,CACExC,GAAI,6BACJnI,KAAM,4BACN6M,OAAO,EACPC,KAAMsB,KACNrB,QAASpC,MAqBT0D,EAAgB,SAACC,EAAOnF,GAC5B,SAAImF,EAAMnF,IAAQmF,EAAMnF,GAAKrL,OAAS,IAIxC,OACE,2BAAO4F,UAAWN,GAAIxF,KACpB,yBAAK8F,UAAWN,GAAI4F,EAAE,cAAepB,MAAO0C,KAC5C,yBAAK5G,UAAWN,GAAI4F,EAAE,YACpB,kBAAC7E,EAAA,EAAD,KACE,kBAAC,IAAD,CAASgE,GAAG,KACV,yBACEH,IAAI,uFACJJ,MAAO,CAAEC,MAAO,OAAQY,UAAW,IACnC/E,UAAU,OACV6K,IAAI,KAEN,0BAAM3G,MAAO,CAAE4G,SAAU,GAAIzG,MAAO,QAAS0G,YAAa,MAA1D,uBAKJ,kBAACrK,EAAA,EAAD,CAAKsK,UAAQ,GACV9B,EACErF,QAAO,SAACxJ,GACP,OAAI8M,IAAaF,IAGX5M,EAAEgP,UAAYpC,GAFX5M,OAEP,KAKHkL,KAAI,WAAwCjH,GAAxC,IAAGmG,EAAH,EAAGA,GAAInI,EAAP,EAAOA,KAAMmJ,EAAb,EAAaA,IAAKjE,EAAlB,EAAkBA,MAAO2H,EAAzB,EAAyBA,MAAzB,EAAgCC,KAAhC,OACH,kBAAC,IAAM6B,SAAP,CAAgBxF,IAAKA,GACnB,kBAAC7E,EAAA,EAAD,CACEZ,UAAWN,GAAI4F,EAAE,YACjBZ,QAAS,EAAK2D,YAAY,MAAO5C,IAEjC,kBAAC,IAAD,CACEzF,UAAWN,GAAI4F,EAAE,qBACjBvF,IAAM4K,EAAcrB,EAAU7D,QAAiB/D,EAAVoE,IACrCrB,GAAIA,EAEJ0E,MAAOA,GAEP,yBAAKnJ,UAAU,UAEb,0BACEA,UAAU,oBACVkE,MAAO,CAAE4G,SAAU,GAAII,WAAY,QAElC,EAAKnC,yBAAyBzM,KAGlCqO,EAAcrB,EAAU7D,IACvB,kBAAC,IAAD,CACEzF,UAAWN,GAAI4F,EAAE,iBACjBpB,MAAO,CACLiH,QAAS,EACTC,UAAW5J,EACP,eACA,iBACJ6J,mBAAoB,OACpBC,mBAAoB,iBAO7BX,EAAcrB,EAAU7D,IACvB,kBAAC8F,GAAA,EAAD,CAAU7C,OAAQlH,GACf8H,EAAS7D,GACP5B,QAAO,SAACxJ,GACP,OAAI8M,IAAaF,IAGX5M,EAAEgP,UAAYpC,GAFX5M,OAEP,KAKHkL,KAAI,WAAwCjH,GAAxC,IAAGmG,EAAH,EAAGA,GAAInI,EAAP,EAAOA,KAAMmJ,EAAb,EAAaA,IAAKjE,EAAlB,EAAkBA,MAAO2H,EAAzB,EAAyBA,MAAzB,EAAgCC,KAAhC,OACH,kBAAC,IAAM6B,SAAP,CAAgBxF,IAAKnH,GACnB,kBAACsC,EAAA,EAAD,CACEZ,UAAWN,GAAI4F,EAAE,YACjBZ,QAAS,EAAK2D,YAAY,MAAO5C,IAEjC,kBAAC,IAAD,CACEzF,UAAWN,GAAI4F,EAAE,qBACjBvF,IACG4K,EAAcjB,EAAajE,QAExB/D,EADAoE,IAGNrB,GAAIA,EAEJ0E,MAAOA,EACPjF,MAAO,CAAE6G,YAAa,QAEtB,yBAAK/K,UAAU,UAEb,0BACEA,UAAU,mBACVkE,MAAO,CAAE4G,SAAU,KAElB,EAAK/B,yBAAyBzM,KAGlCqO,EAAcjB,EAAajE,IAC1B,kBAAC,IAAD,CACEzF,UAAWN,GAAI4F,EAAE,iBACjBpB,MAAO,CACLiH,QAAS,EACTC,UAAW5J,EACP,eACA,iBACJ6J,mBAAoB,OACpBC,mBAAoB,iBAO7BX,EAAcjB,EAAajE,IAC1B,kBAAC8F,GAAA,EAAD,CAAU7C,OAAQlH,GACfkI,EAAYjE,GACV5B,QAAO,SAACxJ,GACP,OAAI8M,IAAaF,IAGX5M,EAAEgP,UAAYpC,GAFX5M,OAEP,KAKHkL,KAAI,WAA4BjH,GAA5B,IAAGmG,EAAH,EAAGA,GAAInI,EAAP,EAAOA,KAAM6M,EAAb,EAAaA,MAAb,EAAoBC,KAApB,OACH,kBAACxI,EAAA,EAAD,CACE6E,IAAKnH,EACL0B,UAAWN,GAAI4F,EAAE,aAEjB,kBAAC,IAAD,CACE3K,GAAE,kBAAa2B,EAAb,YAAqBgC,GACvB0B,UAAU,OACVD,IAAK+F,IACLrB,GAAIA,EAEJ0E,MAAOA,EACPjF,MAAO,CAAE6G,YAAa,QAGtB,0BACE/K,UAAU,mBACVkE,MAAO,CAAE4G,SAAU,KAElBxO,yB,GAtfrByJ,IAAMC,W,UCdbwF,GArBK,SAAC,GAA2B,IAAD,IAAxBnH,aAAwB,MAAhB,UAAgB,EAC7C,OACE,yBAAKrE,UAAU,mBACb,kBAACyL,GAAA,EAAD,CAASpH,MAAOA,M,kDCChBjD,GAAYC,IAAOC,WAEnBoK,G,4MACJlK,MAAQ,CACNmK,SAAU,M,EAGZC,kBAAoB,SAACzI,GACO,UAAtBA,EAAM0I,OAAOvP,MACf,EAAK0F,SAAS,CAAE8J,MAAO3I,EAAM0I,OAAOE,QAEZ,aAAtB5I,EAAM0I,OAAOvP,MACf,EAAK0F,SAAS,CAAEgK,SAAU7I,EAAM0I,OAAOE,QAEzC5I,EAAMC,kB,EAGR6I,aAAe,SAAC3G,GACVA,GACFA,EAAElC,iBAGJ,IAAId,EAAMlB,GAAY,eAEhBmB,EAAiB,CACrBC,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3ByJ,KAAMC,KAAKC,UAAU,CACnBN,MAAO,EAAKtK,MAAMsK,MAClBE,SAAU,EAAKxK,MAAMwK,YAIzBpJ,MAAMN,EAAKC,GACRtH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAACiB,GACL,EAAK8F,SAAS,CAAEqK,OAAQnQ,EAAKvB,KAGT,GAAhBuB,EAAKoQ,SACPvJ,IAAQuJ,QAAQpQ,EAAK6G,SACrB3G,aAAamQ,QAAQ,eAAgBrQ,EAAKM,cAC1CJ,aAAamQ,QAAQ,WAAYrQ,EAAKH,KAAKI,UAC3CC,aAAamQ,QAAQ,OAAQrQ,EAAKH,KAAKO,MACvCF,aAAamQ,QAAQ,OAAQrQ,EAAKH,KAAKQ,MACvC9B,IAAGqB,gBAAgB,CACjBK,SAAUD,EAAKH,KAAKI,SACpBG,KAAMJ,EAAKH,KAAKO,KAChBC,KAAML,EAAKH,KAAKQ,KAChBC,aAAcN,EAAKM,eAErB+J,YACE,kBAAMxD,IAAQyJ,QAAQ,2CACtB,KAEFjG,YAAW,WACT,EAAKvE,SAAS,CAAE2J,SAAU,QACzB,MACE5I,IAAQ0J,MAAMvQ,EAAK6G,a,uDAItB,IAAD,SAQHlF,KAAK8F,MANP+I,EAFK,EAELA,SACAC,EAHK,EAGLA,cACAC,EAJK,EAILA,mBACAC,EALK,EAKLA,cACAC,EANK,EAMLA,mBACAxM,EAPK,EAOLA,SAGF,OAAIzC,KAAK2D,MAAMmK,SACN,kBAAC,IAAD,CAAUlN,MAAI,EAACgG,GAAI,CAAEf,SAAU7F,KAAK2D,MAAMmK,aAGnDoB,UAAY,SAACzH,GACqB,UAA5B0H,OAAOtG,SAAShD,UAAiC,SAAT4B,EAAEG,KAC5C,EAAKwG,gBAKP,kBAACgB,GAAA,EAAD,KACGP,GACC,yBAAK1M,UAAU,oBACb,yBACEsE,IAAI,0EACJtE,UAAU,UACVkE,MAAO,CAAEC,MAAO,MAAOY,UAAW,QAClC8F,IAAI,UAKV,kBAACqC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAOC,IAAKT,GAAZ,WACA,kBAACU,GAAA,EAAD,iBACMT,EADN,CAEEtQ,KAAK,QACLgR,SAAUzP,KAAK+N,sBAGnB,kBAACsB,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAOC,IAAKP,GAAZ,cACA,kBAACQ,GAAA,EAAD,iBACMP,EADN,CAEExQ,KAAK,WACLgR,SAAUzP,KAAK+N,sBAInB,6BAEA,kBAAC2B,GAAA,EAAD,CACEvI,KAAK,KACLhF,UAAU,kCACV4E,OAAK,EACLF,QAAS7G,KAAKoO,cAJhB,kBAQC3L,Q,GAxHcyF,IAAMC,WAsI7B0F,GAASvL,aAAe,CACtBuM,UAAU,EACVC,cAAe,QACfC,mBAAoB,CAClBvP,KAAM,QACNmQ,YAAa,IAEfX,cAAe,WACfC,mBAAoB,CAClBzP,KAAM,WACNmQ,YAAa,KAIF9B,U,8BCtIA+B,G,uKAjBX,OACE,kBAACC,GAAA,EAAD,CACExJ,MAAO,CACLyJ,OAAQ,QACR7I,eAAgB,SAChBD,WAAY,WAEd,kBAAC+I,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACd,kBAAC3M,GAAA,EAAD,CAAM+K,MAAI,GACR,kBAAC,GAAD,CAAU6B,UAAWlQ,KAAK8F,MAAMoK,mB,GAZrBhI,IAAMC,W,qBCYZgI,GAbI,SAACrK,GAClB,YACmBjC,IAAlBiC,EAAMsK,QACJtK,EAAMsK,UACL,kBAAC,IAAUtK,GAEX,kBAAC,IAAD,CAAUc,GAAG,WAGf,kBAAC,IAAUd,I,OCcZuK,MAAMC,UAAUC,OACnBF,MAAMC,UAAUC,KAAO,WACnB,OAAOvQ,KAAKA,KAAKzD,OAAS,KCjBhC,IAAMiU,GAAWtI,IAAMuI,MAAK,kBAAM,kCAG5BC,GAAQxI,IAAMuI,MAAK,kBAAM,6EACzBE,GAAYzI,IAAMuI,MAAK,kBAAM,6EAG7BG,GAAW1I,IAAMuI,MAAK,kBAAM,6EAC5BI,GAAa3I,IAAMuI,MAAK,kBAAM,6EAC9BK,GAAc5I,IAAMuI,MAAK,kBAAM,6EAC/BM,GAAe7I,IAAMuI,MAAK,kBAAM,6EAGhCO,GAAkB9I,IAAMuI,MAAK,kBAAM,6EACnCQ,GAAW/I,IAAMuI,MAAK,kBAAM,4EAC5BS,GAAYhJ,IAAMuI,MAAK,kBAAM,4EAG7BU,GAAmBjJ,IAAMuI,MAAK,kBAAM,6EACpCW,GAAalJ,IAAMuI,MAAK,kBAAM,6EAC9BY,GAAYnJ,IAAMuI,MAAK,kBAAM,6EAG7Ba,GAAyBpJ,IAAMuI,MAAK,kBAAM,6EAC1Cc,GAAwBrJ,IAAMuI,MAAK,kBAAM,6EAGzCe,GAAiBtJ,IAAMuI,MAAK,kBAAM,6EAClCgB,GAAuBvJ,IAAMuI,MAAK,kBAAM,6EAMxCiB,GAAgBxJ,IAAMuI,MAAK,kBAAM,6EAQjCkB,GAAMzJ,IAAMuI,MAAK,kBAAM,kCACvBmB,GAAY1J,IAAMuI,MAAK,kBAAM,kCAC7BoB,GAAW3J,IAAMuI,MAAK,kBAAM,kCAC5BqB,GAAgB5J,IAAMuI,MAAK,kBAAM,8EACjCsB,GAAmB7J,IAAMuI,MAAK,kBAAM,kCACpCuB,GAAoB9J,IAAMuI,MAAK,kBAAM,6EACrCwB,GAAoB/J,IAAMuI,MAAK,kBAAM,6EACrCyB,GAAwBhK,IAAMuI,MAAK,kBAAM,6EAEzC0B,G,uKAGF,IAAMC,EAAa,WACjB,IAAIC,EAOJ,OALEA,EAD2C,OAAzC9T,aAAaC,QAAQ,gBAKzBsB,QAAQC,IAAI,eAAiBsS,GACtBA,GAIT,OACE,kBAAC,IAAD,KACE,kBAAC,IAAD,KACE,kBAAC,GAAD,CAAcC,UAAW,kBAAMF,IAAe,kBAAC,IAAD,CAAUxL,GAAG,MAAS,kBAAC,GAAD,OAAc2L,OAAQ/P,EAAaS,KAAK,SAASqI,OAAK,IAC1H,kBAAC,EAAD,CAAY/C,WAAYvI,KAAK8F,MAAMyC,YACjC,kBAAC,IAAMiK,SAAP,CAAgBC,SAAU,kBAAC,GAAD,OAExB,kBAAC,GAAD,CAAcH,UAAW9B,GAAU+B,OAAQ/P,EAAaS,KAAK,IAAIqI,OAAK,EAAC8E,QAASgC,IAEhF,kBAAC,IAAD,CAAO9G,OAAK,EAACrI,KAAK,SAASqP,UAAW5B,KACtC,kBAAC,IAAD,CAAOpF,OAAK,EAACrI,KAAK,aAAaqP,UAAW3B,KAE1C,kBAAC,IAAD,CAAOrF,OAAK,EAACrI,KAAK,YAAYqP,UAAW1B,KACzC,kBAAC,IAAD,CAAOtF,OAAK,EAACrI,KAAK,eAAeqP,UAAWzB,KAC5C,kBAAC,IAAD,CAAOvF,OAAK,EAACrI,KAAK,eAAeqP,UAAWxB,KAC5C,kBAAC,IAAD,CAAOxF,OAAK,EAACrI,KAAK,gBAAgBqP,UAAWvB,KAE7C,kBAAC,IAAD,CAAOzF,OAAK,EAACrI,KAAK,mBAAmBqP,UAAWtB,KAChD,kBAAC,IAAD,CAAO1F,OAAK,EAACrI,KAAK,YAAYqP,UAAWrB,KACzC,kBAAC,IAAD,CAAO3F,OAAK,EAACrI,KAAK,aAAaqP,UAAWpB,KAE1C,kBAAC,IAAD,CAAO5F,OAAK,EAACrI,KAAK,oBAAoBqP,UAAWnB,KACjD,kBAAC,IAAD,CAAO7F,OAAK,EAACrI,KAAK,aAAaqP,UAAWjB,KAC1C,kBAAC,IAAD,CAAO/F,OAAK,EAACrI,KAAK,cAAcqP,UAAWlB,KAE3C,kBAAC,IAAD,CAAO9F,OAAK,EAACrI,KAAK,sBAAsBqP,UAAWhB,KACnD,kBAAC,IAAD,CAAOhG,OAAK,EAACrI,KAAK,qBAAqBqP,UAAWf,KAElD,kBAAC,IAAD,CAAOjG,OAAK,EAACrI,KAAK,kBAAkBqP,UAAWd,KAC/C,kBAAC,IAAD,CAAOlG,OAAK,EAACrI,KAAK,wBAAwBqP,UAAWb,KAIrD,kBAAC,IAAD,CAAOnG,OAAK,EAACrI,KAAK,iBAAiBqP,UAAWZ,KAM9C,kBAAC,IAAD,CAAOpG,OAAK,EAACrI,KAAK,2BAA2BqP,UAAWR,KACxD,kBAAC,IAAD,CAAOxG,OAAK,EAACrI,KAAK,aAAaqP,UAAWX,KAC1C,kBAAC,IAAD,CAAOrG,OAAK,EAACrI,KAAK,oBAAoBqP,UAAWV,KACjD,kBAAC,IAAD,CAAOtG,OAAK,EAACrI,KAAK,oBAAoBqP,UAAWT,KACjD,kBAAC,IAAD,CAAOvG,OAAK,EAACrI,KAAK,0BAA0BqP,UAAWP,KACvD,kBAAC,IAAD,CAAOzG,OAAK,EAACrI,KAAK,6CAA6CqP,UAAWJ,KAC1E,kBAAC,IAAD,CAAO5G,OAAK,EAACrI,KAAK,6BAA6BqP,UAAWN,KAC1D,kBAAC,IAAD,CAAO1G,OAAK,EAACrI,KAAK,6BAA6BqP,UAAWL,OAK9D,kBAAC,IAAD,CAAUrL,GAAG,Y,GAlELsB,IAAMC,WAiGTuK,SAxBD,SAAC,GAAe,IAAbpM,EAAY,EAAZA,MACf,OAAIA,EAAQ,IACH,CAAEiC,WAAY,MAGnB,IAAMjC,GAASA,EAAQ,IAClB,CAAEiC,WAAY,MAGnB,IAAOjC,GAASA,EAAQ,KACnB,CAAEiC,WAAY,MAGnB,KAAOjC,GAASA,EAAQ,IACnB,CAAEiC,WAAY,MAGnBjC,EAAQ,KACH,CAAEiC,WAAY,MAGhB,CAAEA,WAAY,QAGRmK,CAAwBP,I,qBCxJvCQ,IAASC,OAAO,kBAAC,GAAD,MAASnN,SAASoN,eAAe,U,25BCD3CtP,EAAYC,IAAOC,WACjBzH,EAAmBJ,IAAnBI,eAKD,SAAe8W,EAAtB,oC,4CAAO,WAA+BC,EAAUrO,GAAzC,eAAAtI,EAAA,6DACCqI,EAAMlB,EAAYwP,EADnB,kBAIIhO,MAAMN,EAAKC,GACbtH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAAC0N,GAEH,OAAKA,EAAI2D,SAA0B,KAAd3D,EAAIkI,QAA+B,KAAdlI,EAAIkI,OAMtClI,EAAI2D,QACG3D,GAEP5F,IAAQ0J,MAAM9D,EAAI5F,SACX,CAAEuJ,SAAS,KARtBvJ,IAAQ0J,MAAM9D,EAAI5F,SAClB3G,aAAa6G,SACN,MAUd6N,OAAM,SAAAC,GAAG,OAAIpT,QAAQC,IAAImT,OAtB3B,4C,sBAyBA,SAAeC,EAAtB,kC,4CAAO,WAA0B3T,GAA1B,mBAAApD,EAAA,6DACC2W,EAAW,2BAA6BvT,EACxCkF,EAAiB,CACjBC,OAAQ,MACRC,QAAS,CAAE,cAAiB,WAAarG,aAAaC,QAAQ,kBAJ/D,SAOoBsU,EAAgBC,EAAUrO,GAP9C,cAOGM,EAPH,yBAUIA,GAVJ,4C,sBAaA,SAAe7H,IAAtB,+B,4CAAO,4BAAAf,EAAA,yDACCqI,EAAMlB,EAAY,eAElB3G,IAAGwW,gBAHJ,yCAIQxW,IAAGwW,iBAJX,gCAOIrO,MAAMN,GACRrH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAAC0N,GAGH,OAFAhL,QAAQC,IAAI,0BACZnD,IAAGyW,cAAcvI,EAAIzM,MACdyM,EAAIzM,SAZhB,4C,sBAgBA,SAAeX,IAAtB,+B,4CAAO,4BAAAtB,EAAA,yDACCqI,EAAMlB,EAAY,WAElB3G,IAAG0W,YAHJ,yCAIQ1W,IAAG0W,aAJX,gCAMIvO,MAAMN,GACRrH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAAC0N,GAGH,OAFAhL,QAAQC,IAAI,sBACZnD,IAAG2W,UAAUzI,EAAIzM,MACVyM,EAAIzM,SAXhB,4C,sBAeA,SAAemV,EAAtB,kC,4CAAO,WAA0B1W,GAA1B,mBAAAV,EAAA,2DACCqX,EAAa7W,IAAGU,UAAUR,IAD3B,yCAGQ2W,GAHR,cAKChP,EAAMlB,EAAY,WAAazG,EAE7B4H,EAAiB,CACnBC,OAAQ,MACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,iBAEvDqG,YAAa,cACbC,iBAAiB,GAflB,kBAkBIC,MAAMN,EAAKC,GACbtH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAAC0N,GAGH,OAFAhL,QAAQC,IAAI,oBACZnD,IAAG8W,aAAa5I,EAAIzM,MACbyM,EAAIzM,SAvBhB,4C,sBA+BA,SAAeN,EAAtB,kC,4CAAO,WAA6B4V,GAA7B,iBAAAvX,EAAA,yDAECqI,EAAMlB,EAAY,uBAEjBoQ,EAJF,oBAKK/W,IAAGgX,cALR,yCAOYhX,IAAGgX,eAPf,cAUGlP,EAAiB,CACnBC,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,oBAEdyJ,KAAMC,KAAKC,UAAU,CAAEoF,YAEvB9O,YAAa,cACbC,iBAAiB,GAnBlB,kBAsBIC,MAAMN,EAAKC,GACbtH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAAC0N,GAGH,OAFAlO,IAAGiX,YAAY/I,EAAIzM,MACnByB,QAAQC,IAAI,wBACL+K,EAAIzM,SA3BhB,4C,sBA2DA,SAAeyV,IAAtB,+B,4CAAO,8BAAA1X,EAAA,yDACCqI,EAAMlB,EAAY,YAElB3G,IAAGmX,aAHJ,yCAIQnX,IAAGmX,cAJX,cAMGrP,EAAiB,CACnBC,OAAQ,MACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,iBAEvDqG,YAAa,cACbC,iBAAiB,GAdlB,kBAiBIC,MAAMN,EAAKC,GACbtH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAAC0N,GAGH,OAFAlO,IAAGoX,WAAWlJ,EAAIzM,MAClByB,QAAQC,IAAI,uBACL+K,EAAIzM,SAtBhB,4C,sBAsCA,SAAe4V,EAAtB,kC,4CAAO,WAA6BnX,GAA7B,mBAAAV,EAAA,6DAEC2W,EAAW,gBAAkBjW,EAAK,UAEhC4H,EAAiB,CACnBC,OAAQ,SACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,kBATxD,SAYoBsU,EAAgBC,EAAUrO,GAZ9C,cAYGM,EAZH,yBAeIA,GAfJ,4C,sBAkBA,SAAekP,EAAtB,kC,4CAAO,WAA2BpX,GAA3B,mBAAAV,EAAA,6DAEC2W,EAAW,WAAajW,EAAK,UAE3B4H,EAAiB,CACnBC,OAAQ,SACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,kBATxD,SAaoBsU,EAAgBC,EAAUrO,GAb9C,cAaGM,EAbH,yBAgBIA,GAhBJ,4C,sBAoBA,SAAemP,EAAtB,kC,4CAAO,WAA4BrX,GAA5B,mBAAAV,EAAA,6DAEC2W,EAAW,YAAcjW,EAAK,UAE5B4H,EAAiB,CACnBC,OAAQ,SACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,kBATxD,SAaoBsU,EAAgBC,EAAUrO,GAb9C,cAaGM,EAbH,yBAgBIA,GAhBJ,4C,sBAoBA,SAAeoP,IAAtB,+B,4CAAO,8BAAAhY,EAAA,0DACCQ,IAAGyX,WADJ,gCAEczX,IAAGyX,WAFjB,qDAIY,2BACX3P,EAAiB,CACjBC,OAAQ,MACRC,QAAS,CAAE,cAAiB,WAAarG,aAAaC,QAAQ,kBAP/D,SAUoBsU,EANR,2BAMkCpO,GAV9C,cAUGM,EAVH,OAaHpI,IAAG0X,SAAStP,EAAS3G,MAblB,kBAcI2G,EAAS3G,MAdb,6C,sBAiBA,SAAekW,IAAtB,+B,4CAAO,8BAAAnY,EAAA,0DACCQ,IAAG4X,eADJ,gCAEc5X,IAAG4X,eAFjB,qDAIY,+BACX9P,EAAiB,CACjBC,OAAQ,MACRC,QAAS,CAAE,cAAiB,WAAarG,aAAaC,QAAQ,kBAP/D,SAUoBsU,EANR,+BAMkCpO,GAV9C,cAUGM,EAVH,OAaHpI,IAAG6X,aAAazP,EAAS3G,MAbtB,kBAcI2G,EAAS3G,MAdb,6C,sBAiBA,SAAeqW,EAAtB,kC,4CAAO,WAA0BpW,GAA1B,mBAAAlC,EAAA,6DACC2W,EAAW,iBAAmBzU,EAE5BoG,EAAiB,CACnBC,OAAQ,SACRC,QAAS,CACL,cAAiB,WAAarG,aAAaC,QAAQ,kBANxD,SAUoBsU,EAAgBC,EAAUrO,GAV9C,cAUGM,EAVH,yBAWIA,GAXJ,4C,sBAcA,SAAe2P,EAAtB,kC,4CAAO,WAA8B7X,GAA9B,mBAAAV,EAAA,6DACC2W,EAAW,eAAiBjW,EAAK,UAE/B4H,EAAiB,CACnBC,OAAQ,SACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,iBAEvDqG,YAAa,cACbC,iBAAiB,GAXlB,SAcoBgO,EAAgBC,EAAUrO,GAd9C,cAcGM,EAdH,yBAeIA,GAfJ,4C,sBAkBA,SAAe4P,IAAtB,+B,4CAAO,4BAAAxY,EAAA,0DACCQ,IAAGiY,WADJ,yCAEQjY,IAAGiY,YAFX,aAIY,cAJZ,SAMoB/B,EAFR,eAJZ,cAMG9N,EANH,OAOHpI,IAAGkY,SAAS9P,EAAS3G,MAPlB,kBAQI2G,EAAS3G,MARb,4C,sBAYA,SAAe0W,IAAtB,+B,4CAAO,4BAAA3Y,EAAA,0DACCQ,IAAGoY,YADJ,yCAEQpY,IAAGoY,aAFX,aAIY,eAJZ,SAMoBlC,EAFR,gBAJZ,cAMG9N,EANH,OAOHpI,IAAGqY,UAAUjQ,EAAS3G,MAPnB,kBAQI2G,EAAS3G,MARb,4C,sBAYA,SAAe6W,EAAtB,kC,4CAAO,WAA0C1X,GAA1C,iBAAApB,EAAA,6DACC2W,EAAW,WAAavV,EAAW,oBADpC,SAGoBsV,EAAgBC,GAHpC,aAGG/N,EAHH,SAKaA,EAASmQ,MAAQ,GAL9B,yCAMQnQ,EAAS3G,KAAK+W,MAAK,SAAChZ,EAAGC,GAAJ,OAAUF,YAAwBC,EAAGC,MAAIqL,KAAI,SAACjJ,GACpE,MAAO,CAAEyP,MAAOzP,OAPrB,gCAUQ,IAVR,4C,sBAcA,SAAe4W,EAAtB,oC,4CAAO,WAAiC7X,EAAU8X,GAA3C,iBAAAlZ,EAAA,6DACC2W,EAAW,WAAavV,EAAW,IAAM8X,EAAkB,UAD5D,SAGoBxC,EAAgBC,GAHpC,aAGG/N,EAHH,SAKaA,EAASmQ,MAAQ,GAL9B,yCAMQnQ,EAAS3G,KAAK+W,MAAK,SAAChZ,EAAGC,GAAJ,OAAUF,YAAwBC,EAAGC,MAAIqL,KAAI,SAACjJ,GACpE,MAAO,CAAEyP,MAAOzP,OAPrB,gCAUQ,IAVR,4C,sBAcA,SAAe8W,EAAtB,kC,4CAAO,WAAmCzK,GAAnC,iBAAA1O,EAAA,4DACY,uBAEXsI,EAAiB,CACjBC,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,iBAEvD6P,KAAMC,KAAKC,UAAUzD,IAVtB,SAYoBgI,EAXR,uBAWkCpO,GAZ9C,cAYGM,EAZH,yBAcIA,GAdJ,4C,sBAiBA,SAAewQ,IAAtB,+B,4CAAO,8BAAApZ,EAAA,0DACCQ,IAAG6Y,mBADJ,gCAEc7Y,IAAG6Y,mBAFjB,qDAKY,+BACX/Q,EAAiB,CACjBC,OAAQ,MACRC,QAAS,CAAE,cAAiB,WAAarG,aAAaC,QAAQ,kBAR/D,SAWoBsU,EANR,+BAMkCpO,GAX9C,cAWGM,EAXH,OAYHpI,IAAG8Y,iBAAiB1Q,EAAS3G,MAZ1B,kBAaI2G,EAAS3G,MAbb,6C,sBAiBA,SAAeU,IAAtB,gC,8CAAO,8BAAA3C,EAAA,0DACCQ,IAAG+Y,cADJ,yCAEQ/Y,IAAG+Y,eAFX,aAKY,YACXjR,EAAiB,CACjBC,OAAQ,MACRC,QAAS,CAAE,cAAiB,WAAarG,aAAaC,QAAQ,kBAR/D,SAWoBsU,EANR,YAMkCpO,GAX9C,cAWGM,EAXH,OAYHpI,IAAGgZ,YAAY5Q,EAAS3G,MAZrB,kBAaI2G,EAAS3G,MAbb,4C,sBAgBA,SAAewX,GAAtB,mC,8CAAO,WAA6B/Y,GAA7B,mBAAAV,EAAA,6DACC2W,EAAW,aAAejW,EAAK,UAE7B4H,EAAiB,CACnBC,OAAQ,SACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,WAAarG,aAAaC,QAAQ,iBAEvDqG,YAAa,cACbC,iBAAiB,GAXlB,SAcoBgO,EAAgBC,EAAUrO,GAd9C,cAcGM,EAdH,yBAeIA,GAfJ,4C,sBAkBA,SAAe5F,GAAtB,mC,8CAAO,WAAiCI,GAAjC,mBAAApD,EAAA,yDACC2W,EAAW,qBACXrO,EAAiB,CACjBC,OAAQ,MACRC,QAAS,CAAE,cAAiB,WAAarG,aAAaC,QAAQ,kBAI9DgB,IAASxD,EAAeC,QARzB,qBASKW,IAAGkZ,yBATR,yCAUYlZ,IAAGkZ,0BAVf,cAYC/C,GAAY/W,EAAeC,QAZ5B,SAckB6W,EAAgBC,EAAUrO,GAd5C,cAcCM,EAdD,OAgBCpI,IAAGmZ,uBAAuB/Q,EAAS3G,KAAKA,MAhBzC,kBAiBQ2G,EAAS3G,KAAKA,MAjBtB,WAmBCmB,IAASxD,EAAeE,QAnBzB,qBAoBKU,IAAGoZ,yBApBR,0CAqBYpZ,IAAGoZ,0BArBf,eAuBCjD,GAAY/W,EAAeE,QAvB5B,UAyBkB4W,EAAgBC,EAAUrO,GAzB5C,eAyBCM,EAzBD,OA2BCpI,IAAGqZ,uBAAuBjR,EAAS3G,KAAKA,MA3BzC,kBA4BQ2G,EAAS3G,KAAKA,MA5BtB,6C,sBAgCA,SAAe6X,KAAtB,gC,8CAAO,4BAAA9Z,EAAA,yDACCqI,EAAMlB,EAAY,sBAElB3G,IAAGuZ,sBAHJ,yCAIQvZ,IAAGuZ,uBAJX,gCAOIpR,MAAMN,GACRrH,MAAK,SAAC4H,GAAD,OAAcA,EAASC,UAC5B7H,MAAK,SAAC0N,GAGH,OAFAhL,QAAQC,IAAI,iCACZnD,IAAGwZ,oBAAoBtL,EAAIzM,MACpByM,EAAIzM,QAEd4U,OAAM,SAACrE,GAEJ,MADA9O,QAAQ8O,MAAM,oCAAqCA,GAC7CA,MAhBX,4C,wDCreP,IAEyByH,EAFzB,gBA0BaC,GAxBYD,EAwBS,KAvBzB,CACLtU,OAAQ,SAAAwU,GACN,IAAIxP,EAAQwP,EAMZ,MAJyB,kBAAdF,IACTtP,EAAK,UAAMsP,EAAN,YAAmBE,IAGnB,CACLla,EAAG,WAAc,IAAD,uBAATma,EAAS,yBAATA,EAAS,gBACd,OAAOC,IAAW1P,EAAOyP,IAE3B/O,EAAG,SAACtF,GAAwB,IAAD,uBAATqU,EAAS,iCAATA,EAAS,kBACzB,OAAOC,IAAW,GAAD,OAAI1P,EAAJ,aAAc5E,GAAaqU,IAE9CE,EAAG,SAACvU,GAAwB,IAAD,uBAATqU,EAAS,iCAATA,EAAS,kBACzB,OAAOC,IAAW,GAAD,OAAI1P,EAAJ,aAAc5E,GAAaqU,QASvCF,O,gCC5Bf,sCAAM9S,EAAS,CAEbC,WAAYkT,8XAAYC,sBAAwB,8BAChDxN,MAAO,CACL,CAAEtM,GAAI,EAAG8K,IAAK,QAASnJ,KAAM,SAC7B,CAAE3B,GAAI,EAAG8K,IAAK,SAAUnJ,KAAM,aAC9B,CAAE3B,GAAI,EAAG8K,IAAK,OAAQnJ,KAAM,wBAE9BoY,QAAS,CACP,CAAE/Z,GAAI,EAAG8K,IAAK,OAAQnJ,KAAM,yBAC5B,CAAE3B,GAAI,EAAG8K,IAAK,OAAQnJ,KAAM,SAC5B,CAAE3B,GAAI,EAAG8K,IAAK,SAAUnJ,KAAM,eAEhCqY,KAAM,CACJ,CAAEha,GAAI,EAAG8K,IAAK,OAAQnJ,KAAM,yBAC5B,CAAE3B,GAAI,EAAG8K,IAAK,IAAKnJ,KAAM,QACzB,CAAE3B,GAAI,EAAG8K,IAAK,IAAKnJ,KAAM,SACzB,CAAE3B,GAAI,EAAG8K,IAAK,IAAKnJ,KAAM,SACzB,CAAE3B,GAAI,EAAG8K,IAAK,IAAKnJ,KAAM,SACzB,CAAE3B,GAAI,EAAG8K,IAAK,IAAKnJ,KAAM,QAE3BsY,mBAAoB,CAClBC,cAAe,CAIb,CAAEpP,IAAK,EAAGsG,MAAO,kBAAmBzP,KAAM,cAC1C,CAAEmJ,IAAK,EAAGsG,MAAO,QAASzP,KAAM,SAChC,CAAEmJ,IAAK,EAAGsG,MAAO,QAASzP,KAAM,QAChC,CAAEmJ,IAAK,EAAGsG,MAAO,QAASzP,KAAM,MAChC,CAAEmJ,IAAK,EAAGsG,MAAO,SAAUzP,KAAM,OACjC,CAAEmJ,IAAK,EAAGsG,MAAO,WAAYzP,KAAM,8BAGnC,CAAEmJ,IAAK,GAAIsG,MAAO,WAAYzP,KAAM,WACpC,CAAEmJ,IAAK,GAAIsG,MAAO,WAAYzP,KAAM,uBACpC,CAAEmJ,IAAK,GAAIsG,MAAO,QAASzP,KAAM,UACjC,CAAEmJ,IAAK,GAAIsG,MAAO,aAAczP,KAAM,4BACtC,CAAEmJ,IAAK,GAAIsG,MAAO,YAAazP,KAAM,sBACrC,CAAEmJ,IAAK,GAAIsG,MAAO,WAAYzP,KAAM,WACpC,CAAEmJ,IAAK,GAAIsG,MAAO,SAAUzP,KAAM,kBAGtCwY,SAAU,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,Q","file":"static/js/main.ffd3aa35.chunk.js","sourcesContent":["export const localStrings = {\n sortableType: {\n standart: 'standart',\n website: 'website',\n },\n fastSearchType: {\n service: 'service',\n product: 'product',\n },\n};\n","\nexport const sortByTurkishCharacters = (a, b) => {\n const alfabe = \"AaBbCcÇçDdEeFfGgĞğHhIıİiJjKkLlMmNnOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyZz0123456789\";\n if (a.length === 0 || b.length === 0) {\n return a.length - b.length;\n }\n for (let i = 0; i < a.length && i < b.length; i++) {\n const ai = alfabe.indexOf(a[i]);\n const bi = alfabe.indexOf(b[i]);\n if (ai !== bi) {\n return ai - bi;\n }\n }\n}","import { fetchBrands, fetchCategories, fetchFastSearches, fetchProducts, fetchServices } from \"./databaseFunctions\";\nimport _ from 'lodash'\nimport { localStrings } from \"./constants\";\nconst { fastSearchType } = localStrings;\n/**\n * Data Management Class\n * It contains updated form of all products, categories, brands, dealers etc.\n */\nclass DM {\n\n constructor() {\n\n console.log('Data Management constructor started')\n\n this.categories = null;\n this.brands = null;\n this.products = [];\n this.productsForAudit = [];\n this.dealers = null;\n this.users = null;\n this.personels = null;\n this.loggedInUser = null;\n this.blogs = null;\n this.slider = null;\n this.feedbacks = null;\n this.professionals = null;\n this.services = null;\n this.serviceFastSearches = null;\n this.productFastSearches = null;\n this.homepageSegments = null;\n }\n\n setUsers(users) {\n this.users = users;\n }\n\n getUsers() {\n return this.users;\n }\n\n updateUsers(user) {\n var index = _.findIndex(this.users, { username: user.username });\n\n if (index == -1) {\n this.users.push(user)\n } else {\n this.users[index] = user;\n }\n\n // console.log('geldi:', this.users);\n }\n\n deleteUser(username) {\n this.users = _.remove(this.users, (user) => { return user.username !== username })\n }\n\n setPersonels(personels) {\n this.personels = personels;\n }\n\n getPersonels() {\n return this.personels;\n }\n\n deletePersonel(username) {\n this.personels = _.remove(this.personels, (personel) => { return personel.username !== username })\n }\n\n updatePersonels(user) {\n var index = _.findIndex(this.personels, { username: user.username });\n\n if (index == -1) {\n this.personels.push(user)\n } else {\n this.personels[index] = user;\n }\n\n // console.log('geldi:', this.personels);\n }\n\n setDealers(dealers) {\n this.dealers = dealers;\n }\n\n getDealers() {\n return this.dealers;\n }\n\n // getSingleDealer(dealer) {\n // let data = this.dealers.filter(item => { return item.dealer_id === dealer.dealer_id })\n // console.log('single?', data);\n // return data;\n // }\n\n updateDealers(dealer) {\n var index = _.findIndex(this.dealers, { dealer_id: dealer.dealer_id });\n\n // console.log('DM.this.dealers:', this.dealers);\n // console.log('index', index);\n // console.log('updatedDealer:', dealer);\n\n if (index == -1) {\n this.dealers.push(dealer)\n } else {\n this.dealers[index] = dealer;\n }\n\n // console.log('iS.update.dealer:::', this.dealers[index]);\n }\n\n setBrands(brands) {\n this.brands = brands;\n }\n\n getBrands() {\n return this.brands;\n }\n\n updateBrands(brand) {\n var index = _.findIndex(this.brands, { brand_id: brand.brand_id });\n\n if (index == -1) {\n this.brands.push(brand)\n } else {\n this.brands[index] = brand;\n }\n }\n\n setCategories(categories) {\n this.categories = categories;\n }\n\n getCategories() {\n return this.categories;\n }\n\n // set single product with its updated version\n // it is used especially when a product is edited in productEdit page\n // https://stackoverflow.com/questions/27641731/is-there-a-function-in-lodash-to-replace-matched-item\n // https://stackoverflow.com/questions/7364150/find-object-by-id-in-an-array-of-javascript-objects\n setProduct(product) {\n\n // Find item index using _.findIndex (loadsh)\n var index = _.findIndex(this.products, { materia_id: product.materia_id });\n // alternatively using vanilla js\n // index = this.products.findIndex(it=> it.materia_id === product.materia_id);\n\n // console.log('item.index:', index)\n // Replace item at index using native splice\n if (index == -1) {\n this.products.push(product)\n } else {\n this.products[index] = product;\n }\n }\n\n updateProductForAudit(product) {\n let index_1 = _.findIndex(this.productsForAudit, { materia_id: product.materia_id });\n if (index_1 !== -1) {\n this.productsForAudit[index_1] = product;\n }\n\n let index_2 = _.findIndex(this.products, { materia_id: product.materia_id })\n if (index_2 !== -1) {\n this.products[index_2] = product;\n }\n\n\n }\n\n deleteProduct(materia_id) {\n this.products = _.remove(this.products, (product) => { return product.materia_id !== materia_id })\n }\n\n deleteBrand(brand_id) {\n this.brands = _.remove(this.brands, (brand) => { return brand.brand_id !== brand_id })\n }\n\n deleteDealer(dealer_id) {\n this.dealers = _.remove(this.dealers, (dealer) => { return dealer.dealer_id !== dealer_id })\n }\n\n deleteCategory(category_id) {\n this.categories = _.remove(this.categories, (category) => { return category.category_id !== category_id })\n }\n\n updateCategories(category) {\n var index = _.findIndex(this.categories, { category_id: category.category_id });\n\n if (index == -1) {\n this.categories.push(category)\n } else {\n this.categories[index] = category;\n }\n }\n\n setProducts(products) {\n this.products = products;\n }\n\n getProducts() {\n return this.products;\n }\n\n setProductsForAudit(products) {\n this.productsForAudit = products;\n }\n\n getProductsForAudit() {\n return this.productsForAudit;\n }\n\n\n /**\n * Given category id as string returns Category object\n * @param {String} id Category id such as \"L-1.2.2.1\"\n * @returns {Object.} Category object\n */\n findCategory = (id) => {\n if (this.categories == null) {\n fetchCategories().then(res => {\n return res.find(item => item.category_id == id);\n })\n } else if (id == '') {\n return this.categories.find(item => item.category_id == 'P')\n } else {\n return this.categories.find(item => item.category_id == id);\n }\n }\n\n /**\n * Given category id as string returns Brand object\n * @param {String} id Brand id such as \"BR-000001\"\n * @returns {Object.} Brand object\n */\n findBrand = (id) => {\n if (!id)\n return { brand_name: '' }\n\n if (!this.brands) {\n fetchBrands().then(res => {\n return res.find(item => item.brand_id.localeCompare(id) == 0);\n })\n } else {\n return this.brands.find(item => item.brand_id.localeCompare(id) == 0);\n }\n\n }\n\n findProduct = (id) => {\n\n if (!this.products) {\n fetchProducts();\n return { product_id: '' };\n }\n\n return this.products.find(item => item.materia_id == id);\n }\n\n setLoggedInUser = (user) => {\n this.loggedInUser = user;\n }\n\n getLoggedInUser = () => {\n if (!this.loggedInUser) {\n let data = {\n username: localStorage.getItem(\"username\"),\n name: localStorage.getItem(\"name\"),\n role: localStorage.getItem(\"role\"),\n access_token: localStorage.getItem(\"access_token\")\n }\n this.setLoggedInUser(data)\n return data\n }\n return this.loggedInUser;\n }\n\n setBlogs(blogs) {\n this.blogs = blogs;\n }\n\n getBlogs() {\n return this.blogs;\n }\n\n setSlider(slider) {\n this.slider = slider;\n }\n\n getSlider() {\n return this.slider;\n }\n\n setFeedbacks(feedbacks) {\n this.feedbacks = feedbacks;\n }\n\n getFeedbacks() {\n return this.feedbacks;\n }\n\n updateFeedbacks(feedback) {\n var index = _.findIndex(this.feedbacks, { _id: feedback._id });\n\n if (index !== -1) {\n this.feedbacks[index] = feedback;\n }\n }\n\n deleteFeedback(id) {\n this.feedbacks = _.remove(this.feedbacks, (feedback) => { return feedback._id !== id })\n }\n\n setProfessionals(professionals) {\n this.professionals = professionals;\n }\n\n getProfessionals() {\n return this.professionals;\n }\n\n updateProfessionals(professional) {\n var index = _.findIndex(this.professionals, { _id: professional._id });\n\n if (index !== -1) {\n this.professionals[index] = professional;\n }\n }\n\n // deleteFeedback(id) {\n // this.professionals = _.remove(this.professionals, (professional) => { return professional._id !== id })\n // }\n\n\n setServices(services) {\n this.services = services;\n }\n\n getServices() {\n return this.services;\n }\n\n findService = (id) => {\n if (this.services == null) {\n fetchServices().then(res => {\n return res.find(item => item.service_id == id);\n })\n } else if (id == '') {\n return this.services.find(item => item.service_id == 'P')\n } else {\n return this.services.find(item => item.service_id == id);\n }\n }\n\n updateService(service) {\n var index = _.findIndex(this.services, { _id: service._id });\n\n if (index === -1) {\n this.services.push(service)\n } else {\n this.services[index] = service;\n }\n }\n\n deleteService(id) {\n this.services = _.remove(this.services, (service) => { return service._id !== id })\n }\n\n\n setServiceFastSearches(fastSearches) {\n this.serviceFastSearches = fastSearches;\n }\n\n getServiceFastSearches() {\n return this.serviceFastSearches;\n }\n\n findServiceFastSearch = (uid) => {\n if (this.serviceFastSearches === null) {\n fetchFastSearches(fastSearchType.service).then(res => {\n return res.find(item => item._uid === uid);\n })\n } else {\n return this.serviceFastSearches.find(item => item._uid === uid);\n }\n }\n\n findServiceFastSearch(fastSearch) {\n var index = _.findIndex(this.serviceFastSearches, { _uid: fastSearch._uid });\n\n if (index === -1) {\n this.serviceFastSearches.push(fastSearch)\n } else {\n this.serviceFastSearches[index] = fastSearch;\n }\n }\n\n deleteServiceFastSearch(uid) {\n this.serviceFastSearches = _.remove(this.serviceFastSearches, (fastSearch) => { return fastSearch._uid !== uid })\n }\n\n setProductFastSearches(fastSearches) {\n this.productFastSearches = fastSearches;\n }\n\n getProductFastSearches() {\n return this.productFastSearches;\n }\n\n findProductFastSearch = (uid) => {\n if (this.productFastSearches === null) {\n fetchFastSearches(fastSearchType.product).then(res => {\n return res.find(item => item._uid === uid);\n })\n } else {\n return this.productFastSearches.find(item => item._uid === uid);\n }\n }\n\n findProductFastSearch(fastSearch) {\n var index = _.findIndex(this.productFastSearches, { _uid: fastSearch._uid });\n\n if (index === -1) {\n this.productFastSearches.push(fastSearch)\n } else {\n this.productFastSearches[index] = fastSearch;\n }\n }\n\n deleteProductFastSearch(uid) {\n this.productFastSearches = _.remove(this.productFastSearches, (fastSearch) => { return fastSearch._uid !== uid })\n }\n\n setHomepageSegment(segment) {\n var index = _.findIndex(this.homepageSegments, { segmentType: segment.id });\n\n if (index == -1) {\n this.homepageSegments.push(segment);\n }\n else {\n this.homepageSegments[index] = segment;\n }\n }\n\n setHomepageSegments(segments) {\n this.homepageSegments = segments;\n }\n\n getHomepageSegments() {\n return this.homepageSegments;\n }\n\n deleteHomepageSegment(type) {\n this.homepageSegments = _.remove(this.homepageSegments, (segment) => { return segment.segmentId.segmentType !== type });\n }\n\n getHomepageSegment = (type) => {\n if (!this.homepageSegments) {\n return { segment_id: '' };\n }\n\n return this.homepageSegments.find(segment => segment.segmentId.segmentType = type);\n }\n}\n\n\nexport default (new DM);","module.exports = __webpack_public_path__ + \"static/media/admin.118b016e.png\";","module.exports = __webpack_public_path__ + \"static/media/editor.83a9e87e.png\";","module.exports = __webpack_public_path__ + \"static/media/sidebar-4.1f6609d4.jpg\";","import React from 'react';\n\nimport bn from 'utils/bemnames';\n\nimport { Container } from 'reactstrap';\n\nconst bem = bn.create('content');\n\nconst Content = ({ tag: Tag, className, ...restProps }) => {\n const classes = bem.b(className);\n\n return ;\n};\n\nContent.defaultProps = {\n tag: Container,\n};\n\nexport default Content;\n","import { Content } from 'components/Layout';\nimport React from 'react';\n\nconst EmptyLayout = ({ children, ...restProps }) => (\n
\n {children}\n
\n);\n\nexport default EmptyLayout;\n","import React from \"react\";\n\nimport { Navbar, Nav, NavItem } from \"reactstrap\";\n\nimport SourceLink from \"components/SourceLink\";\n\nconst Footer = () => {\n return (\n \n \n \n );\n};\n\nexport default Footer;\n","export const allPaths = [\n { path: '/', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }] },\n { path: '/categoryManagement', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: \"Kategori Yönetimi\", active: true }] },\n { path: '/categoryGalleries', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: \"Arama Kategorileri\", active: true }] },\n { path: '/collectionManagement', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Koleksiyon Yönetimi\", active: true }] },\n { path: '/users', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Kullanıcı Yönetimi\", active: true }, { name: \"Kullanıcılar\", active: true }] },\n { path: '/personels', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Kullanıcı Yönetimi\", active: true }, { name: \"Personeller\", active: true }] },\n { path: '/professionals', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Kullanıcı Yönetimi\", active: true }, { name: \"Profesyoneller\", active: true }] },\n { path: '/professional-detail', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Kullanıcı Yönetimi\", active: true }, { name: \"Profesyonel Detay\", active: true }] },\n { path: '/professional-edit', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Kullanıcı Yönetimi\", active: true }, { name: \"Profesyonel Düzenle\", active: true }] },\n { path: '/project-detail', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Kullanıcı Yönetimi\", active: true }, { name: \"Profesyonel\", active: true }, { name: \"Proje\", active: true }] },\n { path: '/idea-pano-detail', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Kullanıcı Yönetimi\", active: true }, { name: \"Profesyonel\", active: true }, { name: \"Fikir Panosu\", active: true }] },\n { path: '/products', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Ürün Yönetimi', active: true }, ] },\n { path: '/product-add', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Ürün Yönetimi', active: true }, { name: \"Ürün Ekle\", active: true }] },\n { path: '/productDetail', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Ürün Yönetimi', active: true }, { name: 'Ürün Detayı', active: true }] },\n { path: '/productEdit', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Ürün Yönetimi', active: true }, { name: 'Ürün Düzenleme', active: true }] },\n { path: '/productAudit', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Ürün Yönetimi', active: true }, { name: 'Ürün Denetimi', active: true }] },\n { path: '/brandManagement', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Marka - Bayi Yönetimi', active: true }, { name: 'Marka Yönetimi', active: true }] },\n { path: '/brandDetail', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Marka - Bayi Yönetimi', active: true }, { name: 'Marka Yönetimi', active: true, link:'/brandManagement' }, { name: 'Marka Detayı', active: true }] },\n { path: '/brandAdd', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Marka - Bayi Yönetimi', active: true }, { name: 'Marka Yönetimi', active: true, link:'/brandManagement' }, { name: 'Marka Ekleme', active: true }] },\n { path: '/brandEdit', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Marka - Bayi Yönetimi', active: true }, { name: 'Marka Yönetimi', active: true, link: '/brandManagement' }, { name: 'Marka Düzenleme', active: true }] },\n { path: '/dealerManagement', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Marka - Bayi Yönetimi', active: true }, { name: 'Bayi Yönetimi', active: true }] },\n { path: '/dealerAdd', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Marka - Bayi Yönetimi', active: true }, { name: 'Bayi Yönetimi', active: true, link:'/dealerManagement' }, { name: 'Bayi Ekleme', active: true }] },\n { path: '/dealerEdit', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Marka Kataloğu', active: true }, { name: 'Marka - Bayi Yönetimi', active: true },{ name: 'Bayi Yönetimi', active: true, link:'/dealerManagement' }, { name: 'Bayi Düzenleme', active: true }] },\n { path: '/blogManagement', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Blog Yönetimi\", active: true }, { name: \"Alt Bloglar\", active: true }] },\n { path: '/blogSliderManagement', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Admin\", active: true }, { name: \"Blog Yönetimi\", active: true }, { name: \"Slider\", active: true }] },\n { path: '/feedbackManagement', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Görüş & Öneri Yönetimi\", active: true }] },\n \n { path: '/homepage/homepage-edits', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Anasayfa', active: true }] },\n { path: '/admin/ads', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Admin', active: true }, { name: 'Reklam', active: true }] },\n { path: '/admin/sss-footer', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Admin', active: true }, { name: 'SSS - Footer', active: true }] },\n { path: '/explore/shortcut', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Keşfet', active: true }, { name: 'Shortcut', active: true }] },\n { path: '/prof-services/featured', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Pro Hizmet Al', active: true }, { name: 'Öne Çıkan Hizmetler', active: true }] },\n { path: '/prof-services/service-category-management', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Pro Hizmet Al\", active: true }, { name: \"Hizmet Alanları Yönetimi\", active: true }] },\n { path: '/prof-services/fast-search', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Pro Hizmet Al\", active: true }, { name: \"Hızlı Aramalar\", active: true }] },\n { path: '/brand-catalog/fast-search', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Marka Kataloğu\", active: true }, { name: \"Hızlı Aramalar\", active: true }] },\n \n { path: '/dashboard', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Gösterge Paneli\", active: true }] },\n { path: '/login-modal', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: \"Login Modal\", active: true }] },\n { path: '/buttons', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Buttons', active: true }] },\n { path: '/cards', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Cards', active: true }] },\n { path: '/widgets', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Widgets', active: true }] },\n { path: '/typography', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Typography', active: true }] },\n { path: '/alerts', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Alerts', active: true }] },\n { path: '/tables', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Tables', active: true }] },\n { path: '/badges', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Badges', active: true }] },\n { path: '/button-groups', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Button-groups', active: true }] },\n { path: '/dropdowns', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Dropdowns', active: true }] },\n { path: '/progress', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Progress', active: true }] },\n { path: '/modals', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Modals', active: true }] },\n { path: '/forms', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Forms', active: true }] },\n { path: '/input-groups', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Input-groups', active: true }] },\n { path: '/charts', breadcrumb: [{ name: 'Giriş', active: true, link: '/' }, { name: 'Charts', active: true }] } \n]","import React from 'react';\nimport { Link, Redirect } from 'react-router-dom'\nimport { Dropdown, Button, Card, Avatar, message } from 'antd'\nimport { MdClearAll, MdExitToApp } from 'react-icons/md';\nimport { Breadcrumb, BreadcrumbItem, ListGroup, ListGroupItem, Nav, Navbar, NavItem, NavLink } from 'reactstrap';\nimport { allPaths } from '../../utils/breadcrumbs'\nimport { config } from '../../configs';\nimport bn from 'utils/bemnames';\nimport adminAvatar from '../../assets/images/avatar/admin.png';\nimport editorAvatar from '../../assets/images/avatar/editor.png';\nimport DM from '../../utils/DataManagement';\n\nconst { Meta } = Card;\nconst bem = bn.create('header');\nconst configURL = config.server_url;\n\nclass Header extends React.Component {\n state = {\n isNotificationConfirmed: false,\n loggedInUser: undefined\n };\n\n componentWillMount() {\n this.loadToLoggedInUser()\n }\n\n loadToLoggedInUser = () => {\n let user = DM.getLoggedInUser();\n user.avatar = user.role === 'admin' ? adminAvatar : editorAvatar;\n user.role = this.capitalizeFirstLetter(user.role)\n this.setState({ loggedInUser: user })\n }\n\n capitalizeFirstLetter = (string) => { // make the first letter of a string uppercase\n if (string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n } else {\n return \"\"\n }\n }\n\n logout = async () => {\n let url = configURL + \"/users/logout\"\n const requestOptions = {\n method: \"GET\",\n headers: {\n \"Authorization\": \"Bearer: \" + localStorage.getItem(\"access_token\"),\n },\n credentials: \"same-origin\",\n withCredentials: true,\n };\n fetch(url, requestOptions)\n .then(response => response.json())\n .then(data => {\n message.info(\"Çıkış yapıldı!\");\n })\n .then(\n localStorage.clear()\n )\n }\n\n handleSidebarControlButton = event => {\n event.preventDefault();\n event.stopPropagation();\n\n document.querySelector('.cr-sidebar').classList.toggle('cr-sidebar--open');\n };\n\n render() {\n const { pathname } = this.props\n const crumb = allPaths.filter(i => i.path == pathname)[0].breadcrumb\n const { loggedInUser } = this.state\n const avatar = loggedInUser && loggedInUser.avatar\n const menu = (\n \n \n \n }\n title={loggedInUser ? loggedInUser.name : \"\"}\n description={loggedInUser ? loggedInUser.role : \"\"}\n />\n\n this.logout()}>\n \n \n\n \n\n \n \n\n );\n\n return (\n \n\n \n\n \n\n \n\n \n );\n }\n}\n\nexport default Header;\n\n/*\n\nimport Avatar from 'components/Avatar';\nimport { UserCard } from 'components/Card';\nimport Notifications from 'components/Notifications';\nimport SearchInput from 'components/SearchInput';\nimport { notificationsData } from 'demos/header';\nimport withBadge from 'hocs/withBadge';\nimport Typography from \"../Typography\";\nimport DM from '../../utils/DataManagement'\nimport { EditOutlined, EllipsisOutlined, SettingOutlined } from '@ant-design/icons';\nimport { MdClearAll, MdExitToApp, MdHelp, MdInsertChart, MdMessage, MdNotificationsActive, MdNotificationsNone, MdPersonPin, MdSettingsApplications, } from 'react-icons/md';\n\nconst MdNotificationsActiveWithBadge = withBadge({\n size: 'md',\n color: 'primary',\n style: {\n top: -10,\n right: -10,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n children: 5,\n})(MdNotificationsActive);\n\n toggleNotificationPopover = () => {\n this.setState({\n isOpenNotificationPopover: !this.state.isOpenNotificationPopover,\n });\n\n if (!this.state.isNotificationConfirmed) {\n this.setState({ isNotificationConfirmed: true });\n }\n };\n\n toggleUserCardPopover = () => {\n this.setState({\n isOpenUserCardPopover: !this.state.isOpenUserCardPopover,\n });\n };\n\n onClick={this.toggleUserCardPopover}\n\n state = {\n isOpenNotificationPopover: false,\n isNotificationConfirmed: false,\n isOpenUserCardPopover: false,\n loggedInUser: undefined\n };\n\n \n\n\n\n \n\n Anasayfa\n\n\n\n \n \n {isNotificationConfirmed ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n\n\n \n Profile\n \n \n Stats\n \n \n Messages\n \n \n Settings\n \n \n Help\n \n\n\n \n \n \n \n \n \n \n \n \n Çıkış yap\n \n \n \n \n \n \n\n\n */","import React from \"react\";\nimport { Content, Footer, Header, Sidebar } from \"components/Layout\";\nimport { message } from 'antd';\n\nclass MainLayout extends React.Component {\n static isSidebarOpen() {\n return document\n .querySelector(\".cr-sidebar\")\n .classList.contains(\"cr-sidebar--open\");\n }\n\n componentWillReceiveProps({ breakpoint }) {\n if (breakpoint !== this.props.breakpoint) {\n this.checkBreakpoint(breakpoint);\n }\n }\n\n componentDidMount() {\n this.checkBreakpoint(this.props.breakpoint);\n const name = localStorage.getItem(\"name\");\n if (name !== null) {\n setTimeout(() =>\n message.info(`Hoşgeldin ${name}!`)\n , 1000);\n };\n };\n\n // close sidebar when\n handleContentClick = (event) => {\n // close sidebar if sidebar is open and screen size is less than `md`\n if (\n MainLayout.isSidebarOpen() &&\n (this.props.breakpoint === \"xs\" ||\n this.props.breakpoint === \"sm\" ||\n this.props.breakpoint === \"md\")\n ) {\n this.openSidebar(\"close\");\n }\n };\n\n checkBreakpoint(breakpoint) {\n switch (breakpoint) {\n case \"xs\":\n case \"sm\":\n case \"md\":\n return this.openSidebar(\"close\");\n\n case \"lg\":\n case \"xl\":\n default:\n return this.openSidebar(\"open\");\n }\n }\n\n openSidebar(openOrClose) {\n if (openOrClose === \"open\") {\n return document\n .querySelector(\".cr-sidebar\")\n .classList.add(\"cr-sidebar--open\");\n }\n document.querySelector(\".cr-sidebar\").classList.remove(\"cr-sidebar--open\");\n }\n\n render() {\n const { children } = this.props;\n return (\n
\n \n \n
\n {children}\n
\n \n
\n );\n }\n}\n\nexport default MainLayout;\n","import sidebarBgImage from \"assets/images/sidebar/sidebar-4.jpg\";\nimport React from \"react\";\nimport { FaListAlt } from \"react-icons/fa\";\nimport { GiCheckboxTree } from \"react-icons/gi\";\nimport { ImTree, ImProfile } from \"react-icons/im\";\nimport { VscSymbolMethod } from \"react-icons/vsc\";\nimport { HiBadgeCheck } from \"react-icons/hi\";\nimport {\n MdSlideshow,\n MdDashboard,\n MdKeyboardArrowDown,\n MdVerifiedUser,\n MdPlaylistAdd,\n MdPersonPin,\n} from \"react-icons/md\";\nimport { NavLink } from \"react-router-dom\";\nimport {\n Collapse,\n Nav,\n Navbar,\n NavItem,\n NavLink as BSNavLink,\n} from \"reactstrap\";\nimport bn from \"utils/bemnames\";\nimport DM from \"../../utils/DataManagement\";\n\nconst sidebarBackground = {\n backgroundImage: `url(\"${sidebarBgImage}\")`,\n backgroundSize: \"cover\",\n backgroundRepeat: \"no-repeat\",\n};\n\nconst roles = {\n admin: \"admin\",\n editor: \"editor\",\n};\n\nconst bem = bn.create(\"sidebar\");\n\nclass Sidebar extends React.Component {\n state = {\n userRole: null,\n isOpenHomepage: false,\n isOpenAdmin: false,\n isOpenExplore: false,\n isOpenBrandCatalog: false,\n isOpenProServices: false,\n isOpenAds: false,\n isOpenUserManage: false,\n isOpenSssAndFooter: false,\n isOpenBlogManage: false,\n isOpenShortcut: false,\n isOpenBrandDealerManage: false,\n isOpenProductManage: false,\n isOpenBrandCategoryManage: false,\n isOpenProServiceCategoryManage: false,\n isOpenFeaturedServices: false,\n };\n\n topList = [\"Homepage\", \"Admin\", \"Explore\", \"BrandCatalog\", \"ProServices\"];\n\n subList = [\n \"Ads\",\n \"UserManage\",\n \"SssAndFooter\",\n \"BlogManage\",\n \"Shortcut\",\n \"BrandDealerManage\",\n \"ProductManage\",\n \"BrandCategoryManage\",\n \"ProServiceCategoryManage\",\n \"FeaturedServices\",\n ];\n\n componentWillMount() {\n const user = DM.getLoggedInUser();\n this.setState({ userRole: user.role });\n }\n\n handleClick = (listType, name) => () => {\n const list =\n listType === \"top\" ? this.topList.concat(this.subList) : this.subList;\n this.setState((prevState) => {\n const isOpen = prevState[`isOpen${name}`];\n const obj = { [`isOpen${name}`]: !isOpen };\n let objList = list\n .filter((i) => i !== name)\n .map((i) => {\n return { [`isOpen${i}`]: false };\n });\n objList.push(obj);\n return Object.assign({}, ...objList);\n });\n };\n\n textTransformToUppercase = (text) => text.toLocaleUpperCase(\"tr-TR\");\n\n render() {\n const {\n userRole,\n isOpenHomepage,\n isOpenAdmin,\n isOpenExplore,\n isOpenBrandCatalog,\n isOpenProServices,\n isOpenAds,\n isOpenUserManage,\n isOpenSssAndFooter,\n isOpenBlogManage,\n isOpenShortcut,\n isOpenBrandDealerManage,\n isOpenProductManage,\n isOpenBrandCategoryManage,\n isOpenProServiceCategoryManage,\n isOpenFeaturedServices,\n } = this.state;\n // console.log(\"role:\", userRole)\n const topNavItems = [\n {\n to: \"/homepage/homepage-edits\",\n name: \"anasayfa\",\n key: \"Homepage\",\n state: isOpenHomepage,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n {\n to: \"/admin\",\n name: \"admin\",\n key: \"Admin\",\n state: isOpenAdmin,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n {\n to: \"/\",\n name: \"keşfet\",\n key: \"Explore\",\n state: isOpenExplore,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n {\n to: \"/blogManagement\",\n name: \"marka kataloğu\",\n key: \"BrandCatalog\",\n state: isOpenBrandCatalog,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n // {\n // to: \"/dealerManagement\",\n // name: \"pro hizmet al\",\n // key: \"ProServices\",\n // state: isOpenProServices,\n // exact: true,\n // Icon: null,\n // forRole: roles.editor,\n // },\n ];\n const subItems = {\n Admin: [\n {\n to: \"/admin/ads\",\n name: \"reklam\",\n key: \"Ads\",\n state: isOpenAds,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n {\n to: \"/\",\n name: \"kullanıcı yönetimi\",\n key: \"UserManage\",\n state: isOpenUserManage,\n exact: true,\n Icon: null,\n forRole: roles.admin,\n },\n {\n to: \"/admin/sss-footer\",\n name: \"sss ve footer\",\n key: \"SssAndFooter\",\n state: isOpenSssAndFooter,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n {\n to: \"/\",\n name: \"blog yönetimi\",\n key: \"BlogManage\",\n state: isOpenBlogManage,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n ],\n Explore: [\n {\n to: \"/explore/shortcut\",\n name: \"shortcut\",\n key: \"Shortcut\",\n state: isOpenShortcut,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n ],\n BrandCatalog: [\n {\n to: \"/\",\n name: \"marka / bayi yönetimi\",\n key: \"BrandDealerManage\",\n state: isOpenBrandDealerManage,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n {\n to: \"/\",\n name: \"ürün yönetimi\",\n key: \"ProductManage\",\n state: isOpenProductManage,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n {\n to: \"/\",\n name: \"kategori yönetimi\",\n key: \"BrandCategoryManage\",\n state: isOpenBrandCategoryManage,\n exact: true,\n Icon: null,\n forRole: roles.editor,\n },\n ],\n // ProServices: [\n // {\n // to: \"/prof-services\",\n // name: \"kategori yönetimi\",\n // key: \"ProServiceCategoryManage\",\n // state: isOpenProServiceCategoryManage,\n // exact: true,\n // Icon: null,\n // forRole: roles.editor,\n // },\n // {\n // to: \"/prof-services/featured\",\n // name: \"öne çıkan hizmetler\",\n // key: \"FeaturedServices\",\n // state: isOpenFeaturedServices,\n // exact: true,\n // Icon: null,\n // forRole: roles.editor,\n // },\n // ],\n };\n const subSubItems = {\n UserManage: [\n {\n to: \"/personels\",\n name: \"Personeller\",\n exact: false,\n Icon: MdVerifiedUser,\n forRole: roles.admin,\n },\n {\n to: \"/users\",\n name: \"Kullanıcılar\",\n exact: false,\n Icon: MdPersonPin,\n forRole: roles.admin,\n },\n {\n to: \"/professionals\",\n name: \"Profesyoneller\",\n exact: false,\n Icon: ImProfile,\n forRole: roles.admin,\n },\n ],\n BlogManage: [\n {\n to: \"/blogSliderManagement\",\n name: \"Slider\",\n exact: true,\n Icon: MdSlideshow,\n forRole: roles.editor,\n },\n {\n to: \"/blogManagement\",\n name: \"Alt Bloglar\",\n exact: true,\n Icon: MdDashboard,\n forRole: roles.editor,\n },\n ],\n BrandDealerManage: [\n {\n to: \"/brandManagement\",\n name: \"Marka Yönet\",\n exact: false,\n Icon: VscSymbolMethod,\n forRole: roles.editor,\n },\n {\n to: \"/dealerManagement\",\n name: \"Bayi Yönet\",\n exact: false,\n Icon: GiCheckboxTree,\n forRole: roles.editor,\n },\n ],\n ProductManage: [\n {\n to: \"/products\",\n name: \"Tüm Ürünler\",\n exact: false,\n Icon: FaListAlt,\n forRole: roles.editor,\n },\n {\n to: \"/product-add\",\n name: \"Ürün Ekle\",\n exact: false,\n Icon: MdPlaylistAdd,\n forRole: roles.editor,\n },\n {\n to: \"/productAudit\",\n name: \"Ürün Denetimi\",\n exact: false,\n Icon: HiBadgeCheck,\n forRole: roles.editor,\n },\n ],\n BrandCategoryManage: [\n {\n to: \"/categoryManagement\",\n name: \"Kategoriler\",\n exact: false,\n Icon: ImTree,\n forRole: roles.admin,\n },\n {\n to: \"/categoryGalleries\",\n name: \"Mobil Hızlı Arama\",\n exact: false,\n Icon: ImTree,\n forRole: roles.editor,\n },\n {\n to: \"/brand-catalog/fast-search\",\n name: \"Web Hızlı Arama\",\n exact: false,\n Icon: ImTree,\n forRole: roles.editor,\n },\n ],\n // ProServiceCategoryManage: [\n // {\n // to: \"/prof-services/service-category-management\",\n // name: \"Kategoriler\",\n // exact: false,\n // Icon: ImTree,\n // forRole: roles.admin,\n // },\n // {\n // to: \"/prof-services/fast-search\",\n // name: \"Hızlı Arama\",\n // exact: false,\n // Icon: ImTree,\n // forRole: roles.editor,\n // },\n // ],\n };\n\n const childrenCheck = (array, key) => {\n if (array[key] && array[key].length > 0) return true;\n return false;\n };\n\n return (\n \n );\n }\n}\n\nexport default Sidebar;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Spinner } from 'reactstrap';\n\nconst PageSpinner = ({ color = 'primary' }) => {\n return (\n
\n \n
\n );\n};\n\nPageSpinner.propTypes = {\n color: PropTypes.oneOf([\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'warning',\n 'info',\n 'light',\n 'dark',\n ]),\n};\n\nexport default PageSpinner;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { Button, Form, FormGroup, Input, Label } from \"reactstrap\";\nimport { config } from \"../configs\";\nimport { message } from \"antd\";\nimport DM from \"../utils/DataManagement\";\n\nconst configURL = config.server_url;\n\nclass AuthForm extends React.Component {\n state = {\n redirect: null,\n };\n\n handleInputChange = (event) => {\n if (event.target.name === \"email\")\n this.setState({ email: event.target.value });\n\n if (event.target.name === \"password\")\n this.setState({ password: event.target.value });\n\n event.preventDefault();\n };\n\n handleSubmit = (e) => {\n if (e) {\n e.preventDefault();\n }\n\n let url = configURL + \"/admin/login\";\n\n const requestOptions = {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n email: this.state.email,\n password: this.state.password,\n }),\n };\n\n fetch(url, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n this.setState({ postId: data.id });\n // console.log(data);\n\n if (data.success == true) {\n message.success(data.message);\n localStorage.setItem(\"access_token\", data.access_token); // https://medium.com/@damlaakdemr/local-storage-ve-session-storage-nedir-nas%C4%B1l-kullan%C4%B1l%C4%B1r-237aa647b412\n localStorage.setItem(\"username\", data.user.username);\n localStorage.setItem(\"name\", data.user.name);\n localStorage.setItem(\"role\", data.user.role);\n DM.setLoggedInUser({\n username: data.user.username,\n name: data.user.name,\n role: data.user.role,\n access_token: data.access_token,\n });\n setTimeout(\n () => message.loading(\"Anasayfaya yönlendiriliyorsunuz...\"),\n 1000\n );\n setTimeout(() => {\n this.setState({ redirect: \"/\" });\n }, 3000);\n } else message.error(data.message);\n });\n };\n\n render() {\n const {\n showLogo,\n usernameLabel,\n usernameInputProps,\n passwordLabel,\n passwordInputProps,\n children,\n } = this.props;\n\n if (this.state.redirect) {\n return ;\n }\n\n onkeydown = (e) => {\n if (window.location.pathname == \"/login\" && e.key == \"Enter\") {\n this.handleSubmit();\n }\n };\n\n return (\n
\n {showLogo && (\n
\n \n
\n )}\n\n \n \n \n \n \n \n \n \n\n
\n\n \n Giriş yap\n \n {children}\n \n );\n }\n}\n\nAuthForm.propTypes = {\n showLogo: PropTypes.bool,\n usernameLabel: PropTypes.string,\n usernameInputProps: PropTypes.object,\n passwordLabel: PropTypes.string,\n passwordInputProps: PropTypes.object,\n};\n\nAuthForm.defaultProps = {\n showLogo: true,\n usernameLabel: \"Email\",\n usernameInputProps: {\n type: \"email\",\n placeholder: \"\",\n },\n passwordLabel: \"Password\",\n passwordInputProps: {\n type: \"password\",\n placeholder: \"\",\n },\n};\n\nexport default AuthForm;\n","import AuthForm from 'components/AuthForm';\nimport React from 'react';\nimport { Card, Col, Row } from 'reactstrap';\n\nclass AuthPage extends React.Component {\n\n render() {\n return (\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default AuthPage;\n","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\n\nconst PrivateRoute = (props) => {\n return (\n (props.onEnter !== undefined ?\n (props.onEnter() ?\n \n :\n \n )\n :\n \n )\n );\n }\n export default PrivateRoute;","\n\n export const getBase64 = (files) => {\n \n var file = files[0];\n console.log(file);\n let reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n this.setState({\n image: reader.result,\n });\n console.log(reader.result);\n };\n reader.onerror = function (error) {\n console.log(\"Error: \", error);\n };\n }\n\n export const getBase64Callback = (img, callback) => {\n const reader = new FileReader();\n reader.addEventListener('load', () => callback(reader.result));\n reader.readAsDataURL(img);\n }\n\n\nif (!Array.prototype.last){\n Array.prototype.last = function(){\n return this[this.length - 1];\n };\n};","import { EmptyLayout, MainLayout } from \"components/Layout\";\nimport PageSpinner from \"components/PageSpinner\";\nimport AuthPage from \"pages/AuthPage\";\nimport React from \"react\";\nimport componentQueries from \"react-component-queries\";\nimport { BrowserRouter, Redirect, Route, Switch } from \"react-router-dom\";\nimport PrivateRoute from './components/PrivateRoute';\nimport \"styles/reduction.scss\";\nimport 'utils/utilityFunctions'\n\n/* Home Page */\nconst Homepage = React.lazy(() => import(\"pages/Homepage\"))\n\n/* User Pages */\nconst Users = React.lazy(() => import(\"pages/admin/user-manage/Users\"));\nconst Personels = React.lazy(() => import(\"pages/admin/user-manage/Personels\"));\n\n/* Product Pages */\nconst Products = React.lazy(() => import(\"pages/brand-catalog/product-manage/Products\"));\nconst ProductAdd = React.lazy(() => import(\"pages/brand-catalog/product-manage/ProductAdd\"));\nconst ProductEdit = React.lazy(() => import(\"pages/brand-catalog/product-manage/ProductEdit\"));\nconst ProductAudit = React.lazy(() => import(\"pages/brand-catalog/product-manage/ProductAudit\"));\n\n/* Brand Pages */\nconst BrandManagement = React.lazy(() => import(\"pages/brand-catalog/brand-dealer/brand-manage/BrandManagement\"));\nconst BrandAdd = React.lazy(() => import(\"pages/brand-catalog/brand-dealer/brand-manage/BrandAdd\"));\nconst BrandEdit = React.lazy(() => import(\"pages/brand-catalog/brand-dealer/brand-manage/BrandEdit\"));\n\n/* Dealer Pages */\nconst DealerManagement = React.lazy(() => import(\"pages/brand-catalog/brand-dealer/dealer-manage/DealerManagement\"));\nconst DealerEdit = React.lazy(() => import(\"pages/brand-catalog/brand-dealer/dealer-manage/DealerEdit\"));\nconst DealerAdd = React.lazy(() => import(\"pages/brand-catalog/brand-dealer/dealer-manage/DealerAdd\"));\n\n/* Category Pages */\nconst CategoryManagementPage = React.lazy(() => import(\"pages/brand-catalog/product-category-manage/CategoryManagement\"));\nconst CategoryGalleriesPage = React.lazy(() => import(\"pages/brand-catalog/product-category-manage/CategoryGalleries\"));\n\n/* Blog - Slider Pages */\nconst BlogManagement = React.lazy(() => import(\"pages/admin/blog-manage/BlogManagement\"));\nconst BlogSliderManagement = React.lazy(() => import(\"pages/admin/blog-manage/BlogSliderManagement\"));\n\n/* Feedback Pages */\n// const FeedbackManagement = React.lazy(() => import(\"pages/FeedbackManagement\"));\n\n/* Website Pages */\nconst Professionals = React.lazy(() => import(\"pages/admin/user-manage/professionals/ProfessionalsPage\"));\n// const ProfessionalDetail = React.lazy(() => import(\"pages/admin/user-manage/professionals/ProfessionalDetailPage\"));\n// const ProfessionalEdit = React.lazy(() => import(\"pages/admin/user-manage/professionals/ProfessionalEditPage\"));\n// const ProjectDetail = React.lazy(() => import(\"pages/admin/user-manage/professionals/ProjectDetailPage\"));\n// const IdeaPanoDetailPage = React.lazy(() => import(\"components/Professional/IdeaPanoDetails\"));\n// const ServiceManagement = React.lazy(() => import(\"pages/prof-services/service-category-manage/ServiceManagement\"));\n\n/* YENI EKLENENLER */\nconst Ads = React.lazy(() => import(\"pages/admin/Ads\"))\nconst SssFooter = React.lazy(() => import(\"pages/admin/SssFooter\"))\nconst Shortcut = React.lazy(() => import(\"pages/explore/Shortcut\"))\nconst HomepageEdits = React.lazy(() => import(\"pages/homepage/HomepageEdits\"))\nconst FeaturedServices = React.lazy(() => import(\"pages/prof-services/FeaturedServices\"))\nconst ServiceFastSearch = React.lazy(() => import(\"pages/prof-services/service-category-manage/ServiceFastSearch\"))\nconst ProductFastSearch = React.lazy(() => import(\"pages/brand-catalog/product-category-manage/ProductFastSearch\"))\nconst ServiceCategoryManage = React.lazy(() => import(\"pages/prof-services/service-category-manage/ServiceCategoryManage\"))\n\nclass App extends React.Component {\n\n render() {\n const isLoggedIn = () => {\n let exist;\n if (localStorage.getItem('access_token') !== null) {\n exist = true\n } else {\n exist = false\n }\n console.log('isLoggedIn: ' + exist);\n return exist;\n }\n\n\n return (\n \n \n isLoggedIn() ? : } layout={EmptyLayout} path=\"/login\" exact />\n \n }>\n\n \n\n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n\n \n \n\n {/* */}\n\n \n {/* \n \n \n */}\n\n \n \n \n \n \n \n \n \n\n\n \n \n \n \n \n );\n }\n}\n\nconst query = ({ width }) => {\n if (width < 575) {\n return { breakpoint: \"xs\" };\n }\n\n if (576 < width && width < 1000) {\n return { breakpoint: \"sm\" };\n }\n\n if (1000 < width && width < 1500) {\n return { breakpoint: \"md\" };\n }\n\n if (1500 < width && width < 2000) {\n return { breakpoint: \"lg\" };\n }\n\n if (width > 1200) {\n return { breakpoint: \"xl\" };\n }\n\n return { breakpoint: \"xs\" };\n};\n\nexport default componentQueries(query)(App);","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport \"bootstrap-table/dist/bootstrap-table.css\";\nimport \"antd/dist/antd.css\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n","import { message } from \"antd\";\nimport { config } from \"../configs\";\nimport { localStrings } from \"./constants\";\nimport DM from './DataManagement';\nimport { sortByTurkishCharacters } from './helperFunctions'\n\nconst configURL = config.server_url;\nconst { fastSearchType } = localStrings;\n\n// https://medium.com/javascript-in-plain-english/async-await-javascript-5038668ec6eb\n\n\nexport async function requestToServer(endPoint, requestOptions) {\n let url = configURL + endPoint;\n // console.log(\"request sending:url:\", url)\n // console.log(\"request sending:requestOptions.body:\", requestOptions && requestOptions.body && JSON.parse(requestOptions.body))\n return fetch(url, requestOptions)\n .then((response) => response.json())\n .then((obj) => {\n // console.log(\"response.obj:\", obj)\n if (!obj.success && (obj.status == 401 || obj.status == 403)) {\n // console.log(\"dbFunctions:requestToServer:hataya girdi\");\n message.error(obj.message);\n localStorage.clear();\n return false;\n } else {\n if (obj.success) {\n return obj;\n } else {\n message.error(obj.message);\n return { success: false };\n }\n }\n })\n .catch(err => console.log(err));\n}\n\nexport async function checkToken(type) {\n let endPoint = \"/admin/check-token?type=\" + type;\n let requestOptions = {\n method: \"GET\",\n headers: { 'Authorization': 'Bearer: ' + localStorage.getItem('access_token') },\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n\n // console.log('Token Check response:', response)\n return response;\n}\n\nexport async function fetchCategories() {\n let url = configURL + \"/categories\";\n\n if (DM.getCategories()) {\n return DM.getCategories();\n }\n\n return fetch(url)\n .then((response) => response.json())\n .then((obj) => {\n console.log('Categories are fetched'); //, obj.data)\n DM.setCategories(obj.data);\n return obj.data;\n });\n}\n\nexport async function fetchBrands() {\n let url = configURL + \"/brands\";\n\n if (DM.getBrands())\n return DM.getBrands();\n\n return fetch(url)\n .then((response) => response.json())\n .then((obj) => {\n console.log('Brands are fetched'); //, obj.data)\n DM.setBrands(obj.data);\n return obj.data;\n });\n}\n\nexport async function fetchBrand(id) {\n let existBrand = DM.findBrand(id);\n if (existBrand)\n return existBrand;\n\n let url = configURL + \"/brands/\" + id;\n\n const requestOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n },\n credentials: 'same-origin',\n withCredentials: true\n };\n\n return fetch(url, requestOptions)\n .then((response) => response.json())\n .then((obj) => {\n console.log('Brand is fetched'); //, obj.data)\n DM.updateBrands(obj.data);\n return obj.data;\n });\n}\n\n/**\n * If there exists a query string then request it from db, otherwise return from the Data Management's product pool\n * @param {String} queryStr sample query string is like that: category=L&brand_id=BR-000002&collection_name=MEGA&\n */\nexport async function fetchProducts(queries) {\n // let url = configURL + '/products/withfilter?' + queryStr; // \"/products/withfilter?brand_id=BR-000002\";\n let url = configURL + '/products/withfilter'\n \n if (!queries)\n if (DM.getProducts()) {\n // console.log('from.DM:', DM.getProducts())\n return DM.getProducts();\n }\n\n const requestOptions = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n },\n body: JSON.stringify({ queries }),\n // mode: 'no-cors',\n credentials: 'same-origin',\n withCredentials: true\n };\n\n return fetch(url, requestOptions)\n .then((response) => response.json())\n .then((obj) => {\n DM.setProducts(obj.data);\n console.log('Products are fetched'); //, obj)\n return obj.data;\n });\n}\n\nexport async function fetchProduct(id) {\n let url = configURL + \"/products/id/\" + id; // previously /products/materia_id\n\n const requestOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n },\n credentials: 'same-origin',\n withCredentials: true\n };\n\n return fetch(url, requestOptions)\n .then((response) => response.json())\n .then((obj) => {\n // DM.setProduct(obj.data);\n console.log('Product: ' + obj.data.materia_id + ' is fetched'); //, obj.data)\n return obj.data;\n });\n}\n\n/**\n * It asynchronously fetches all the information related to given dealer id\n * @param {Object} dealer Dealer object as a parameter\n * @param {number} num\n * @returns {Promise}\n */\nexport async function fetchDealers() {\n let url = configURL + \"/dealers\";\n\n if (DM.getDealers())\n return DM.getDealers();\n\n const requestOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n },\n credentials: 'same-origin',\n withCredentials: true\n };\n\n return fetch(url, requestOptions)\n .then((response) => response.json())\n .then((obj) => {\n DM.setDealers(obj.data);\n console.log('Dealers are fetched'); //, obj.data)\n return obj.data;\n });\n}\n\n//! will be deleted later, because we have advanced filter function\nexport const fetchProductsWithCategory = async (category_id) => {\n let url = configURL + \"/categories/\" + category_id + \"/products\";\n\n return fetch(url)\n .then((response) => response.json())\n .then((obj) => {\n DM.setProducts(obj.data);\n return obj.data;\n })\n}\n\nexport async function deleteProduct(id) {\n\n let endPoint = \"/products/id/\" + id + \"/delete\";\n\n const requestOptions = {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n }\n };\n const response = await requestToServer(endPoint, requestOptions);\n\n // console.log('dbFunctions::Delete product response:', response)\n return response;\n}\n\nexport async function deleteBrand(id) {\n\n let endPoint = \"/brands/\" + id + \"/delete\";\n\n const requestOptions = {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n }\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n\n // console.log('dbFunctions::Delete brand response:', response)\n return response;\n\n}\n\nexport async function deleteDealer(id) {\n\n let endPoint = \"/dealers/\" + id + \"/delete\";\n\n const requestOptions = {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n }\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n\n // console.log('dbFunctions::Delete dealer response:', response)\n return response;\n\n}\n\nexport async function fetchUsers() {\n if (DM.getUsers())\n return await DM.getUsers();\n\n let endPoint = \"/users/all?userRole=user\";\n let requestOptions = {\n method: \"GET\",\n headers: { 'Authorization': 'Bearer: ' + localStorage.getItem('access_token') },\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n\n // console.log('dbFunctions::Fetch users response:', response)\n DM.setUsers(response.data);\n return response.data;\n}\n\nexport async function fetchPersonels() {\n if (DM.getPersonels())\n return await DM.getPersonels();\n\n let endPoint = \"/users/all?userRole=personel\";\n let requestOptions = {\n method: \"GET\",\n headers: { 'Authorization': 'Bearer: ' + localStorage.getItem('access_token') },\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n\n // console.log('dbFunctions::Fetch personels response:', response)\n DM.setPersonels(response.data);\n return response.data;\n}\n\nexport async function deleteUser(username) {\n let endPoint = \"/users/delete/\" + username;\n\n const requestOptions = {\n method: \"DELETE\",\n headers: {\n \"Authorization\": \"Bearer: \" + localStorage.getItem(\"access_token\")\n }\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n return response;\n}\n\nexport async function deleteCategory(id) {\n let endPoint = \"/categories/\" + id + \"/delete\";\n\n const requestOptions = {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n },\n credentials: 'same-origin',\n withCredentials: true\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n return response;\n}\n\nexport async function fetchBlogs() {\n if (DM.getBlogs())\n return DM.getBlogs();\n\n let endPoint = \"/blog/blogs\";\n\n const response = await requestToServer(endPoint);\n DM.setBlogs(response.data);\n return response.data;\n\n}\n\nexport async function fetchSlider() {\n if (DM.getSlider())\n return DM.getSlider();\n\n let endPoint = \"/blog/slider\";\n\n const response = await requestToServer(endPoint);\n DM.setSlider(response.data);\n return response.data;\n}\n\n\nexport async function fetchBrandsCollectionNames(brand_id) {\n let endPoint = \"/brands/\" + brand_id + \"/collection_names\";\n\n const response = await requestToServer(endPoint);\n // console.log(\"fetchBrandsCollectionNames.response:\", response);\n if (response && response.count > 0) {\n return response.data.sort((a, b) => sortByTurkishCharacters(a, b)).map((name) => {\n return { value: name };\n });\n } else {\n return []\n }\n}\n\nexport async function fetchBrandsModels(brand_id, collection_name) {\n let endPoint = \"/brands/\" + brand_id + \"/\" + collection_name + \"/models\";\n // console.log(\"fetchBrandsModels.endPoint:\", endPoint);\n const response = await requestToServer(endPoint);\n // console.log(\"fetchBrandsModels.response:\", response);\n if (response && response.count > 0) {\n return response.data.sort((a, b) => sortByTurkishCharacters(a, b)).map((name) => {\n return { value: name };\n });\n } else {\n return []\n }\n}\n\nexport async function getProductsForAudit(obj) {\n let endPoint = \"/admin/product-audit\";\n // console.log(\"getProductsForAudit.endPoint:\", endPoint);\n let requestOptions = {\n method: \"POST\",\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n },\n body: JSON.stringify(obj)\n };\n const response = await requestToServer(endPoint, requestOptions);\n // console.log(\"getProductsForAudit.response:\", response);\n return response;\n}\n\nexport async function fetchProfessionals() {\n if (DM.getProfessionals()) {\n return await DM.getProfessionals();\n }\n\n let endPoint = \"/admin/get-all-professionals\";\n let requestOptions = {\n method: \"GET\",\n headers: { 'Authorization': 'Bearer: ' + localStorage.getItem('access_token') },\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n DM.setProfessionals(response.data)\n return response.data;\n}\n\n\nexport async function fetchServices() {\n if (DM.getServices()) {\n return DM.getServices();\n }\n\n let endPoint = \"/services\";\n let requestOptions = {\n method: \"GET\",\n headers: { 'Authorization': 'Bearer: ' + localStorage.getItem('access_token') },\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n DM.setServices(response.data)\n return response.data;\n}\n\nexport async function deleteService(id) {\n let endPoint = \"/services/\" + id + \"/delete\"\n\n const requestOptions = {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n },\n credentials: 'same-origin',\n withCredentials: true\n };\n\n const response = await requestToServer(endPoint, requestOptions);\n return response;\n}\n\nexport async function fetchFastSearches(type) {\n let endPoint = \"/fast-search?type=\";\n let requestOptions = {\n method: \"GET\",\n headers: { 'Authorization': 'Bearer: ' + localStorage.getItem('access_token') },\n };\n let response;\n\n if (type === fastSearchType.service) {\n if (DM.getServiceFastSearches()) {\n return DM.getServiceFastSearches();\n }\n endPoint += fastSearchType.service;\n // console.log('endpoint.service', endPoint)\n response = await requestToServer(endPoint, requestOptions);\n // console.log('endpoint.response',response)\n DM.setServiceFastSearches(response.data.data)\n return response.data.data;\n }\n if (type === fastSearchType.product) {\n if (DM.getProductFastSearches()) {\n return DM.getProductFastSearches();\n }\n endPoint += fastSearchType.product;\n // console.log('endpoint.product', endPoint)\n response = await requestToServer(endPoint, requestOptions);\n // console.log('endpoint.response',response)\n DM.setProductFastSearches(response.data.data)\n return response.data.data;\n }\n}\n\nexport async function fetchHomepageSegments() {\n let url = configURL + \"/homepage-segments\";\n\n if (DM.getHomepageSegments()) {\n return DM.getHomepageSegments();\n }\n\n return fetch(url)\n .then((response) => response.json())\n .then((obj) => {\n console.log('Homepage segments are fetched');\n DM.setHomepageSegments(obj.data);\n return obj.data;\n })\n .catch((error) => {\n console.error('Error fetching homepage segments:', error);\n throw error;\n });\n}\n\nexport async function fetchHomepageSegment(type) {\n let existSegment = DM.getHomepageSegment(type);\n if (existSegment) {\n return existSegment;\n }\n\n let url = `${configURL}/segments/${type}`;\n\n const requestOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': 'Bearer: ' + localStorage.getItem('access_token')\n },\n credentials: 'same-origin',\n withCredentials: true\n };\n\n return fetch(url, requestOptions)\n .then((response) => response.json())\n .then((obj) => {\n console.log('Homepage segment is fetched');\n DM.setHomepageSegment(obj.data);\n return obj.data;\n })\n .catch((error) => {\n console.error('Error fetching homepage segment:', error);\n throw error;\n });\n}\n","import classNames from 'classnames';\n\nexport const createBEM = namespace => {\n return {\n create: blockName => {\n let block = blockName;\n\n if (typeof namespace === 'string') {\n block = `${namespace}-${blockName}`;\n }\n\n return {\n b: (...more) => {\n return classNames(block, more);\n },\n e: (className, ...more) => {\n return classNames(`${block}__${className}`, more);\n },\n m: (className, ...more) => {\n return classNames(`${block}--${className}`, more);\n },\n };\n },\n };\n};\n\nexport const bemNames = createBEM('cr');\n\nexport default bemNames;\n","const config = {\n\n server_url: process.env.REACT_APP_CONFIG_URL || \"https://api.materiasoft.com\",\n roles: [\n { id: 1, key: \"admin\", name: \"Admin\" },\n { id: 2, key: \"editor\", name: \"Editör\" },\n { id: 3, key: \"user\", name: \"Kullanıcı\" },\n ],\n genders: [\n { id: 0, key: \"null\", name: \"Belirtmek istemiyorum\" },\n { id: 1, key: \"male\", name: \"Erkek\" },\n { id: 2, key: \"female\", name: \"Kadın\" },\n ],\n ages: [\n { id: 0, key: \"null\", name: \"Belirtmek istemiyorum\" },\n { id: 1, key: \"1\", name: \"0-23\" },\n { id: 2, key: \"2\", name: \"24-30\" },\n { id: 4, key: \"3\", name: \"31-40\" },\n { id: 5, key: \"4\", name: \"41-55\" },\n { id: 6, key: \"5\", name: \"55+\" },\n ],\n productAuditFields: {\n defaultFields: [\n // { key: 0, value: \"images\", name: \"Fotoğraf\" },\n // { key: 1, value: \"category_id\", name: \"Kategori Id\" },\n // { key: 2, value: \"brand_id\", name: \"Marka\" },\n { key: 3, value: \"collection_name\", name: \"Koleksiyon\" },\n { key: 4, value: \"model\", name: \"Model\" },\n { key: 5, value: \"color\", name: \"Renk\" },\n { key: 6, value: \"width\", name: \"En\" },\n { key: 7, value: \"length\", name: \"Boy\" },\n { key: 8, value: \"contents\", name: \"Ürün içeriği\" },\n // { key: 9, value: \"exist_at_home\", name: \"Ana sayfada çıksın\" },\n // { key: 10, value: \"exist_at_category\", name: \"Kategori sayfasında çıksın\" },\n { key: 11, value: \"web_site\", name: \"Website\" },\n { key: 12, value: \"designer\", name: \"Tasarımcı\" },\n { key: 13, value: \"notes\", name: \"Notlar\" },\n { key: 14, value: \"usage_area\", name: \"Kullanım alanı\" },\n { key: 15, value: \"thickness\", name: \"Kalınlık\" },\n { key: 16, value: \"material\", name: \"Malzeme\" },\n { key: 17, value: \"height\", name: \"Yükseklik\" },\n ],\n },\n alphabet: [\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"I\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"O\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n ],\n};\n\nexport { config };\n"],"sourceRoot":""}