{"version":3,"sources":["app/modules/auth/redux/AuthService.ts","app/modules/auth/redux/AuthSlice.ts","setup/redux/PageTitleSlicer.tsx","app/modules/salesPediaMain/redux/haberlerSlicer.tsx","app/modules/salesPediaMain/redux/productHierarchySlicer.tsx","app/store/queries.ts","app/modules/auth/components/Login.tsx","_metronic/helpers/AssetHelpers.ts","_metronic/helpers/components/KTSVG.tsx","app/modules/auth/AuthPage.tsx","app/modules/auth/redux/AuthRedux.ts","app/modules/auth/Logout.tsx","app/modules/auth/redux/AuthInit.tsx","setup/redux/loadingSlice.tsx","setup/redux/RootReducer.ts","setup/redux/Store.ts","_metronic/i18n/Metronici18n.tsx","_metronic/i18n/i18nProvider.tsx","_metronic/layout/core/DefaultLayoutConfig.ts","_metronic/layout/core/LayoutSetup.ts","_metronic/layout/core/LayoutProvider.tsx","_metronic/layout/core/PageData.tsx","_metronic/layout/core/MetronicSplashScreen.tsx","_metronic/layout/components/aside/AsideMenuItem.tsx","_metronic/helpers/RouterHelpers.ts","_metronic/layout/components/aside/AsideMenuMain.tsx","_metronic/assets/ts/components/_CookieComponent.ts","_metronic/assets/ts/_utils/_ElementStyleUtil.ts","_metronic/assets/ts/_utils/_DataUtil.ts","_metronic/assets/ts/_utils/_TypesHelpers.ts","_metronic/assets/ts/_utils/_DOMEventHandlerUtil.ts","_metronic/assets/ts/_utils/ElementAnimateUtil.ts","_metronic/assets/ts/_utils/DomHelpers.ts","_metronic/assets/ts/_utils/EventHandlerUtil.ts","_metronic/assets/ts/components/_DrawerComponent.ts","_metronic/assets/ts/components/_FeedbackComponent.ts","_metronic/assets/ts/components/_ImageInputComponent.ts","_metronic/assets/ts/components/_ScrollComponent.ts","_metronic/assets/ts/components/_ScrollTopComponent.ts","_metronic/assets/ts/components/_StepperComponent.ts","_metronic/assets/ts/components/_StickyComponent.ts","_metronic/assets/ts/components/_ToggleComponent.ts","_metronic/assets/ts/components/_PasswordMeterComponent.ts","_metronic/assets/ts/components/_PlaceComponent.ts","_metronic/assets/ts/components/MenuComponent.ts","_metronic/assets/ts/components/SearchComponent.ts","_metronic/layout/components/aside/AsideMenu.tsx","_metronic/layout/components/aside/AsideDefault.tsx","_metronic/layout/components/Footer.tsx","_metronic/layout/components/header/MenuInner.tsx","_metronic/layout/components/header/Header.tsx","app/pages/components/BackButton.tsx","_metronic/layout/components/header/page-title/DefaultTitle.tsx","_metronic/partials/layout/header-menus/HeaderUserMenu.tsx","_metronic/partials/content/fallback-view/FallbackView.tsx","_metronic/partials/modals/create-app/Main.tsx","_metronic/partials/modals/invite-users/InviteUsers.tsx","_metronic/partials/modals/upgrade-plan/UpgradePlan.tsx","_metronic/layout/components/header/Topbar.tsx","_metronic/layout/components/header/HeaderWrapper.tsx","_metronic/layout/components/toolbar/Toolbar1.tsx","_metronic/layout/components/toolbar/Toolbar.tsx","_metronic/layout/components/ScrollTop.tsx","_metronic/layout/components/Content.tsx","_metronic/layout/MasterInit.tsx","_metronic/layout/MasterLayout.tsx","app/modules/salesPediaMain/commetList.tsx","app/modules/salesPediaMain/components/HierarchyList.tsx","app/modules/salesPediaMain/components/TagList.tsx","app/modules/salesPediaMain/SalesPediaMain.tsx","app/pages/dashboard/DashboardWrapper.tsx","app/pages/MenuTestPage.tsx","app/modules/salesPediaMain/SalesPediaPage.tsx","app/modules/salesPediaMain/SalesPediaFilePage.tsx","app/modules/salesPediaMain/SalesPediaPageFish.tsx","app/modules/salesPediaMain/SalesPediaPageKebab.tsx","app/modules/salesPediaMain/SalesPediaPageVegan.tsx","setup/helpers/apiUrl.js","app/pages/subHierarchyList/component/SubHierarcyList.tsx","app/pages/subHierarchyList/SubHierarchyWrapper.tsx","app/pages/product/component/ProductDetail.tsx","app/pages/product/ProductWrapper.tsx","app/pages/productTag/component/ProductTagPage.tsx","app/pages/productTag/ProductTagWrapper.tsx","app/routing/PrivateRoutes.tsx","app/routing/Routes.tsx","ApollClient/client.tsx","app/App.tsx","index.tsx"],"names":["GetCurrentUser","user","localStorage","getItem","JSON","parse","stringify","toString","SetCurrentUser","setItem","initialState","session","undefined","userSlice","createSlice","name","reducers","setUser","state","action","payload","AuthService","deleteUser","actions","pageLinkSlice","PageLinkList","appendPageLink","push","removePageLink","items","filter","x","title","deletePageLinks","haberlerSlice","activityList","setHaberler","console","log","edges","arrayForSort","sort","a","b","node","activityId","deleteHaberler","productHierarchyListSlice","setProductHierarchies","deleteProductHierarchy","displayName","documentRelations","guid","productHierarchyCode","rank","subProductHierarchies","parentHierarchy","GET_TOKEN","gql","GET_SETTING","GET_ACTUEL_NEWS","GET_SUB_HIERARCHIES","GET_PRODUCT_DETAIL","SEARCH_PRODUCT","SEARCH_PRODUCTTAG","SEARCH_PRODUCT_HIERARCHY","GET_PRODUCT_HIERARHCY_BY_DEPTH","GET_PRODUCTS_BY_TAG","GET_PRODUCTS_BY_TAGTEXT","loginSchema","Yup","shape","email","min","max","required","password","initialValues","Login","useState","loading","setLoading","dispatch","useDispatch","client","useApolloClient","formik","useFormik","validationSchema","onSubmit","values","setStatus","setSubmitting","setTimeout","query","variables","then","data","resp","login","response","salesPersonGuid","userInfo","token","serverUrl","userData","document","location","reload","catch","error","className","handleSubmit","noValidate","id","status","placeholder","getFieldProps","clsx","touched","errors","type","autoComplete","role","style","marginTop","href","target","disabled","isSubmitting","isValid","display","toAbsoluteUrl","pathname","process","KTSVG","path","svgClassName","src","AuthPage","useEffect","body","classList","add","remove","alt","component","from","exact","to","saga","actionTypes","initialAuthState","accessToken","reducer","persistReducer","storage","key","whitelist","logout","requestUser","fulfillUser","takeLatest","loginSaga","put","registerSaga","Logout","clear","connector","connect","auth","props","didRequest","useRef","setShowSplashScreen","useSelector","shallowEqual","current","children","loadingSlice","isActive","setMainLoading","rootSaga","rootReducer","combineReducers","userReducer","UserSliceReducer","pageLinkReducer","PageLinkReducer","haberReducer","HaberReducer","productHierarchyReducer","ProductHierarchyReducer","setMainLoadingSlicer","SetMainLoadingSlicer","all","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","store","configureStore","devTools","enhancers","reduxBatch","persistor","persistStore","run","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","selectedLang","I18nContext","createContext","MetronicI18nProvider","lang","ls","er","getConfig","Provider","value","allMessages","de","en","es","fr","ja","zh","I18nProvider","locale","useContext","messages","DefaultLayoutConfig","main","primaryColor","darkSkinEnabled","loader","scrolltop","header","width","left","fixed","desktop","tabletAndMobile","menuIcon","megaMenu","aside","theme","menu","minimized","minimize","hoverable","content","layout","toolbar","tabletAndMobileMode","layouts","toolbar1","height","heightAndTabletMobileMode","toolbar2","toolbar3","toolbar4","toolbar5","footer","pageTitle","breadCrumbs","description","direction","responsive","responsiveBreakpoint","responsiveTarget","LAYOUT_CONFIG_KEY","getEmptyHTMLAttributes","asideMenu","Map","headerMobile","headerMenu","headerContainer","getEmptyCSSVariables","LayoutSetup","classes","asideToggle","toolbarContainer","contentContainer","footerContainer","sidebar","attributes","Object","assign","cssVariables","config","Array","forEach","attr","removeAttribute","setAttribute","backgroundImage","class","typeOptions","bodyStyles","this","set","initLayout","initHeader","initPageTitle","initToolbar","initContent","initAside","initFooter","initAsideMenu","fieldsToUpdate","updatedConfig","initCSSClasses","initCSSVariables","initHTMLAttributes","isLoaded","initConfig","setLayout","getLayout","bootstrap","updatePartialConfig","LayoutContext","disableSplashScreen","splashScreen","getElementById","setProperty","LayoutProvider","setConfig","setClasses","setAttributes","setCSSVariables","_themeConfig","enableSplashScreen","cl","useLayout","PageDataContext","setPageTitle","_title","setPageBreadcrumbs","_breadcrumbs","setPageDescription","_description","PageDataProvider","pageDescription","pageBreadcrumbs","usePageData","PageTitle","breadcrumbs","MetronicSplashScreenContext","LayoutSplashScreen","visible","setCount","prev","AsideMenuItem","icon","fontIcon","hasBullet","url","split","getCurrentUrl","indexOf","checkIsActive","useLocation","active","AsideMenuMain","useIntl","CookieComponent","matches","cookie","match","RegExp","replace","decodeURIComponent","cookieOptions","options","expires","Date","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","ElementStyleUtil","element","property","important","attributeName","getPropertyValue","attibuteName","removeProperty","DataUtil","instance","instanceData","get","newMap","delete","has","result","val","v","k","getObjectPropertyValueByKey","obj","map","entries","hasOwnProperty","getUniqueIdWithPrefix","prefix","Math","floor","random","getTime","stringSnakeToCamel","str","m","toUpperCase","DOMEventHandlerUtil","selector","eventName","callBack","eventId","e","targets","querySelectorAll","i","length","call","parentElement","addEventListener","funcFromStore","removeEventListener","calee","currentTarget","ElementAnimateUtil","duration","update","complete","easings","t","c","d","change","start","window","performance","now","requestAnimationFrame","loop","timestamp","time","animationName","animateClasses","cssClass","one","offset","targetPos","getElementOffset","top","scrollPos","pageYOffset","documentElement","scrollTop","animate","scrollTo","getCSS","el","styleProp","defaultView","ownerDocument","toLowerCase","getComputedStyle","getElementActualCss","prop","cache","css","getAttribute","cssText","offsetWidth","offsetHeight","parseFloat","attributeValue","getElementIndex","parentNode","getElementMatches","p","Element","prototype","f","webkitMatchesSelector","tagName","getClientRects","rect","getBoundingClientRect","win","pageXOffset","getScrollTop","scrollingElement","getViewPort","innerWidth","innerHeight","isVisibleElement","throttle","timer","func","delay","getElementChild","childNodes","child","nodeType","getElementChildren","slide","dir","speed","callback","calcHeight","getElementActualHeight","calcPaddingTop","calcPaddingBottom","parseInt","paddingTop","paddingBottom","overflow","getBreakpoint","breakpoint","variableName","hex","trim","getCSSVariableValue","getAttributeValueByBreakpoint","incomingAttr","jsonStr","join","matched","substring","toJSON","resultKey","resultBreakpoint","EventHandlerUtil","metas","handlerId","meta","getEventMetasByName","setEventMetasByName","handerId","fired","getEventsMetaByHandlerId","setEventMetaByNameAndHandlerId","handler","setFiredByNameAndHandlerId","addEvent","removeEvent","on","defaultDrawerOptions","overlay","baseClass","overlayClass","DrawerComponent","_element","overlayElement","toggleElement","instanceUid","shown","lastWidth","closeElement","_handlers","togglers","_getOption","closers","preventDefault","_toggle","_hide","_update","String","hasBaseClass","contains","bodyCanvasAttr","optionName","option","trigger","_show","_deleteOverlay","_createOverlay","createElement","elementZIndex","overlayZindex","append","overlayClassOption","removeChild","_getDirection","_getWidth","toggle","show","hide","isShown","goElement","off","event","item","drawer","getInstance","hasInstace","hideAll","getAllInstancesByKey","dr","updateAll","handleDismiss","closest","createInstances","initGlobalHandlers","reinitialization","defaultImageInputOptions","defaultImageInputQueires","componentName","instanseQuery","inputQuery","wrapperQuery","cancelQuery","removeQuery","hiddenQuery","ImageInputComponent","_options","_queries","inputElement","wrapperElement","cancelElement","removeElement","hiddenElement","queries","uid","_change","files","reader","FileReader","onload","readAsDataURL","_cancel","_remove","querySelector","handlers","ImageInput","elements","createInsance","defaultScrollOptions","saveState","ScrollComponent","getOption","hasAttribute","getHeightType","getAutoHeight","dependencies","wrappers","len","borderTop","borderBottom","setupHeight","getHeight","heightType","setupState","pos","setupScrollHandler","scrollHandler","cookieId","destroyScrollHandler","resetHeight","heghtType","Function","getElement","scroll","resize","createInstance","defaultScrollTopOptions","ScrollTopComponent","_scroll","_go","go","goTop","defaultStepperOptions","startIndex","animation","animationSpeed","animationNextClass","animationPreviousClass","StepperComponent","steps","btnNext","btnPrev","btnSubmit","totatStepsNumber","passedStepIndex","currentStepIndex","_goTo","index","refreshUI","initHandlers","stepDirection","_getStepDirection","getStepContent","getLastStepIndex","getTotalStepsNumber","isLastStep","isFirstStep","animateClass","isBetweenStep","goto","goNext","getNextStepIndex","goPrev","getPrevStepIndex","goFirst","goLast","getCurrentStepIndex","getPassedStepIndex","destroy","stepper","defaultStickyOptions","reverse","animationClass","StickyComponent","instanceName","eventTriggerState","lastScrollTop","offsetNum","st","enable","disable","dataStickyAttr","attrValue","zindex","widthTarget","targetElement","offsetLeft","sticky","defaultToggleOptions","ToggleComponent","attribute","_isEnabled","_disable","_enable","isEnabled","elementTargetAttr","elementToggleAttr","defaultPasswordMeterOptions","minLength","checkUppercase","checkLowercase","checkDigit","checkChar","scoreHighlightClass","defaultPasswordMeterQueires","visibilityQuery","highlightQuery","PasswordMeterComponent","visibilityElement","highlightElement","score","checkSteps","reset","highlight","check","visitbility","visibleIcon","hiddenIcon","focus","test","count","slice","total","checkScore","getCheckScore","getScore","checkLength","checkLowerCase","passwordMeter","defaultPlaceOptions","mode","defaultPlaceQueires","attrQuery","PlaceComponent","parentSelector","prepend","place","defaultMenuOptions","dropdown","hoverTimeout","accordion","slideSpeed","expand","MenuComponent","triggerElement","_setTriggerElement","_isTriggerElement","_getItemOption","_getItemElement","itemElement","sub","subItem","_getItemParentElement","parentItem","_getItemParentElements","parent","parents","buffer","unshift","_getDropdownPopperConfig","placementOption","placement","flipValue","flip","offsetValue","strategy","modifiers","rootBoundary","altBoundary","fallbackPlacements","_getItemChildElement","_getItemChildElements","_getItemSubElement","_getCss","_getItemSubType","_isItemSubShown","_isItemDropdownPermanent","_isItemParentShown","s","getElementParents","_isItemSubElement","_hasItemSub","_getItemLinkElement","_getItemToggleElement","_showDropdown","hideDropdowns","parentZindex","bufferNode","position","isNaN","getHighestZindex","initDropdownPopper","appendChild","reference","attach","popper","createPopper","_hideDropdown","referenceNode","insertBefore","nextSibling","insertAfterElement","destroyDropdownPopper","_showAccordion","_hideAccordions","subElement","_hideAccordion","itemsToHide","itemToHide","_reset","removeClass","_destroy","_mouseout","timeout","_mouseover","clearTimeout","_dismiss","itemSubType","_link","_click","click","link","dismiss","mouseover","mouseout","getItemTriggerType","getItemSubType","getItemLinkElement","getItemToggleElement","getItemSubElement","getItemParentElements","isItemSubShown","isItemParentShown","getTriggerElement","isItemDropdownPermanent","hideAccordions","elementMenu","menuData","subMenu","skip","updateDropdowns","forceUpdate","menuInstance","menuItems","menuObj","stopPropagation","defaultSearchOptions","keypress","enter","showOnFocus","defaultSearchQueires","SearchComponent","contentElement","formElement","spinnerElement","clearElement","submitElement","toolbarElement","resultsElement","suggestionElement","emptyElement","processing","menuObject","_getElement","getResponsiveFormMode","blur","charCode","keyCode","search","input","responsiveFormMode","isProcessing","getQuery","getMenu","getFormElement","Search","AsideMenu","asideMenuCSSClasses","scrollRef","ref","AsideDefault","Footer","getFullYear","MenuInner","Header","BackButton","pageLinks","history","useHistory","onClick","lastItem","backButton","xmlns","fill","viewBox","DefaultTitle","isMobile","isSeparator","HeaderUserMenu","respUser","salesPersonName","FallbackView","inits","appName","category","framework","dbName","dbType","nameOnCard","cardNumber","cardExpiryMonth","cardExpiryYear","cardCvv","saveCard","createAppSchema","label","Main","stepperRef","currentSchema","setCurrentSchema","initValues","prevStep","resetForm","as","InviteUsers","rows","avatar","access","charAt","defaultValue","plans","subTitle","priceMonth","priceAnnual","default","custom","features","supported","UpgradePlan","currentState","setCurrentState","selected","setSelected","plan","checked","onChange","feature","Topbar","HeaderWrapper","productSearchResult","setProductSearchResult","productTagSearchResult","setProductTagSearchResult","productHierarchySearchResult","setProductHierarchySearchResult","searchText","setSearchText","startSearch","secondValue","searchProducts","searchProductHierarchies","searchProductTags","searchText2","searchString","searchString2","productTagList","err","products","productHierarchies","flexDirection","flexWrap","justifyContent","right","zIndex","boxShadow","background","border","padding","tagText","marginLeft","marginRight","color","fontWeight","fontSize","float","includes","detailedDescription","shortDescription","productTags","productHierarchy","maxWidth","overflowY","tag","Toolbar1","Toolbar","ScrollTop","isFirstRun","reInitialization","stickyHeader","updateHeaderSticky","Content","MasterInit","MasterLayout","loadingState","margin","CommentList","paragraph","isOpen","more","less","Collapse","opacity","sliderSettings","dots","infinite","slidesToShow","slidesToScroll","initialSlide","settings","images","HierarchyList","propState","setPropSTate","models","productHierarchyEdge","matchMedia","slickTrack","transform","modifySlickTrack","draggable","productHie","fileName","tagImage","SalesPediaMain","activityState","productHierarchyState","specialProductTags","setSpecialProductTag","specialKitchenTags","setSpecialKitchenTag","setAllSalesPediaTag","cursor","getActivity","today","moment","format","todayDate","activities","pi","pageInfo","endCursor","hasNextPage","hasMore","cursor2","hasMore2","getHierarchyList","specialKitchen","SalesPediaTags","OzelMutfaklar","specialProduct","OzelUrunler","allSalesPediaTags","AllSalesPediaTags","startWhile","startHierarchyWhile","getProductTag","getStatementValue","activityNode","statementCode","statement","activityStatements","find","notes","overflowX","filterProduct","textAlign","DashboardPage","DashboardWrapper","MenuTestPage","SalesPediaPage","SalesPediaFilePage","useParams","workerUrl","fileUrl","defaultScale","SpecialZoomLevel","PageFit","SalesPediaPageFish","SalesPediaPageKebab","SalesPediaPageVegan","API_URL","Configs","SubHierarcyList","_parentProductHierarchyGuid","URLSearchParams","_removeItem","_tagText","guidQuery","setGuidQuery","setTagText","productHierarchyList","setProductHierarchyList","productList","setProductList","getList","getProducts","startProductQuery","productProductHierarchies","productsEntities","productNode","hierarchyGuid","topHieGuid","productProductHieList","product","concat","getProductImage","documentRelationList","alignContent","alignItems","backgroundPosition","guidList","stringGuidList","axios","post","excelTemplateName","headers","Authorization","SessionGuid","sessionGuid","responseType","URL","createObjectURL","Blob","downloadProduct","objectFit","SubHierarchyWrapper","ProductDetail","productModel","setProductModel","productDetailImages","documentTypeCode","y","productDetailDocuments","productVideos","customPaging","dotsClass","_productGuid","productGuid","subStrFunc","maxSize","addtionalText","marginBottom","rel","wordWrap","styles","DocumentDiv","minWidth","bottom","allowFullScreen","ProductWrapper","ProductTagPage","productsModel","setProductsModel","productTemp","ProductTagWrapper","PrivateRoutes","fallback","Routes","setIsAuthorized","usr","httpLink","HttpLink","uri","authLink","setContext","_","authorization","errorLink","onError","graphQLErrors","networkError","message","ApolloClient","defaultOptions","watchQuery","fetchPolicy","errorPolicy","InMemoryCache","App","basename","ApolloProvider","Chart","register","registerables","ReactDOM","render"],"mappings":"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","file":"static/js/main.ee3b6148.chunk.js","sourcesContent":["import { SessionState } from '../../../types';\r\n\r\n\r\nfunction GetCurrentUser() {\r\n const user = localStorage.getItem('currentSalesPediaUser');\r\n const resp: SessionState = user != null ? JSON.parse(JSON.parse(JSON.stringify(user.toString()))) : user;\r\n return resp;\r\n}\r\n\r\nfunction SetCurrentUser(user: string) {\r\n localStorage.setItem('currentSalesPediaUser', user);\r\n}\r\n\r\nexport default {\r\n GetCurrentUser,\r\n SetCurrentUser\r\n};\r\n\r\n\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport AuthService from './AuthService'\r\nimport { SessionState, SessionModel } from '../../../types'\r\n\r\nconst initialState: SessionModel = {\r\n session: undefined\r\n}\r\n\r\nconst userSlice = createSlice({\r\n name: 'user',\r\n initialState,\r\n reducers: {\r\n setUser(state, action: { payload: SessionState }) {\r\n state.session = action.payload;\r\n if (action.payload != null) {\r\n AuthService.SetCurrentUser(JSON.stringify(action.payload));\r\n }\r\n },\r\n deleteUser(state, action: { payload: undefined }) {\r\n state.session = action.payload\r\n },\r\n }\r\n});\r\n\r\nexport const {\r\n setUser,\r\n deleteUser\r\n} = userSlice.actions;\r\n\r\nexport default userSlice.reducer;","import { createSlice } from '@reduxjs/toolkit';\r\nimport { stat } from 'fs';\r\nimport { PageLink } from '../../_metronic/layout/core/PageData'\r\nimport { GetPageTitleData, SetPageTitleData } from './PageTitleOperation'\r\nimport { PageDataState } from './index'\r\nimport BreadCrumpOperation from '../../app/pages/components/BreadCrumpOperation';\r\n\r\nconst initialState: PageDataState = {\r\n PageLinkList: []\r\n}\r\n\r\n\r\n\r\nconst pageLinkSlice = createSlice({\r\n name: 'pageLinks',\r\n initialState,\r\n reducers: {\r\n appendPageLink(state, action: { payload: PageLink }) {\r\n state.PageLinkList?.push(action.payload);\r\n },\r\n removePageLink(state, action: { payload: string }) {\r\n var items = state.PageLinkList?.filter(x => x.title != action.payload);\r\n state.PageLinkList = items;\r\n },\r\n deletePageLinks(state, action: { payload: [] }) {\r\n state.PageLinkList = [];\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n appendPageLink,\r\n deletePageLinks,\r\n removePageLink\r\n} = pageLinkSlice.actions;\r\n\r\nexport default pageLinkSlice.reducer; ","import { createSlice } from '@reduxjs/toolkit';\r\nimport { stat } from 'fs';\r\nimport { ActivityState, Activity, ActivityEdge, ActivityNode } from '../../../types'\r\n\r\n\r\nconst initialState: ActivityState = {\r\n activityList: []\r\n}\r\n\r\nconst haberlerSlice = createSlice({\r\n name: 'haberler',\r\n initialState,\r\n reducers: {\r\n setHaberler(state, action: { payload: ActivityEdge }) {\r\n console.log(\"15 action.payload.edges\", action.payload.edges);\r\n //.sort((a: ActivityNode, b: ActivityNode) => a.node.activityId > b.node.activityId ? -1 : 1)\r\n // state.activityList = [...state.activityList!, ...action.payload.edges!];\r\n let arrayForSort = ([...state.activityList!, ...action.payload.edges!]).sort((a: ActivityNode, b: ActivityNode) => a.node.activityId > b.node.activityId ? -1 : 1);\r\n state.activityList = arrayForSort;\r\n },\r\n deleteHaberler(state, action: { payload: [] }) {\r\n state.activityList = [];\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setHaberler,\r\n deleteHaberler\r\n} = haberlerSlice.actions;\r\n\r\nexport default haberlerSlice.reducer;","import { createSlice } from '@reduxjs/toolkit';\r\nimport { ProductHierarchyEdge, ProductHierarchyNode, ProductHierarchyState, ProductHierarcyEdge } from '../../../types'\r\n\r\n\r\nconst initialState: ProductHierarchyEdge | undefined = {\r\n edges: []\r\n}\r\n\r\nconst productHierarchyListSlice = createSlice({\r\n name: 'productHierarchySlicer',\r\n initialState,\r\n reducers: {\r\n setProductHierarchies(state, action: { payload: ProductHierarchyEdge }) {\r\n \r\n state.edges =action.payload.edges;\r\n\r\n },\r\n deleteProductHierarchy(state, action: { payload: [] | undefined }) {\r\n let customEdge: ProductHierarchyEdge | undefined = { edges: [{ node: { displayName: '', documentRelations: [], guid: \"9\", productHierarchyCode: \"\", rank: 0, subProductHierarchies: [],parentHierarchy:null } }] }\r\n state.edges = customEdge.edges;\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setProductHierarchies,\r\n deleteProductHierarchy\r\n} = productHierarchyListSlice.actions;\r\n\r\nexport default productHierarchyListSlice.reducer;","import { gql } from \"@apollo/client\";\r\n\r\nexport interface PagedResult {\r\n pageInfo: {\r\n hasNextPage: boolean;\r\n endCursor: string;\r\n }\r\n totalCount: number\r\n edges: { node: T }[]\r\n}\r\n\r\n\r\nexport const GET_TOKEN = gql`\r\n query GetToken($email: String!, $password: String!) {\r\n login(email: $email, password: $password) {\r\n response,\r\n refresh,\r\n expireHours,\r\n userInfo{\r\n salesPersonGuid\r\n salesPersonName,\r\n salesRegionHierarchyCode\r\n salesRegionReference\r\n salesRegionDisplayName\r\n roles,\r\n tenantId,\r\n rolesGuids\r\n sessionGuid\r\n }\r\n }\r\n }\r\n`\r\nexport const GET_SETTING = gql`\r\nquery GET_SETTING($key: String) {\r\n settings(where: { settingKey: {eq:$key}}) {\r\n edges {\r\n node {\r\n settingKey\r\n value\r\n settingId\r\n tenantId\r\n guid\r\n }\r\n }\r\n }\r\n}\r\n`\r\nexport const GET_REFRESHED_TOKEN = gql`\r\n query GetToken($refresh: String!) {\r\n refreshLogin(refresh: $refresh) {\r\n response,\r\n refresh,\r\n expireHours,\r\n userInfo{\r\n salesPersonGuid\r\n salesPersonName,\r\n salesRegionHierarchyCode\r\n salesRegionReference\r\n salesRegionDisplayName\r\n roles,\r\n tenantId\r\n }\r\n }\r\n }\r\n`\r\n\r\n\r\nexport const GET_ACTUEL_NEWS = gql`\r\n query ($cursor: String, $todayDate: DateTime) {\r\n activities(\r\n after: $cursor\r\n where: {\r\n planDateTime: { lte: $todayDate }\r\n planEndDateTime: { gte: $todayDate }\r\n activityType: { guid: { eq: \"3C2922FD-AD4C-4870-B737-69DD81F3F1E6\" } }\r\n activityStatus: { isCompleted: { eq: true } }\r\n }\r\n ) {\r\n pageInfo {\r\n endCursor\r\n hasNextPage\r\n }\r\n edges {\r\n node {\r\n activityId\r\n planDateTime\r\n planEndDateTime\r\n createDateTime\r\n activityStatements {\r\n statementCode\r\n statementText\r\n value\r\n notes\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const GET_HIERARCHY_LIST = gql`\r\n query($guid1:UUID!, $guid2: UUID!, $guid3: UUID!, $guid4: UUID! ){\r\n productHierarchies(\r\n where: {\r\n or: [\r\n { guid: { eq: $guid1 } }\r\n { guid: { eq: $guid2 } }\r\n { guid: { eq: $guid3 } }\r\n { guid: { eq: $guid4 } }\r\n ]\r\n }\r\n ) {\r\n edges {\r\n node {\r\n displayName\r\n productHierarchyCode\r\n guid\r\n rank\r\n documentRelations {\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const GET_SUB_HIERARCHIES = gql`\r\n query ($cursor: String, $topHieGuid: UUID!) {\r\n productHierarchies(after: $cursor, where: { guid: { eq: $topHieGuid } }) {\r\n pageInfo {\r\n endCursor\r\n hasNextPage\r\n }\r\n edges {\r\n node {\r\n displayName\r\n productHierarchyCode\r\n guid\r\n rank\r\n subProductHierarchies {\r\n displayName\r\n guid\r\n documentRelations {\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n \r\n }\r\n \r\n }\r\n }\r\n products {\r\n displayName\r\n sku\r\n guid\r\n documentRelations {\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n }\r\n }\r\n }\r\n productProductHierarchies {\r\n product {\r\n displayName\r\n sku\r\n guid\r\n documentRelations {\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}`\r\n\r\nexport const GET_PRODUCT_DETAIL = gql`\r\nquery ($productGuid: UUID!) {\r\n products(where: { guid: { eq: $productGuid } }) {\r\n edges {\r\n node {\r\n displayName\r\n guid\r\n sku\r\n shortDescription\r\n detailedDescription\r\n productTags {\r\n tagText\r\n }\r\n documentRelations {\r\n guid\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n displayName\r\n documentId\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}`\r\n\r\n\r\nexport const SEARCH_PRODUCT = gql`\r\nquery ($searchString: String!,$searchString2: String!) {\r\n products(\r\n where: {\r\n or: [\r\n { displayName: { contains: $searchString } }\r\n { sku: { contains: $searchString } }\r\n { productReference: { contains: $searchString } }\r\n { shortDescription: { contains: $searchString } }\r\n { detailedDescription: { contains: $searchString } }\r\n \r\n { displayName: { contains: $searchString2 } }\r\n { sku: { contains: $searchString2 } }\r\n { productReference: { contains: $searchString2 } }\r\n { shortDescription: { contains: $searchString2 } }\r\n { detailedDescription: { contains: $searchString2 } }\r\n ]\r\n }\r\n ) {\r\n edges {\r\n node {\r\n displayName\r\n guid\r\n sku\r\n shortDescription\r\n detailedDescription\r\n productProductHierarchies {\r\n productHierarchy {\r\n displayName\r\n }\r\n }\r\n productHierarchy {\r\n displayName\r\n }\r\n productTags {\r\n tagText\r\n }\r\n productImages {\r\n imageType\r\n imageFileName\r\n imageCode\r\n rank\r\n }\r\n }\r\n }\r\n }\r\n}`\r\n\r\n\r\n\r\nexport const SEARCH_PRODUCTTAG = gql`\r\nquery ($searchString: String!,$searchString2: String!) {\r\n productTagList (where: { or: [{ tagText: { contains: $searchString } },{ tagText: { contains: $searchString2 } }] }) {\r\n edges {\r\n node {\r\n tagText\r\n }\r\n }\r\n }\r\n}\r\n`\r\n\r\nexport const SEARCH_PRODUCT_HIERARCHY = gql`\r\nquery ($searchString: String!,$searchString2: String!) {\r\n productHierarchies(where: { or: [{ displayName: { contains: $searchString } },{ displayName: { contains: $searchString2 } }] }) {\r\n edges {\r\n node {\r\n displayName\r\n guid\r\n parentHierarchy {\r\n displayName\r\n }\r\n }\r\n }\r\n }\r\n}`\r\n\r\n\r\nexport const GET_PRODUCT_HIERARHCY_BY_DEPTH = gql`\r\n query($cursor: String){\r\n productHierarchies(after:$cursor,where: {depth:{eq:2},productHierarchyCode:{startsWith:\"SP\"}}) \r\n {\r\n pageInfo {\r\n endCursor\r\n hasNextPage\r\n }\r\n edges {\r\n node {\r\n displayName\r\n productHierarchyCode\r\n guid\r\n rank\r\n documentRelations {\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }`\r\n\r\n\r\n\r\nexport const GET_PRODUCTS_BY_TAG = gql`\r\n query ($cursor: String,$tagText:String) {\r\n products(\r\n after: $cursor\r\n where: {\r\n or: [\r\n {\r\n productProductHierarchies: {\r\n some: {\r\n productHierarchy: { productHierarchyCode: { startsWith: \"SP\" } }\r\n }\r\n }\r\n }\r\n { productHierarchy: { productHierarchyCode: { startsWith: \"SP\" } } }\r\n ]\r\n productTags: { some: { tagText: { eq: $tagText } } }\r\n }\r\n ) {\r\n pageInfo {\r\n endCursor\r\n hasNextPage\r\n }\r\n edges {\r\n node {\r\n guid\r\n projectId\r\n sku\r\n tenantId\r\n sku\r\n barcode\r\n displayName\r\n productProductHierarchies {\r\n productHierarchyId\r\n productHierarchy {\r\n guid\r\n displayName\r\n productHierarchyId\r\n productHierarchyCode\r\n depth\r\n }\r\n }\r\n productHierarchy {\r\n guid\r\n productHierarchyId\r\n productHierarchyCode\r\n displayName\r\n depth\r\n }\r\n productTags {\r\n tagText\r\n }\r\n documentRelations {\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n `\r\n\r\n\r\n\r\n\r\nexport const GET_PRODUCTS_BY_TAGTEXT = gql`\r\nquery($cursor:String, $tagText: String) {\r\n products(after:$cursor, where: { productTags: { some: { tagText: { eq: $tagText } } } }) {\r\n pageInfo {\r\n endCursor\r\n hasNextPage\r\n }\r\n edges {\r\n node {\r\n displayName\r\n guid\r\n sku\r\n shortDescription\r\n detailedDescription\r\n documentRelations {\r\n rank\r\n document {\r\n documentTypeCode\r\n fileName\r\n originalFileName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n`\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport * as Yup from 'yup'\r\nimport clsx from 'clsx'\r\nimport { useFormik } from 'formik'\r\nimport { UserModel } from '../models/UserModel'\r\nimport { setUser } from '../redux/AuthSlice'\r\nimport { GetTokenResult } from '../../../types'\r\nimport { GET_TOKEN } from '../../../store/queries'\r\nimport { useApolloClient } from \"@apollo/client\"\r\n\r\nconst loginSchema = Yup.object().shape({\r\n email: Yup.string()\r\n .email('Wrong email format')\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('Email gerekli'),\r\n password: Yup.string()\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('Şifre gerekli'),\r\n})\r\n\r\nconst initialValues = {\r\n email: '',\r\n password: '',\r\n}\r\n\r\n\r\nexport function Login() {\r\n const [loading, setLoading] = useState(false)\r\n const dispatch = useDispatch()\r\n const client = useApolloClient();\r\n console.log(\"35 client =>>\", client);\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: loginSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n setLoading(true)\r\n setTimeout(async () => {\r\n var email = values.email;\r\n var password = values.password;\r\n\r\n var resp = await client.query({\r\n query: GET_TOKEN,\r\n variables: { email, password }\r\n }).then(async (data: any) => {\r\n console.log(\"reps =\", resp)\r\n setLoading(false)\r\n console.log(\"Data =>\", data);\r\n if (data != null) {\r\n if (data.data.login.response == \"INVALID_CREDENTIALS\") {\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus(\"Kullanıcı adı veya şifre hatalı.\")\r\n } else {\r\n dispatch(setUser({\r\n salesPersonGuid: data.data.login.userInfo.salesPersonGuid,\r\n token: data.data.login.response,\r\n serverUrl: '',\r\n userData: data.data.login.userInfo\r\n }));\r\n document.location.reload()\r\n }\r\n } else {\r\n console.log(\"67 Else\", data)\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus('Email veya şifrenizi kontrol ediniz.')\r\n }\r\n\r\n }).catch((error) => {\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus('Email veya şifrenizi kontrol ediniz.')\r\n console.log(\"catch 53\", error)\r\n });\r\n }, 1000)\r\n },\r\n })\r\n\r\n return (\r\n <>\r\n \r\n {/* begin::Heading */}\r\n
\r\n

Metro SalesPedia

\r\n
\r\n {/* begin::Heading */}\r\n\r\n {formik.status ? (\r\n
\r\n
{formik.status}
\r\n
\r\n ) : (\r\n \r\n )}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n \r\n {formik.touched.email && formik.errors.email && (\r\n
\r\n {formik.errors.email}\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n
\r\n
\r\n {/* begin::Label */}\r\n \r\n {/* end::Label */}\r\n
\r\n
\r\n \r\n {formik.touched.password && formik.errors.password && (\r\n
\r\n
\r\n {formik.errors.password}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Action */}\r\n
\r\n

\r\n Şifremi unuttum\r\n

\r\n
\r\n
\r\n \r\n {!loading && GİRİŞ}\r\n {loading && (\r\n \r\n Lütfen bekleyin...\r\n \r\n \r\n )}\r\n \r\n
\r\n {/* end::Action */}\r\n \r\n \r\n )\r\n}\r\n","export const toAbsoluteUrl = (pathname: string) => process.env.PUBLIC_URL + pathname\r\n","import React from 'react'\r\nimport SVG from 'react-inlinesvg'\r\nimport {toAbsoluteUrl} from '../AssetHelpers'\r\ntype Props = {\r\n className?: string\r\n path: string\r\n svgClassName?: string\r\n}\r\n\r\nconst KTSVG: React.FC = ({className = '', path, svgClassName = 'mh-50px'}) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport {KTSVG}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {useEffect} from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom'\r\n// import {Registration} from './components/Registration'\r\n// import {ForgotPassword} from './components/ForgotPassword'\r\nimport {Login} from './components/Login'\r\nimport {toAbsoluteUrl} from '../../../_metronic/helpers'\r\n\r\nexport function AuthPage() {\r\n useEffect(() => {\r\n document.body.classList.add('bg-white')\r\n return () => {\r\n document.body.classList.remove('bg-white')\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n {/* begin::Content */}\r\n
\r\n {/* begin::Logo */}\r\n \r\n Logo\r\n \r\n {/* end::Logo */}\r\n {/* begin::Wrapper */}\r\n
\r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n \r\n
\r\n {/* end::Wrapper */}\r\n
\r\n {/* end::Content */}\r\n {/* begin::Footer */}\r\n
\r\n
\r\n \r\n bestERA 2021\r\n \r\n
\r\n
\r\n {/* end::Footer */}\r\n \r\n )\r\n}\r\n","import {Action} from '@reduxjs/toolkit'\r\nimport {persistReducer} from 'redux-persist'\r\nimport storage from 'redux-persist/lib/storage'\r\nimport {put, takeLatest} from 'redux-saga/effects'\r\nimport {UserModel} from '../models/UserModel'\r\n\r\nexport interface ActionWithPayload extends Action {\r\n payload?: T\r\n}\r\n\r\nexport const actionTypes = {\r\n Login: '[Login] Action',\r\n Logout: '[Logout] Action',\r\n Register: '[Register] Action',\r\n UserRequested: '[Request User] Action',\r\n UserLoaded: '[Load User] Auth API',\r\n SetUser: '[Set User] Action',\r\n}\r\n\r\nconst initialAuthState: IAuthState = {\r\n user: undefined,\r\n accessToken: undefined,\r\n}\r\n\r\nexport interface IAuthState {\r\n user?: UserModel\r\n accessToken?: string\r\n}\r\n\r\nexport const reducer = persistReducer(\r\n {storage, key: 'v100-demo1-auth', whitelist: ['user', 'accessToken']},\r\n (state: IAuthState = initialAuthState, action: ActionWithPayload) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n const accessToken = action.payload?.accessToken\r\n console.log(\"Action access token =>\",accessToken)\r\n return {accessToken, user: undefined}\r\n }\r\n\r\n case actionTypes.Logout: {\r\n return initialAuthState\r\n }\r\n\r\n case actionTypes.UserLoaded: {\r\n const user = action.payload?.user\r\n return {...state, user}\r\n }\r\n\r\n case actionTypes.SetUser: {\r\n const user = action.payload?.user\r\n return {...state, user}\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n }\r\n)\r\n\r\nexport const actions = {\r\n login: (accessToken: string) => ({type: actionTypes.Login, payload: {accessToken}}),\r\n\r\n logout: () => ({type: actionTypes.Logout}),\r\n requestUser: () => ({\r\n type: actionTypes.UserRequested,\r\n }),\r\n fulfillUser: (user: UserModel) => ({type: actionTypes.UserLoaded, payload: {user}}),\r\n setUser: (user: UserModel) => ({type: actionTypes.SetUser, payload: {user}}),\r\n}\r\n\r\nexport function* saga() {\r\n yield takeLatest(actionTypes.Login, function* loginSaga() {\r\n yield put(actions.requestUser())\r\n })\r\n\r\n yield takeLatest(actionTypes.Register, function* registerSaga() {\r\n yield put(actions.requestUser())\r\n })\r\n\r\n // yield takeLatest(actionTypes.UserRequested, function* userRequested() {\r\n // console.log(\"User Bulma =>\", actionTypes.UserRequested);\r\n // const {data: user} = yield getUserByToken()\r\n // yield put(actions.fulfillUser(user))\r\n // })\r\n}\r\n","import React, {useEffect} from 'react'\r\nimport {useDispatch} from 'react-redux'\r\nimport {Redirect, Switch} from 'react-router-dom'\r\nimport {deleteUser} from './redux/AuthSlice'\r\n\r\n\r\nexport function Logout() {\r\n const dispatch = useDispatch()\r\n useEffect(() => {\r\n dispatch(deleteUser(undefined))\r\n localStorage.clear();\r\n document.location.reload()\r\n }, [dispatch])\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import {FC, useRef, useEffect, useState} from 'react'\r\nimport {shallowEqual, useSelector, connect, useDispatch, ConnectedProps} from 'react-redux'\r\n// import {LayoutSplashScreen} from '../../../../_metronic/layout/core'\r\nimport * as auth from './AuthRedux'\r\nimport {RootState} from '../../../../setup'\r\n\r\nconst mapState = (state: RootState) => ({auth: state.auth})\r\nconst connector = connect(mapState, auth.actions)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\nconst AuthInit: FC = (props) => {\r\n const didRequest = useRef(false)\r\n const dispatch = useDispatch()\r\n const [showSplashScreen, setShowSplashScreen] = useState(true)\r\n const accessToken = useSelector(({auth}) => auth.accessToken, shallowEqual)\r\n\r\n // We should request user by authToken before rendering the application\r\n useEffect(() => {\r\n const requestUser = async () => {\r\n try {\r\n if (!didRequest.current) {\r\n }\r\n } catch (error) {\r\n console.error(error)\r\n if (!didRequest.current) {\r\n dispatch(props.logout())\r\n }\r\n } finally {\r\n setShowSplashScreen(false)\r\n }\r\n\r\n return () => (didRequest.current = true)\r\n }\r\n\r\n if (accessToken) {\r\n requestUser()\r\n } else {\r\n dispatch(props.logout())\r\n setShowSplashScreen(false)\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n // return showSplashScreen ? : <>{props.children}\r\n return <>{props.children}\r\n}\r\n\r\nexport default connector(AuthInit)\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { stat } from 'fs';\r\ninterface LoadingSlice {\r\n isActive: boolean\r\n}\r\n\r\n\r\nconst initialState: LoadingSlice = {\r\n isActive: false\r\n}\r\n\r\nconst loadingSlice = createSlice({\r\n name: 'loading',\r\n initialState,\r\n reducers: {\r\n setMainLoading(state, action: { payload: boolean }) {\r\n state.isActive = action.payload;\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setMainLoading\r\n} = loadingSlice.actions;\r\n\r\nexport default loadingSlice.reducer;","import { all } from 'redux-saga/effects'\r\nimport { combineReducers } from 'redux'\r\nimport UserSliceReducer from '../../app/modules/auth/redux/AuthSlice'\r\nimport PageLinkReducer from './PageTitleSlicer'\r\nimport HaberReducer from '../../app/modules/salesPediaMain/redux/haberlerSlicer'\r\nimport ProductHierarchyReducer from '../../app/modules/salesPediaMain/redux/productHierarchySlicer'\r\nimport * as auth from '../../app/modules/auth'\r\nimport SetMainLoadingSlicer from './loadingSlice'\r\n\r\nexport const rootReducer = combineReducers({\r\n auth: auth.reducer,\r\n userReducer: UserSliceReducer,\r\n pageLinkReducer: PageLinkReducer,\r\n haberReducer: HaberReducer,\r\n productHierarchyReducer: ProductHierarchyReducer,\r\n setMainLoadingSlicer: SetMainLoadingSlicer\r\n\r\n})\r\n\r\nexport type RootState = ReturnType\r\n\r\nexport function* rootSaga() {\r\n yield all([auth.saga()])\r\n}\r\n\r\n\r\n\r\n","import {configureStore, getDefaultMiddleware} from '@reduxjs/toolkit'\r\nimport createSagaMiddleware from 'redux-saga'\r\nimport {reduxBatch} from '@manaflair/redux-batch'\r\nimport {persistStore} from 'redux-persist'\r\nimport {rootReducer, rootSaga} from './RootReducer'\r\n\r\nconst sagaMiddleware = createSagaMiddleware()\r\nconst middleware = [\r\n ...getDefaultMiddleware({\r\n immutableCheck: false,\r\n serializableCheck: false,\r\n thunk: true,\r\n }),\r\n sagaMiddleware,\r\n]\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n middleware,\r\n devTools: process.env.NODE_ENV !== 'production',\r\n enhancers: [reduxBatch],\r\n})\r\n\r\nexport type AppDispatch = typeof store.dispatch\r\n\r\n/**\r\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\r\n * @see https://github.com/rt2zz/redux-persist#persistor-object\r\n */\r\nexport const persistor = persistStore(store)\r\n\r\nsagaMiddleware.run(rootSaga)\r\n\r\nexport default store\r\n","import React, {FC, createContext, useContext} from 'react'\r\n\r\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || 'i18nConfig'\r\n\r\ntype Props = {\r\n selectedLang: 'de' | 'en' | 'es' | 'fr' | 'ja' | 'zh'\r\n}\r\nconst initialState: Props = {\r\n selectedLang: 'en',\r\n}\r\n\r\nfunction getConfig(): Props {\r\n const ls = localStorage.getItem(I18N_CONFIG_KEY)\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls) as Props\r\n } catch (er) {\r\n console.error(er)\r\n }\r\n }\r\n return initialState\r\n}\r\n\r\n// Side effect\r\nexport function setLanguage(lang: string) {\r\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({selectedLang: lang}))\r\n window.location.reload()\r\n}\r\n\r\nconst I18nContext = createContext(initialState)\r\n\r\nconst useLang = () => {\r\n return useContext(I18nContext).selectedLang\r\n}\r\n\r\nconst MetronicI18nProvider: FC = ({children}) => {\r\n const lang = getConfig()\r\n return {children}\r\n}\r\n\r\nexport {MetronicI18nProvider, useLang}\r\n","import {FC} from 'react'\r\nimport {useLang} from './Metronici18n'\r\nimport {IntlProvider} from 'react-intl'\r\nimport '@formatjs/intl-relativetimeformat/polyfill'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/en'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/de'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/es'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/fr'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/ja'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/zh'\r\n\r\nimport deMessages from './messages/de.json'\r\nimport enMessages from './messages/en.json'\r\nimport esMessages from './messages/es.json'\r\nimport frMessages from './messages/fr.json'\r\nimport jaMessages from './messages/ja.json'\r\nimport zhMessages from './messages/zh.json'\r\n\r\nconst allMessages = {\r\n de: deMessages,\r\n en: enMessages,\r\n es: esMessages,\r\n fr: frMessages,\r\n ja: jaMessages,\r\n zh: zhMessages,\r\n}\r\n\r\nconst I18nProvider: FC = ({children}) => {\r\n const locale = useLang()\r\n const messages = allMessages[locale]\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport {I18nProvider}\r\n","import { ILayout } from './LayoutModels'\r\n\r\nexport const DefaultLayoutConfig: ILayout = {\r\n main: {\r\n type: 'default',\r\n primaryColor: '#009EF7',\r\n darkSkinEnabled: true,\r\n },\r\n loader: {\r\n display: true,\r\n type: 'default', // Set default|spinner-message|spinner-logo to hide or show page loader\r\n },\r\n scrolltop: {\r\n display: true,\r\n },\r\n header: {\r\n display: true, // Set true|false to show or hide Header\r\n width: 'fluid', // Set fixed|fluid to change width type\r\n left: 'menu',\r\n fixed: {\r\n desktop: true, // Set true|false to set fixed Header for desktop mode\r\n tabletAndMobile: true, // Set true|false to set fixed Header for tablet and mobile modes\r\n },\r\n menuIcon: 'svg',\r\n },\r\n megaMenu: {\r\n display: true, // Set true|false to show or hide Mega Menu\r\n },\r\n aside: {\r\n display: true,\r\n theme: 'dark',\r\n menu: 'main',\r\n fixed: true,\r\n minimized: false,\r\n minimize: true,\r\n hoverable: true,\r\n menuIcon: 'svg',\r\n },\r\n content: {\r\n width: 'fixed', // Set fixed|fluid to change width\r\n layout: 'default',\r\n },\r\n toolbar: {\r\n display: true, // Display toolbar\r\n width: 'fluid', // Set fixed|fluid to change width type,\r\n fixed: {\r\n desktop: true,\r\n tabletAndMobileMode: true,\r\n },\r\n layout: 'toolbar1',\r\n layouts: {\r\n toolbar1: {\r\n height: '55px',\r\n heightAndTabletMobileMode: '55px',\r\n },\r\n toolbar2: {\r\n height: '75px',\r\n heightAndTabletMobileMode: '65px',\r\n },\r\n toolbar3: {\r\n height: '55px',\r\n heightAndTabletMobileMode: '55px',\r\n },\r\n toolbar4: {\r\n height: '65px',\r\n heightAndTabletMobileMode: '65px',\r\n },\r\n toolbar5: {\r\n height: '75px',\r\n heightAndTabletMobileMode: '65px',\r\n },\r\n },\r\n },\r\n footer: {\r\n width: 'fluid', // Set fixed|fluid to change width type\r\n },\r\n pageTitle: {\r\n display: true,\r\n breadCrumbs: true,\r\n description: false,\r\n layout: 'default',\r\n direction: 'row',\r\n responsive: false,\r\n responsiveBreakpoint: 'lg',\r\n responsiveTarget: '#kt_toolbar_container',\r\n },\r\n}\r\n","import {\r\n IAside,\r\n IContent,\r\n IFooter,\r\n IHeader,\r\n IToolbar,\r\n ILayout,\r\n ILayoutCSSClasses,\r\n ILayoutHTMLAttributes,\r\n ILayoutCSSVariables,\r\n IPageTitle,\r\n} from './LayoutModels'\r\nimport { DefaultLayoutConfig } from './DefaultLayoutConfig'\r\n\r\nconst LAYOUT_CONFIG_KEY = process.env.REACT_APP_BASE_LAYOUT_CONFIG_KEY || 'LayoutConfig'\r\n\r\nexport function getLayout(): ILayout {\r\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY)\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls) as ILayout\r\n } catch (er) {\r\n console.error(er)\r\n }\r\n }\r\n return DefaultLayoutConfig\r\n}\r\n\r\nfunction setLayout(config: ILayout): void {\r\n try {\r\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config))\r\n } catch (er) {\r\n console.error(er)\r\n }\r\n}\r\n\r\nexport function getEmptyCssClasses() {\r\n return {\r\n header: [],\r\n headerContainer: [],\r\n headerMobile: [],\r\n headerMenu: [],\r\n aside: [],\r\n asideMenu: [],\r\n asideToggle: [],\r\n toolbar: [],\r\n toolbarContainer: [],\r\n content: [],\r\n contentContainer: [],\r\n footerContainer: [],\r\n sidebar: [],\r\n pageTitle: [],\r\n }\r\n}\r\n\r\nexport function getEmptyHTMLAttributes() {\r\n return {\r\n asideMenu: new Map(),\r\n headerMobile: new Map(),\r\n headerMenu: new Map(),\r\n headerContainer: new Map(),\r\n pageTitle: new Map(),\r\n }\r\n}\r\n\r\nexport function getEmptyCSSVariables() {\r\n return {\r\n body: new Map(),\r\n }\r\n}\r\n\r\nexport class LayoutSetup {\r\n public static isLoaded: boolean = false\r\n public static config: ILayout = getLayout()\r\n public static classes: ILayoutCSSClasses = getEmptyCssClasses()\r\n public static attributes: ILayoutHTMLAttributes = getEmptyHTMLAttributes()\r\n public static cssVariables: ILayoutCSSVariables = getEmptyCSSVariables()\r\n\r\n private static initCSSClasses(): void {\r\n LayoutSetup.classes = getEmptyCssClasses()\r\n }\r\n\r\n private static initHTMLAttributes(): void {\r\n LayoutSetup.attributes = Object.assign({}, getEmptyHTMLAttributes())\r\n }\r\n\r\n private static initCSSVariables(): void {\r\n LayoutSetup.cssVariables = getEmptyCSSVariables()\r\n }\r\n\r\n private static initLayout(config: ILayout): void {\r\n Array.from(document.body.attributes).forEach((attr) => {\r\n document.body.removeAttribute(attr.name)\r\n })\r\n document.body.setAttribute('style', '')\r\n document.body.setAttribute('id', 'kt_body')\r\n if (config.main?.body?.backgroundImage) {\r\n document.body.style.backgroundImage = `url('${config.main.body.backgroundImage}')`\r\n }\r\n\r\n if (config.main?.body?.class) {\r\n document.body.classList.add(config.main.body.class)\r\n }\r\n\r\n // if (config.loader.display) {\r\n // document.body.classList.add('page-loading')\r\n // document.body.classList.add('page-loading-enabled')\r\n // }\r\n }\r\n\r\n private static initHeader(config: IHeader): void {\r\n LayoutSetup.classes.headerContainer.push(\r\n config.width === 'fluid' ? 'container-fluid' : 'container'\r\n )\r\n\r\n if (config.fixed.desktop) {\r\n document.body.classList.add('header-fixed')\r\n }\r\n\r\n if (config.fixed.tabletAndMobile) {\r\n document.body.classList.add('header-tablet-and-mobile-fixed')\r\n }\r\n }\r\n\r\n private static initToolbar(config: IToolbar): void {\r\n if (!config.display) {\r\n return\r\n }\r\n\r\n document.body.classList.add('toolbar-enabled')\r\n LayoutSetup.classes.toolbarContainer.push(\r\n config.width === 'fluid' ? 'container-fluid' : 'container'\r\n )\r\n\r\n if (config.fixed.desktop) {\r\n document.body.classList.add('toolbar-fixed')\r\n }\r\n\r\n if (config.fixed.tabletAndMobileMode) {\r\n document.body.classList.add('toolbar-tablet-and-mobile-fixed')\r\n }\r\n\r\n // Height setup\r\n const type = config.layout\r\n const typeOptions = config.layouts[type]\r\n if (typeOptions) {\r\n let bodyStyles: string = ''\r\n if (typeOptions.height) {\r\n bodyStyles += ` --kt-toolbar-height: ${typeOptions.height};`\r\n }\r\n\r\n if (typeOptions.heightAndTabletMobileMode) {\r\n bodyStyles += ` --kt-toolbar-height-tablet-and-mobile: ${typeOptions.heightAndTabletMobileMode};`\r\n }\r\n document.body.setAttribute('style', bodyStyles)\r\n }\r\n }\r\n\r\n private static initPageTitle(config: IPageTitle): void {\r\n if (!config.display) {\r\n return\r\n }\r\n\r\n if (config.direction === 'column') {\r\n this.classes.pageTitle.push('flex-column')\r\n this.classes.pageTitle.push('align-items-start')\r\n } else {\r\n this.classes.pageTitle.push('align-items-center')\r\n this.classes.pageTitle.push('flex-wrap')\r\n }\r\n this.classes.pageTitle.push('me-3')\r\n\r\n if (config.responsive) {\r\n this.classes.pageTitle.push('mb-5')\r\n this.classes.pageTitle.push('mb-lg-0')\r\n\r\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper', true)\r\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper-mode', 'prepend')\r\n LayoutSetup.attributes.pageTitle.set(\r\n 'data-kt-swapper-parent',\r\n `{ default: '#kt_content_container', '${config.responsiveBreakpoint}': '${config.responsiveTarget}'}`\r\n )\r\n }\r\n }\r\n\r\n private static initContent(config: IContent): void {\r\n LayoutSetup.classes.contentContainer.push(\r\n config.width === 'fluid' ? 'container-fluid' : 'container'\r\n )\r\n // if (Theme::getOption('layout', 'content/container-class')) {\r\n // \tTheme::addHtmlClass('content-container', Theme::getOption('layout', 'content/container-class'));\r\n // }\r\n }\r\n\r\n private static initAside(config: IAside): void {\r\n // Check if aside is displayed\r\n if (!config.display) {\r\n return\r\n }\r\n\r\n // Enable Aside\r\n document.body.classList.add('aside-enabled')\r\n LayoutSetup.classes.aside.push(`aside-${config.theme}`)\r\n\r\n // Fixed Aside\r\n if (config.fixed) {\r\n document.body.classList.add('aside-fixed')\r\n }\r\n\r\n // Default minimized\r\n if (config.minimized) {\r\n document.body.setAttribute('data-kt-aside-minimize', 'on')\r\n }\r\n\r\n // Hoverable on minimize\r\n if (config.hoverable) {\r\n LayoutSetup.classes.aside.push('aside-hoverable')\r\n }\r\n }\r\n\r\n private static initAsideMenu(config: IAside): void {\r\n // if (Theme::getOption('layout', 'aside/menu') === 'documentation') {\r\n // \tself::$menu = new Menu( Theme::getOption('menu', 'documentation'), Theme::getPagePath() );\r\n // } else {\r\n // \tself::$menu = new Menu( Theme::getOption('menu', 'main'), Theme::getPagePath() );\r\n // }\r\n // if (Theme::getOption('layout', 'aside/menu-icons-display') === false) {\r\n // \tself::$menu->displayIcons(false);\r\n // }\r\n // self::$menu->setIconType(Theme::getOption('layout', 'aside/menu-icon'));\r\n }\r\n\r\n // private static initSidebar(sidebarConfig: ISidebarConfig): void {\r\n // // / Set Sidebar enabled class\r\n // if (sidebarConfig.display) {\r\n // document.body.classList.add('sidebar-enabled')\r\n // } else {\r\n // return\r\n // }\r\n\r\n // // Set Sidebar shown status\r\n // if (sidebarConfig.shown) {\r\n // document.body.setAttribute('data-sidebar', 'on')\r\n // }\r\n\r\n // // Set Sidebar background color class\r\n // ThemeSetup.classes.sidebar.push(sidebarConfig.bgColor)\r\n // }\r\n\r\n private static initFooter(config: IFooter): void {\r\n LayoutSetup.classes.footerContainer.push(`container${config.width === 'fluid' ? '-fluid' : ''}`)\r\n }\r\n\r\n private static initConfig(config: ILayout): void {\r\n if (config.main?.darkSkinEnabled) {\r\n document.body.classList.add('dark-skin')\r\n }\r\n\r\n // Init layout\r\n LayoutSetup.initLayout(config)\r\n if (config.main?.type !== 'default') {\r\n return\r\n }\r\n\r\n LayoutSetup.initHeader(config.header)\r\n LayoutSetup.initPageTitle(config.pageTitle as IPageTitle)\r\n LayoutSetup.initToolbar(config.toolbar)\r\n LayoutSetup.initContent(config.content)\r\n LayoutSetup.initAside(config.aside)\r\n LayoutSetup.initFooter(config.footer)\r\n LayoutSetup.initAsideMenu(config.aside)\r\n }\r\n\r\n public static updatePartialConfig(fieldsToUpdate: Partial): ILayout {\r\n const config = LayoutSetup.config\r\n const updatedConfig = { ...config, ...fieldsToUpdate }\r\n LayoutSetup.initCSSClasses()\r\n LayoutSetup.initCSSVariables()\r\n LayoutSetup.initHTMLAttributes()\r\n LayoutSetup.isLoaded = false\r\n LayoutSetup.config = updatedConfig\r\n LayoutSetup.initConfig(Object.assign({}, updatedConfig))\r\n LayoutSetup.isLoaded = true // remove loading there\r\n return updatedConfig\r\n }\r\n\r\n public static setConfig(config: ILayout): void {\r\n setLayout(config)\r\n }\r\n\r\n public static bootstrap = (() => {\r\n LayoutSetup.updatePartialConfig(LayoutSetup.config)\r\n })()\r\n}\r\n","import React, {createContext, useContext, useState, useEffect} from 'react'\r\nimport {DefaultLayoutConfig} from './DefaultLayoutConfig'\r\nimport {\r\n getEmptyCssClasses,\r\n getEmptyCSSVariables,\r\n getEmptyHTMLAttributes,\r\n LayoutSetup,\r\n} from './LayoutSetup'\r\nimport {\r\n ILayout,\r\n ILayoutCSSVariables,\r\n ILayoutCSSClasses,\r\n ILayoutHTMLAttributes,\r\n} from './LayoutModels'\r\n\r\nexport interface LayoutContextModel {\r\n config: ILayout\r\n classes: ILayoutCSSClasses\r\n attributes: ILayoutHTMLAttributes\r\n cssVariables: ILayoutCSSVariables\r\n setLayout: (config: LayoutSetup) => void\r\n}\r\n\r\nconst LayoutContext = createContext({\r\n config: DefaultLayoutConfig,\r\n classes: getEmptyCssClasses(),\r\n attributes: getEmptyHTMLAttributes(),\r\n cssVariables: getEmptyCSSVariables(),\r\n setLayout: (config: LayoutSetup) => {},\r\n})\r\n\r\nconst enableSplashScreen = () => {\r\n const splashScreen = document.getElementById('splash-screen')\r\n if (splashScreen) {\r\n splashScreen.style.setProperty('display', 'flex')\r\n }\r\n}\r\n\r\nconst disableSplashScreen = () => {\r\n const splashScreen = document.getElementById('splash-screen')\r\n if (splashScreen) {\r\n splashScreen.style.setProperty('display', 'none')\r\n }\r\n}\r\n\r\nconst LayoutProvider: React.FC = ({children}) => {\r\n const [config, setConfig] = useState(LayoutSetup.config)\r\n const [classes, setClasses] = useState(LayoutSetup.classes)\r\n const [attributes, setAttributes] = useState(LayoutSetup.attributes)\r\n const [cssVariables, setCSSVariables] = useState(LayoutSetup.cssVariables)\r\n const setLayout = (_themeConfig: Partial) => {\r\n enableSplashScreen()\r\n const bodyClasses = Array.from(document.body.classList)\r\n bodyClasses.forEach((cl) => document.body.classList.remove(cl))\r\n LayoutSetup.updatePartialConfig(_themeConfig)\r\n setConfig(Object.assign({}, LayoutSetup.config))\r\n setClasses(LayoutSetup.classes)\r\n setAttributes(LayoutSetup.attributes)\r\n setCSSVariables(LayoutSetup.cssVariables)\r\n setTimeout(() => {\r\n disableSplashScreen()\r\n }, 500)\r\n }\r\n const value: LayoutContextModel = {\r\n config,\r\n classes,\r\n attributes,\r\n cssVariables,\r\n setLayout,\r\n }\r\n\r\n useEffect(() => {\r\n disableSplashScreen()\r\n }, [])\r\n\r\n return {children}\r\n}\r\n\r\nexport {LayoutContext, LayoutProvider}\r\n\r\nexport function useLayout() {\r\n return useContext(LayoutContext)\r\n}\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, {FC, createContext, useContext, useEffect, useState} from 'react'\r\n\r\nexport interface PageLink {\r\n title: string\r\n path: string\r\n isActive: boolean\r\n isSeparator?: boolean\r\n}\r\n\r\nexport interface PageDataContextModel {\r\n pageTitle?: string\r\n setPageTitle: (_title: string) => void\r\n pageDescription?: string\r\n setPageDescription: (_description: string) => void\r\n pageBreadcrumbs?: Array\r\n setPageBreadcrumbs: (_breadcrumbs: Array) => void\r\n}\r\n\r\nconst PageDataContext = createContext({\r\n setPageTitle: (_title: string) => {},\r\n setPageBreadcrumbs: (_breadcrumbs: Array) => {},\r\n setPageDescription: (_description: string) => {},\r\n})\r\n\r\nconst PageDataProvider: React.FC = ({children}) => {\r\n const [pageTitle, setPageTitle] = useState('')\r\n const [pageDescription, setPageDescription] = useState('')\r\n const [pageBreadcrumbs, setPageBreadcrumbs] = useState>([])\r\n const value: PageDataContextModel = {\r\n pageTitle,\r\n setPageTitle,\r\n pageDescription,\r\n setPageDescription,\r\n pageBreadcrumbs,\r\n setPageBreadcrumbs,\r\n }\r\n return {children}\r\n}\r\n\r\nfunction usePageData() {\r\n return useContext(PageDataContext)\r\n}\r\n\r\ntype Props = {\r\n description?: string\r\n breadcrumbs?: Array\r\n}\r\n\r\nconst PageTitle: FC = ({children, description, breadcrumbs}) => {\r\n const {setPageTitle, setPageDescription, setPageBreadcrumbs} = usePageData()\r\n useEffect(() => {\r\n if (children) {\r\n setPageTitle(children.toString())\r\n }\r\n return () => {\r\n setPageTitle('')\r\n }\r\n }, [children])\r\n\r\n useEffect(() => {\r\n if (description) {\r\n setPageDescription(description)\r\n }\r\n return () => {\r\n setPageDescription('')\r\n }\r\n }, [description])\r\n\r\n useEffect(() => {\r\n console.log(\"breadcrumbs\")\r\n if (breadcrumbs) {\r\n setPageBreadcrumbs(breadcrumbs)\r\n }\r\n return () => {\r\n setPageBreadcrumbs([])\r\n }\r\n }, [breadcrumbs])\r\n\r\n return <>\r\n}\r\n\r\nconst PageDescription: React.FC = ({children}) => {\r\n const {setPageDescription} = usePageData()\r\n useEffect(() => {\r\n if (children) {\r\n setPageDescription(children.toString())\r\n }\r\n return () => {\r\n setPageDescription('')\r\n }\r\n }, [children])\r\n return <>\r\n}\r\n\r\nexport {PageDescription, PageTitle, PageDataProvider, usePageData}\r\n","import React, {\r\n FC,\r\n createContext,\r\n useContext,\r\n useState,\r\n useEffect,\r\n SetStateAction,\r\n Dispatch,\r\n} from 'react'\r\n\r\nconst MetronicSplashScreenContext = createContext> | undefined>(\r\n undefined\r\n)\r\n\r\nconst MetronicSplashScreenProvider: FC = ({children}) => {\r\n const [count, setCount] = useState(0)\r\n let visible = count > 0\r\n\r\n useEffect(() => {\r\n const splashScreen = document.getElementById('splash-screen')\r\n\r\n // Show SplashScreen\r\n if (splashScreen && visible) {\r\n splashScreen.classList.remove('hidden')\r\n\r\n return () => {\r\n splashScreen.classList.add('hidden')\r\n }\r\n }\r\n\r\n // Hide SplashScreen\r\n let timeout: number\r\n if (splashScreen && !visible) {\r\n timeout = window.setTimeout(() => {\r\n splashScreen.classList.add('hidden')\r\n }, 3000)\r\n }\r\n\r\n return () => {\r\n clearTimeout(timeout)\r\n }\r\n }, [visible])\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nconst LayoutSplashScreen: FC<{visible?: boolean}> = ({visible = true}) => {\r\n // Everything are ready - remove splashscreen\r\n const setCount = useContext(MetronicSplashScreenContext)\r\n\r\n useEffect(() => {\r\n if (!visible) {\r\n return\r\n }\r\n\r\n if (setCount) {\r\n setCount((prev) => {\r\n return prev + 1\r\n })\r\n }\r\n\r\n return () => {\r\n if (setCount) {\r\n setCount((prev) => {\r\n return prev - 1\r\n })\r\n }\r\n }\r\n }, [setCount, visible])\r\n\r\n return null\r\n}\r\n\r\nexport {MetronicSplashScreenProvider, LayoutSplashScreen}\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport {Link} from 'react-router-dom'\r\nimport {useLocation} from 'react-router'\r\nimport {checkIsActive, KTSVG} from '../../../helpers'\r\nimport {useLayout} from '../../core'\r\n\r\ntype Props = {\r\n to: string\r\n title: string\r\n icon?: string\r\n fontIcon?: string\r\n hasBullet?: boolean\r\n}\r\n\r\nconst AsideMenuItem: React.FC = ({\r\n children,\r\n to,\r\n title,\r\n icon,\r\n fontIcon,\r\n hasBullet = false,\r\n}) => {\r\n const {pathname} = useLocation()\r\n const isActive = checkIsActive(pathname, to)\r\n const {config} = useLayout()\r\n const {aside} = config\r\n\r\n return (\r\n
\r\n \r\n {hasBullet && (\r\n \r\n \r\n \r\n )}\r\n {icon && aside.menuIcon === 'svg' && (\r\n \r\n \r\n \r\n )}\r\n {fontIcon && aside.menuIcon === 'font' && }\r\n {title}\r\n \r\n {children}\r\n
\r\n )\r\n}\r\n\r\nexport {AsideMenuItem}\r\n","export function getCurrentUrl(pathname: string) {\r\n return pathname.split(/[?#]/)[0]\r\n}\r\n\r\nexport function checkIsActive(pathname: string, url: string) {\r\n const current = getCurrentUrl(pathname)\r\n if (!current || !url) {\r\n return false\r\n }\r\n\r\n if (current === url) {\r\n return true\r\n }\r\n\r\n if (current.indexOf(url) > -1) {\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n","/* eslint-disable react/jsx-no-target-blank */\r\nimport React from 'react'\r\nimport {useIntl} from 'react-intl'\r\nimport {KTSVG} from '../../../helpers'\r\nimport {AsideMenuItemWithSub} from './AsideMenuItemWithSub'\r\nimport {AsideMenuItem} from './AsideMenuItem'\r\n\r\nexport function AsideMenuMain() {\r\n const intl = useIntl()\r\n\r\n return (\r\n <>\r\n \r\n {/* */}\r\n {/*
\r\n
\r\n Crafted\r\n
\r\n
*/}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n */}\r\n {/* \r\n \r\n \r\n */}\r\n {/* \r\n \r\n \r\n */}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/*
\r\n
\r\n Apps\r\n
\r\n
*/}\r\n {/* \r\n \r\n \r\n \r\n */}\r\n {/*
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Changelog {process.env.REACT_APP_VERSION}\r\n \r\n
*/}\r\n \r\n )\r\n}\r\n","/* eslint-disable no-useless-escape */\r\n// DOCS: https://javascript.info/cookie\r\nexport class CookieComponent {\r\n /**\r\n * Returns the cookie with the given name, or undefined if not found\r\n *\r\n * @param {string} name - cookie name\r\n * @returns string | null\r\n */\r\n public static get(name: string): string | undefined {\r\n let matches = document.cookie.match(\r\n new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)')\r\n )\r\n return matches ? decodeURIComponent(matches[1]) : undefined\r\n }\r\n\r\n /**\r\n * Please note that a cookie value is encoded,\r\n * so getCookie uses a built-in decodeURIComponent function to decode it.\r\n *\r\n * @param {string} name - cookie name\r\n * @param {string | number | boolean} value - cookie value\r\n * @param {any} cookieOptions - cookie options\r\n * @returns void\r\n */\r\n public static set(name: string, value: string | number | boolean, cookieOptions: any): void {\r\n const options = {\r\n path: '/',\r\n // add other defaults here if necessary\r\n ...cookieOptions,\r\n }\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString()\r\n }\r\n\r\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\r\n\r\n for (let optionKey in options) {\r\n updatedCookie += '; ' + optionKey\r\n let optionValue = options[optionKey]\r\n if (optionValue !== true) {\r\n updatedCookie += '=' + optionValue\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie\r\n }\r\n\r\n /**\r\n * To delete a cookie, we can call it with a negative expiration date\r\n *\r\n * @param {string} name\r\n */\r\n public static delete(name: string): void {\r\n CookieComponent.set(name, '', {\r\n 'max-age': -1,\r\n })\r\n }\r\n}\r\n","export class ElementStyleUtil {\r\n public static set(element: HTMLElement, property: string, value?: any, important?: boolean) {\r\n if (important) {\r\n element.style.setProperty(property, value, 'important')\r\n } else {\r\n element.style.setProperty(property, value)\r\n }\r\n }\r\n\r\n public static get(element: HTMLElement, attributeName: string) {\r\n return element.style.getPropertyValue(attributeName)\r\n }\r\n\r\n public static remove(element: HTMLElement, attibuteName: string) {\r\n element.style.removeProperty(attibuteName)\r\n }\r\n}\r\n","export class DataUtil {\r\n static store: Map> = new Map()\r\n\r\n public static set(instance: HTMLElement | undefined, key: string, data: any): void {\r\n if (!instance) {\r\n return\r\n }\r\n\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n const newMap = new Map().set(key, data)\r\n DataUtil.store.set(instance, newMap)\r\n return\r\n }\r\n\r\n instanceData.set(key, data)\r\n }\r\n\r\n public static get(instance: HTMLElement, key: string): any | undefined {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n return instanceData.get(key)\r\n }\r\n\r\n public static remove(instance: HTMLElement, key: string): void {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n instanceData.delete(key)\r\n }\r\n\r\n public static has(instance: HTMLElement, key: string): boolean {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (instanceData) {\r\n return instanceData.has(key)\r\n }\r\n\r\n return false\r\n }\r\n\r\n public static getAllInstancesByKey(key: string) {\r\n const result: any[] = []\r\n DataUtil.store.forEach((val) => {\r\n val.forEach((v, k) => {\r\n if (k === key) {\r\n result.push(v)\r\n }\r\n })\r\n })\r\n return result\r\n }\r\n}\r\n","function getObjectPropertyValueByKey(obj: any, key: string): any | undefined {\r\n const map = new Map(Object.entries(obj))\r\n if (obj.hasOwnProperty(key) && map) {\r\n return map.get(key)\r\n }\r\n}\r\n\r\n/**\r\n * Generates unique ID for give prefix.\r\n * @param {string} prefix Prefix for generated ID\r\n * @returns {boolean}\r\n */\r\nfunction getUniqueIdWithPrefix(prefix: string | undefined): string {\r\n const result = Math.floor(Math.random() * new Date().getTime()).toString()\r\n if (!prefix) {\r\n return result\r\n }\r\n\r\n return `${prefix}${result}`\r\n}\r\n\r\n/* eslint-disable no-useless-escape */\r\nfunction stringSnakeToCamel(str: string): string {\r\n return str.replace(/(\\-\\w)/g, function (m) {\r\n return m[1].toUpperCase()\r\n })\r\n}\r\n\r\nfunction toJSON(value: string | JSON): JSON | undefined {\r\n if (typeof value !== 'string') {\r\n return value\r\n }\r\n\r\n if (!value) {\r\n return undefined\r\n }\r\n\r\n // (\"'\" => \"\\\"\");\r\n const result = value\r\n .toString()\r\n .split('')\r\n .map((el) => (el !== \"'\" ? el : '\"'))\r\n .join('')\r\n var jsonStr = result.replace(/(\\w+:)|(\\w+ :)/g, function (matched) {\r\n return '\"' + matched.substring(0, matched.length - 1) + '\":'\r\n })\r\n try {\r\n return JSON.parse(jsonStr)\r\n } catch {\r\n return undefined\r\n }\r\n}\r\n\r\nexport {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON}\r\n","import {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport class DOMEventHandlerUtil {\r\n public static store = new Map()\r\n\r\n public static on(\r\n element: HTMLElement,\r\n selector: string,\r\n eventName: string,\r\n callBack: any\r\n ): string {\r\n const eventId = getUniqueIdWithPrefix('DOMEvent')\r\n DOMEventHandlerUtil.store.set(eventId, (e: Event) => {\r\n const targets = element.querySelectorAll(selector)\r\n let target: HTMLElement | null = e.target as HTMLElement\r\n while (target && target !== element) {\r\n for (let i = 0; i < targets.length; i++) {\r\n if (target === targets[i]) {\r\n callBack.call(target, e)\r\n }\r\n }\r\n\r\n if (target.parentElement) {\r\n target = target.parentElement\r\n } else {\r\n target = null\r\n }\r\n }\r\n })\r\n element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId))\r\n return eventId\r\n }\r\n\r\n public static off(element: HTMLElement, eventName: string, eventId: string): void {\r\n const funcFromStore = DOMEventHandlerUtil.store.get(eventId)\r\n if (!funcFromStore) {\r\n return\r\n }\r\n\r\n element.removeEventListener(eventName, funcFromStore)\r\n DOMEventHandlerUtil.store.delete(eventId)\r\n }\r\n\r\n public static one(element: HTMLElement, eventName: string, callBack: Function): void {\r\n element.addEventListener(eventName, function calee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, calee)\r\n }\r\n\r\n if (element && e && e.currentTarget) {\r\n // if (element && element.removeEventListener && e && e.currentTarget) {\r\n e.currentTarget.removeEventListener(e.type, calee)\r\n }\r\n\r\n // call hander\r\n return callBack(e)\r\n })\r\n }\r\n}\r\n","import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {getElementOffset} from './DomHelpers'\r\n\r\nexport class ElementAnimateUtil {\r\n public static animate(\r\n from: number,\r\n to: number,\r\n duration: number,\r\n update: Function,\r\n complete?: Function\r\n ) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n const easings = {\r\n linear: function (t: number, b: number, c: number, d: number) {\r\n return (c * t) / d + b\r\n },\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (!complete) {\r\n complete = function () {}\r\n }\r\n\r\n // Animation loop\r\n // let canceled = false;\r\n const change = to - from\r\n\r\n function loop(timestamp: number) {\r\n var time = (timestamp || +new Date()) - start\r\n\r\n if (time >= 0) {\r\n update(easings.linear(time, from, change, duration))\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to)\r\n if (complete) {\r\n complete()\r\n }\r\n } else {\r\n window.requestAnimationFrame(loop)\r\n }\r\n }\r\n\r\n update(from)\r\n\r\n // Start animation loop\r\n const start =\r\n window.performance && window.performance.now ? window.performance.now() : +new Date()\r\n\r\n window.requestAnimationFrame(loop)\r\n }\r\n\r\n public static animateClass(\r\n element: HTMLElement,\r\n animationName: string,\r\n callBack?: Function\r\n ): void {\r\n const animateClasses = animationName.split(' ')\r\n animateClasses.forEach((cssClass) => element.classList.add(cssClass))\r\n DOMEventHandlerUtil.one(element, 'animationend', function () {\r\n animateClasses.forEach((cssClass) => element.classList.remove(cssClass))\r\n })\r\n\r\n if (callBack) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n }\r\n\r\n public static transitionEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'transitionend', callBack)\r\n }\r\n\r\n public static animationEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n\r\n public static animationDelay(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-delay', value)\r\n }\r\n\r\n public static animationDuration(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-duration', value)\r\n }\r\n\r\n public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) {\r\n let targetPos = element ? getElementOffset(element).top : 0\r\n let scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\r\n\r\n if (offset) {\r\n scrollPos += offset\r\n targetPos = targetPos - offset\r\n }\r\n\r\n const from = scrollPos\r\n const to = targetPos\r\n\r\n ElementAnimateUtil.animate(from, to, duration, function (value: number) {\r\n document.documentElement.scrollTop = value\r\n // document.body.parentNode.scrollTop = value;\r\n document.body.scrollTop = value\r\n }) //, easing, done\r\n }\r\n public static scrollTop(offset: number, duration: number) {\r\n ElementAnimateUtil.scrollTo(null, offset, duration)\r\n }\r\n}\r\n","import {OffsetModel} from './models/OffsetModel'\r\nimport {ViewPortModel} from './models/ViewPortModel'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {DataUtil} from './_DataUtil'\r\nimport {ElementAnimateUtil} from './ElementAnimateUtil'\r\nimport {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers'\r\n\r\nfunction getCSS(el: HTMLElement, styleProp: string) {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n}\r\n\r\nfunction getCSSVariableValue(variableName: string) {\r\n let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName)\r\n if (hex && hex.length > 0) {\r\n hex = hex.trim()\r\n }\r\n\r\n return hex\r\n}\r\n\r\nfunction getElementActualCss(el: HTMLElement, prop: any, cache: boolean) {\r\n let css = ''\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n let value\r\n\r\n // the element is hidden so:\r\n // making the el block so we can meassure its height but still be hidden\r\n css = el.style.cssText\r\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;'\r\n\r\n if (prop === 'width') {\r\n value = el.offsetWidth\r\n } else if (prop === 'height') {\r\n value = el.offsetHeight\r\n }\r\n\r\n el.style.cssText = css\r\n\r\n // store it in cache\r\n if (value !== undefined) {\r\n el.setAttribute('kt-hidden-' + prop, value.toString())\r\n return parseFloat(value.toString())\r\n }\r\n return 0\r\n } else {\r\n // store it in cache\r\n const attributeValue = el.getAttribute('kt-hidden-' + prop)\r\n if (attributeValue || attributeValue === '0') {\r\n return parseFloat(attributeValue)\r\n }\r\n }\r\n}\r\n\r\nfunction getElementActualHeight(el: HTMLElement) {\r\n return getElementActualCss(el, 'height', false)\r\n}\r\n\r\nfunction getElementActualWidth(el: HTMLElement, cache?: boolean) {\r\n return getElementActualCss(el, 'width', false)\r\n}\r\n\r\nfunction getElementIndex(element: HTMLElement) {\r\n if (element.parentNode) {\r\n const c = element.parentNode.children\r\n for (let i = 0; i < c.length; i++) {\r\n if (c[i] === element) return i\r\n }\r\n }\r\n return -1\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\r\nfunction getElementMatches(element: HTMLElement, selector: string) {\r\n const p = Element.prototype\r\n const f = p.matches || p.webkitMatchesSelector\r\n\r\n if (element && element.tagName) {\r\n return f.call(element, selector)\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction getElementOffset(el: HTMLElement): OffsetModel {\r\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n // Support: IE <=11 only\r\n // Running getBoundingClientRect on a\r\n // disconnected node in IE throws an error\r\n if (!el.getClientRects().length) {\r\n return {top: 0, left: 0}\r\n }\r\n\r\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n const rect = el.getBoundingClientRect()\r\n const win = el.ownerDocument.defaultView\r\n if (win) {\r\n return {\r\n top: rect.top + win.pageYOffset,\r\n left: rect.left + win.pageXOffset,\r\n }\r\n }\r\n\r\n return rect\r\n}\r\n\r\nfunction getElementParents(element: Element, selector: string) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = function (s) {\r\n const matches = (document || this.ownerDocument).querySelectorAll(s)\r\n let i = matches.length\r\n while (--i >= 0 && matches.item(i) !== this) {}\r\n return i > -1\r\n }\r\n }\r\n\r\n // Set up a parent array\r\n const parents = []\r\n\r\n let el: Element | null = element\r\n\r\n // Push each parent element to the array\r\n for (; el && el !== document.body; el = el.parentElement) {\r\n if (selector) {\r\n if (el.matches(selector)) {\r\n parents.push(el)\r\n }\r\n continue\r\n }\r\n parents.push(el)\r\n }\r\n\r\n // Return our parent array\r\n return parents\r\n}\r\n\r\nfunction getHighestZindex(el: HTMLElement) {\r\n let bufferNode: Node | null = el as Node\r\n let buffer = el\r\n while (bufferNode && bufferNode !== document) {\r\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n // This makes behavior of this function consistent across browsers\r\n // WebKit always returns auto if the element is positioned\r\n const position = buffer.style.getPropertyValue('position')\r\n if (position === 'absolute' || position === 'relative' || position === 'fixed') {\r\n // IE returns 0 when zIndex is not specified\r\n // other browsers return a string\r\n // we ignore the case of nested elements with an explicit value of 0\r\n //
\r\n const value = parseInt(buffer.style.getPropertyValue('z-index'))\r\n if (!isNaN(value) && value !== 0) {\r\n return value\r\n }\r\n }\r\n\r\n bufferNode = bufferNode.parentNode\r\n buffer = bufferNode as HTMLElement\r\n }\r\n return null\r\n}\r\n\r\nfunction getScrollTop(): number {\r\n return (document.scrollingElement || document.documentElement).scrollTop\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth\r\nfunction getViewPort(): ViewPortModel {\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }\r\n}\r\n\r\nfunction insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) {\r\n return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling)\r\n}\r\n\r\nfunction isElementHasClasses(element: HTMLElement, classesStr: string): boolean {\r\n const classes = classesStr.split(' ')\r\n for (let i = 0; i < classes.length; i++) {\r\n if (!element.classList.contains(classes[i])) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction isVisibleElement(element: HTMLElement): boolean {\r\n return !(element.offsetWidth === 0 && element.offsetHeight === 0)\r\n}\r\n\r\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\r\nfunction throttle(timer: number | undefined, func: Function, delay?: number) {\r\n // If setTimeout is already scheduled, no need to do anything\r\n if (timer) {\r\n return\r\n }\r\n\r\n // Schedule a setTimeout after delay seconds\r\n timer = window.setTimeout(function () {\r\n func()\r\n\r\n // Once setTimeout function execution is finished, timerId = undefined so that in
\r\n // the next scroll event function execution can be scheduled by the setTimeout\r\n timer = undefined\r\n }, delay)\r\n}\r\n\r\nfunction getElementChildren(element: HTMLElement, selector: string): Array | null {\r\n if (!element || !element.childNodes) {\r\n return null\r\n }\r\n\r\n const result: Array = []\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n const child = element.childNodes[i]\r\n // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference\r\n if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) {\r\n result.push(child as HTMLElement)\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\nfunction getElementChild(element: HTMLElement, selector: string): HTMLElement | null {\r\n const children = getElementChildren(element, selector)\r\n return children ? children[0] : null\r\n}\r\n\r\nfunction isMobileDevice(): boolean {\r\n let test = getViewPort().width < +getBreakpoint('lg') ? true : false\r\n\r\n if (test === false) {\r\n // For use within normal web clients\r\n test = navigator.userAgent.match(/iPad/i) != null\r\n }\r\n\r\n return test\r\n}\r\n\r\nfunction slide(el: HTMLElement, dir: string, speed: number, callback: any) {\r\n if (\r\n !el ||\r\n (dir === 'up' && isVisibleElement(el) === false) ||\r\n (dir === 'down' && isVisibleElement(el) === true)\r\n ) {\r\n return\r\n }\r\n\r\n speed = speed ? speed : 600\r\n let calcHeight = getElementActualHeight(el)\r\n let calcPaddingTop: number = 0\r\n let calcPaddingBottom: number = 0\r\n\r\n if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) {\r\n DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top'))\r\n }\r\n\r\n if (\r\n ElementStyleUtil.get(el, 'padding-bottom') &&\r\n DataUtil.has(el, 'slide-padding-bottom') !== true\r\n ) {\r\n DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-top')) {\r\n calcPaddingTop = parseInt(DataUtil.get(el, 'slide-padding-top'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(DataUtil.get(el, 'slide-padding-bottom'))\r\n }\r\n\r\n if (dir === 'up') {\r\n // up\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) {\r\n el.style.paddingTop = calcPaddingTop - value + 'px'\r\n })\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) {\r\n el.style.paddingBottom = calcPaddingBottom - value + 'px'\r\n })\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = (calcHeight || 0) - value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = 'none'\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n } else if (dir === 'down') {\r\n // down\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingTop,\r\n speed,\r\n function (value: number) {\r\n //\r\n el.style.paddingTop = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingTop = ''\r\n }\r\n )\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingBottom,\r\n speed,\r\n function (value: number) {\r\n el.style.paddingBottom = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingBottom = ''\r\n }\r\n )\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = ''\r\n el.style.overflow = ''\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n }\r\n}\r\n\r\nfunction slideUp(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'up', speed, callback)\r\n}\r\n\r\nfunction slideDown(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'down', speed, callback)\r\n}\r\n\r\nfunction getBreakpoint(breakpoint: string) {\r\n let value: number | string = getCSSVariableValue('--bs-' + breakpoint)\r\n if (value) {\r\n value = parseInt(value.trim())\r\n }\r\n\r\n return value\r\n}\r\n\r\nfunction getAttributeValueByBreakpoint(incomingAttr: string): string | JSON {\r\n let value = toJSON(incomingAttr)\r\n if (typeof value !== 'object') {\r\n return incomingAttr\r\n }\r\n\r\n const width = getViewPort().width\r\n let resultKey\r\n let resultBreakpoint = -1\r\n let breakpoint\r\n\r\n for (let key in value) {\r\n if (key === 'default') {\r\n breakpoint = 0\r\n } else {\r\n breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key)\r\n }\r\n\r\n if (breakpoint <= width && breakpoint > resultBreakpoint) {\r\n resultKey = key\r\n resultBreakpoint = breakpoint\r\n }\r\n }\r\n\r\n return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value\r\n}\r\n\r\nfunction colorLighten(color: string, amount: number) {\r\n const addLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(_color, 16) + _amount\r\n const cNum = cc > 255 ? 255 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n return (color = `#${addLight(color.substring(0, 2), amount)}${addLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${addLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nfunction colorDarken(color: string, amount: number) {\r\n const subtractLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(color, 16) - amount\r\n const cNum = cc < 0 ? 0 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n\r\n return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${subtractLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nexport {\r\n getBreakpoint,\r\n getCSS,\r\n getCSSVariableValue,\r\n getElementActualCss,\r\n getElementActualHeight,\r\n getElementActualWidth,\r\n getElementIndex,\r\n getElementMatches,\r\n getElementOffset,\r\n getElementParents,\r\n getHighestZindex,\r\n getScrollTop,\r\n getViewPort,\r\n insertAfterElement,\r\n isElementHasClasses,\r\n isVisibleElement,\r\n throttle,\r\n getElementChildren,\r\n getElementChild,\r\n isMobileDevice,\r\n slide,\r\n slideUp,\r\n slideDown,\r\n getAttributeValueByBreakpoint,\r\n colorLighten,\r\n colorDarken,\r\n}\r\n","import {DataUtil} from './_DataUtil'\r\nimport {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport interface EventMeta {\r\n name: string\r\n callback: Function\r\n one: boolean\r\n fired: boolean\r\n}\r\n\r\nexport class EventHandlerUtil {\r\n static store: Map> = new Map()\r\n\r\n private static setEventMetasByName(name: string, metas: Map): void {\r\n EventHandlerUtil.store.set(name, metas)\r\n }\r\n\r\n private static getEventMetasByName(name: string): Map | undefined {\r\n return EventHandlerUtil.store.get(name)\r\n }\r\n\r\n private static setEventMetaByNameAndHandlerId(\r\n name: string,\r\n handlerId: string,\r\n meta: EventMeta\r\n ): void {\r\n let metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n metas = new Map()\r\n }\r\n\r\n metas.set(handlerId, meta)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n private static getEventsMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined {\r\n const metas = EventHandlerUtil.store.get(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n return metas.get(handlerId)\r\n }\r\n\r\n private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void {\r\n const meta = EventHandlerUtil.getEventsMetaByHandlerId(name, handerId)\r\n if (!meta) {\r\n return\r\n }\r\n\r\n meta.fired = fired\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta)\r\n }\r\n\r\n private static addEvent(\r\n element: HTMLElement,\r\n name: string,\r\n callback: Function,\r\n one: boolean = false\r\n ) {\r\n const handlerId = getUniqueIdWithPrefix('event')\r\n DataUtil.set(element, name, handlerId)\r\n const meta: EventMeta = {\r\n name: name,\r\n callback: callback,\r\n one: one,\r\n fired: false,\r\n }\r\n\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta)\r\n }\r\n\r\n private static removeEvent(element: HTMLElement, name: string) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return\r\n }\r\n\r\n const metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n metas.delete(handlerId)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n public static trigger(element: HTMLElement, name: string, e?: Event) {\r\n if (DataUtil.has(element, name)) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return undefined\r\n }\r\n\r\n const handler = EventHandlerUtil.getEventsMetaByHandlerId(name, handlerId)\r\n if (handler) {\r\n if (handler.name === name) {\r\n if (handler.one === true) {\r\n if (handler.fired === false) {\r\n EventHandlerUtil.setFiredByNameAndHandlerId(name, handlerId, true)\r\n return handler.callback.call(this, e)\r\n }\r\n } else {\r\n return handler.callback.call(this, e)\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static on = function (element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, false)\r\n }\r\n\r\n public static one(element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, true)\r\n }\r\n\r\n public static off(element: HTMLElement, name: string): void {\r\n EventHandlerUtil.removeEvent(element, name)\r\n }\r\n}\r\n","import {\r\n DataUtil,\r\n EventHandlerUtil,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getCSS,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface DrawerOptions {\r\n overlay: boolean\r\n baseClass: string\r\n overlayClass: string\r\n direction: string\r\n}\r\n\r\nconst defaultDrawerOptions: DrawerOptions = {\r\n overlay: true,\r\n baseClass: 'drawer',\r\n overlayClass: 'drawer-overlay',\r\n direction: 'end',\r\n}\r\n\r\nclass DrawerComponent {\r\n element: HTMLElement\r\n overlayElement: HTMLElement | null = null\r\n toggleElement: HTMLElement | null = null\r\n options: DrawerOptions\r\n instanceUid: string\r\n name: string = ''\r\n shown: boolean = false\r\n lastWidth: number = 0\r\n closeElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: DrawerOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultDrawerOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('drawer')\r\n this.overlayElement = null\r\n this.name = this.element.getAttribute('data-kt-drawer-name') || ''\r\n this.shown = false\r\n this.toggleElement = null\r\n // Event Handlers\r\n this._handlers()\r\n // Update Instance\r\n this._update()\r\n // Bind Instance\r\n DataUtil.set(this.element, 'drawer', this)\r\n }\r\n\r\n private _handlers = () => {\r\n const togglers = this._getOption('toggle') as string\r\n const closers = this._getOption('close') as string\r\n\r\n if (togglers !== null && togglers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.toggleElement = document.getElementById(togglers)\r\n this._toggle()\r\n })\r\n }\r\n\r\n if (closers !== null && closers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.closeElement = document.getElementById(closers)\r\n\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _update = () => {\r\n const width = String(this._getOption('width'))\r\n const direction = String(this._getOption('direction'))\r\n\r\n // Reset state\r\n const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`)\r\n const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`))\r\n\r\n if (hasBaseClass === true && bodyCanvasAttr === 'on') {\r\n this.shown = true\r\n } else {\r\n this.shown = false\r\n }\r\n\r\n // Activate/deactivate\r\n if (this._getOption('activate') === true) {\r\n this.element.classList.add(this.options.baseClass)\r\n this.element.classList.add(`${this.options.baseClass}-${direction}`)\r\n ElementStyleUtil.set(this.element, 'width', width, true)\r\n\r\n this.lastWidth = parseInt(width)\r\n } else {\r\n ElementStyleUtil.set(this.element, 'width', '')\r\n this.element.classList.remove(this.options.baseClass)\r\n this.element.classList.remove(`${this.options.baseClass}-${direction}`)\r\n this._hide()\r\n }\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-drawer-${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else {\r\n if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private _toggle = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) {\r\n return\r\n }\r\n\r\n if (this.shown) {\r\n this._hide()\r\n } else {\r\n this._show()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled')\r\n }\r\n\r\n private _hide = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) {\r\n return\r\n }\r\n\r\n this.shown = false\r\n this._deleteOverlay()\r\n document.body.removeAttribute(`data-kt-drawer-${this.name}`)\r\n document.body.removeAttribute(`data-kt-drawer`)\r\n this.element.classList.remove(`${this.options.baseClass}-on`)\r\n if (this.toggleElement != null) {\r\n this.toggleElement.classList.remove('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden')\r\n }\r\n\r\n private _show = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) {\r\n return\r\n }\r\n\r\n this.shown = true\r\n this._createOverlay()\r\n document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on')\r\n document.body.setAttribute('data-kt-drawer', 'on')\r\n this.element.classList.add(`${this.options.baseClass}-on`)\r\n if (this.toggleElement !== null) {\r\n this.toggleElement.classList.add('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.shown')\r\n }\r\n\r\n private _createOverlay = () => {\r\n if (this._getOption('overlay') === true) {\r\n this.overlayElement = document.createElement('DIV')\r\n const elementZIndex = getCSS(this.element, 'z-index')\r\n if (elementZIndex) {\r\n const overlayZindex = parseInt(elementZIndex) - 1\r\n ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update\r\n }\r\n document.body.append(this.overlayElement)\r\n const overlayClassOption = this._getOption('overlay-class')\r\n if (overlayClassOption) {\r\n this.overlayElement.classList.add(overlayClassOption.toString())\r\n }\r\n this.overlayElement.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _deleteOverlay = () => {\r\n if (this.overlayElement !== null && this.overlayElement.parentNode) {\r\n this.overlayElement.parentNode.removeChild(this.overlayElement)\r\n }\r\n }\r\n\r\n private _getDirection = () => {\r\n return String(this._getOption('direction')) === 'left' ? 'left' : 'right'\r\n }\r\n\r\n private _getWidth = () => {\r\n let width = this._getOption('width')\r\n if (width && width === 'auto') {\r\n width = getCSS(this.element, 'width')\r\n }\r\n\r\n return width\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public toggle = () => {\r\n this._toggle()\r\n }\r\n\r\n public show = () => {\r\n this._show()\r\n }\r\n\r\n public hide = () => {\r\n this._hide()\r\n }\r\n\r\n public isShown = () => {\r\n return this.shown\r\n }\r\n\r\n public update = () => {\r\n this._update()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace = (element: HTMLElement): boolean => {\r\n return DataUtil.has(element, 'drawer')\r\n }\r\n\r\n public static getInstance = (element: HTMLElement) => {\r\n return DataUtil.get(element, 'drawer')\r\n }\r\n\r\n public static hideAll = () => {\r\n const oldInstances = DataUtil.getAllInstancesByKey('drawer')\r\n oldInstances.forEach((dr) => {\r\n dr.hide()\r\n })\r\n }\r\n\r\n public static updateAll = () => {\r\n const oldInstances = DataUtil.getAllInstancesByKey('drawer')\r\n oldInstances.forEach((dr) => {\r\n dr.update()\r\n })\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let drawer = DrawerComponent.getInstance(item)\r\n if (!drawer) {\r\n drawer = new DrawerComponent(item, defaultDrawerOptions)\r\n }\r\n drawer.hide()\r\n })\r\n }\r\n\r\n // Dismiss instances\r\n public static handleDismiss = () => {\r\n // External drawer toggle handler\r\n DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss=\"true\"]', 'click', () => {\r\n /* @ts-ignore */\r\n const element = this.closest('[data-kt-drawer=\"true\"]')\r\n if (element) {\r\n const drawer = DrawerComponent.getInstance(element)\r\n if (drawer && drawer.isShown()) {\r\n drawer.hide()\r\n }\r\n }\r\n })\r\n }\r\n\r\n // Global Initialization\r\n public static initGlobalHandlers(): void {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer: number | undefined\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.body.querySelectorAll('[data-kt-drawer=\"true\"]')\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n const instance = DrawerComponent.getInstance(item)\r\n if (instance) {\r\n instance.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.initGlobalHandlers()\r\n DrawerComponent.handleDismiss()\r\n }\r\n\r\n public static reinitialization = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.hideAll()\r\n DrawerComponent.updateAll()\r\n DrawerComponent.handleDismiss()\r\n }\r\n}\r\n\r\nexport {DrawerComponent, defaultDrawerOptions}\r\n","import {\r\n DataUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n getUniqueIdWithPrefix,\r\n getAttributeValueByBreakpoint,\r\n} from '../_utils/index'\r\n\r\nexport interface FeedbackOptions {\r\n width?: number\r\n placement?: string\r\n content?: string\r\n type?: string\r\n}\r\n\r\nconst defaultFeedbackOptions: FeedbackOptions = {\r\n width: 100,\r\n placement: 'top-center',\r\n content: '',\r\n type: 'popup',\r\n}\r\n\r\nclass FeedbackComponent {\r\n element: HTMLElement\r\n options: FeedbackOptions\r\n instanceUid: string\r\n shown: boolean\r\n\r\n constructor(_element: HTMLElement, options: FeedbackOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultFeedbackOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('feedback')\r\n this.shown = false\r\n\r\n // Event handlers\r\n this._handlers() // will add in the show popup\r\n DataUtil.set(this.element, 'feedback', this)\r\n }\r\n\r\n private _handlers = () => {\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._go()\r\n })\r\n }\r\n\r\n private _go = () => {}\r\n\r\n private showPopup = () => {\r\n this.element = document.createElement('DIV')\r\n\r\n this.element.classList.add('feedback feedback-popup')\r\n this.element.innerHTML = this.options.content || ''\r\n\r\n if (this.options.placement === 'top-center') {\r\n this.setPopupTopCenterPosition()\r\n }\r\n\r\n document.body.appendChild(this.element)\r\n this.element.classList.add('feedback-shown')\r\n this.shown = true\r\n }\r\n\r\n private setPopupTopCenterPosition = () => {\r\n const width = getAttributeValueByBreakpoint(this.options.width?.toString() || '0')\r\n const height = ElementStyleUtil.get(this.element, 'height')\r\n this.element.classList.add('feedback-top-center')\r\n ElementStyleUtil.set(this.element, 'width', width)\r\n ElementStyleUtil.set(this.element, 'left', '50%')\r\n ElementStyleUtil.set(this.element, 'top', '-' + height)\r\n }\r\n\r\n private hidePopup = () => {\r\n this.element.remove()\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public show = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.show') === false) {\r\n return\r\n }\r\n\r\n if (this.options.type === 'popup') {\r\n this.showPopup()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.feedback.shown')\r\n\r\n return this\r\n }\r\n\r\n public hide = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.hide') === false) {\r\n return\r\n }\r\n\r\n if (this.options.type === 'popup') {\r\n this.hidePopup()\r\n }\r\n\r\n this.shown = false\r\n EventHandlerUtil.trigger(this.element, 'kt.feedback.hidden')\r\n return this\r\n }\r\n\r\n public isShown = () => {\r\n return this.isShown\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-Feedback]') {\r\n throw new Error('not implemented')\r\n }\r\n}\r\n\r\nexport {FeedbackComponent, defaultFeedbackOptions}\r\n","import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index'\r\n\r\nexport interface IImageInputOptions {}\r\n\r\nexport interface IImageInputQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n wrapperQuery: string\r\n cancelQuery: string\r\n removeQuery: string\r\n hiddenQuery: string\r\n}\r\n\r\nconst defaultImageInputOptions = {}\r\n\r\nconst defaultImageInputQueires: IImageInputQueries = {\r\n componentName: 'image-input',\r\n instanseQuery: '[data-kt-image-input]',\r\n inputQuery: 'input[type=\"file\"]',\r\n wrapperQuery: '.image-input-wrapper',\r\n cancelQuery: '[data-kt-image-input-action=\"cancel\"]',\r\n removeQuery: '[data-kt-image-input-action=\"remove\"]',\r\n hiddenQuery: 'input[type=\"hidden\"]',\r\n}\r\n\r\nclass ImageInputComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n wrapperElement: HTMLElement | null\r\n cancelElement: HTMLElement | null\r\n removeElement: HTMLElement | null\r\n hiddenElement: HTMLInputElement | null\r\n src: string = ''\r\n options: IImageInputOptions\r\n queries: IImageInputQueries\r\n uid: string\r\n value: string = ''\r\n\r\n constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultImageInputOptions, _options)\r\n this.queries = _queries\r\n this.uid = getUniqueIdWithPrefix(this.queries.componentName)\r\n\r\n // Elements\r\n this.element = _element\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery)\r\n this.cancelElement = this.element.querySelector(this.queries.cancelQuery)\r\n this.removeElement = this.element.querySelector(this.queries.removeQuery)\r\n this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery)\r\n if (this.wrapperElement) {\r\n this.src = getCSS(this.wrapperElement, 'backgroundImage')\r\n }\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n this.element.addEventListener('change', this._change)\r\n if (this.cancelElement) {\r\n this.cancelElement.addEventListener('click', this._cancel)\r\n }\r\n\r\n if (this.removeElement) {\r\n this.removeElement.addEventListener('click', this._cancel)\r\n }\r\n }\r\n\r\n // Event Handlers\r\n private _change = (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) {\r\n // Fire change event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) {\r\n return\r\n }\r\n\r\n const reader = new FileReader()\r\n\r\n reader.onload = (e: ProgressEvent) => {\r\n if (this.wrapperElement && e.target) {\r\n this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`)\r\n }\r\n }\r\n\r\n reader.readAsDataURL(this.inputElement.files[0])\r\n this.element.classList.add('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e)\r\n }\r\n }\r\n\r\n private _cancel = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire cancel event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n this.element.style.setProperty('background-image', this.src)\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '0'\r\n }\r\n\r\n // Fire canceled event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e)\r\n }\r\n\r\n private _remove = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire remove event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.add('image-input-empty')\r\n if (this.wrapperElement) {\r\n this.wrapperElement.style.setProperty('background-image', 'none')\r\n }\r\n\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '1'\r\n }\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e)\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public getInputElement(): HTMLInputElement | null {\r\n return this.inputElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultImageInputQueires.componentName\r\n ) => {\r\n const ImageInput = DataUtil.get(el, componentName)\r\n if (ImageInput) {\r\n return ImageInput\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ): ImageInputComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n return ImageInput\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n}\r\nexport {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires}\r\n","import {\r\n DataUtil,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n getCSS,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ScrollOptions {\r\n saveState?: boolean\r\n}\r\n\r\nconst defaultScrollOptions: ScrollOptions = {\r\n saveState: true,\r\n}\r\n\r\nclass ScrollComponent {\r\n element: HTMLElement\r\n options: ScrollOptions\r\n id: string\r\n\r\n constructor(_element: HTMLElement, options: ScrollOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollOptions, options)\r\n this.id = this.element.getAttribute('id') || ''\r\n this.update()\r\n // this.element.setAttribute('data-kt-scrolltop', 'true')\r\n DataUtil.set(this.element, 'scroll', this)\r\n }\r\n\r\n private getOption = (name: string) => {\r\n if (this.element.hasAttribute('data-kt-scroll-' + name) === true) {\r\n const attr = this.element.getAttribute('data-kt-scroll-' + name) || ''\r\n let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private getHeightType = () => {\r\n if (this.getOption('height')) {\r\n return 'height'\r\n }\r\n if (this.getOption('min-height')) {\r\n return 'min-height'\r\n }\r\n if (this.getOption('max-height')) {\r\n return 'max-height'\r\n }\r\n }\r\n\r\n private getAutoHeight = () => {\r\n let height: number | string = getViewPort().height\r\n const dependencies = this.getOption('dependencies')\r\n const wrappers = this.getOption('wrappers')\r\n const offset = this.getOption('offset')\r\n\r\n // Height dependencies\r\n if (dependencies !== null) {\r\n const elements = document.querySelectorAll(dependencies as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n if (isVisibleElement(element) === false) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'height'))\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Wrappers\r\n if (wrappers !== null) {\r\n var elements = document.querySelectorAll(wrappers as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n\r\n if (!isVisibleElement(element)) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n height = height - parseInt(getCSS(element, 'padding-top'))\r\n height = height - parseInt(getCSS(element, 'padding-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Custom offset\r\n if (offset !== null) {\r\n height = height - parseInt(offset as string)\r\n }\r\n\r\n height = height - parseInt(getCSS(this.element, 'margin-top'))\r\n height = height - parseInt(getCSS(this.element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(this.element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(this.element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n\r\n height = String(height) + 'px'\r\n\r\n return height\r\n }\r\n\r\n private setupHeight = () => {\r\n let height = this.getHeight()\r\n let heightType = this.getHeightType() as string\r\n\r\n // Set height\r\n if (height !== null && height.length > 0) {\r\n ElementStyleUtil.set(this.element, heightType, height)\r\n } else {\r\n ElementStyleUtil.set(this.element, heightType, '')\r\n }\r\n }\r\n\r\n private setupState = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n const cookie = CookieComponent.get(this.id + 'st')\r\n if (cookie) {\r\n var pos = parseInt(cookie)\r\n\r\n if (pos > 0) {\r\n this.element.scrollTop = pos\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setupScrollHandler = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n this.element.addEventListener('scroll', this.scrollHandler)\r\n } else {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n }\r\n\r\n private scrollHandler = () => {\r\n const cookieId = this.id + 'st'\r\n CookieComponent.set(cookieId, this.element.scrollTop, {})\r\n }\r\n\r\n private destroyScrollHandler = () => {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n\r\n private resetHeight = () => {\r\n const heghtType = this.getHeightType()\r\n if (heghtType) {\r\n ElementStyleUtil.set(this.element, heghtType, '')\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n // Activate/deactivate\r\n if (\r\n this.getOption('activate') === true ||\r\n !this.element.hasAttribute('data-kt-scroll-activate')\r\n ) {\r\n this.setupHeight()\r\n this.setupScrollHandler()\r\n this.setupState()\r\n } else {\r\n this.resetHeight()\r\n this.destroyScrollHandler()\r\n }\r\n }\r\n\r\n public getHeight = () => {\r\n const heightType = this.getHeightType()\r\n const height = this.getOption(heightType || '')\r\n if (height instanceof Function) {\r\n return height.call(height)\r\n } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') {\r\n return this.getAutoHeight()\r\n } else {\r\n return height\r\n }\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return DataUtil.has(element, 'scroll')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && ScrollComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'scroll')\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element: Element) => {\r\n const item = element as HTMLElement\r\n let scroll = ScrollComponent.getInstance(item)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(item, defaultScrollOptions)\r\n }\r\n })\r\n }\r\n\r\n public static destroyAll(attr: string = '[data-kt-scroll=\"true\"]') {}\r\n\r\n public static bootstrap(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n ScrollComponent.resize()\r\n }\r\n\r\n public static createInstance = (\r\n element: HTMLElement,\r\n options: ScrollOptions = defaultScrollOptions\r\n ): ScrollComponent | undefined => {\r\n let scroll = ScrollComponent.getInstance(element)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(element, options)\r\n }\r\n return scroll\r\n }\r\n\r\n public static reinitialization(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n }\r\n\r\n public static resize() {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.body.querySelectorAll('[data-kt-scroll=\"true\"]')\r\n elements.forEach((element: Element) => {\r\n const instance = ScrollComponent.getInstance(element as HTMLElement)\r\n if (instance) {\r\n instance.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport {ScrollComponent, defaultScrollOptions}\r\n","import {\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementAnimateUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IScrollTopOptions {\r\n offset: number\r\n speed: number\r\n}\r\n\r\nconst defaultScrollTopOptions: IScrollTopOptions = {\r\n offset: 200,\r\n speed: 600,\r\n}\r\n\r\nclass ScrollTopComponent {\r\n element: HTMLElement\r\n options: IScrollTopOptions\r\n instanceUid: string\r\n\r\n constructor(_element: HTMLElement, options: IScrollTopOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollTopOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('scrolltop')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'scrolltop', this)\r\n }\r\n\r\n private _handlers = () => {\r\n let timer: number\r\n window.addEventListener('scroll', () => {\r\n throttle(timer, () => {\r\n this._scroll()\r\n })\r\n })\r\n\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._go()\r\n })\r\n }\r\n\r\n private _scroll = () => {\r\n const offset = parseInt(this._getOption('offset') as string)\r\n const pos = getScrollTop() // current vertical position\r\n if (pos > offset) {\r\n if (!document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.setAttribute('data-kt-scrolltop', 'on')\r\n }\r\n } else {\r\n if (document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.removeAttribute('data-kt-scrolltop')\r\n }\r\n }\r\n }\r\n\r\n private _go = () => {\r\n const speed = parseInt(this._getOption('speed') as string)\r\n ElementAnimateUtil.scrollTop(0, speed)\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-scrolltop-${name}`)\r\n if (attr) {\r\n const value = getAttributeValueByBreakpoint(attr)\r\n return value !== null && String(value) === 'true'\r\n }\r\n\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n\r\n return null\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n public go = () => {\r\n return this._go()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const scrollTop = DataUtil.get(el, 'scrolltop')\r\n if (scrollTop) {\r\n return scrollTop\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, defaultScrollTopOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: IScrollTopOptions = defaultScrollTopOptions\r\n ): ScrollTopComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, options)\r\n }\r\n return scrollTop\r\n }\r\n\r\n public static bootstrap = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static goTop = () => {\r\n ElementAnimateUtil.scrollTop(0, defaultScrollTopOptions.speed)\r\n }\r\n}\r\nexport {ScrollTopComponent, defaultScrollTopOptions}\r\n","import {\r\n getElementIndex,\r\n getUniqueIdWithPrefix,\r\n ElementAnimateUtil,\r\n EventHandlerUtil,\r\n DataUtil,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IStepperOptions {\r\n startIndex: number\r\n animation: boolean\r\n animationSpeed: string\r\n animationNextClass: string\r\n animationPreviousClass: string\r\n}\r\n\r\nconst defaultStepperOptions: IStepperOptions = {\r\n startIndex: 1,\r\n animation: false,\r\n animationSpeed: '0.3s',\r\n animationNextClass: 'animate__animated animate__slideInRight animate__fast',\r\n animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast',\r\n}\r\n\r\nclass StepperComponent {\r\n element: HTMLElement\r\n options: IStepperOptions\r\n instanceUid: string\r\n steps: NodeListOf\r\n btnNext: HTMLElement | null\r\n btnPrev: HTMLElement | null\r\n btnSubmit: HTMLElement | null\r\n totatStepsNumber: number = 0\r\n passedStepIndex: number = 0\r\n currentStepIndex: number = 1\r\n\r\n constructor(_element: HTMLElement, options: IStepperOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStepperOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('stepper')\r\n\r\n // Elements\r\n this.steps = this.element.querySelectorAll('[data-kt-stepper-element=\"nav\"]')\r\n this.btnNext = this.element.querySelector('[data-kt-stepper-action=\"next\"]')\r\n this.btnPrev = this.element.querySelector('[data-kt-stepper-action=\"previous\"]')\r\n this.btnSubmit = this.element.querySelector('[data-kt-stepper-action=\"submit\"]')\r\n\r\n // Variables\r\n this.totatStepsNumber = this.steps?.length | 0\r\n this.passedStepIndex = 0\r\n this.currentStepIndex = 1\r\n\r\n // Set Current Step\r\n if (this.options.startIndex > 1) {\r\n this._goTo(this.options.startIndex)\r\n }\r\n\r\n // Event Handlers\r\n this.initHandlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'stepper', this)\r\n }\r\n\r\n private _goTo = (index: number) => {\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.change')\r\n // Skip if this step is already shown\r\n if (index === this.currentStepIndex || index > this.totatStepsNumber || index < 0) {\r\n return\r\n }\r\n\r\n // Validate step number\r\n index = parseInt(index.toString())\r\n // Set current step\r\n this.passedStepIndex = this.currentStepIndex\r\n this.currentStepIndex = index\r\n\r\n // Refresh elements\r\n this.refreshUI()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.changed')\r\n }\r\n\r\n private initHandlers = () => {\r\n this.btnNext?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e)\r\n })\r\n\r\n this.btnPrev?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e)\r\n })\r\n\r\n DOMEventHandlerUtil.on(this.element, '[data-kt-stepper-action=\"step\"]', 'click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.steps && this.steps.length > 0) {\r\n for (let i = 0; i < this.steps.length; i++) {\r\n if ((this.steps[i] as HTMLElement) === this.element) {\r\n let index = i + 1\r\n\r\n const stepDirection = this._getStepDirection(index)\r\n EventHandlerUtil.trigger(this.element, `stepper.${stepDirection}`, e)\r\n return\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n private _getStepDirection = (index: number) => {\r\n return index > this.currentStepIndex ? 'next' : 'previous'\r\n }\r\n\r\n private getStepContent = (index: number) => {\r\n const content = this.element.querySelectorAll('[data-kt-stepper-element=\"content\"]')\r\n if (!content) {\r\n return false\r\n }\r\n\r\n if (content[index - 1]) {\r\n return content[index - 1]\r\n }\r\n\r\n return false\r\n }\r\n\r\n private getLastStepIndex = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private getTotalStepsNumber = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private refreshUI = () => {\r\n let state = ''\r\n\r\n if (this.isLastStep()) {\r\n state = 'last'\r\n } else if (this.isFirstStep()) {\r\n state = 'first'\r\n } else {\r\n state = 'between'\r\n }\r\n\r\n // Set state class\r\n this.element.classList.remove('last')\r\n this.element.classList.remove('first')\r\n this.element.classList.remove('between')\r\n\r\n this.element.classList.add(state)\r\n\r\n // Step Items\r\n const elements = this.element.querySelectorAll(\r\n '[data-kt-stepper-element=\"nav\"], [data-kt-stepper-element=\"content\"], [data-kt-stepper-element=\"info\"]'\r\n )\r\n\r\n if (!elements || elements.length <= 0) {\r\n return\r\n }\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n var element = elements[i] as HTMLElement\r\n var index = getElementIndex(element) + 1\r\n\r\n element.classList.remove('current')\r\n element.classList.remove('completed')\r\n element.classList.remove('pending')\r\n\r\n if (index === this.currentStepIndex) {\r\n element.classList.add('current')\r\n\r\n if (\r\n this.options.animation !== false &&\r\n element.getAttribute('data-kt-stepper-element') === 'content'\r\n ) {\r\n ElementStyleUtil.set(element, 'animationDuration', this.options.animationSpeed)\r\n\r\n const animation =\r\n this._getStepDirection(this.passedStepIndex) === 'previous'\r\n ? this.options.animationPreviousClass\r\n : this.options.animationNextClass\r\n ElementAnimateUtil.animateClass(element, animation)\r\n }\r\n } else {\r\n if (index < this.currentStepIndex) {\r\n element.classList.add('completed')\r\n } else {\r\n element.classList.add('pending')\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isLastStep = () => {\r\n return this.currentStepIndex === this.totatStepsNumber\r\n }\r\n\r\n private isFirstStep = () => {\r\n return this.currentStepIndex === 1\r\n }\r\n\r\n private isBetweenStep = () => {\r\n return this.isLastStep() === false && this.isFirstStep() === false\r\n }\r\n\r\n // ///////////////////////\r\n // // ** Public API ** //\r\n // ///////////////////////\r\n\r\n // // Plugin API\r\n public goto = (index: number) => {\r\n return this._goTo(index)\r\n }\r\n\r\n public goNext = () => {\r\n return this.goto(this.getNextStepIndex())\r\n }\r\n\r\n public goPrev = () => {\r\n return this.goto(this.getPrevStepIndex())\r\n }\r\n\r\n public goFirst = () => {\r\n return this.goto(1)\r\n }\r\n\r\n public goLast = () => {\r\n return this.goto(this.getLastStepIndex())\r\n }\r\n\r\n public getCurrentStepIndex = () => {\r\n return this.currentStepIndex\r\n }\r\n\r\n public getNextStepIndex = () => {\r\n if (this.totatStepsNumber >= this.currentStepIndex + 1) {\r\n return this.currentStepIndex + 1\r\n } else {\r\n return this.totatStepsNumber\r\n }\r\n }\r\n\r\n public getPassedStepIndex = () => {\r\n return this.passedStepIndex\r\n }\r\n\r\n public getPrevStepIndex = () => {\r\n if (this.currentStepIndex - 1 > 1) {\r\n return this.currentStepIndex - 1\r\n } else {\r\n return 1\r\n }\r\n }\r\n\r\n public getElement = (index: number) => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public destroy = () => {\r\n console.log('destroy stepper')\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement): boolean {\r\n return DataUtil.has(element, 'stepper')\r\n }\r\n\r\n public static getInstance(element: HTMLElement): StepperComponent | null {\r\n if (element !== null && StepperComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'stepper')\r\n }\r\n return null\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let stepper = StepperComponent.getInstance(item)\r\n if (!stepper) {\r\n stepper = new StepperComponent(item, defaultStepperOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n element: HTMLElement,\r\n options: IStepperOptions = defaultStepperOptions\r\n ): StepperComponent | null => {\r\n if (!element) {\r\n return null\r\n }\r\n let stepper = StepperComponent.getInstance(element)\r\n if (!stepper) {\r\n stepper = new StepperComponent(element, options)\r\n }\r\n return stepper\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-stepper]') {\r\n StepperComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StepperComponent, defaultStepperOptions}\r\n","import {\r\n getElementOffset,\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getCSS,\r\n DataUtil,\r\n ElementAnimateUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface StickyOptions {\r\n offset: number\r\n reverse: boolean\r\n animation: boolean\r\n animationSpeed: string\r\n animationClass: string\r\n}\r\n\r\nconst defaultStickyOptions: StickyOptions = {\r\n offset: 200,\r\n reverse: false,\r\n animation: true,\r\n animationSpeed: '0.3s',\r\n animationClass: 'animation-slide-in-down',\r\n}\r\n\r\nclass StickyComponent {\r\n element: HTMLElement\r\n options: StickyOptions\r\n instanceUid: string\r\n instanceName: string | null = ''\r\n attributeName: string\r\n eventTriggerState: boolean\r\n lastScrollTop: number\r\n\r\n constructor(_element: HTMLElement, options: StickyOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStickyOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('sticky')\r\n this.instanceName = this.element.getAttribute('data-kt-sticky-name')\r\n this.attributeName = 'data-kt-sticky-' + this.instanceName\r\n this.eventTriggerState = true\r\n this.lastScrollTop = 0\r\n\r\n // Event Handlers\r\n window.addEventListener('scroll', this.scroll)\r\n\r\n // Initial Launch\r\n this.scroll()\r\n\r\n DataUtil.set(this.element, 'sticky', this)\r\n }\r\n\r\n private scroll = () => {\r\n let offset = this.getOption('offset')\r\n let reverse = this.getOption('reverse')\r\n\r\n // Exit if false\r\n if (offset === false) {\r\n return\r\n }\r\n\r\n let offsetNum = 0\r\n if (typeof offset === 'string') {\r\n offsetNum = parseInt(offset)\r\n }\r\n\r\n const st = getScrollTop()\r\n\r\n // Reverse scroll mode\r\n if (reverse === true) {\r\n // Release on reverse scroll mode\r\n if (st > offsetNum && this.lastScrollTop < st) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable()\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n\r\n if (this.eventTriggerState === true) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n this.eventTriggerState = false\r\n }\r\n } else {\r\n // Back scroll mode\r\n if (document.body.hasAttribute(this.attributeName)) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n }\r\n\r\n if (this.eventTriggerState === false) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n this.eventTriggerState = true\r\n }\r\n }\r\n\r\n this.lastScrollTop = st\r\n return\r\n }\r\n\r\n // Classic scroll mode\r\n if (st > offsetNum) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable()\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n\r\n if (this.eventTriggerState === true) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n this.eventTriggerState = false\r\n }\r\n } else {\r\n // back scroll mode\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n }\r\n\r\n if (this.eventTriggerState === false) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n this.eventTriggerState = true\r\n }\r\n }\r\n }\r\n\r\n private getOption = (name: string) => {\r\n const dataStickyAttr = 'data-kt-sticky-' + name\r\n if (this.element.hasAttribute(dataStickyAttr) === true) {\r\n const attrValueInStr = this.element.getAttribute(dataStickyAttr)\r\n const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '')\r\n if (attrValue !== null && String(attrValue) === 'true') {\r\n return true\r\n } else if (attrValue !== null && String(attrValue) === 'false') {\r\n return false\r\n }\r\n\r\n return attrValue\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n }\r\n }\r\n\r\n private disable = () => {\r\n ElementStyleUtil.remove(this.element, 'top')\r\n ElementStyleUtil.remove(this.element, 'width')\r\n ElementStyleUtil.remove(this.element, 'left')\r\n ElementStyleUtil.remove(this.element, 'right')\r\n ElementStyleUtil.remove(this.element, 'z-index')\r\n ElementStyleUtil.remove(this.element, 'position')\r\n }\r\n\r\n private enable = (update: boolean = false) => {\r\n const top = this.getOption('top')\r\n const left = this.getOption('left')\r\n // const right = this.getOption(\"right\");\r\n let width = this.getOption('width')\r\n const zindex = this.getOption('zindex')\r\n\r\n if (update !== true && this.getOption('animation') === true) {\r\n ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed'))\r\n ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass'))\r\n }\r\n\r\n if (zindex !== null) {\r\n ElementStyleUtil.set(this.element, 'z-index', zindex)\r\n ElementStyleUtil.set(this.element, 'position', 'fixed')\r\n }\r\n\r\n if (top !== null) {\r\n ElementStyleUtil.set(this.element, 'top', top)\r\n }\r\n\r\n if (width !== null && width !== undefined) {\r\n const widthTarget = getObjectPropertyValueByKey(width, 'target')\r\n if (widthTarget) {\r\n const targetElement = document.querySelector(widthTarget)\r\n if (targetElement) {\r\n width = getCSS(targetElement, 'width')\r\n }\r\n }\r\n ElementStyleUtil.set(this.element, 'width', width)\r\n }\r\n\r\n if (left !== null) {\r\n if (String(left).toLowerCase() === 'auto') {\r\n var offsetLeft = getElementOffset(this.element).left\r\n\r\n if (offsetLeft > 0) {\r\n ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px')\r\n }\r\n }\r\n }\r\n }\r\n\r\n public update = () => {\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n this.enable(true)\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, callBack: Function) => {\r\n return EventHandlerUtil.on(this.element, name, callBack)\r\n }\r\n\r\n public one = (name: string, callback: Function) => {\r\n return EventHandlerUtil.one(this.element, name, callback)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string) => {\r\n return EventHandlerUtil.trigger(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return DataUtil.has(element, 'sticky')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && StickyComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'sticky')\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, defaultStickyOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: StickyOptions = defaultStickyOptions\r\n ): StickyComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, options)\r\n }\r\n return sticky\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n\r\n public static reInitialization(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StickyComponent, defaultStickyOptions}\r\n","import {DataUtil, getUniqueIdWithPrefix, EventHandlerUtil} from '../_utils/index'\r\n// Helpers\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ToggleOptions {\r\n saveState: boolean\r\n targetState?: string\r\n toggleState?: string\r\n targetToggleMode?: string\r\n}\r\n\r\nconst defaultToggleOptions: ToggleOptions = {\r\n saveState: false,\r\n}\r\n\r\nclass ToggleComponent {\r\n element: HTMLElement\r\n instanceUid: string\r\n options: ToggleOptions\r\n state: string = ''\r\n target: HTMLElement | null = null\r\n attribute: string = ''\r\n\r\n constructor(_element: HTMLElement, options: ToggleOptions) {\r\n this.options = Object.assign(defaultToggleOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('toggle')\r\n this.element = _element\r\n\r\n const elementTargetAttr = this.element.getAttribute('data-kt-toggle-target')\r\n if (elementTargetAttr) {\r\n this.target = document.querySelector(elementTargetAttr)\r\n }\r\n const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state')\r\n this.state = elementToggleAttr || ''\r\n this.attribute = 'data-kt-' + this.element.getAttribute('data-kt-toggle-name')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Update Instance\r\n // Bind Instance\r\n DataUtil.set(this.element, 'toggle', this)\r\n }\r\n\r\n private _handlers = () => {\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._toggle()\r\n })\r\n }\r\n\r\n // Event handlers\r\n private _toggle = () => {\r\n // Trigger \"after.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.change')\r\n\r\n if (this._isEnabled()) {\r\n this._disable()\r\n } else {\r\n this._enable()\r\n }\r\n\r\n // Trigger \"before.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.changed')\r\n return this\r\n }\r\n\r\n private _enable = () => {\r\n if (this._isEnabled()) {\r\n return\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enable')\r\n this.target?.setAttribute(this.attribute, 'on')\r\n if (this.state.length > 0) {\r\n this.element.classList.add(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.set(this.attribute, 'on', {})\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled')\r\n return this\r\n }\r\n\r\n private _disable = () => {\r\n if (!this._isEnabled()) {\r\n return false\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disable')\r\n this.target?.removeAttribute(this.attribute)\r\n\r\n if (this.state.length > 0) {\r\n this.element.classList.remove(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.delete(this.attribute)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled')\r\n return this\r\n }\r\n\r\n private _isEnabled = () => {\r\n if (!this.target) {\r\n return false\r\n }\r\n\r\n return String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on'\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n // Plugin API\r\n public toggle = () => {\r\n return this._toggle()\r\n }\r\n\r\n public enable = () => {\r\n return this._enable()\r\n }\r\n\r\n public disable = () => {\r\n return this._disable()\r\n }\r\n\r\n public isEnabled = () => {\r\n return this._isEnabled()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event?: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const toggleElement = DataUtil.get(el, 'toggle')\r\n if (toggleElement) {\r\n return toggleElement\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let toggleElement = ToggleComponent.getInstance(item)\r\n if (!toggleElement) {\r\n toggleElement = new ToggleComponent(item, defaultToggleOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: ToggleOptions = defaultToggleOptions\r\n ): ToggleComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let toggle = ToggleComponent.getInstance(item)\r\n if (!toggle) {\r\n toggle = new ToggleComponent(item, options)\r\n }\r\n return toggle\r\n }\r\n\r\n public static reinitialization = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n\r\n public static bootstrap = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n}\r\n\r\nexport {ToggleComponent, defaultToggleOptions}\r\n","/* eslint-disable array-callback-return */\r\n/* eslint-disable no-useless-escape */\r\nimport {DataUtil} from '../_utils/index'\r\n\r\nexport interface IPasswordMeterOptions {\r\n minLength: number\r\n checkUppercase: boolean\r\n checkLowercase: boolean\r\n checkDigit: boolean\r\n checkChar: boolean\r\n scoreHighlightClass: string\r\n}\r\n\r\nexport interface IPasswordMeterQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n visibilityQuery: string\r\n highlightQuery: string\r\n}\r\n\r\nconst defaultPasswordMeterOptions = {\r\n minLength: 8,\r\n checkUppercase: true,\r\n checkLowercase: true,\r\n checkDigit: true,\r\n checkChar: true,\r\n scoreHighlightClass: 'active',\r\n}\r\n\r\nconst defaultPasswordMeterQueires: IPasswordMeterQueries = {\r\n componentName: 'password-meter',\r\n instanseQuery: '[data-kt-password-meter]',\r\n inputQuery: 'input[type]',\r\n visibilityQuery: '[data-kt-password-meter-control=\"visibility\"]',\r\n highlightQuery: '[data-kt-password-meter-control=\"highlight\"]',\r\n}\r\n\r\nclass PasswordMeterComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n visibilityElement: HTMLElement | null\r\n highlightElement: HTMLElement | null\r\n options: IPasswordMeterOptions\r\n queries: IPasswordMeterQueries\r\n score: number\r\n checkSteps: number\r\n\r\n constructor(\r\n _element: HTMLElement,\r\n _options: IPasswordMeterOptions,\r\n _queries: IPasswordMeterQueries\r\n ) {\r\n this.element = _element\r\n this.options = Object.assign(defaultPasswordMeterOptions, _options)\r\n this.queries = _queries\r\n this.score = 0\r\n this.checkSteps = 5\r\n\r\n // Elements\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery)\r\n this.highlightElement = this.element.querySelector(this.queries.highlightQuery)\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n if (this.inputElement) {\r\n this.inputElement.addEventListener('input', () => {\r\n this.check()\r\n })\r\n }\r\n\r\n if (this.visibilityElement) {\r\n this.visibilityElement.addEventListener('click', () => {\r\n this.visitbility()\r\n })\r\n }\r\n }\r\n\r\n private visitbility() {\r\n if (this.visibilityElement && this.inputElement) {\r\n const visibleIcon = this.visibilityElement.querySelector(\r\n 'i:not(.d-none), .svg-icon:not(.d-none)'\r\n )\r\n\r\n const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none')\r\n\r\n const typeAttr = this.inputElement.getAttribute('type') || ''\r\n\r\n if (typeAttr === 'password') {\r\n this.inputElement.setAttribute('type', 'text')\r\n } else {\r\n this.inputElement.setAttribute('type', 'password')\r\n }\r\n\r\n visibleIcon?.classList.add('d-none')\r\n hiddenIcon?.classList.remove('d-none')\r\n\r\n this.inputElement.focus()\r\n }\r\n }\r\n\r\n private checkScore(): number {\r\n return 0\r\n }\r\n\r\n private checkLength(): boolean {\r\n if (this.inputElement) {\r\n return this.inputElement.value.length >= this.options.minLength // 20 score\r\n }\r\n\r\n return false\r\n }\r\n\r\n private checkLowerCase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[a-z]/.test(val) // 20 score\r\n }\r\n\r\n private checkUppercase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[A-Z]/.test(val) // 20 score\r\n }\r\n\r\n private checkDigit(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[0-9]/.test(val) // 20 score\r\n }\r\n\r\n private checkChar(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g.test(val) // 20 score\r\n }\r\n\r\n private getCheckScore(): number {\r\n let count = 1\r\n if (this.options.checkUppercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkLowercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkDigit) {\r\n count++\r\n }\r\n\r\n if (this.options.checkChar) {\r\n count++\r\n }\r\n\r\n this.checkSteps = count\r\n return 100 / this.checkSteps\r\n }\r\n\r\n private highlight() {\r\n const items = this.highlightElement\r\n ? [].slice.call(this.highlightElement.querySelectorAll('div'))\r\n : []\r\n const total = items.length\r\n let index = 0\r\n const checkScore = this.getCheckScore()\r\n const score = this.getScore()\r\n\r\n items.map((item: HTMLElement) => {\r\n index++\r\n if (checkScore * index * (this.checkSteps / total) <= score) {\r\n item.classList.add('active')\r\n } else {\r\n item.classList.remove('active')\r\n }\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public reset = () => {\r\n this.score = 0\r\n this.highlight()\r\n }\r\n\r\n public getScore() {\r\n return this.score\r\n }\r\n\r\n public check() {\r\n let score = 0\r\n const checkScore = this.checkScore()\r\n if (this.checkLength()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkUppercase && this.checkLowerCase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkLowercase && this.checkUppercase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkDigit && this.checkDigit()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkChar && this.checkChar()) {\r\n score = score + checkScore\r\n }\r\n\r\n this.score = score\r\n this.highlight()\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultPasswordMeterQueires.componentName\r\n ) => {\r\n const passwordMeter = DataUtil.get(el, componentName)\r\n if (passwordMeter) {\r\n return passwordMeter\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ): PasswordMeterComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n return passwordMeter\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery\r\n ) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n}\r\nexport {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires}\r\n","import {\r\n DataUtil,\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n EventHandlerUtil,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nexport interface IPlaceOptions {\r\n mode: string\r\n}\r\n\r\nexport interface IPlaceQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultPlaceOptions: IPlaceOptions = {\r\n mode: 'append',\r\n}\r\n\r\nconst defaultPlaceQueires: IPlaceQueries = {\r\n componentName: 'place',\r\n instanseQuery: '[data-kt-place=\"true\"]',\r\n attrQuery: 'data-kt-place-',\r\n}\r\n\r\nclass PlaceComponent {\r\n element: HTMLElement\r\n options: IPlaceOptions\r\n queries: IPlaceQueries\r\n\r\n constructor(_element: HTMLElement, _options: IPlaceOptions, _queries: IPlaceQueries) {\r\n this.element = _element\r\n this.options = Object.assign(defaultPlaceOptions, _options)\r\n this.queries = _queries\r\n\r\n // Initial update\r\n this.update()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private getOption(name: string) {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (attr != null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n const parentSelector = this.getOption('parent')?.toString()\r\n const mode = this.getOption('mode')\r\n const parentElement = parentSelector ? document.querySelector(parentSelector) : null\r\n\r\n if (parentElement && this.element.parentNode !== parentElement) {\r\n if (mode === 'prepend') {\r\n parentElement.prepend(this.element)\r\n } else if (mode === 'append') {\r\n parentElement.append(this.element)\r\n }\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultPlaceQueires.componentName\r\n ): PlaceComponent | null => {\r\n const place = DataUtil.get(el, componentName)\r\n if (place) {\r\n return place as PlaceComponent\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultPlaceQueires.instanseQuery,\r\n options: IPlaceOptions = defaultPlaceOptions,\r\n queries: IPlaceQueries = defaultPlaceQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let place = PlaceComponent.getInstance(item)\r\n if (!place) {\r\n place = new PlaceComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultPlaceQueires.instanseQuery,\r\n options: IPlaceOptions = defaultPlaceOptions,\r\n queries: IPlaceQueries = defaultPlaceQueires\r\n ): PlaceComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let place = PlaceComponent.getInstance(item)\r\n if (!place) {\r\n place = new PlaceComponent(item, options, queries)\r\n }\r\n return place\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultPlaceQueires.instanseQuery) => {\r\n PlaceComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultPlaceQueires.instanseQuery) => {\r\n PlaceComponent.createInstances(selector)\r\n }\r\n}\r\n\r\n// Window resize handler\r\nwindow.addEventListener('resize', function () {\r\n let timer\r\n\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Offcanvas instances on window resize\r\n const elements = document.querySelectorAll(defaultPlaceQueires.instanseQuery)\r\n elements.forEach((el) => {\r\n const place = PlaceComponent.getInstance(el as HTMLElement)\r\n if (place) {\r\n place.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n})\r\n\r\nexport {PlaceComponent, defaultPlaceOptions, defaultPlaceQueires}\r\n","import {createPopper, VirtualElement} from '@popperjs/core'\r\nimport {\r\n getElementChild,\r\n getElementParents,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n insertAfterElement,\r\n slideUp,\r\n slideDown,\r\n DOMEventHandlerUtil,\r\n throttle,\r\n getHighestZindex,\r\n} from '../_utils/index'\r\n\r\nexport interface MenuOptions {\r\n dropdown: {\r\n hoverTimeout: number\r\n zindex: number\r\n }\r\n accordion: {\r\n slideSpeed: number\r\n expand: boolean\r\n }\r\n}\r\n\r\nconst defaultMenuOptions: MenuOptions = {\r\n dropdown: {\r\n hoverTimeout: 200,\r\n zindex: 105,\r\n },\r\n accordion: {\r\n slideSpeed: 250,\r\n expand: false,\r\n },\r\n}\r\n\r\ntype PopperPlacement =\r\n | 'right'\r\n | 'auto'\r\n | 'auto-start'\r\n | 'auto-end'\r\n | 'top'\r\n | 'bottom'\r\n | 'left'\r\n | 'top-start'\r\n | 'top-end'\r\n | 'bottom-start'\r\n | 'bottom-end'\r\n | 'right-start'\r\n | 'right-end'\r\n | 'left-start'\r\n | 'left-end'\r\n | undefined\r\n\r\nclass MenuComponent {\r\n element: HTMLElement\r\n options: MenuOptions\r\n instanceUid: string\r\n triggerElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: MenuOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultMenuOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('menu')\r\n // this.element.setAttribute('data-kt-menu', 'true')\r\n this._setTriggerElement()\r\n this._update()\r\n DataUtil.set(this.element, 'menu', this)\r\n return this\r\n }\r\n\r\n // Set external trigger element\r\n private _setTriggerElement = () => {\r\n const target = document.querySelector(\r\n `[data-kt-menu-target=\"#${this.element.getAttribute('id')}\"`\r\n )\r\n\r\n if (target) {\r\n this.triggerElement = target as HTMLElement\r\n } else if (this.element.closest('[data-kt-menu-trigger]')) {\r\n this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement\r\n } else if (\r\n this.element.parentNode &&\r\n getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')\r\n ) {\r\n const child = getElementChild(\r\n this.element.parentNode as HTMLElement,\r\n '[data-kt-menu-trigger]'\r\n )\r\n if (child) {\r\n this.triggerElement = child\r\n }\r\n }\r\n\r\n if (this.triggerElement) {\r\n DataUtil.set(this.triggerElement, 'menu', this)\r\n }\r\n }\r\n\r\n // Test if menu has external trigger element\r\n private _isTriggerElement = (item: HTMLElement) => {\r\n return this.triggerElement === item\r\n }\r\n\r\n // Get item option(through html attributes)\r\n private _getItemOption = (item: HTMLElement, name: string) => {\r\n let value = null\r\n if (item && item.hasAttribute('data-kt-menu-' + name)) {\r\n const attr = item.getAttribute('data-kt-menu-' + name) || ''\r\n value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n }\r\n return value\r\n }\r\n\r\n // Get item element\r\n private _getItemElement = (_element: HTMLElement) => {\r\n // Element is the external trigger element\r\n if (this._isTriggerElement(_element)) {\r\n return _element\r\n }\r\n\r\n // Element has item toggler attribute\r\n if (_element.hasAttribute('data-kt-menu-trigger')) {\r\n return _element\r\n }\r\n\r\n // Element has item DOM reference in it's data storage\r\n const itemElement = DataUtil.get(_element, 'item')\r\n if (itemElement) {\r\n return itemElement\r\n }\r\n\r\n // Item is parent of element\r\n const item = _element.closest('.menu-item[data-kt-menu-trigger]')\r\n if (item) {\r\n return item\r\n }\r\n\r\n // Element's parent has item DOM reference in it's data storage\r\n const sub = _element.closest('.menu-sub')\r\n if (sub) {\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n }\r\n }\r\n\r\n // Get item parent element\r\n private _getItemParentElement = (item: HTMLElement) => {\r\n const sub = item.closest('.menu-sub')\r\n if (!sub) {\r\n return null\r\n }\r\n\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n\r\n const parentItem = sub.closest('.menu-item[data-kt-menu-trigger]')\r\n if (sub && parentItem) {\r\n return parentItem\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Get item parent elements\r\n private _getItemParentElements = (item: HTMLElement) => {\r\n const parents = []\r\n let parent\r\n let i = 0\r\n let buffer = item\r\n\r\n do {\r\n parent = this._getItemParentElement(buffer)\r\n if (parent) {\r\n parents.push(parent)\r\n buffer = parent\r\n }\r\n\r\n i++\r\n } while (parent !== null && i < 20)\r\n\r\n if (this.triggerElement) {\r\n parents.unshift(this.triggerElement)\r\n }\r\n\r\n return parents\r\n }\r\n\r\n // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)\r\n private _getDropdownPopperConfig = (item: HTMLElement) => {\r\n // Placement\r\n const placementOption = this._getItemOption(item, 'placement')\r\n let placement: PopperPlacement = 'right'\r\n if (placementOption) {\r\n placement = placementOption as PopperPlacement\r\n }\r\n\r\n // Flip\r\n const flipValue = this._getItemOption(item, 'flip')\r\n const flip = flipValue ? flipValue.toString().split(',') : []\r\n\r\n // Offset\r\n const offsetValue = this._getItemOption(item, 'offset')\r\n const offset = offsetValue ? offsetValue.toString().split(',') : []\r\n\r\n // Strategy\r\n const strategy: 'absolute' | 'fixed' | undefined =\r\n this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'\r\n\r\n return {\r\n placement: placement,\r\n strategy: strategy,\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: offset,\r\n },\r\n },\r\n {\r\n name: 'preventOverflow',\r\n options: {\r\n //altBoundary: true,\r\n //altAxis: true,\r\n rootBoundary: 'clippingParents',\r\n },\r\n },\r\n {\r\n name: 'flip',\r\n options: {\r\n altBoundary: true,\r\n fallbackPlacements: flip,\r\n },\r\n },\r\n ],\r\n }\r\n }\r\n\r\n // Get item child element\r\n private _getItemChildElement = (item: HTMLElement) => {\r\n let selector = item\r\n\r\n const subItem = DataUtil.get(item, 'sub')\r\n if (subItem) {\r\n selector = subItem\r\n }\r\n\r\n if (selector) {\r\n //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');\r\n const element = selector.querySelector('.menu-item[data-kt-menu-trigger]')\r\n if (element) {\r\n return element\r\n }\r\n }\r\n return null\r\n }\r\n\r\n // Get item child elements\r\n private _getItemChildElements = (item: HTMLElement) => {\r\n const children = []\r\n let child\r\n let i = 0\r\n let buffer = item\r\n do {\r\n child = this._getItemChildElement(buffer)\r\n if (child) {\r\n children.push(child)\r\n buffer = child as HTMLElement\r\n }\r\n\r\n i++\r\n } while (child !== null && i < 20)\r\n\r\n return children\r\n }\r\n\r\n // Get item sub element\r\n private _getItemSubElement = (item: HTMLElement) => {\r\n if (!item) {\r\n return null\r\n }\r\n\r\n if (this._isTriggerElement(item)) {\r\n return this.element\r\n }\r\n\r\n if (item.classList.contains('menu-sub')) {\r\n return item\r\n } else if (DataUtil.has(item, 'sub')) {\r\n return DataUtil.get(item, 'sub')\r\n } else {\r\n return getElementChild(item, '.menu-sub')\r\n }\r\n }\r\n\r\n private _getCss = (el: HTMLElement, styleProp: string) => {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n }\r\n\r\n // Get item sub type\r\n private _getItemSubType = (element: HTMLElement) => {\r\n const sub = this._getItemSubElement(element)\r\n if (sub && parseInt(this._getCss(sub, 'z-index')) > 0) {\r\n return 'dropdown'\r\n } else {\r\n return 'accordion'\r\n }\r\n }\r\n\r\n // Test if item's sub is shown\r\n private _isItemSubShown = (item: HTMLElement) => {\r\n let sub = this._getItemSubElement(item)\r\n if (sub) {\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n return sub.classList.contains('show') && sub.hasAttribute('data-popper-placement')\r\n } else {\r\n return item.classList.contains('show')\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n // Test if item dropdown is permanent\r\n private _isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'permanent') === true\r\n }\r\n\r\n // Test if item's parent is shown\r\n private _isItemParentShown = (item: HTMLElement) => {\r\n return getElementParents(item, '.menu-item.show').length > 0\r\n }\r\n\r\n // Test of it is item sub element\r\n private _isItemSubElement = (item: HTMLElement) => {\r\n return item.classList.contains('menu-sub')\r\n }\r\n\r\n // Test if item has sub\r\n private _hasItemSub = (item: HTMLElement) => {\r\n return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')\r\n }\r\n\r\n // Get link element\r\n private _getItemLinkElement = (item: HTMLElement) => {\r\n return getElementChild(item, '.menu-link')\r\n }\r\n\r\n // Get toggle element\r\n private _getItemToggleElement = (item: HTMLElement) => {\r\n if (this.triggerElement) {\r\n return this.triggerElement\r\n }\r\n\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n // Show item dropdown\r\n private _showDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {\r\n return\r\n }\r\n\r\n // Hide all currently shown dropdowns except current one\r\n MenuComponent.hideDropdowns(item)\r\n\r\n // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);\r\n const sub = this._getItemSubElement(item)\r\n const width = this._getItemOption(item, 'width')\r\n const height = this._getItemOption(item, 'height')\r\n\r\n let zindex = this.options.dropdown.zindex\r\n const parentZindex = getHighestZindex(item) // update\r\n // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update\r\n if (parentZindex !== null && parentZindex >= zindex) {\r\n zindex = parentZindex + 1\r\n }\r\n\r\n if (zindex) {\r\n ElementStyleUtil.set(sub, 'z-index', zindex)\r\n }\r\n\r\n if (width) {\r\n ElementStyleUtil.set(sub, 'width', width)\r\n }\r\n\r\n if (height) {\r\n ElementStyleUtil.set(sub, 'height', height)\r\n }\r\n\r\n this.initDropdownPopper(item, sub)\r\n\r\n item.classList.add('show')\r\n item.classList.add('menu-dropdown')\r\n sub.classList.add('show')\r\n\r\n // Append the sub the the root of the menu\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n document.body.appendChild(sub)\r\n DataUtil.set(item, 'sub', sub)\r\n DataUtil.set(sub, 'item', item)\r\n DataUtil.set(sub, 'menu', this)\r\n } else {\r\n DataUtil.set(sub, 'item', item)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')\r\n }\r\n\r\n // Init dropdown popper(new)\r\n private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {\r\n // Setup popper instance\r\n let reference\r\n const attach = this._getItemOption(item, 'attach') as string\r\n\r\n if (attach) {\r\n if (attach === 'parent') {\r\n reference = item.parentNode\r\n } else {\r\n reference = document.querySelector(attach)\r\n }\r\n } else {\r\n reference = item\r\n }\r\n\r\n if (reference) {\r\n const popper = createPopper(\r\n reference as Element | VirtualElement,\r\n sub,\r\n this._getDropdownPopperConfig(item)\r\n )\r\n DataUtil.set(item, 'popper', popper)\r\n }\r\n }\r\n\r\n // Hide item dropdown\r\n private _hideDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n ElementStyleUtil.set(sub, 'z-index', '')\r\n ElementStyleUtil.set(sub, 'width', '')\r\n ElementStyleUtil.set(sub, 'height', '')\r\n item.classList.remove('show')\r\n item.classList.remove('menu-dropdown')\r\n sub.classList.remove('show')\r\n\r\n // Append the sub back to it's parent\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n if (item.classList.contains('menu-item')) {\r\n item.appendChild(sub)\r\n } else {\r\n insertAfterElement(this.element, item)\r\n }\r\n\r\n DataUtil.remove(item, 'sub')\r\n DataUtil.remove(sub, 'item')\r\n DataUtil.remove(sub, 'menu')\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n // Destroy popper(new)\r\n this.destroyDropdownPopper(item)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n // Destroy dropdown popper(new)\r\n private destroyDropdownPopper = (item: HTMLElement) => {\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n private _showAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {\r\n return\r\n }\r\n\r\n if (this.options.accordion.expand === false) {\r\n this._hideAccordions(item)\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n this._hideDropdown(item)\r\n }\r\n\r\n item.classList.add('hover') // updateWW\r\n item.classList.add('showing')\r\n\r\n const subElement = this._getItemSubElement(item)\r\n if (subElement) {\r\n const sub = subElement as HTMLElement\r\n slideDown(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('showing')\r\n item.classList.add('show')\r\n sub.classList.add('show')\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')\r\n })\r\n }\r\n }\r\n\r\n private _hideAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n item.classList.add('hiding')\r\n\r\n if (sub) {\r\n slideUp(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('hiding')\r\n item.classList.remove('show')\r\n sub.classList.remove('show')\r\n item.classList.remove('hover') // update\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')\r\n })\r\n }\r\n }\r\n\r\n // Hide all shown accordions of item\r\n private _hideAccordions = (item: HTMLElement) => {\r\n const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]')\r\n if (itemsToHide && itemsToHide.length > 0) {\r\n for (var i = 0, len = itemsToHide.length; i < len; i++) {\r\n const itemToHide = itemsToHide[i] as HTMLElement\r\n\r\n if (\r\n this._getItemSubType(itemToHide) === 'accordion' &&\r\n itemToHide !== item &&\r\n item.contains(itemToHide) === false &&\r\n itemToHide.contains(item) === false\r\n ) {\r\n this._hideAccordion(itemToHide)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Event Handlers\r\n // Reset item state classes if item sub type changed\r\n private _reset = (item: HTMLElement) => {\r\n if (this._hasItemSub(item) === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n\r\n // Reset sub state if sub type is changed during the window resize\r\n if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {\r\n // updated\r\n item.classList.remove('hover')\r\n item.classList.remove('show')\r\n item.classList.remove('show')\r\n if (sub && sub.removeClass) {\r\n sub.removeClass(sub, 'show')\r\n }\r\n } // updated\r\n }\r\n\r\n // TODO: not done\r\n private _destroy = () => {}\r\n\r\n // Update all item state classes if item sub type changed\r\n private _update = () => {\r\n const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')\r\n items.forEach((el) => this._reset(el as HTMLElement))\r\n }\r\n\r\n // Hide item sub\r\n private _hide = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === false) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._hideDropdown(item)\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._hideAccordion(item)\r\n }\r\n }\r\n\r\n // Show item sub\r\n private _show = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._showDropdown(item) // // show current dropdown\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._showAccordion(item)\r\n }\r\n\r\n // Remember last submenu type\r\n\r\n DataUtil.set(item, 'type', this._getItemSubType(item)) // updated\r\n }\r\n\r\n // Toggle item sub\r\n private _toggle = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n this._hide(item)\r\n } else {\r\n this._show(item)\r\n }\r\n }\r\n\r\n // Mouseout handle\r\n private _mouseout = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n this._hide(item)\r\n }\r\n }, this.options.dropdown.hoverTimeout)\r\n\r\n DataUtil.set(item, 'hover', '1')\r\n DataUtil.set(item, 'timeout', timeout)\r\n }\r\n\r\n // Mouseover handle\r\n private _mouseover = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n clearTimeout(DataUtil.get(item, 'timeout'))\r\n DataUtil.remove(item, 'hover')\r\n DataUtil.remove(item, 'timeout')\r\n }\r\n\r\n this._show(item)\r\n }\r\n\r\n // Dismiss handler\r\n private _dismiss = (element: HTMLElement, e: Event) => {\r\n const item = this._getItemElement(element)\r\n const items = this._getItemChildElements(item)\r\n //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n const itemSubType = this._getItemSubType(item)\r\n if (item !== null && itemSubType === 'dropdown') {\r\n this._hide(item) // hide items dropdown\r\n\r\n // Hide all child elements as well\r\n if (items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {\r\n this._hide(items[i] as HTMLElement)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Link handler\r\n private _link = (element: HTMLElement, e: Event) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {\r\n return\r\n }\r\n\r\n // Dismiss all shown dropdowns\r\n MenuComponent.hideDropdowns(undefined)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')\r\n }\r\n\r\n private _click = (element: HTMLElement, e: Event) => {\r\n e.preventDefault()\r\n const item = this._getItemElement(element)\r\n if (this._getItemOption(item, 'trigger') !== 'click') {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'toggle') === false) {\r\n this._show(item)\r\n } else {\r\n this._toggle(item)\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public click = (element: HTMLElement, e: Event) => {\r\n return this._click(element, e)\r\n }\r\n\r\n public link = (element: HTMLElement, e: Event) => {\r\n return this._link(element, e)\r\n }\r\n\r\n public dismiss = (element: HTMLElement, e: Event) => {\r\n return this._dismiss(element, e)\r\n }\r\n\r\n public mouseover = (element: HTMLElement, e: Event) => {\r\n return this._mouseover(element, e as MouseEvent)\r\n }\r\n\r\n public mouseout = (element: HTMLElement, e: Event) => {\r\n return this._mouseout(element, e as MouseEvent)\r\n }\r\n\r\n // General Methods\r\n public getItemTriggerType = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'trigger')\r\n }\r\n\r\n public getItemSubType = (element: HTMLElement) => {\r\n return this._getItemSubType(element)\r\n }\r\n\r\n public show = (item: HTMLElement) => {\r\n return this._show(item)\r\n }\r\n\r\n public hide = (item: HTMLElement) => {\r\n return this._hide(item)\r\n }\r\n\r\n public reset = (item: HTMLElement) => {\r\n return this._reset(item)\r\n }\r\n\r\n public update = () => {\r\n return this._update()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n public getItemLinkElement = (item: HTMLElement) => {\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n public getItemToggleElement = (item: HTMLElement) => {\r\n return this._getItemToggleElement(item)\r\n }\r\n\r\n public getItemSubElement = (item: HTMLElement) => {\r\n return this._getItemSubElement(item)\r\n }\r\n\r\n public getItemParentElements = (item: HTMLElement) => {\r\n return this._getItemParentElements(item)\r\n }\r\n\r\n public isItemSubShown = (item: HTMLElement) => {\r\n return this._isItemSubShown(item)\r\n }\r\n\r\n public isItemParentShown = (item: HTMLElement) => {\r\n return this._isItemParentShown(item)\r\n }\r\n\r\n public getTriggerElement = () => {\r\n return this.triggerElement\r\n }\r\n\r\n public isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._isItemDropdownPermanent(item)\r\n }\r\n\r\n // Accordion Mode Methods\r\n public hideAccordions = (item: HTMLElement) => {\r\n return this._hideAccordions(item)\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: any) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: any) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // public static methods\r\n // Get KTMenu instance by element\r\n public static getInstance = (element: HTMLElement) => {\r\n // Element has menu DOM reference in it's DATA storage\r\n const elementMenu = DataUtil.get(element, 'menu')\r\n if (elementMenu) {\r\n return elementMenu\r\n }\r\n\r\n // Element has .menu parent\r\n const menu = element.closest('.menu')\r\n if (menu) {\r\n const menuData = DataUtil.get(menu as HTMLElement, 'menu')\r\n if (menuData) {\r\n return menuData\r\n }\r\n }\r\n\r\n // Element has a parent with DOM reference to .menu in it's DATA storage\r\n if (element.classList.contains('menu-link')) {\r\n const sub = element.closest('.menu-sub')\r\n if (sub) {\r\n const subMenu = DataUtil.get(sub as HTMLElement, 'menu')\r\n if (subMenu) {\r\n return subMenu\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Hide all dropdowns and skip one if provided\r\n public static hideDropdowns = (skip: HTMLElement | undefined) => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n\r\n if (items && items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n const item = items[i]\r\n const menu = MenuComponent.getInstance(item as HTMLElement)\r\n\r\n if (menu && menu.getItemSubType(item) === 'dropdown') {\r\n if (skip) {\r\n if (\r\n menu.getItemSubElement(item).contains(skip) === false &&\r\n item.contains(skip) === false &&\r\n item !== skip\r\n ) {\r\n menu.hide(item)\r\n }\r\n } else {\r\n menu.hide(item)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public static updateDropdowns = () => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (items && items.length > 0) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i]\r\n\r\n if (DataUtil.has(item as HTMLElement, 'popper')) {\r\n DataUtil.get(item as HTMLElement, 'popper').forceUpdate()\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Global handlers\r\n public static createInstances = (selector: string) => {\r\n // Initialize menus\r\n document.querySelectorAll(selector).forEach((el) => {\r\n const menuItem = el as HTMLElement\r\n let menuInstance = MenuComponent.getInstance(menuItem)\r\n if (!menuInstance) {\r\n menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)\r\n }\r\n })\r\n }\r\n\r\n public static initGlobalHandlers = () => {\r\n // Dropdown handler\r\n document.addEventListener('click', (e) => {\r\n const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (menuItems && menuItems.length > 0) {\r\n for (let i = 0; i < menuItems.length; i++) {\r\n const item = menuItems[i] as HTMLElement\r\n const menuObj = MenuComponent.getInstance(item) as MenuComponent\r\n if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const menu = menuObj.getElement()\r\n const sub = menuObj.getItemSubElement(item) as HTMLElement\r\n if (item === e.target || item.contains(e.target as HTMLElement)) {\r\n continue\r\n }\r\n\r\n if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {\r\n continue\r\n }\r\n menuObj.hide(item)\r\n }\r\n }\r\n }\r\n })\r\n\r\n // Sub toggle handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger=\"auto\"])',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.click(this, e)\r\n }\r\n }\r\n )\r\n\r\n // // Link handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item:not([data-kt-menu-trigger]) > .menu-link',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n e.stopPropagation()\r\n const menu = MenuComponent.getInstance(this)\r\n if (menu && menu.link) {\r\n return menu.link(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Dismiss handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-dismiss=\"true\"]',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.dismiss(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseover handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseover',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseover(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseout handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseout',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseout(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Resize handler\r\n window.addEventListener('resize', () => {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.querySelectorAll('[data-kt-menu=\"true\"]')\r\n elements.forEach((el) => {\r\n const menu = MenuComponent.getInstance(el as HTMLElement)\r\n if (menu) {\r\n menu.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n MenuComponent.initGlobalHandlers()\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: MenuOptions = defaultMenuOptions\r\n ): MenuComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let menu = MenuComponent.getInstance(item)\r\n if (!menu) {\r\n menu = new MenuComponent(item, options)\r\n }\r\n return menu\r\n }\r\n}\r\n\r\nexport {MenuComponent, defaultMenuOptions}\r\n","import {\r\n EventHandlerUtil,\r\n DataUtil,\r\n getBreakpoint,\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nimport {MenuComponent, defaultMenuOptions} from './MenuComponent'\r\n\r\nexport interface ISearchOptions {\r\n minLength: number // Miniam text lenght to query search\r\n keypress: boolean // Enable search on keypress\r\n enter: boolean // Enable search on enter key press\r\n layout: 'menu' | 'inline' // Use 'menu' or 'inline' layout options to display search results\r\n responsive?: number // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value\r\n showOnFocus: boolean // Always show menu on input focus\r\n}\r\n\r\nexport interface ISearchQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultSearchOptions: ISearchOptions = {\r\n minLength: 2, // Miniam text lenght to query search\r\n keypress: true, // Enable search on keypress\r\n enter: true, // Enable search on enter key press\r\n layout: 'menu', // Use 'menu' or 'inline' layout options to display search results\r\n showOnFocus: true, // Always show menu on input focus\r\n}\r\n\r\nconst defaultSearchQueires: ISearchQueries = {\r\n componentName: 'search',\r\n instanseQuery: '[data-kt-search]',\r\n attrQuery: 'data-kt-search-',\r\n}\r\n\r\nclass SearchComponent {\r\n element: HTMLElement\r\n contentElement: HTMLElement\r\n formElement: HTMLFormElement\r\n inputElement: HTMLInputElement\r\n spinnerElement: HTMLElement\r\n clearElement: HTMLElement\r\n toggleElement: HTMLElement\r\n submitElement: HTMLElement\r\n toolbarElement: HTMLElement\r\n resultsElement: HTMLElement\r\n suggestionElement: HTMLElement\r\n emptyElement: HTMLElement\r\n layout: any\r\n\r\n options: ISearchOptions\r\n queries: ISearchQueries\r\n\r\n processing: boolean = false\r\n menuObject: MenuComponent | undefined\r\n\r\n constructor(_element: HTMLElement, _options: ISearchOptions, _queries: ISearchQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultSearchOptions, _options)\r\n this.queries = _queries\r\n\r\n // Elements\r\n this.element = _element\r\n this.contentElement = this._getElement('content') as HTMLElement\r\n this.formElement = this._getElement('form') as HTMLFormElement\r\n this.inputElement = this._getElement('input') as HTMLInputElement\r\n this.spinnerElement = this._getElement('spinner') as HTMLElement\r\n this.clearElement = this._getElement('clear') as HTMLElement\r\n this.toggleElement = this._getElement('toggle') as HTMLElement\r\n this.submitElement = this._getElement('submit') as HTMLElement\r\n this.toolbarElement = this._getElement('toolbar') as HTMLElement\r\n\r\n this.resultsElement = this._getElement('results') as HTMLElement\r\n this.suggestionElement = this._getElement('suggestion') as HTMLElement\r\n this.emptyElement = this._getElement('empty') as HTMLElement\r\n\r\n // Layout\r\n this.layout = this.getOption('layout')\r\n if (this.layout === 'menu') {\r\n this.menuObject = new MenuComponent(this.contentElement, defaultMenuOptions)\r\n }\r\n\r\n // Update\r\n this.update()\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private _getElement = (name: string) => {\r\n return this.element.querySelector('[data-kt-search-element=\"' + name + '\"]')\r\n }\r\n\r\n // Get option\r\n private getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n // Check if responsive form mode is enabled\r\n private getResponsiveFormMode = () => {\r\n const responsive = this.getOption('responsive') as string\r\n const width = getViewPort().width\r\n\r\n if (!responsive) {\r\n return null\r\n }\r\n\r\n const breakpoint = getBreakpoint(responsive)\r\n let breakPointNum = -1\r\n if (!breakpoint) {\r\n breakPointNum = parseInt(responsive)\r\n } else {\r\n breakPointNum = +breakpoint\r\n }\r\n\r\n if (width < breakPointNum) {\r\n return 'on'\r\n } else {\r\n return 'off'\r\n }\r\n }\r\n\r\n // Focus\r\n private focus = () => {\r\n this.element.classList.add('focus')\r\n\r\n if (\r\n this.getOption('show-on-focus') === true ||\r\n this.inputElement.value.length >= this.options.minLength\r\n ) {\r\n this.show()\r\n }\r\n }\r\n\r\n // Blur\r\n private blur = () => {\r\n this.element.classList.remove('focus')\r\n }\r\n\r\n // Enter\r\n private enter = (e: KeyboardEvent) => {\r\n const key = e.charCode || e.keyCode || 0\r\n\r\n if (key === 13) {\r\n e.preventDefault()\r\n\r\n this.search()\r\n }\r\n }\r\n\r\n // Input\r\n private input = () => {\r\n if (this.getOption('min-length')) {\r\n const minLength = parseInt(this.getOption('min-length') as string)\r\n\r\n if (this.inputElement.value.length >= minLength) {\r\n this.search()\r\n } else if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n }\r\n }\r\n\r\n private handlers(): void {\r\n // Focus\r\n this.inputElement.addEventListener('focus', this.focus)\r\n\r\n // Blur\r\n this.inputElement.addEventListener('blur', this.blur)\r\n\r\n // Keypress\r\n if (this.getOption('keypress') === true) {\r\n this.inputElement.addEventListener('input', this.input)\r\n }\r\n\r\n // Submit\r\n if (this.submitElement) {\r\n this.submitElement.addEventListener('click', this.search)\r\n }\r\n\r\n // Enter\r\n if (this.getOption('enter') === true) {\r\n this.inputElement.addEventListener('keypress', this.enter)\r\n }\r\n\r\n // Clear\r\n if (this.clearElement) {\r\n this.clearElement.addEventListener('click', this.clear)\r\n }\r\n\r\n // Menu\r\n if (this.menuObject) {\r\n // Toggle menu\r\n if (this.toggleElement) {\r\n this.toggleElement.addEventListener('click', this.show)\r\n\r\n this.menuObject.on('kt.menu.dropdown.show', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.add('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.add('show')\r\n }\r\n })\r\n\r\n this.menuObject.on('kt.menu.dropdown.hide', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('show')\r\n }\r\n })\r\n }\r\n\r\n this.menuObject.on('kt.menu.dropdown.shown', function () {\r\n // @ts-ignore\r\n this.inputElement.focus()\r\n })\r\n }\r\n\r\n // Window resize handling\r\n window.addEventListener('resize', () => {\r\n let timer\r\n\r\n throttle(\r\n timer,\r\n () => {\r\n this.update()\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n // Update\r\n public update = () => {\r\n // Handle responsive form\r\n if (this.layout === 'menu') {\r\n let responsiveFormMode = this.getResponsiveFormMode()\r\n\r\n if (responsiveFormMode === 'on' && this.contentElement.contains(this.formElement) === false) {\r\n this.contentElement.prepend(this.formElement)\r\n this.formElement.classList.remove('d-none')\r\n } else if (\r\n responsiveFormMode === 'off' &&\r\n this.contentElement.contains(this.formElement) === true\r\n ) {\r\n this.element.prepend(this.formElement)\r\n this.formElement.classList.add('d-none')\r\n }\r\n }\r\n }\r\n\r\n // Show menu\r\n public show = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.show(this.element)\r\n }\r\n }\r\n\r\n // Hide menu\r\n public hide = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.hide(this.element)\r\n }\r\n }\r\n\r\n // Search\r\n public search = () => {\r\n if (this.processing === false) {\r\n // Show search spinner\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide search clear button\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Hide search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.add('d-none')\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.processing = true\r\n EventHandlerUtil.trigger(this.element, 'kt.search.process')\r\n }\r\n }\r\n\r\n // Complete\r\n public complete = () => {\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.clearElement) {\r\n this.clearElement.classList.remove('d-none')\r\n }\r\n\r\n if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.show()\r\n\r\n this.processing = false\r\n }\r\n\r\n // Clear\r\n public clear = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.search.clear') === false) {\r\n return\r\n }\r\n\r\n // Clear and focus input\r\n this.inputElement.value = ''\r\n this.inputElement.focus()\r\n\r\n // Hide clear icon\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide menu\r\n if (this.getOption('show-on-focus') === false) {\r\n this.hide()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.search.cleared')\r\n }\r\n\r\n public isProcessing = () => {\r\n return this.processing\r\n }\r\n\r\n public getQuery = () => {\r\n return this.inputElement.value\r\n }\r\n\r\n public getMenu = () => {\r\n return this.menuObject\r\n }\r\n\r\n public getFormElement = () => {\r\n return this.formElement\r\n }\r\n\r\n public getInputElement(): HTMLInputElement {\r\n return this.inputElement\r\n }\r\n\r\n public getContentElement(): HTMLElement {\r\n return this.contentElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultSearchQueires.componentName\r\n ) => {\r\n const Search = DataUtil.get(el, componentName)\r\n if (Search) {\r\n return Search\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ): SearchComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n return Search\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n}\r\nexport {SearchComponent, defaultSearchOptions, defaultSearchQueires}\r\n","import React, {useRef, useEffect} from 'react'\r\nimport {useLocation} from 'react-router'\r\nimport clsx from 'clsx'\r\nimport {AsideMenuMain} from './AsideMenuMain'\r\nimport {\r\n DrawerComponent,\r\n MenuComponent,\r\n ScrollComponent,\r\n ToggleComponent,\r\n} from '../../../assets/ts/components'\r\n\r\ntype Props = {\r\n asideMenuCSSClasses: string[]\r\n}\r\n\r\nconst AsideMenu: React.FC = ({asideMenuCSSClasses}) => {\r\n const scrollRef = useRef(null)\r\n const {pathname} = useLocation()\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n MenuComponent.reinitialization()\r\n DrawerComponent.reinitialization()\r\n ToggleComponent.reinitialization()\r\n ScrollComponent.reinitialization()\r\n if (scrollRef.current) {\r\n scrollRef.current.scrollTop = 0\r\n }\r\n }, 50)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pathname])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport {AsideMenu}\r\n","/* eslint-disable react/jsx-no-target-blank */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC} from 'react'\r\nimport {Link} from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport {useLayout} from '../../core'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\nimport {AsideMenu} from './AsideMenu'\r\n\r\nconst AsideDefault: FC = () => {\r\n const {config, classes} = useLayout()\r\n const {aside} = config\r\n\r\n return (\r\n \r\n {/* begin::Brand */}\r\n \r\n )}\r\n {/* end::Aside toggler */}\r\n \r\n {/* end::Brand */}\r\n\r\n {/* begin::Aside menu */}\r\n
\r\n \r\n
\r\n {/* end::Aside menu */}\r\n\r\n \r\n )\r\n}\r\n\r\nexport {AsideDefault}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {useLayout} from '../core'\r\n\r\nconst Footer: FC = () => {\r\n const {classes} = useLayout()\r\n return (\r\n \r\n {/* end::Container */}\r\n \r\n )\r\n}\r\n\r\nexport {Footer}\r\n","import React from 'react'\r\nimport {MenuItem} from './MenuItem'\r\nimport {MenuInnerWithSub} from './MenuInnerWithSub'\r\nimport {MegaMenu} from './MegaMenu'\r\nimport {useIntl} from 'react-intl'\r\n\r\nexport function MenuInner() {\r\n const intl = useIntl()\r\n return (\r\n <>\r\n {/* */}\r\n {/* */}\r\n \r\n \r\n )\r\n}\r\n","import React, {FC} from 'react'\r\nimport {MenuInner} from './MenuInner'\r\n\r\nconst Header: FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport {Header}\r\n","import { useSelector } from 'react-redux'\r\nimport { RootState } from \"../../../setup/redux/RootReducer\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport default function BackButton() {\r\n\r\n const pageLinks = useSelector((state: RootState) => state.pageLinkReducer);\r\n\r\n const history = useHistory();\r\n\r\n\r\n const backButton = () => {\r\n console.log(\"pageLinks =>\", pageLinks);\r\n if (pageLinks.PageLinkList?.length == 1) {\r\n history.push('/');\r\n }\r\n\r\n var lastItem = pageLinks.PageLinkList![pageLinks.PageLinkList!.length - 1]\r\n\r\n history.push(lastItem?.path as any);\r\n }\r\n\r\n return (\r\n <>\r\n backButton()} className=\"backButtonCss\" >\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import clsx from 'clsx'\r\nimport React, {FC} from 'react'\r\nimport {isMobile} from 'react-device-detect'\r\nimport {Link} from 'react-router-dom'\r\nimport BackButton from '../../../../../app/pages/components/BackButton'\r\nimport {useLayout} from '../../../core/LayoutProvider'\r\nimport {usePageData} from '../../../core/PageData'\r\n\r\nconst DefaultTitle: FC = () => {\r\n const {pageTitle, pageDescription, pageBreadcrumbs} = usePageData()\r\n const {config, attributes, classes} = useLayout()\r\n return (\r\n \r\n {/* begin::Title */}\r\n {/* {pageTitle && (\r\n //

\r\n // {pageTitle}\r\n // {pageDescription && config.pageTitle && config.pageTitle.description && (\r\n // <>\r\n // \r\n // {pageDescription}\r\n // \r\n // )}\r\n //

\r\n )} */}\r\n {/* end::Title */}\r\n\r\n {pageBreadcrumbs &&\r\n pageBreadcrumbs.length > 0 &&\r\n config.pageTitle &&\r\n config.pageTitle.breadCrumbs && (\r\n <>\r\n {config.pageTitle.direction === 'row' && (\r\n \r\n )}\r\n
    \r\n {isMobile && (\r\n
  • \r\n \r\n
  • \r\n )}\r\n {Array.from(pageBreadcrumbs).map((item, index) => (\r\n \r\n {!item.isSeparator ? (\r\n \r\n {item.title}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ))}\r\n
  • {pageTitle}
  • \r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport {DefaultTitle}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport { FC } from 'react'\r\nimport { shallowEqual, useSelector } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { UserModel } from '../../../../app/modules/auth/models/UserModel'\r\nimport { RootState } from '../../../../setup'\r\nimport AuthService from '../../../../app/modules/auth/redux/AuthService'\r\n\r\nconst HeaderUserMenu: FC = () => {\r\n const respUser = AuthService.GetCurrentUser();\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {/* Logo */}\r\n
\r\n\r\n
\r\n
\r\n {respUser?.userData?.salesPersonName}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n Sign Out\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport { HeaderUserMenu }\r\n","import {toAbsoluteUrl} from '../../../helpers'\r\n\r\nexport function FallbackView() {\r\n return (\r\n
\r\n Start logo\r\n Loading ...\r\n
\r\n )\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC, useEffect, useRef, useState} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\nimport {Formik, Form, FormikValues, Field, ErrorMessage} from 'formik'\r\nimport * as Yup from 'yup'\r\nimport {StepperComponent} from '../../../assets/ts/components'\r\n\r\ninterface ICreateAccount {\r\n appName: string\r\n category: string\r\n framework: string\r\n dbName: string\r\n dbType: string\r\n nameOnCard: string\r\n cardNumber: string\r\n cardExpiryMonth: string\r\n cardExpiryYear: string\r\n cardCvv: string\r\n saveCard: string\r\n}\r\n\r\nconst inits: ICreateAccount = {\r\n appName: '',\r\n category: '1',\r\n framework: '1',\r\n dbName: '',\r\n dbType: '1',\r\n nameOnCard: 'Max Doe',\r\n cardNumber: '4111 1111 1111 1111',\r\n cardExpiryMonth: '1',\r\n cardExpiryYear: '2',\r\n cardCvv: '123',\r\n saveCard: '1',\r\n}\r\n\r\nconst createAppSchema = [\r\n Yup.object({\r\n appName: Yup.string().required().label('App name'),\r\n category: Yup.string().required().label('Category'),\r\n }),\r\n Yup.object({\r\n framework: Yup.string().required().label('Framework'),\r\n }),\r\n Yup.object({\r\n dbName: Yup.string().required().label('Database name'),\r\n dbType: Yup.string().required().label('Database engine'),\r\n }),\r\n Yup.object({\r\n nameOnCard: Yup.string().required().label('Name'),\r\n cardNumber: Yup.string().required().label('Card Number'),\r\n cardExpiryMonth: Yup.string().required().label('Expiration Month'),\r\n cardExpiryYear: Yup.string().required().label('Expiration Year'),\r\n cardCvv: Yup.string().required().label('CVV'),\r\n }),\r\n]\r\n\r\nconst Main: FC = () => {\r\n const stepperRef = useRef(null)\r\n const stepper = useRef(null)\r\n const [currentSchema, setCurrentSchema] = useState(createAppSchema[0])\r\n const [initValues] = useState(inits)\r\n\r\n const loadStepper = () => {\r\n stepper.current = StepperComponent.createInsance(stepperRef.current as HTMLDivElement)\r\n }\r\n\r\n const prevStep = () => {\r\n if (!stepper.current) {\r\n return\r\n }\r\n\r\n stepper.current.goPrev()\r\n\r\n setCurrentSchema(createAppSchema[stepper.current.currentStepIndex - 1])\r\n }\r\n\r\n const submitStep = (values: ICreateAccount, actions: FormikValues) => {\r\n if (!stepper.current) {\r\n return\r\n }\r\n\r\n setCurrentSchema(createAppSchema[stepper.current.currentStepIndex])\r\n\r\n if (stepper.current.currentStepIndex !== stepper.current.totatStepsNumber) {\r\n stepper.current.goNext()\r\n } else {\r\n stepper.current.goto(1)\r\n actions.resetForm()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!stepperRef.current) {\r\n return\r\n }\r\n\r\n loadStepper()\r\n }, [stepperRef])\r\n\r\n return (\r\n \r\n \r\n )\r\n}\r\n\r\nexport {Main}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst InviteUsers: FC = () => {\r\n const users = [\r\n {\r\n avatar: '/media/avatars/150-1.jpg',\r\n name: 'Emma Smith',\r\n email: 'e.smith@kpmg.com.au',\r\n access: '1',\r\n },\r\n {\r\n state: 'danger',\r\n name: 'Melody Macy',\r\n email: 'melody@altbox.com',\r\n access: '1',\r\n },\r\n {\r\n avatar: '/media/avatars/150-2.jpg',\r\n name: 'Max Smith',\r\n email: 'max@kt.com',\r\n access: '3',\r\n },\r\n {\r\n avatar: '/media/avatars/150-2.jpg',\r\n name: 'Sean Bean',\r\n email: 'sean@dellito.com',\r\n access: '2',\r\n },\r\n {\r\n avatar: '/media/avatars/150-15.jpg',\r\n name: 'Brian Cox',\r\n email: 'brian@exchange.com',\r\n access: '3',\r\n },\r\n {\r\n state: 'warning',\r\n name: 'Mikaela Collins',\r\n email: 'mikaela@pexcom.com',\r\n access: '2',\r\n },\r\n {\r\n avatar: '/media/avatars/150-8.jpg',\r\n name: 'Francis Mitcham',\r\n email: 'f.mitcham@kpmg.com.au',\r\n access: '3',\r\n },\r\n {\r\n state: 'danger',\r\n name: 'Olivia Wild',\r\n email: 'olivia@corpmail.com',\r\n access: '2',\r\n },\r\n {\r\n state: 'info',\r\n name: 'Neil Owen',\r\n email: 'owen.neil@gmail.com',\r\n access: '1',\r\n },\r\n {\r\n avatar: '/media/avatars/150-6.jpg',\r\n name: 'Dan Wilson',\r\n email: 'dam@consilting.com',\r\n access: '3',\r\n },\r\n {\r\n state: 'danger',\r\n name: 'Emma Bold',\r\n email: 'emma@intenso.com',\r\n access: '2',\r\n },\r\n {\r\n avatar: '/media/avatars/150-7.jpg',\r\n name: 'Ana Crown',\r\n email: 'ana.cf@limtel.com',\r\n access: '1',\r\n },\r\n {\r\n state: 'primary',\r\n name: 'Robert Doe',\r\n email: 'robert@benko.com',\r\n access: '3',\r\n },\r\n {\r\n avatar: '/media/avatars/150-17.jpg',\r\n name: 'John Miller',\r\n email: 'miller@mapple.com',\r\n access: '3',\r\n },\r\n {\r\n state: 'success',\r\n name: 'Lucy Kunic',\r\n email: 'lucy.m@fentech.com',\r\n access: '2',\r\n },\r\n {\r\n avatar: '/media/avatars/150-10.jpg',\r\n name: 'Ethan Wilder',\r\n email: 'ethan@loop.com.au',\r\n access: '1',\r\n },\r\n {\r\n avatar: '/media/avatars/150-7.jpg',\r\n name: 'Ana Crown',\r\n email: 'ana.cf@limtel.com',\r\n access: '3',\r\n },\r\n ]\r\n\r\n return (\r\n \r\n \r\n )\r\n}\r\n\r\nexport {InviteUsers}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC, useState} from 'react'\r\nimport {KTSVG} from '../../../helpers'\r\n\r\nconst plans = [\r\n {\r\n title: 'Startup',\r\n subTitle: 'Best for startups',\r\n description: 'Optimal for 10+ team size and new startup',\r\n priceMonth: '39',\r\n priceAnnual: '399',\r\n default: true,\r\n custom: false,\r\n features: [\r\n {\r\n title: 'Up to 10 Active Users',\r\n supported: true,\r\n },\r\n {\r\n title: 'Up to 30 Project Integrations',\r\n supported: true,\r\n },\r\n {\r\n title: 'Analytics Module',\r\n supported: true,\r\n },\r\n {\r\n title: 'Finance Module',\r\n supported: false,\r\n },\r\n {\r\n title: 'Accounting Module',\r\n supported: false,\r\n },\r\n {\r\n title: 'Network Platform',\r\n supported: false,\r\n },\r\n {\r\n title: 'Unlimited Cloud Space',\r\n supported: false,\r\n },\r\n ],\r\n },\r\n\r\n {\r\n title: 'Advanced',\r\n subTitle: 'Best for 100+ team size',\r\n description: 'Optimal for 100+ team size and grown company',\r\n priceMonth: '339',\r\n priceAnnual: '3399',\r\n default: false,\r\n custom: false,\r\n features: [\r\n {\r\n title: 'Up to 10 Active Users',\r\n supported: true,\r\n },\r\n {\r\n title: 'Up to 30 Project Integrations',\r\n supported: true,\r\n },\r\n {\r\n title: 'Analytics Module',\r\n supported: true,\r\n },\r\n {\r\n title: 'Finance Module',\r\n supported: true,\r\n },\r\n {\r\n title: 'Accounting Module',\r\n supported: true,\r\n },\r\n {\r\n title: 'Network Platform',\r\n supported: false,\r\n },\r\n {\r\n title: 'Unlimited Cloud Space',\r\n supported: false,\r\n },\r\n ],\r\n },\r\n\r\n {\r\n title: 'Enterprise',\r\n subTitle: 'Best value for 1000+ team',\r\n description: 'Optimal for 1000+ team and enterpise',\r\n priceMonth: '999',\r\n priceAnnual: '9999',\r\n label: 'Most popular',\r\n default: false,\r\n custom: false,\r\n features: [\r\n {\r\n title: 'Up to 10 Active Users',\r\n supported: true,\r\n },\r\n {\r\n title: 'Up to 30 Project Integrations',\r\n supported: true,\r\n },\r\n {\r\n title: 'Analytics Module',\r\n supported: true,\r\n },\r\n {\r\n title: 'Finance Module',\r\n supported: true,\r\n },\r\n {\r\n title: 'Accounting Module',\r\n supported: true,\r\n },\r\n {\r\n title: 'Network Platform',\r\n supported: true,\r\n },\r\n {\r\n title: 'Unlimited Cloud Space',\r\n supported: true,\r\n },\r\n ],\r\n },\r\n\r\n {\r\n title: 'Custom',\r\n subTitle: 'Requet a custom license',\r\n default: false,\r\n custom: true,\r\n },\r\n]\r\n\r\nconst UpgradePlan: FC = () => {\r\n const [currentState, setCurrentState] = useState<'month' | 'annual'>('month')\r\n const [selected, setSelected] = useState('Startup')\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport {UpgradePlan}\r\n","import clsx from 'clsx'\r\nimport React, {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\nimport { HeaderUserMenu} from '../../../partials'\r\nimport {useLayout} from '../../core'\r\n\r\nconst toolbarButtonMarginClass = 'ms-1 ms-lg-3',\r\n toolbarButtonHeightClass = 'w-30px h-30px w-md-40px h-md-40px',\r\n toolbarUserAvatarHeightClass = 'symbol-30px symbol-md-40px',\r\n toolbarButtonIconSizeClass = 'svg-icon-1'\r\n\r\nconst Topbar: FC = () => {\r\n const {config} = useLayout()\r\n\r\n return (\r\n
\r\n \r\n {/* begin::User */}\r\n \r\n {/* begin::Toggle */}\r\n \r\n metronic\r\n
\r\n \r\n {/* end::Toggle */}\r\n \r\n {/* end::User */}\r\n\r\n {/* begin::Aside Toggler */}\r\n {config.header.left === 'menu' && (\r\n <>\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport {Topbar}\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport clsx from 'clsx'\r\nimport React, {useEffect, useState} from 'react'\r\nimport {Link, useLocation, useHistory} from 'react-router-dom'\r\nimport {\r\n SEARCH_PRODUCT,\r\n SEARCH_PRODUCTTAG,\r\n SEARCH_PRODUCT_HIERARCHY,\r\n} from '../../../../app/store/queries'\r\nimport {\r\n SearchListModel,\r\n ProductEdge,\r\n ProductHierarcyEdge,\r\n ProductTagEdge,\r\n ProductNode,\r\n ProductTagNode,\r\n ProductTag,\r\n} from '../../../../app/types'\r\nimport {MenuComponent} from '../../../assets/ts/components'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\nimport {useLayout} from '../../core'\r\nimport {Header} from './Header'\r\nimport {DefaultTitle} from './page-title/DefaultTitle'\r\nimport {Topbar} from './Topbar'\r\nimport {useApolloClient} from '@apollo/client'\r\nimport {left} from '@popperjs/core'\r\nimport {Search} from '../../../partials'\r\nimport {isMobile} from 'react-device-detect'\r\nimport {Toolbar} from '../toolbar/Toolbar'\r\n\r\nexport function HeaderWrapper() {\r\n const {pathname} = useLocation()\r\n const history = useHistory()\r\n const location = useLocation()\r\n const {config, classes, attributes} = useLayout()\r\n const client = useApolloClient()\r\n const {header, aside} = config\r\n const [productSearchResult, setProductSearchResult] = useState()\r\n const [productTagSearchResult, setProductTagSearchResult] = useState()\r\n const [productHierarchySearchResult, setProductHierarchySearchResult] = useState<\r\n ProductHierarcyEdge | undefined\r\n >()\r\n\r\n const [searchText, setSearchText] = useState('')\r\n\r\n useEffect(() => {\r\n setProductHierarchySearchResult(undefined)\r\n setProductSearchResult(undefined)\r\n }, [location])\r\n\r\n useEffect(() => {\r\n MenuComponent.reinitialization()\r\n }, [pathname])\r\n\r\n useEffect(() => {\r\n console.log('31 =>>', productSearchResult)\r\n\r\n console.log('33 =>>', productSearchResult?.edges)\r\n }, [productSearchResult])\r\n\r\n useEffect(() => {\r\n console.log('searchText =>>', searchText)\r\n\r\n if (searchText.length > 2) {\r\n startSearch()\r\n } else {\r\n setProductHierarchySearchResult(undefined)\r\n setProductSearchResult(undefined)\r\n setProductTagSearchResult(undefined)\r\n }\r\n }, [searchText])\r\n\r\n const startSearch = () => {\r\n if (searchText != undefined && searchText != '' && searchText.length > 1) {\r\n const secondValue = searchText\r\n .replace('o', 'ö')\r\n .replace('c', 'ç')\r\n .replace('u', 'ü')\r\n .replace('g', 'ğ')\r\n .replace('s', 'ş')\r\n searchProducts(searchText, secondValue)\r\n searchProductHierarchies(searchText, secondValue)\r\n searchProductTags(searchText, secondValue)\r\n }\r\n }\r\n\r\n async function searchProductTags(searchText: string, searchText2: string) {\r\n return await client\r\n .query({\r\n query: SEARCH_PRODUCTTAG,\r\n variables: {searchString: searchText, searchString2: searchText2},\r\n })\r\n .then((resp: any) => {\r\n console.log('product tag model => ', resp)\r\n if (resp.error) {\r\n return false\r\n } else {\r\n try {\r\n searchText && searchText != '' && setProductTagSearchResult(resp.data.productTagList)\r\n } catch (err) {\r\n console.log('burada => ', err)\r\n }\r\n }\r\n })\r\n .catch((err: any) => {\r\n console.log('error activity list => ', err)\r\n return false\r\n })\r\n }\r\n\r\n async function searchProducts(searchText: string, searchText2: string) {\r\n return await client\r\n .query({\r\n query: SEARCH_PRODUCT,\r\n variables: {searchString: searchText, searchString2: searchText2},\r\n })\r\n .then((resp: any) => {\r\n console.log('product model => ', resp)\r\n if (resp.error) {\r\n return false\r\n } else {\r\n try {\r\n searchText && searchText != '' && setProductSearchResult(resp.data.products)\r\n } catch (err) {\r\n console.log('burada => ', err)\r\n }\r\n }\r\n })\r\n .catch((err: any) => {\r\n console.log('error activity list => ', err)\r\n return false\r\n })\r\n }\r\n\r\n async function searchProductHierarchies(searchText: string, searchText2: string) {\r\n return await client\r\n .query({\r\n query: SEARCH_PRODUCT_HIERARCHY,\r\n variables: {searchString: searchText, searchString2: searchText2},\r\n })\r\n .then((resp: any) => {\r\n console.log('SEARCH_PRODUCT_HIERARCHY model => ', resp)\r\n if (resp.error) {\r\n return false\r\n } else {\r\n try {\r\n searchText &&\r\n searchText != '' &&\r\n setProductHierarchySearchResult(resp.data.productHierarchies)\r\n } catch (err) {\r\n console.log('burada => ', err)\r\n }\r\n }\r\n })\r\n .catch((err: any) => {\r\n console.log('error activity list => ', err)\r\n return false\r\n })\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* begin::Aside mobile toggle */}\r\n {aside.display && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {/* end::Aside mobile toggle */}\r\n\r\n \r\n
\r\n {/* {searchText && searchText != \"\" && \r\n {\r\n setSearchText(\"\")\r\n }}\r\n style={{ width: 25 }}\r\n width={25}>\r\n \r\n \r\n } */}\r\n setSearchText(event.target.value)}\r\n className='form-control'\r\n aria-label='Sizing example input'\r\n aria-describedby='inputGroup-sizing-lg'\r\n />\r\n startSearch()}\r\n >\r\n Ara\r\n \r\n\r\n {searchText &&\r\n searchText != '' &&\r\n ((productHierarchySearchResult != null &&\r\n productHierarchySearchResult.edges.length > 0) ||\r\n (productSearchResult != null && productSearchResult.edges.length > 0) ||\r\n (productTagSearchResult != null && productTagSearchResult.edges.length > 0)) && (\r\n setSearchText('')}\r\n style={{\r\n position: 'absolute',\r\n right: isMobile ? '21%' : '6%',\r\n top: '8%',\r\n width: '50px',\r\n height: '36px',\r\n zIndex: 99,\r\n }}\r\n width='16'\r\n height='16'\r\n fill='currentColor'\r\n className='bi bi-x'\r\n viewBox='0 0 16 16'\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n {productTagSearchResult?.edges\r\n .sort((a: ProductTagNode, b: ProductTagNode) =>\r\n a.node.tagText > b.node.tagText ? 1 : -1\r\n )\r\n .map((x) => (\r\n
\r\n \r\n {x.node.tagText}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n {productHierarchySearchResult != undefined &&\r\n productHierarchySearchResult.edges?.map((x) => (\r\n history.push('/subHierarchyList?guid=' + x.node.guid)}\r\n >\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {x?.node.displayName}\r\n {!isMobile && (\r\n \r\n {x?.node?.parentHierarchy != null\r\n ? x?.node?.parentHierarchy?.displayName\r\n : ''}\r\n \r\n )}\r\n
\r\n {isMobile && (\r\n \r\n {x?.node?.parentHierarchy != null\r\n ? x?.node?.parentHierarchy?.displayName\r\n : ''}\r\n \r\n )}\r\n
\r\n
\r\n \r\n ))}\r\n\r\n {productSearchResult != undefined &&\r\n productSearchResult?.edges?.map((x) => (\r\n {\r\n history.push('/productDetail?guid=' + x.node.guid)\r\n if (window.location.href.includes('productDetail')) {\r\n window.location.reload()\r\n }\r\n }}\r\n >\r\n
\r\n {x.node?.detailedDescription?.includes(searchText) ||\r\n x.node?.shortDescription?.includes(searchText) ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n 0\r\n ? '1%'\r\n : 0,\r\n }}\r\n >\r\n {x?.node.displayName}\r\n {!isMobile && (\r\n \r\n {x?.node.productHierarchy != null\r\n ? x?.node?.productHierarchy?.displayName\r\n : ''}\r\n \r\n )}\r\n
\r\n
\r\n {isMobile && (\r\n \r\n {x?.node.productHierarchy != null\r\n ? x?.node?.productHierarchy?.displayName\r\n : ''}\r\n \r\n )}\r\n
\r\n\r\n \r\n \r\n {x?.node?.productTags\r\n ?.sort((a: ProductTag, b: ProductTag) =>\r\n a.tagText > b.tagText ? 1 : -1\r\n )\r\n .map((tag) => (\r\n <>\r\n {tag.tagText != 'Gemi' &&\r\n tag.tagText != 'Numune' &&\r\n tag.tagText != 'Balık' &&\r\n tag.tagText != 'SalesPedia' && (\r\n
\r\n {tag.tagText}\r\n
\r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n {/* begin::Wrapper */}\r\n \r\n {/* begin::Navbar */}\r\n {header.left === 'menu' && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {header.left === 'page-title' && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n
\r\n \r\n
\r\n \r\n {/* end::Wrapper */}\r\n \r\n \r\n )\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport clsx from 'clsx'\r\nimport React, { FC } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { RootState } from '../../../../setup'\r\nimport { KTSVG } from '../../../helpers'\r\nimport { useLayout } from '../../core'\r\nimport { DefaultTitle } from '../header/page-title/DefaultTitle'\r\n\r\nconst Toolbar1: FC = () => {\r\n const { classes } = useLayout()\r\n const pageLinks = useSelector((state: RootState) => state.pageLinkReducer);\r\n\r\n\r\n return (\r\n 0 ? 'flex' : 'none' }}>\r\n {/* begin::Container */}\r\n \r\n \r\n\r\n {/* begin::Actions */}\r\n
\r\n\r\n\r\n\r\n
\r\n {/* end::Actions */}\r\n \r\n {/* end::Container */}\r\n \r\n )\r\n}\r\n\r\nexport { Toolbar1 }\r\n","import React from 'react'\r\nimport { useLayout } from '../../core/LayoutProvider'\r\nimport { Toolbar1 } from './Toolbar1'\r\n\r\nconst Toolbar = () => {\r\n const { config } = useLayout()\r\n switch (config.toolbar.layout) {\r\n case 'toolbar1':\r\n return \r\n\r\n default:\r\n return \r\n }\r\n}\r\n\r\nexport { Toolbar }\r\n","import React, {useEffect, useRef} from 'react'\r\nimport {useLocation} from 'react-router-dom'\r\nimport {\r\n // ScrollComponent,\r\n ScrollTopComponent,\r\n MenuComponent,\r\n DrawerComponent,\r\n ToggleComponent,\r\n StickyComponent,\r\n} from '../../assets/ts/components'\r\nimport {KTSVG} from '../../helpers'\r\n\r\nexport function ScrollTop() {\r\n const {pathname} = useLocation()\r\n const isFirstRun = useRef(true)\r\n\r\n const pluginsReinitialization = () => {\r\n setTimeout(() => {\r\n // ScrollTopComponent.reinitialization()\r\n MenuComponent.reinitialization()\r\n StickyComponent.reInitialization()\r\n setTimeout(() => {\r\n ToggleComponent.reinitialization()\r\n DrawerComponent.reinitialization()\r\n // ScrollComponent.reinitialization()\r\n }, 70)\r\n }, 140)\r\n }\r\n\r\n const scrollTop = () => {\r\n ScrollTopComponent.goTop()\r\n }\r\n\r\n const updateHeaderSticky = () => {\r\n const stickyHeader = document.body.querySelectorAll(`[data-kt-sticky-name=\"header\"]`)\r\n if (stickyHeader && stickyHeader.length > 0) {\r\n const sticky = StickyComponent.getInstance(stickyHeader[0] as HTMLElement)\r\n if (sticky) {\r\n sticky.update()\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (isFirstRun.current) {\r\n isFirstRun.current = false\r\n } else {\r\n pluginsReinitialization()\r\n }\r\n\r\n updateHeaderSticky()\r\n setTimeout(() => {\r\n scrollTop()\r\n }, 0)\r\n }, [pathname])\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { useLocation } from 'react-router'\r\nimport clsx from 'clsx'\r\nimport { useLayout } from '../core'\r\nimport { DrawerComponent } from '../../assets/ts/components'\r\nimport { Toolbar } from './toolbar/Toolbar'\r\n\r\nconst Content: React.FC = ({ children }) => {\r\n const { classes } = useLayout()\r\n const location = useLocation()\r\n useEffect(() => {\r\n DrawerComponent.hideAll()\r\n }, [location])\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n )\r\n}\r\n\r\nexport { Content }\r\n","import {useEffect, useRef} from 'react'\r\nimport {\r\n MenuComponent,\r\n DrawerComponent,\r\n ScrollComponent,\r\n ScrollTopComponent,\r\n StickyComponent,\r\n ToggleComponent,\r\n} from '../assets/ts/components'\r\n\r\nimport {useLayout} from './core'\r\n\r\nexport function MasterInit() {\r\n const {config} = useLayout()\r\n const isFirstRun = useRef(true)\r\n const pluginsInitialization = () => {\r\n isFirstRun.current = false\r\n setTimeout(() => {\r\n ToggleComponent.bootstrap()\r\n ScrollTopComponent.bootstrap()\r\n DrawerComponent.bootstrap()\r\n StickyComponent.bootstrap()\r\n MenuComponent.bootstrap()\r\n ScrollComponent.bootstrap()\r\n }, 200)\r\n }\r\n\r\n useEffect(() => {\r\n if (isFirstRun.current) {\r\n isFirstRun.current = false\r\n pluginsInitialization()\r\n }\r\n }, [config])\r\n\r\n return <>\r\n}\r\n","import React from 'react'\r\nimport { AsideDefault } from './components/aside/AsideDefault'\r\nimport { Footer } from './components/Footer'\r\nimport { HeaderWrapper } from './components/header/HeaderWrapper'\r\nimport { Toolbar } from './components/toolbar/Toolbar'\r\nimport { ScrollTop } from './components/ScrollTop'\r\nimport { Content } from './components/Content'\r\nimport { MasterInit } from './MasterInit'\r\nimport { PageDataProvider } from './core'\r\nimport {\r\n DrawerMessenger,\r\n ExploreMain,\r\n ActivityDrawer,\r\n Main,\r\n InviteUsers,\r\n UpgradePlan,\r\n} from '../partials'\r\nimport { isMobile } from 'react-device-detect';\r\nimport ReactLoading from 'react-loading';\r\nimport { useSelector } from 'react-redux'\r\nimport { RootState } from '../../setup/redux/RootReducer'\r\n\r\nconst MasterLayout: React.FC = ({ children }) => {\r\n\r\n const loadingState = useSelector((state: RootState) => state.setMainLoadingSlicer);\r\n\r\n console.log(\"Loading state =>\", loadingState);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n {}\r\n
\r\n {children}\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* begin:: Modals */}\r\n
\r\n \r\n \r\n {/* end:: Modals */}\r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport { MasterLayout }\r\n","import React, { useState } from 'react'\r\nimport { Button, Collapse } from 'reactstrap'\r\nimport ReactMarkdown from 'react-markdown'\r\nimport ShowMoreText from \"react-show-more-text\";\r\n\r\ntype CardProps = {\r\n title: string,\r\n paragraph: string | undefined\r\n}\r\n\r\n\r\nfunction CommentList({ title, paragraph }: CardProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const toggle = () => setIsOpen(!isOpen);\r\n\r\n return (\r\n
\r\n
\r\n

{title}

\r\n
\r\n \r\n \r\n {paragraph!}\r\n \r\n \r\n\r\n
\r\n {/*
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 12\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 150\r\n \r\n
*/}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Alice\r\n Danchik\r\n 1\r\n day\r\n Reply\r\n
\r\n Long\r\n before\r\n you sit dow to put digital pen to paper you\r\n need to make\r\n sure you have to sit down and write.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Harris\r\n Bold\r\n 2\r\n days\r\n Reply\r\n
\r\n Outlines\r\n keep you honest. They stop you from\r\n indulging in\r\n poorly\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default CommentList","import {Link} from 'react-router-dom'\r\nimport Slider from 'react-slick'\r\nimport {ProductHierarchyNode, ProductHierarcy, ProductHierarcyEdge} from '../../../types'\r\nimport {isMobile} from 'react-device-detect'\r\nimport {Controller} from 'swiper'\r\nimport 'keen-slider/keen-slider.min.css'\r\nimport {useKeenSlider} from 'keen-slider/react'\r\nimport {useEffect, useState} from 'react'\r\nimport {appendPageLink} from '../../../../setup/redux/PageTitleSlicer'\r\n\r\nconst sliderSettings = {\r\n dots: true,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n initialSlide: 0,\r\n\r\n responsive: [\r\n {\r\n breakpoint: 1024,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n initialSlide: 0,\r\n infinite: false,\r\n dots: true,\r\n },\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n initialSlide: 1,\r\n },\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 2.5,\r\n slidesToScroll: 2.5,\r\n initialSlide: 0,\r\n },\r\n },\r\n ],\r\n}\r\n\r\nlet images: any = {}\r\n\r\nimages['no'] =\r\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD5CAMAAABRVVqZAAAAYFBMVEXu7u7///+fn5/MzMzx8fF2dnb19fXt7e2ioqKkpKRycnJubm7CwsLJycmZmZmzs7Nra2vV1dWrq6u3t7fb29u8vLzDw8Pi4uLf39+FhYXR0dGVlZVnZ2d/f3+MjIyAgIALUUx6AAAPeElEQVR4nO2dibaiTK+GGYpCmWfYOPT93+WfNwUKgtuWQpvzHbJ6dbMRMY9JZSq3bZimNP7vi5CmaZiG+6/1WENcYRryP0FCLP8F5+pE/GsF1pMdZYuyo2xRdpQtyo6yRdlRtig7yhZlR9mi7ChblB1li7KjbFF2lC3KjrJF2VG2KDvKFmVH2aLsKFuUHeWVuPTn23ucH0FxpUki5XdxPoGiSFik+B7NR6xiDgU0X8H5AAobJbVrOcD5hqt9AgW6l0FQhoUwv+hqH0JpApYySN0BzWeN8wEUmCIMblKGjfyKcdZH4aVSKpsEs8b5UBz4AAppW4MidNuyvBvn43FgfRT4V4tVX9OBKKo7TlkVxgddbXUU5V9A6VWuB8Ypg7b+VBxYH4VUNEqSapAm3SIY4HwoDqzvYKReAZRilPNN2YTlszggV4kDq6PgDScTlLkwJ+KmwQfjwNooWCoyh1WmJBAxMs6qcWB1FIRioLTzKJBRHCiHcUDLOGujcKqHf9XPQFiMUZAOm3GxtvCl1yXhUAyj5L+SsMq1/TQOLIJZG4UUcQklr54iDOVZHFjEsraDkR5pTtL8FYr5LA4seemVUTjVE0ksfwcYSz0q1lJz2Wfr10XhriuGVd4hYTPc4wDC+BIPWx+lAMovofipIA4AJaTjJWqti4KYWsG/3KmmojV/D9Cm6qMDLLN/vuw5FMMo8VTLOmzN8tUKclFRy02gQGWgjEMxr6DQLsw8fIGSwirmJoIxaWETSjwIxaIIQ7OVph02Zpy9cLGyC2CLXnxNFOVf8TAU13Zo26kZkMeFtZnFM543EAEUd6F/rYsCbWKSPhRLgNg2mSMuqbaShFLx2ndnwoKp+px8qX+tjpICJVWauQxihwYYaDW7eCyrQFjMolBqKZeG4lVRBKd6aKve80KR2CGlGpxt7M5iNnxuTlCHLg3F66EI6dpwnQxKswOlHQkiV9xJFgdMYttzOQZ9Ti6X+tcqKELIOsyiE2nRAKUy2zBsa7fpUXqQCim0s1Q6zTF213wu/P0zbRQhjLS0IsuyMtIiZE8yYZCQMkna3lGyUJqy6WwVyjqbRDMYZXEo1kSBOew4AodlRfbdv3rf6qxSF3YAEEox3blQiCx7sAv3OYtDsQ6KEKIIjh0HUEgLN+OFXdgjEWo/Lx0Ahi5RP/Q0aa4Tihej0Cpv8zsGC2nREkqWmuEYpSrkGIRQkC8fOk30OctD8UIUXuVjDstC7RQDxZBjFCr4RfpAF0rjMfVzn1Mv968lKKLOHjHgX+QuMoNQETxGMdoHEARj5NKRhzVd87n4F4EXoNQzIIRC2hQgoeLxQe0pSJ9rhighoWiE4iUoMp4jsaBWCZT6canMSOiilrlVOCwoQ1MN/1qA4s4bBS3wkUiOD6F4HsVsVK4ZhGKgGN9FaeZRKJHXQMnN9CUJRQI7U2nzhtLGqvlc/jvz76PML5UDvB3+NQnFs1YRZlqTNPcKOY/z2F6e6hehiNmlghwBkqMQcyhUk6Vp2+KAJB21K1J2oTjWCcWLUPI5/yItxJFDcTODEs41wjXDSbMKqTkrupWj8Z0MC1DSuayCwoNQjqE5vzam0sXoFuwp9zmlRqpfhDIbwlA75fCv+VB8Q5GSSjdhuG5xKywNM+SKLI4LLf9agiKzqVGQEA6EcnhM9Z2+XRHsVmEngwfNmhp+VDzi6yginKKg64J/PQvFfS4spqBkkpb7HL1QvKycnIbjI2kRHEmKJ6E47GPWY13JZlF9jl4oXoYiD49GQaYDiSXd3nfCodj38DvDknKfk+mF4mUoonxEQddlEUpmTjr2yYnHYhNlDPc5mv61DOUxHCMU2wdCsWeC7kQmZinQ52SBXihe2kU+oCAhZPCv+aHjC7OokV+mGYoXoohxnR+RFhL+dQz+gmVSOFOZjDJBp+vSQLFHZuGui1EoHpTPN1SlNOpi2oilZkAkHIp1SBY62DgcY8GWWCodTdzePu4ha56FDWLZdNHX3OegINAiWYgij0OjYLFbPYrCOVaqgJxV/gFFukDRGIBpoYhgiEI2qK0DyYjGyjFLlXX7iobaMDSfuktlKUox9DC8+4wyock4y1Pt+AtOw32OdihePtIboECLY48yxeHPuD03TigkirflexHaKPf+C12XBNnhKU3GccBNZ1e96nO0Q/FylPY+KyYt+/T/hOYWB0RjP+Kk3OfE+v61ePx977+gxSBlPqfp48DIOLSYqM85tvr+tRjl1n9x1zUuZJ7REE7GXf4gDoQ8cjrqh+LlKLf+C6F4ZjT2i3HKYhCkW7M6rhKKNfZXevUxyytOE5QXxrHdLg7U3OdU2qleB6Ufh2GCT935YbJJ8YLmEMDVDGlQ8XZYIRTroPT9Vzf3FW38Lo0VUxyw6dBaw780UPoAHN0/UdyU1hzO4RecI06sEYq1tlV7paPDvRI2XTs7vWUcAGntRayAMhiHkSmq+yhVFo+7lC9oLM0BmDaKCMf9VxQPPlVQh8dXrjZg0e66NFGm47AoOob3jlims3FgSnMI1wjFWiiTcRjTRMPf9miCl3GA/Et3AKaPMuq/RjjZOA68oFknFOuhFLP7X4rGCl7GgZ4kXyUU633GRTxFUTiv4wCjrBOKNVHmt72HNMfBftd8HDhEK3Rd+ijtr2bpcfJiYJxpHFgpFGt+iGp+C38CczoOP8dmtOM4sFIo1kQZjcOecFDv6PJvcckBTlFGPU60RteljyKqF76VVQ22HpW4rhjQuF0ciFYKxbofOJz/ZEXHEbdkjvH1MM6dBnHgpLktPBC9u8x/HIEwDkFxN8dI3LFxOMCt8+uqmigzH0cgtwprOc/RyZhmJf/SRZnsf1llOnGrORnEgbX+UwvdOe3zVf5aYBy5+Ncgp7poPv02eJlb5a9lze9D0J5u1pTwouPTVf5F0X996TYvVvmXZAMqrCU7yhZlR9mi7ChblB1li7KjbFF2lC3KjrJF2VG2KDvKFmVH2aLsKFuUHWWLsqNsUXaULcqOskV5F0WSqCfKfo8Lu3DycYdFqoelHF82uMvgenUHdaY7Hl/wCRRxiqJTjYM8imJ+srStP57zkzXDD6o0p+jUCkNG2BLjB+QRx+oaF3ep+pcWbn660B2sysVG7SlScgrf1e29y+XZ83yLFJKW70Mx4f4knuPRn+R4ZxFF4iUBoXgk50Zg0/KMY75EVAkdXrrLZZng6SS+Iw0R4jFIUn4YJXEcJyHdpOV5/B47pIYTXX3HYcQexXd8etslXe14YJQHD8fKQFccJoUyaka39J1T9OP7RCds3CkhOedfQPGuskeRRw+qSun+IeXam88MUZwE/xtL4txQaj72MvwgUvrBs3kdVVeF4rfYOX5773gJCnTurUI//2GVSD/v1JtliHLyvFyI2PNOHQodO5eA3gKOCyfPSdI+khgKJVVfMPBxFC/2nR+pUETrO57yaXiNP2MVr7oQgXCcS+UpFHkhi5CVfBtriN6LHwZU2gPFqwqS9PNW8duD54cdSunRz53P09tbz6GUdHnoe2WHApdKCnlVVm0S5Wn8/QhVrdaK55Ocv4ASwu8HKKnKB0BpZlAC4TvXK1ksUChYXhcpAh9rCBd6FNRFcYb2oVAoHPi+gUIG8IMjo5BC7CdKw1mrBLAX3voORdAqySkBKtfEEqMIRygIZArFO/I373wDRbiklLJKijdVRdgf0ndm2RMKIlZSdygipLed0qDl8CKR9BNnGKFu/dVlj9fLfaQT8nWBbIFXlbQCPGsWRciT759k52AIWexBKkGRozp+IO+3ZhQhFrAsQjEEJwagAOpaS9l2qXMOhYqRE2mnULDQunzOC55NFruUVm4oXpBCio+nSEapfIVCMZiOyCD4O5/L9oSiSk+FInIsKWREM1IOV53pIvDQn37ZI4IlJ/mbJvooZy9BmSf/+J7PryWOqmjyvWpYg51VDebfSylBtZYv5cX3f1QlZifemUIGGdRXd0iuzaAG8z+MIuI8LljXOM9VbSvr0jqdjtXoVjWuI0vgm9h6lJSeIvCNZn19Q4ecJWWbRacoC2rozl8dzvLhytjoV+NwXYqZ7qJ7eLh6u3Q+eN79ZsO+5ibvqvbm9RuWHWWLsqNsUXaULcqCvHJLLINz48dGp+affssfjzcZPvZeankTxUWdh0aioX+7c/XgVJfaBapB+re4nVHS3KtE0aqasVapETduhpcpeadneQ9F5NTsnUvUk2f/3HXCUeInXJYlty5W0inMY+ih86CSks7gErSNqBodngy6dL+sz/fHRD3mn9+pjt9DkX8c1TFxL9i1J77qAxueK6nhlVSPohnxBkUmBkXUnahLUOwnCSpqzMnchBtjdV3m9U3xx1BEoWZHGOlR/+vzOar3MZ1D2+t1k6QnKDw0c5yr7FC8g1unF7qfMUXxuKKM60cV1kKButcrd0ygQkdCDYvHHS1aE7T3/D4+sQrZ79BPAKRq6mWuTjyiJPKzyx5eVZbd4OSiRniYM5BXYSKWuD/dzHEWBV19Qv2nUlny1AjzNAcrbYoiB5P/1VHQ4SV1nfDoi9tBV/1TG6z1FW+x99Qq1NUTfNYP9jDLsyyyqV/OoJD1Sd7qvt5BkRHUlT9qwcMcpcBPcH4XsyDMVniWNIuCgWQlyTETBGge2fo+XXASxgwKTw8un0LBywVSlmrBY5H8yKZr9nlCx2Dc8c+gwH4+NVnkmAepUP6cTlfMbtwZFJ7mOx9C4VGknabk8gio7Pp17PGkGBPjH0qIGXvdLAoC+bVIi0P3jG6tYKBBDN9dKxjaOUhcjgqoCEh59x7Xyl18vJ2lmENRgby7BMOYpNt4UeFjgvJ+cfj3z+AcqJKwo1a62v2B52OfQT3mqZnjAMVUG4ucd7pLeIOGrSIkMmykUPLOEgOrvBWV/v5KegFffeNiN7JOb9s/2Ee58kM8BBcDFOcHcglx6sSXqOEy1sq1LOOLsiMmfRd1qeS1wsd/go9ke+TAEycunpV2ADcoP+TH8O5mIxS18RW22M3iS1Qm4sLFxwQsuYrbrhiKGXmLYCpOr44ibBWrjK5WYbfqXc3yPL8DpuThCGynjlB8O+o3VRH6KMrKTvdLxKPAMYr/URSedonx4W0r/mFL/nbitgcvH3ftB4+J28k+ai3bu/9/3EVuWHaULcqOskXZUbYoO8oWZUfZouwoW5QdZYuyo2xRdpQtyo6yRdlRtig7yhZlR9mi7ChblB1li7KjbFF2lC3KjrJF2VG2KDvKFuU/hbLW19T/a3GlYRr/CRZXmMZK/5HLPxb8zw7/A1rBDL7QoqmFAAAAAElFTkSuQmCC'\r\n\r\ninterface HierarchyProp {\r\n productHierarchyEdge: ProductHierarcyEdge | undefined\r\n title: string\r\n dispatch: Function\r\n}\r\n\r\nconst getImage = (productHie: ProductHierarcy) => {\r\n if (productHie.documentRelations != undefined && productHie.documentRelations.length > 0) {\r\n return productHie.documentRelations[0].document.fileName\r\n } else {\r\n return images['no']\r\n }\r\n}\r\n\r\nexport default function HierarchyList(prop: HierarchyProp) {\r\n const [propState, setPropSTate] = useState(undefined)\r\n\r\n useEffect(() => {\r\n let models = prop.productHierarchyEdge?.edges.filter((x) => x.node.guid != '9')\r\n setPropSTate(models)\r\n }, [prop])\r\n\r\n function modifySlickTrack() {\r\n const mediaQuery = window.matchMedia('(max-width: 576px)')\r\n if (mediaQuery.matches) {\r\n const slickTrack = document.querySelector('.slick-track') as HTMLElement\r\n if (slickTrack) {\r\n slickTrack.style.transform = 'translate3d(371px, 0px, 0px)'\r\n\r\n setTimeout(function () {\r\n slickTrack.style.transform = 'translate3d(0px, 0px, 0px)'\r\n }, 1)\r\n }\r\n }\r\n }\r\n\r\n modifySlickTrack()\r\n\r\n return (\r\n <>\r\n {prop.productHierarchyEdge != undefined && (\r\n
\r\n
\r\n

{prop.title}

\r\n
\r\n
\r\n \r\n {propState?.map(\r\n (x: ProductHierarchyNode) =>\r\n x != undefined && (\r\n \r\n \r\n
\r\n {\r\n prop.dispatch(\r\n appendPageLink({\r\n isActive: true,\r\n path: '/',\r\n title: 'Ana Sayfa > ',\r\n })\r\n )\r\n }}\r\n draggable={false}\r\n >\r\n \r\n \r\n
\r\n {\r\n prop.dispatch(\r\n appendPageLink({\r\n isActive: true,\r\n path: '/',\r\n title: 'Ana Sayfa > ',\r\n })\r\n )\r\n }}\r\n className='fs-4 text-dark fw-bolder text-hover-primary text-dark lh-base '\r\n >\r\n {x.node.displayName}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import {Link} from 'react-router-dom'\r\nimport Slider from 'react-slick'\r\nimport {\r\n ProductHierarchyNode,\r\n ProductHierarcy,\r\n ProductHierarcyEdge,\r\n ProductTag,\r\n} from '../../../types'\r\nimport {isMobile} from 'react-device-detect'\r\nimport {Controller} from 'swiper'\r\nimport 'keen-slider/keen-slider.min.css'\r\nimport {useKeenSlider} from 'keen-slider/react'\r\nimport {useEffect, useState} from 'react'\r\nimport {appendPageLink} from '../../../../setup/redux/PageTitleSlicer'\r\n\r\nconst sliderSettings = {\r\n dots: true,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n initialSlide: 0,\r\n\r\n responsive: [\r\n {\r\n breakpoint: 1024,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n initialSlide: 0,\r\n infinite: false,\r\n dots: true,\r\n },\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n initialSlide: 1,\r\n },\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 2.5,\r\n slidesToScroll: 2.5,\r\n initialSlide: 0,\r\n },\r\n },\r\n ],\r\n}\r\n\r\nlet images: any = {}\r\n\r\nimages['no'] =\r\n 'data:image/png;base64,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'\r\n\r\ninterface TagProp {\r\n productTags: ProductTag[] | undefined\r\n title: string\r\n dispatch: Function\r\n}\r\n\r\n// const getImage = (productHie: ProductHierarcy) => {\r\n// if (productHie.documentRelations != undefined && productHie.documentRelations.length > 0) {\r\n// return productHie.documentRelations[0].document.fileName;\r\n// } else {\r\n// return images[\"no\"];\r\n// }\r\n\r\n// }\r\n\r\nexport default function HierarchyList(prop: TagProp) {\r\n const [propState, setPropSTate] = useState(undefined)\r\n\r\n useEffect(() => {\r\n let models = prop.productTags?.filter((x) => x.tagText)\r\n setPropSTate(models)\r\n }, [prop])\r\n console.log(propState)\r\n return (\r\n <>\r\n {prop.productTags != undefined && (\r\n
\r\n
\r\n

{prop.title}

\r\n
\r\n
\r\n \r\n {propState?.map(\r\n (x: ProductTag) =>\r\n x != undefined && (\r\n
\r\n \r\n
\r\n {\r\n prop.dispatch(\r\n appendPageLink({\r\n isActive: true,\r\n path: '/',\r\n title: 'Ana Sayfa > ',\r\n })\r\n )\r\n }}\r\n draggable={false}\r\n >\r\n \r\n \r\n
\r\n \r\n {x.tagText}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n )}\r\n \r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import React, {useEffect, useState} from 'react'\r\nimport {useDispatch, useSelector} from 'react-redux'\r\nimport {Link} from 'react-router-dom'\r\nimport CommentList from './commetList'\r\nimport {useApolloClient} from '@apollo/client'\r\nimport {\r\n GET_ACTUEL_NEWS,\r\n GET_HIERARCHY_LIST,\r\n GET_PRODUCT_HIERARHCY_BY_DEPTH,\r\n GET_SETTING,\r\n} from '../../store/queries'\r\nimport {\r\n ActivityNode,\r\n ProductEdge,\r\n ProductHierarchyEdge,\r\n ProductHierarchyNode,\r\n ProductHierarcyEdge,\r\n ProductHierarcyNode,\r\n ProductTag,\r\n} from '../../types'\r\nimport moment from 'moment'\r\nimport {appendPageLink, deletePageLinks} from '../../../setup/redux/PageTitleSlicer'\r\nimport {RootState} from '../../../setup/redux/RootReducer'\r\nimport HierarchyList from './components/HierarchyList'\r\nimport {deleteHaberler, setHaberler} from './redux/haberlerSlicer'\r\nimport {SetPageTitleData} from '../../../setup/redux/PageTitleOperation'\r\nimport {isMobile} from 'react-device-detect'\r\nimport {deleteProductHierarchy, setProductHierarchies} from './redux/productHierarchySlicer'\r\nimport {spawn} from 'child_process'\r\nimport {setMainLoading} from '../../../setup/redux/loadingSlice'\r\nimport TagList from './components/TagList'\r\n\r\nexport default function SalesPediaMain() {\r\n const [loading, setLoading] = useState(false)\r\n const [searchText, setSearchText] = useState()\r\n const activityState = useSelector((state: RootState) => state.haberReducer)\r\n const productHierarchyState = useSelector((state: RootState) => state.productHierarchyReducer)\r\n const [specialProductTags, setSpecialProductTag] = useState(undefined)\r\n const [specialKitchenTags, setSpecialKitchenTag] = useState(undefined)\r\n const [allSalesPediaTags, setAllSalesPediaTag] = useState(undefined)\r\n\r\n let hasMoreValue = false\r\n\r\n const client = useApolloClient()\r\n var cursor: string | undefined = undefined\r\n const dispatch = useDispatch()\r\n\r\n async function getActivity(): Promise {\r\n let today = moment().add('hours', 3).format('YYYY-MM-DD HH:MM')\r\n console.log('today =>> ', moment().format('DD-MM-YYYY hh:mm'))\r\n console.log('today + 3 h =>> ', moment().add(3, 'hour').format('hh:mm'))\r\n\r\n return await client\r\n .query({\r\n query: GET_ACTUEL_NEWS,\r\n variables: {cursor: cursor, todayDate: today},\r\n })\r\n .then((resp) => {\r\n setLoading(false)\r\n if (resp.errors) {\r\n return false\r\n } else {\r\n // let data = activityList != undefined ? [...activityList!, ...resp.data.activities.edges] : resp.data.activities.edges;\r\n // console.log(\"data =>>\", data);\r\n // setActivityList(data);\r\n console.log('49 resp.data.activities.edges', resp.data.activities.edges)\r\n dispatch(setHaberler(resp.data.activities))\r\n const pi = resp.data.activities.pageInfo\r\n cursor = pi.endCursor\r\n return pi.hasNextPage\r\n }\r\n })\r\n .catch((err) => {\r\n console.log('error activity list => ', err)\r\n return false\r\n })\r\n }\r\n\r\n async function startWhile(hasMore: boolean) {\r\n while (hasMore) {\r\n setLoading(true)\r\n hasMore = await getActivity()\r\n }\r\n setLoading(false)\r\n }\r\n\r\n var cursor2: string | undefined = undefined\r\n\r\n async function startHierarchyWhile(hasMore2: boolean) {\r\n dispatch(setMainLoading(true))\r\n let buffer: ProductHierarchyEdge = {\r\n edges: [],\r\n }\r\n const getHierarchyList = async () => {\r\n return await client\r\n .query({\r\n query: GET_PRODUCT_HIERARHCY_BY_DEPTH,\r\n variables: {cursor: cursor2},\r\n })\r\n .then((resp) => {\r\n setLoading(false)\r\n if (resp.errors) {\r\n return false\r\n } else {\r\n console.log('49 resp.data.productHierarchies.edges', resp.data.productHierarchies)\r\n let edges = resp.data.productHierarchies.edges.filter(\r\n (e: ProductHierarchyNode) => e.node.productHierarchyCode != 'SPZZ'\r\n )\r\n buffer!.edges?.push(...edges)\r\n\r\n const pi = resp.data.productHierarchies.pageInfo\r\n cursor2 = pi.endCursor\r\n return pi.hasNextPage\r\n }\r\n })\r\n .catch((err) => {\r\n console.log('error productHierarchies list => ', err)\r\n return false\r\n })\r\n }\r\n\r\n while (hasMore2) {\r\n hasMore2 = await getHierarchyList()\r\n }\r\n console.log('while bitti')\r\n\r\n dispatch(setProductHierarchies(buffer))\r\n\r\n dispatch(setMainLoading(false))\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(deleteHaberler([]))\r\n startWhile(true)\r\n\r\n async function getProductTag() {\r\n return await client\r\n .query({\r\n query: GET_SETTING,\r\n variables: {key: 'SalesPediaTags'},\r\n })\r\n .then((resp) => {\r\n console.log('setting => ', resp)\r\n if (resp.error) {\r\n return false\r\n } else {\r\n try {\r\n var specialKitchen: ProductTag[] = JSON.parse(\r\n resp.data.settings.edges[0].node.value\r\n ).SalesPediaTags.OzelMutfaklar.map((x: ProductTag) => {\r\n return x\r\n })\r\n var specialProduct: ProductTag[] = JSON.parse(\r\n resp.data.settings.edges[0].node.value\r\n ).SalesPediaTags.OzelUrunler.map((x: ProductTag) => {\r\n return x\r\n })\r\n var allSalesPediaTags: ProductTag[] = JSON.parse(\r\n resp.data.settings.edges[0].node.value\r\n ).SalesPediaTags.AllSalesPediaTags.map((x: ProductTag) => {\r\n return x\r\n })\r\n setAllSalesPediaTag(allSalesPediaTags)\r\n setSpecialProductTag(specialProduct)\r\n setSpecialKitchenTag(specialKitchen)\r\n } catch (err) {\r\n console.log('burada => ', err)\r\n }\r\n }\r\n })\r\n .catch((err: any) => {\r\n console.log('error setting => ', err)\r\n return false\r\n })\r\n }\r\n dispatch(deletePageLinks([]))\r\n startHierarchyWhile(true)\r\n getProductTag()\r\n }, [])\r\n\r\n const getStatementValue = (activityNode: ActivityNode, statementCode: string) => {\r\n var statement = activityNode.node.activityStatements.find(\r\n (x) => x.statementCode == statementCode\r\n )\r\n if (statementCode != 'A8') {\r\n return statement?.value\r\n } else {\r\n return statement?.notes\r\n }\r\n }\r\n\r\n const filterProduct = (activityNode: ActivityNode) => {\r\n if (searchText != undefined && searchText.length > 2 && activityNode != undefined) {\r\n if (\r\n getStatementValue(activityNode, 'A1')?.toLowerCase().includes(searchText.toLowerCase()) ||\r\n getStatementValue(activityNode, 'A8')?.toLowerCase().includes(searchText)\r\n ) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n\r\n useEffect(() => {\r\n console.log('Değişimmm => ', productHierarchyState)\r\n }, [productHierarchyState])\r\n console.log(\r\n '-',\r\n productHierarchyState,\r\n '---',\r\n specialProductTags,\r\n '---------',\r\n specialKitchenTags\r\n )\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Haberler\r\n

\r\n
\r\n\r\n {activityState.activityList && activityState.activityList.length > 0 ? (\r\n <>\r\n
\r\n
\r\n setSearchText(event.target.value)}\r\n className='form-control'\r\n aria-label=''\r\n aria-describedby='inputGroup-sizing-lg'\r\n placeholder='Haber Ara'\r\n />\r\n
\r\n
\r\n \r\n {activityState.activityList\r\n ?.filter((x) => filterProduct(x))\r\n .map((x) => (\r\n \r\n ))}\r\n
\r\n \r\n ) : (\r\n
\r\n Haber paylaşımı bulunmuyor.\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC} from 'react'\r\nimport {useIntl} from 'react-intl'\r\nimport {PageTitle} from '../../../_metronic/layout/core'\r\n\r\nimport SalesPediaMain from '../../modules/salesPediaMain/SalesPediaMain'\r\n\r\n\r\n\r\nconst DashboardPage: FC = () => (\r\n <>\r\n {/* begin::Row */}\r\n
\r\n \r\n
\r\n {/* end::Row */}\r\n \r\n)\r\n\r\nconst DashboardWrapper: FC = () => {\r\n const intl = useIntl()\r\n return (\r\n <>\r\n {\"Ana Sayfa\"}\r\n \r\n \r\n )\r\n}\r\n\r\nexport {DashboardWrapper}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport SVG from 'react-inlinesvg'\r\nimport {toAbsoluteUrl} from '../../_metronic/helpers'\r\n\r\nconst MenuTestPage: FC = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Dashboard\r\n \r\n
\r\n \r\n \r\n Pages\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Profile\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Overview\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Campaigns\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Profile -\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Overview\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Campaigns\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Followers\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Activity\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Followers\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Profile -\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Overview\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Campaigns\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Followers\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Activity\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Activity\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Overview\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Lists\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Activity\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Files\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Users\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Targets\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Wizards\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Wizard Vertical\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Wizard Horizontal\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Search\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Search Horizontal\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Search Vertical\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Resources\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Documentation\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Layout Builder\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Changelog\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Mega Menu\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n It is a long established fact that a reader will be distracted by the\r\n readable content of a page when looking at its layout. The point of using\r\n Lorem Ipsum is that it has a more-or-less normal distribution of letters, as\r\n opposed to using 'Content here, content here', making it look like readable\r\n English.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {}}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
Suggestions
\r\n
\r\n Sorry, no results found\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n
\r\n
\r\n
\r\n Custom\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Pages\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Profile\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Overview\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Campaigns\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Followers\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Activity\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Overview\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Lists\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Activity\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Files\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Users\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Targets\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Wizards\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Wizard Vertical\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Wizard Horizontal\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Search\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Search Horizontal\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Search Vertical\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Documentation\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n Layout Builder\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Changelog\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport {MenuTestPage}\r\n","import React from 'react';\r\nimport { PageTitle } from '../../../_metronic/layout/core';\r\nimport { Link, useParams } from 'react-router-dom'\r\n\r\n\r\nconst SalesPediaPage = () => {\r\n return (\r\n <>\r\n\r\n
\r\n
\r\n
\r\n
\r\n

İtalyan Mutfağı

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n İtalyan Mutfağının Lezzet Sırları\r\n
Kaliteli Malzemeler Seçin
\r\n
İtalyan usulü pişirmek ve yemek için kolay uygulanabilir ipuçları!\r\n İtalyanlar, dünyanın en lezzetli mutfağına sahip olmakla övünürler. Bu mutfağa biraz yakından bakıldığında,\r\n övünmelerinin nedenini anlamak güç değil.\r\n İtalyan mutfağının bu kadar lezzetli olması, kaliteli malzemeler kullanmaya ve işleri olabildiğince basitleştirmeye dayanıyor.\r\n Yavaş pişirmek, yavaş yemek ve mutfaktan olabildiğince keyif almak, İtalyanların mutlu sofralar için uyguladığı önemli ipuçlarından.\r\n Kendi mutfağınızda İtalya’nın lezzet sırlarını uygulayabilmeniz için bazı püf noktalarını bir araya getirdik. Afiyet olsun!\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Dosyalar

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Icon\"\r\n
\r\n
\r\n İtalyan Restoranlarına Özel Ürün Listesi\r\n
2 days ago\r\n Karina Clark
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default SalesPediaPage","import React from 'react';\r\nimport { Viewer,SpecialZoomLevel,Worker } from '@react-pdf-viewer/core';\r\nimport '@react-pdf-viewer/core/lib/styles/index.css';\r\nimport {useParams} from 'react-router-dom'\r\nimport {PageTitle} from '../../../_metronic/layout/core'\r\ntype FilePage = {\r\n fileName: string;\r\n};\r\n\r\n\r\nconst SalesPediaFilePage = () => {\r\n const {fileName}=useParams();\r\n return (\r\n\r\n <>\r\n {\"Döküman Görünteleme\"}\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n\r\n}\r\n\r\nexport default SalesPediaFilePage","import React from 'react';\r\nimport {PageTitle} from '../../../_metronic/layout/core';\r\nimport {Link, useParams} from 'react-router-dom'\r\n\r\n\r\nconst SalesPediaPageFish = () => {\r\n return (\r\n<>\r\n {\"Balık Restoranları\"}\r\n
\r\n
\r\n
\r\n
\r\n

Balık Restoranları

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
*/}\r\n\r\n \r\n
\r\n
\r\n İtalyan Mutfağının Lezzet Sırları\r\n
Kaliteli Malzemeler Seçin
\r\n
İtalyan usulü pişirmek ve yemek için kolay uygulanabilir ipuçları!\r\n İtalyanlar, dünyanın en lezzetli mutfağına sahip olmakla övünürler. Bu mutfağa biraz yakından bakıldığında,\r\n övünmelerinin nedenini anlamak güç değil.\r\n İtalyan mutfağının bu kadar lezzetli olması, kaliteli malzemeler kullanmaya ve işleri olabildiğince basitleştirmeye dayanıyor.\r\n Yavaş pişirmek, yavaş yemek ve mutfaktan olabildiğince keyif almak, İtalyanların mutlu sofralar için uyguladığı önemli ipuçlarından.\r\n Kendi mutfağınızda İtalya’nın lezzet sırlarını uygulayabilmeniz için bazı püf noktalarını bir araya getirdik. Afiyet olsun!\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Dosyalar

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Icon\"\r\n
\r\n
\r\n Balık Restoranlarına Özel Ürün Listesi\r\n
2 days ago\r\n Karina Clark
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default SalesPediaPageFish","import React from 'react';\r\nimport {PageTitle} from '../../../_metronic/layout/core';\r\nimport {Link, useParams} from 'react-router-dom'\r\n\r\n\r\nconst SalesPediaPageKebab = () => {\r\n return (\r\n<>\r\n {\"Kebap Restoranları\"}\r\n
\r\n
\r\n
\r\n
\r\n

Kebap Restoranları

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* */}\r\n
\r\n
\r\n Kebap Ürünleri\r\n
Kaliteli Malzemeler Seçin
\r\n
İtalyan usulü pişirmek ve yemek için kolay uygulanabilir ipuçları!\r\n İtalyanlar, dünyanın en lezzetli mutfağına sahip olmakla övünürler. Bu mutfağa biraz yakından bakıldığında,\r\n övünmelerinin nedenini anlamak güç değil.\r\n İtalyan mutfağının bu kadar lezzetli olması, kaliteli malzemeler kullanmaya ve işleri olabildiğince basitleştirmeye dayanıyor.\r\n Yavaş pişirmek, yavaş yemek ve mutfaktan olabildiğince keyif almak, İtalyanların mutlu sofralar için uyguladığı önemli ipuçlarından.\r\n Kendi mutfağınızda İtalya’nın lezzet sırlarını uygulayabilmeniz için bazı püf noktalarını bir araya getirdik. Afiyet olsun!\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Dosyalar

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Icon\"\r\n
\r\n
\r\n Kebap Restoranlarına Özel Ürün Listesi\r\n
2 days ago\r\n Karina Clark
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default SalesPediaPageKebab","import React from 'react';\r\nimport {PageTitle} from '../../../_metronic/layout/core';\r\nimport {Link, useParams} from 'react-router-dom'\r\n\r\n\r\nconst SalesPediaPageVegan = () => {\r\n return (\r\n<>\r\n {\"Vegan Ürünler\"}\r\n
\r\n
\r\n
\r\n
\r\n

Vegan Ürünler

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* */}\r\n
\r\n
\r\n Vegan Ürünler\r\n
Ürün Testleri
\r\n
\r\n

\r\n Veganizm, ya da vegan yaşam şekli, mümkün ve uygulanabilir olduğu ölçüde,\r\n yiyecek, giyecek veya başka herhangi\r\n bir amaçla hayvanlara yönelik her türlü sömürü ve zulümden uzak durmaya çalışan bir felsefe ve yaşam şeklidir.\r\n Bu görüşü benimseyen kişiler, hayvanların, insanların ve çevrenin yararına hayvanların kullanılmadığı alternatiflerin kullanılmasından yanadır. Diyet olarak bakıldığında da tamamen veya kısmen hayvanlardan elde edilen tüm ürünlerden vazgeçme uygulamasını ifade etmektedir.\r\n

\r\n

\r\n Bugün vegan yaşam şeklini benimsemenin birçok yolu bulunmaktadır. Ama hepsinin ortak özelliği, balık, kabuklu deniz ürünleri ve böcekler dahil et yememek, süt ürünleri kullanmamak, yumurta ve bal gibi tüm hayvansal gıdalardan kaçınmaktır. Aynı zamanda hayvansal kaynaklı ürünlerden, hayvanlar üzerinde test edilen ürünlerden ve hayvanları eğlence için kullanan yerlerden kaçınmaktır.\r\n

\r\n 1940’lı yılların sonlarına doğru ilk olarak hayvanların insanlar tarafından sömürülmesinden kurtulma düşüncesi ile başlatılan bu hareket, çok geçmeden hayvanların, insanlar tarafından bir ürün, iş, avlanma ya da eğelnce amaçlı kullanılmasına son verilmesi düşüncesine dönüşmüştür.\r\n

\r\n Aslında veganlar, hayvansal ürünler dışında çok zengin yiyecek ve tatlardan oluşan yepyeni bir dünya bulmaktadır. Vegan diyet zengin çeşitlilik göstermektedir ve her türlü meyva, sebze, kuruyemiş, tahıl, tohum ve bakliyat içermektedir ve bunlarla sonsuz kombinasyonlar yaplabilmektedir. Hamur işlerinden pizzaya kadar en sevilen şeyler, bitki bazlı malzemelerle yapılmışsa, vegan bir diyet için bu çok uygundur.\r\n

\r\n Elbette konu sadece diyetle ilgili değildir. Vegan yaşam şeklini uygulayan insanlar, hayvanları herhangi bir amaçla istismar etmekten kaçınmaktadır. Bugün giyeceklerden aksesuarlara, hatta banyo ve makyaj malzemelerine kadar, hayvan ürünleri ve hayvanlar üzerinde test edilen ürünler, her yerde bulunmaktadır. Tahminlere göre, vegan markasında kayıtlı 50 bin civarında alternatif ürün bulunmaktadır.\r\n\r\n İlaçlar konusu biraz hassastır. Bugün neredeyse tüm ilaçlar, insan kullanımı için güvenli olduğunu kanıtlamak üzere hayvanlar üzerinde test edilmektedir. Ancak ilaçlardan kaçınmak, bu nedenle sağlığı kaybetmekten daha önemli değildir. Bu bakımdan mümkün olduğunda jelatin veya laktoz gibi hayvansal ürünler içermeyen ilaçlar talep edilebilir, ancak hepten vazgeçilemez. Günümüzde hayvanlar üzerinde test yapmayan çok sayıda kurum bulunmaktadır.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Dosyalar

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Icon\"\r\n
\r\n
\r\n Metro Promosyonlar - Bitkisel ve Vegan\r\n
2 days ago\r\n Karina Clark
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Icon\"\r\n
\r\n
\r\n Vegan ürünler listesi\r\n
2 days ago\r\n Karina Clark
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \"img\"\r\n
\r\n\r\n
\r\n Göster\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \"img\"\r\n
\r\n\r\n
\r\n Göster\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \"img\"\r\n
\r\n\r\n
\r\n Göster\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \"img\"\r\n
\r\n\r\n
\r\n Göster\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \"img\"\r\n
\r\n\r\n
\r\n Göster\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \"img\"\r\n
\r\n\r\n
\r\n Göster\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default SalesPediaPageVegan","\r\nexport const API_URL = window.Configs.API_URL;","import {useEffect, useState} from 'react'\r\nimport {useDispatch, useSelector} from 'react-redux'\r\nimport {Link, useHistory, useLocation} from 'react-router-dom'\r\nimport {GET_PRODUCTS_BY_TAG, GET_SUB_HIERARCHIES} from '../../../store/queries'\r\nimport {\r\n ProductHierarcyEdge,\r\n Product,\r\n DocumentRelations,\r\n ProductHierarcy,\r\n ProductNode,\r\n} from '../../../types'\r\nimport {useApolloClient} from '@apollo/client'\r\nimport {PageTitle} from '../../../../_metronic/layout/core'\r\nimport {appendPageLink, removePageLink} from '../../../../setup/redux/PageTitleSlicer'\r\nimport {RootState} from '../../../../setup/redux/RootReducer'\r\nimport {setMainLoading} from '../../../../setup/redux/loadingSlice'\r\nimport axios from 'axios'\r\nimport {API_URL} from '../../../../setup'\r\nimport AuthService from '../../../modules/auth/redux/AuthService'\r\nimport {Navigation} from 'swiper'\r\nimport {url} from 'inspector'\r\nimport \"./SubHierarcy.css\"\r\n\r\nexport default function SubHierarcyList() {\r\n const location = useLocation()\r\n const history = useHistory()\r\n const search = location.search\r\n let _parentProductHierarchyGuid = new URLSearchParams(search).get('guid')\r\n let _removeItem = new URLSearchParams(search).get('removeItem')\r\n let _tagText = new URLSearchParams(search).get('tagText')\r\n\r\n const [guidQuery, setGuidQuery] = useState(_parentProductHierarchyGuid)\r\n const [tagText, setTagText] = useState(_tagText)\r\n const user = AuthService.GetCurrentUser()\r\n const dispatch = useDispatch()\r\n\r\n const [productHierarchyList, setProductHierarchyList] = useState(\r\n undefined\r\n )\r\n const [productList, setProductList] = useState(undefined)\r\n\r\n const pageLinks = useSelector((state: RootState) => state.pageLinkReducer)\r\n\r\n const client = useApolloClient()\r\n var cursor: string | undefined = undefined\r\n\r\n let images: any = {}\r\n images['no'] =\r\n 'data:image/png;base64,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'\r\n\r\n useEffect(() => {\r\n setGuidQuery(_parentProductHierarchyGuid)\r\n console.log('tagtext', _tagText)\r\n setTagText(_tagText)\r\n console.log('PrevPage => ')\r\n })\r\n\r\n useEffect(() => {\r\n getList(guidQuery!)\r\n }, [guidQuery])\r\n\r\n useEffect(() => {\r\n getProducts(tagText!)\r\n }, [tagText])\r\n\r\n useEffect(() => {\r\n setProductHierarchyList(undefined)\r\n startWhile(true)\r\n }, [])\r\n\r\n async function startWhile(hasMore: boolean) {\r\n while (hasMore) {\r\n dispatch(setMainLoading(true))\r\n hasMore = await getList(undefined)\r\n }\r\n dispatch(setMainLoading(false))\r\n }\r\n const getProducts = async (tagText: string) => {\r\n dispatch(setMainLoading(true))\r\n var cursor2: string | undefined = undefined\r\n var buffer: Product[] = []\r\n\r\n async function startProductQuery(): Promise {\r\n if (tagText != undefined && tagText !== '') {\r\n return await client\r\n .query({\r\n query: GET_PRODUCTS_BY_TAG,\r\n variables: {cursor, tagText: tagText},\r\n })\r\n .then((resp) => {\r\n console.log('taglist list => ', resp)\r\n if (resp.error) {\r\n return false\r\n } else {\r\n const pi = resp.data.products.pageInfo\r\n try {\r\n if (resp.data.products?.edges[0]?.node?.productProductHierarchies != undefined) {\r\n console.log('ProductHierarchies 87 =>', resp.data.products?.edges[0])\r\n var productsEntities: Product[] = resp.data.products.edges.map(\r\n (productNode: ProductNode) => {\r\n return productNode.node\r\n }\r\n )\r\n buffer.push(...productsEntities)\r\n }\r\n } catch (err) {\r\n console.log('burada => ', err)\r\n }\r\n cursor = pi.endCursor\r\n return pi.hasNextPage\r\n }\r\n })\r\n .catch((err) => {\r\n console.log('error product list => ', err)\r\n return false\r\n })\r\n }\r\n }\r\n\r\n var hasMore = true\r\n let i: number = 0\r\n while (hasMore) {\r\n console.log('i => ', i++)\r\n hasMore = await startProductQuery()\r\n console.log('asdasd', hasMore)\r\n }\r\n console.log('320 buffer =>>', buffer)\r\n setProductList(buffer)\r\n dispatch(setMainLoading(false))\r\n }\r\n\r\n const downloadProduct = () => {\r\n var guidList = productList?.map((x) => x.guid.toString())\r\n\r\n var stringGuidList = guidList?.join('\"\"')\r\n dispatch(setMainLoading(true))\r\n let url = API_URL + '/api/ExcelReport/ExcelReport'\r\n const token = user != null ? user.token : ''\r\n axios\r\n .post(\r\n url,\r\n {\r\n excelTemplateName: 'ProductExcelTemplate',\r\n query:\r\n 'query{productsAll(where:{guid:{in:[\"' +\r\n stringGuidList +\r\n '\"]}}){ productId,sku,displayName}}',\r\n },\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n 'Content-Type': 'application/json',\r\n SessionGuid: user?.userData?.sessionGuid,\r\n },\r\n responseType: 'arraybuffer',\r\n }\r\n )\r\n .then((response) => {\r\n const url = window.URL.createObjectURL(new Blob([response.data]))\r\n const link = document.createElement('a')\r\n link.href = url\r\n link.setAttribute('download', 'ürün listesi.xlsx')\r\n document.body.appendChild(link)\r\n link.click()\r\n dispatch(setMainLoading(false))\r\n })\r\n .catch((error) => console.log(error))\r\n dispatch(setMainLoading(false))\r\n }\r\n\r\n async function getList(hierarchyGuid: string | undefined): Promise {\r\n let hierarchyCodeList: string[] = []\r\n\r\n if (hierarchyGuid != undefined && hierarchyGuid !== '') {\r\n return await client\r\n .query({\r\n query: GET_SUB_HIERARCHIES,\r\n variables: {\r\n cursor,\r\n topHieGuid: hierarchyGuid == undefined ? _parentProductHierarchyGuid : hierarchyGuid,\r\n },\r\n })\r\n .then((resp) => {\r\n console.log('haber list => ', resp)\r\n if (resp.error) {\r\n return false\r\n } else {\r\n const pi = resp.data.productHierarchies.pageInfo\r\n try {\r\n setProductHierarchyList(resp.data.productHierarchies)\r\n let products: Product[] | undefined =\r\n resp.data.productHierarchies?.edges[0]?.node?.products\r\n\r\n if (\r\n resp.data.productHierarchies?.edges[0]?.node?.productProductHierarchies != undefined\r\n ) {\r\n let productProductHieList =\r\n resp.data.productHierarchies?.edges[0]?.node?.productProductHierarchies.map(\r\n (x: any) => {\r\n return x.product\r\n }\r\n )\r\n console.log('productProductHieList', productProductHieList)\r\n products = products?.concat(productProductHieList)\r\n }\r\n\r\n console.log('product list =>', products)\r\n setProductList(products)\r\n\r\n if (hierarchyGuid == undefined && (_removeItem == undefined || _removeItem == '')) {\r\n dispatch(\r\n appendPageLink({\r\n isActive: true,\r\n path: '/',\r\n title: 'Ana Sayfa > ',\r\n })\r\n )\r\n } else {\r\n if (_removeItem != undefined && _removeItem != '') {\r\n console.log('_removeItem =>', _removeItem)\r\n dispatch(removePageLink(_removeItem))\r\n } else {\r\n dispatch(\r\n appendPageLink({\r\n isActive: true,\r\n path:\r\n '/subHierarchyList?guid=' +\r\n productHierarchyList?.edges[0]?.node.guid +\r\n '&removeItem=' +\r\n productHierarchyList!.edges[0]!.node.displayName +\r\n ' > ',\r\n title: productHierarchyList!.edges[0]!.node.displayName + ' > ',\r\n })\r\n )\r\n }\r\n }\r\n } catch (err) {\r\n console.log('burada => ', err)\r\n }\r\n cursor = pi.endCursor\r\n return pi.hasNextPage\r\n }\r\n })\r\n .catch((err) => {\r\n console.log('error activity list => ', err)\r\n return false\r\n })\r\n }\r\n }\r\n\r\n const getImage = (productHie: ProductHierarcy) => {\r\n if (productHie.documentRelations != undefined && productHie.documentRelations.length > 0) {\r\n return productHie.documentRelations[0].document.fileName\r\n } else {\r\n return images['no']\r\n }\r\n }\r\n\r\n const updateBreadCrump = () => {\r\n if (productHierarchyList && productHierarchyList.edges && productHierarchyList.edges[0]) {\r\n dispatch(\r\n appendPageLink({\r\n isActive: true,\r\n path:\r\n '/subHierarchyList?guid=' +\r\n productHierarchyList.edges[0].node.guid +\r\n '&removeItem=' +\r\n productHierarchyList.edges[0].node.displayName +\r\n ' > ',\r\n title: productHierarchyList.edges[0].node.displayName + ' > ',\r\n })\r\n )\r\n }\r\n }\r\n\r\n const getProductImage = (documentRelationList: DocumentRelations[] | undefined) => {\r\n if (documentRelationList == undefined || documentRelationList.length == 0) {\r\n return images['no']\r\n }\r\n\r\n return documentRelationList[0].document.fileName + '?w=370&h=250&mode=pad'\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {productHierarchyList?.edges[0]?.node.displayName}\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {_tagText! ? tagText : productHierarchyList?.edges[0]?.node.displayName}\r\n \r\n
\r\n {productHierarchyList?.edges[0]?.node.subProductHierarchies?.map((x) => (\r\n
\r\n
\r\n \r\n {/* Product */}\r\n
\r\n \r\n
\r\n \r\n {x.displayName}\r\n \r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n\r\n
\r\n
\r\n 0 ? 'block' : 'none',\r\n }}\r\n >\r\n Ürünler({productList?.length})\r\n \r\n
\r\n\r\n
\r\n {productList! && productList.length > 0 && (\r\n downloadProduct()}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n {productList?.map((x) => (\r\n
\r\n
\r\n updateBreadCrump()}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {console.log('X ==>>> ', x)}\r\n
\r\n \r\n {x.displayName}\r\n \r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n \r\n \r\n )\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC} from 'react'\r\nimport {useIntl} from 'react-intl'\r\nimport {PageTitle} from '../../../_metronic/layout/core'\r\n\r\nimport SubHierarcyList from './component/SubHierarcyList'\r\n\r\nconst SubHierarchyWrapper: FC = () => {\r\n const intl = useIntl()\r\n return (\r\n <>\r\n {''}\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport {SubHierarchyWrapper}\r\n","import Slider from 'react-slick'\r\nimport {useEffect, useState} from 'react'\r\nimport {RootState} from '../../../../setup/redux/RootReducer'\r\nimport {useSelector} from 'react-redux'\r\nimport {PageTitle} from '../../../../_metronic/layout/core'\r\nimport {useHistory, useLocation} from 'react-router-dom'\r\nimport {useApolloClient} from '@apollo/client'\r\nimport {DocumentRelations, Product, ProductTag} from '../../../types'\r\nimport {GET_PRODUCT_DETAIL, GET_SETTING} from '../../../store/queries'\r\nimport {isMobile} from 'react-device-detect'\r\nimport {toAbsoluteUrl} from '../../../../_metronic/helpers'\r\nimport './ProductDetail.css'\r\n\r\nexport default function ProductDetail() {\r\n let images: any = {}\r\n images['no'] =\r\n 'https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Logo_METRO.svg/1200px-Logo_METRO.svg.png'\r\n\r\n const [productModel, setProductModel] = useState()\r\n\r\n const productDetailImages = productModel?.documentRelations\r\n .filter((x) => x.rank != 0 && x.document.documentTypeCode == 'F')\r\n .sort((x: DocumentRelations, y: DocumentRelations) => (x.rank - y.rank > 1 ? 1 : 0))\r\n\r\n const productDetailDocuments = productModel?.documentRelations.filter(\r\n (x) => x.rank != 0 && x.document.documentTypeCode == 'D'\r\n )\r\n\r\n const productVideos = productModel?.documentRelations.filter(\r\n (x) => x.rank != 0 && x.document.documentTypeCode == 'V'\r\n )\r\n\r\n const settings = {\r\n customPaging: function (i: any) {\r\n return (\r\n \r\n \r\n \r\n )\r\n },\r\n dots: true,\r\n dotsClass: 'slick-dots slick-thumb customDotClass',\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n }\r\n\r\n const pageLinks = useSelector((state: RootState) => state.pageLinkReducer)\r\n console.log(\"54 pageLinks => \",pageLinks);\r\n\r\n useEffect(() => {\r\n console.log('productModel =>> ', productModel)\r\n }, [productModel])\r\n\r\n const location = useLocation()\r\n const history = useHistory()\r\n const search = location.search\r\n let _productGuid = new URLSearchParams(search).get('guid')\r\n\r\n const client = useApolloClient()\r\n\r\n useEffect(() => {\r\n setProductModel(undefined)\r\n\r\n async function getList() {\r\n return await client\r\n .query({\r\n query: GET_PRODUCT_DETAIL,\r\n variables: {productGuid: _productGuid},\r\n })\r\n .then((resp) => {\r\n console.log('product model => ', resp)\r\n if (resp.error) {\r\n return false\r\n } else {\r\n try {\r\n setProductModel(resp.data.products.edges[0].node)\r\n } catch (err) {\r\n console.log('burada => ', err)\r\n }\r\n }\r\n })\r\n .catch((err: any) => {\r\n console.log('error activity list => ', err)\r\n return false\r\n })\r\n }\r\n\r\n getList()\r\n }, [])\r\n\r\n const subStrFunc = (input: string, maxSize: number, addtionalText: string) => {\r\n if (input?.length > maxSize) {\r\n return input.substring(0, maxSize) + addtionalText\r\n }\r\n return input\r\n }\r\n\r\n return (\r\n <>\r\n {productModel?.displayName}\r\n\r\n
\r\n
\r\n
\r\n {/* ÜrünAfiş start */}\r\n
\r\n {productModel?.documentRelations\r\n .filter((x) => x.rank == 0 && x.document.documentTypeCode == 'F')\r\n .map((x) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n {/* ÜrünAfiş end */}\r\n\r\n {/* ÜrünDetay start */}\r\n
\r\n
\r\n \r\n {productDetailImages?.map((x) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n \r\n

{productModel?.displayName}

\r\n

{productModel?.shortDescription}

\r\n\r\n
\r\n Ürün Etiketleri\r\n
\r\n\r\n
\r\n {/* Etiket1 */}\r\n
\r\n {productModel?.productTags\r\n .sort((a: ProductTag, b: ProductTag) => (a.tagText > b.tagText ? 1 : -1))\r\n .map((x) => (\r\n
\r\n \r\n {x.tagText}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n\r\n
\r\n

\r\n {productModel?.detailedDescription}\r\n

\r\n
\r\n
\r\n
\r\n {/* ÜrünDetay end */}\r\n\r\n {/* Ürün Dokümanları Start */}\r\n
\r\n {productDetailDocuments != undefined && productDetailDocuments.length > 0 ? (\r\n <>\r\n

Dokümanlar({productDetailDocuments.length})

\r\n
\r\n {productModel?.documentRelations\r\n .filter((x) => x.document.documentTypeCode == 'D')\r\n .sort((x: DocumentRelations, y: DocumentRelations) =>\r\n x.rank - y.rank > 1 ? 1 : 0\r\n )\r\n .map((x) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Aç\r\n \r\n
\r\n
\r\n {subStrFunc(x.document.displayName, 11, '...')}\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n {/* Ürün Dokümanları End*/}\r\n\r\n {/* Ürün Videoları Start */}\r\n
\r\n {productVideos != undefined && productVideos.length > 0 ? (\r\n <>\r\n

Videolar({productVideos.length})

\r\n
\r\n {productVideos\r\n .sort((x: DocumentRelations, y: DocumentRelations) =>\r\n x.rank - y.rank > 1 ? 1 : 0\r\n )\r\n .map((x) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {subStrFunc(x.document.displayName, 11, '...')}\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n {/* Ürün Videoları End */}\r\n
\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst styles = {\r\n DocumentDiv: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n },\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { FC } from 'react'\r\nimport { useIntl } from 'react-intl'\r\nimport { PageTitle } from '../../../_metronic/layout/core'\r\n\r\nimport ProductDetail from './component/ProductDetail'\r\n\r\nconst ProductWrapper: FC = () => {\r\n const intl = useIntl()\r\n return (\r\n <>\r\n {/* {\"Ürün\"} */}\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport { ProductWrapper }\r\n","import Slider from \"react-slick\";\r\nimport { useEffect, useState } from 'react'\r\nimport { RootState } from \"../../../../setup/redux/RootReducer\";\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { PageTitle } from '../../../../_metronic/layout/core';\r\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\r\nimport { useApolloClient } from \"@apollo/client\"\r\nimport { DocumentRelations, Product, ProductNode, ProductTag } from '../../../types'\r\nimport { GET_PRODUCTS_BY_TAGTEXT } from \"../../../store/queries\";\r\nimport { setMainLoading } from \"../../../../setup/redux/loadingSlice\";\r\n\r\n\r\nexport default function ProductTagPage() {\r\n\r\n let images: any = {};\r\n images[\"no\"] = \"https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Logo_METRO.svg/1200px-Logo_METRO.svg.png\";\r\n\r\n const location = useLocation();\r\n const history = useHistory();\r\n const search = location.search;\r\n let _tagText = new URLSearchParams(search).get('ProductTag');\r\n\r\n const client = useApolloClient();\r\n const dispatch = useDispatch()\r\n\r\n const [productsModel, setProductsModel] = useState([]);\r\n\r\n var productTemp: ProductNode[] | undefined = [];\r\n var cursor: (string | undefined) = undefined;\r\n\r\n\r\n async function getList(): Promise {\r\n return await client.query({\r\n query: GET_PRODUCTS_BY_TAGTEXT,\r\n variables: { cursor: cursor, tagText: _tagText }\r\n }).then(resp => {\r\n console.log(\"product model => \", resp);\r\n if (resp.error) {\r\n return false;\r\n }\r\n else {\r\n try {\r\n const pi = resp.data.products.pageInfo;\r\n productTemp?.push(...resp.data.products.edges);\r\n cursor = pi.endCursor;\r\n return pi.hasNextPage;\r\n\r\n } catch (err) {\r\n console.log(\"burada => \", err);\r\n }\r\n }\r\n }).catch((err: any) => {\r\n console.log(\"error activity list => \", err);\r\n return false;\r\n });\r\n }\r\n\r\n async function startWhile(hasMore: boolean) {\r\n while (hasMore) {\r\n dispatch(setMainLoading(true))\r\n hasMore = await getList();\r\n console.log(\"Deneme 71\", productTemp)\r\n // setProductsModel(productTemp);\r\n }\r\n dispatch(setMainLoading(false));\r\n setProductsModel(productTemp);\r\n console.log(\"ProducTemp =>>\", productTemp)\r\n }\r\n\r\n useEffect(() => {\r\n setProductsModel([]);\r\n startWhile(true);\r\n }, []);\r\n\r\n\r\n\r\n const getProductImage = (documentRelationList: DocumentRelations[] | undefined) => {\r\n if (documentRelationList == undefined || documentRelationList.length == 0) {\r\n return images[\"no\"];\r\n }\r\n\r\n return documentRelationList[0].document.fileName;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n

0 ? 'block' : 'none' }}>\r\n Ürünler({productsModel?.length})\r\n

\r\n {productsModel?.map(x =>\r\n
\r\n
\r\n updateBreadCrump()}\r\n >\r\n \r\n \r\n
\r\n \r\n {x.node.displayName}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nconst styles = {\r\n DocumentDiv: {\r\n display: \"flex\",\r\n alignContent: \"center\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"center\"\r\n }\r\n}","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { FC } from 'react'\r\nimport { useIntl } from 'react-intl'\r\nimport { PageTitle } from '../../../_metronic/layout/core'\r\nimport ProductTagPage from './component/ProductTagPage'\r\n\r\n\r\nconst ProductTagWrapper: FC = () => {\r\n const intl = useIntl()\r\n return (\r\n <>\r\n {/* {\"Ürün\"} */}\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport { ProductTagWrapper }\r\n","import React, { Suspense, lazy } from 'react'\r\nimport { Redirect, Route, Switch } from 'react-router-dom'\r\nimport { FallbackView } from '../../_metronic/partials'\r\nimport { DashboardWrapper } from '../pages/dashboard/DashboardWrapper'\r\nimport { MenuTestPage } from '../pages/MenuTestPage'\r\nimport SalesPediaPage from '../modules/salesPediaMain/SalesPediaPage'\r\nimport SalesPediaFilePage from '../modules/salesPediaMain/SalesPediaFilePage'\r\nimport SalesPediaPageFish from '../modules/salesPediaMain/SalesPediaPageFish'\r\nimport SalesPediaPageKebab from '../modules/salesPediaMain/SalesPediaPageKebab'\r\nimport SalesPediaPageVegan from '../modules/salesPediaMain/SalesPediaPageVegan'\r\nimport { SubHierarchyWrapper } from '../pages/subHierarchyList/SubHierarchyWrapper'\r\nimport { ProductWrapper } from '../pages/product/ProductWrapper'\r\nimport { ProductTagWrapper } from '../pages/productTag/ProductTagWrapper'\r\n\r\nexport function PrivateRoutes() {\r\n\r\n\r\n return (\r\n }>\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","\r\nimport React, { FC, useEffect, useState } from 'react'\r\nimport { Redirect, Switch, Route } from 'react-router-dom'\r\n\r\nimport { MasterLayout } from '../../_metronic/layout/MasterLayout'\r\nimport { PrivateRoutes } from './PrivateRoutes'\r\nimport { Logout, AuthPage } from '../modules/auth'\r\n\r\nimport AuthService from '../modules/auth/redux/AuthService'\r\n\r\nconst Routes: FC = () => {\r\n\r\n const [isAuthorized, setIsAuthorized] = useState(false)\r\n const usr = AuthService.GetCurrentUser();\r\n\r\n useEffect(() => { \r\n if(usr && usr.token && usr.userData && usr.userData.sessionGuid ){\r\n setIsAuthorized(true)\r\n }\r\n \r\n }, [usr])\r\n\r\n return (\r\n \r\n {!(usr && usr.token && usr.userData && usr.userData.sessionGuid ) ? (\r\n /*Render auth page when user at `/auth` and not authorized.*/\r\n \r\n \r\n \r\n ) : (\r\n /*Otherwise redirect to root page (`/`)*/\r\n \r\n )}\r\n\r\n {/* */}\r\n \r\n\r\n {!(usr && usr.token && usr.userData && usr.userData.sessionGuid ) ? (\r\n /*Redirect to `/auth` when user is not authorized*/\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport { Routes }\r\n","import { ApolloClient, InMemoryCache, HttpLink } from \"@apollo/client\";\r\nimport { setContext } from '@apollo/client/link/context';\r\nimport { onError } from \"@apollo/client/link/error\";\r\nimport AuthService from '../app/modules/auth/redux/AuthService'\r\nimport { API_URL } from \"../setup\";\r\n\r\n\r\n\r\nconst user = AuthService.GetCurrentUser() != null ? AuthService.GetCurrentUser() : null;\r\n\r\nconst httpLink = new HttpLink({\r\n uri: API_URL.concat('/graphql/'),\r\n});\r\n\r\n\r\n\r\nconst authLink = setContext((_, { headers }) => {\r\n const token = user != null ? user.token : ''\r\n console.log(\"tokennn\", user)\r\n return {\r\n headers: {\r\n ...headers,\r\n authorization: token ? `Bearer ${token}` : \"\",\r\n sessionGuid: user?.userData?.sessionGuid\r\n }\r\n }\r\n});\r\n\r\nconst errorLink = onError(({ graphQLErrors, networkError }) => {\r\n if (graphQLErrors) {\r\n //strinify\r\n graphQLErrors.forEach(({ message, path }) => {\r\n if (/not authorized/.test(message)) {\r\n localStorage.clear();\r\n document.location.reload()\r\n }\r\n });\r\n }\r\n});\r\n\r\nexport const client = new ApolloClient({\r\n link: errorLink.concat(authLink.concat(httpLink)),\r\n defaultOptions: {\r\n watchQuery: {\r\n fetchPolicy: 'no-cache',\r\n errorPolicy: 'ignore',\r\n },\r\n query: {\r\n fetchPolicy: 'no-cache',\r\n errorPolicy: 'all',\r\n }\r\n },\r\n cache: new InMemoryCache(),\r\n});","import React, { Suspense } from 'react'\r\nimport { BrowserRouter } from 'react-router-dom'\r\nimport { I18nProvider } from '../_metronic/i18n/i18nProvider'\r\nimport { LayoutProvider, LayoutSplashScreen } from '../_metronic/layout/core'\r\nimport AuthInit from './modules/auth/redux/AuthInit'\r\nimport { Routes } from './routing/Routes'\r\nimport { ApolloProvider } from '@apollo/client'\r\nimport { client } from '../ApollClient/client'\r\n\r\ntype Props = {\r\n basename: string\r\n}\r\n\r\nconst App: React.FC = ({ basename }) => {\r\n return (\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport { App }\r\n","import React from 'react'\r\nimport ReactDOM from 'react-dom'\r\n// Redux\r\n// https://github.com/rt2zz/redux-persist\r\nimport {PersistGate} from 'redux-persist/integration/react'\r\nimport {Provider} from 'react-redux'\r\nimport * as _redux from './setup'\r\nimport store, {persistor} from './setup/redux/Store'\r\n// Axios\r\nimport axios from 'axios'\r\nimport {Chart, registerables} from 'chart.js'\r\n\r\n// Apps\r\nimport {App} from './app/App'\r\nimport {MetronicI18nProvider} from './_metronic/i18n/Metronici18n'\r\n/**\r\n * TIP: Replace this style import with dark styles to enable dark mode\r\n *\r\n * import './_metronic/assets/sass/style.dark.scss'\r\n **/\r\nimport './_metronic/assets/sass/style.scss'\r\n/**\r\n * Base URL of the website.\r\n *\r\n * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder\r\n */\r\nconst {PUBLIC_URL} = process.env\r\n/**\r\n * Creates `axios-mock-adapter` instance for provided `axios` instance, add\r\n * basic Metronic mocks and returns it.\r\n *\r\n * @see https://github.com/ctimmerm/axios-mock-adapter\r\n */\r\n\r\n// /* const mock = */ _redux.mockAxios(axios)\r\n/**\r\n * Inject Metronic interceptors for axios.\r\n *\r\n * @see https://github.com/axios/axios#interceptors\r\n */\r\n// _redux.setupAxios(axios, store)\r\n\r\nChart.register(...registerables)\r\n\r\nReactDOM.render(\r\n \r\n \r\n {/* Asynchronously persist redux stores and show `SplashScreen` while it's loading. */}\r\n Lütfen bekleyiniz...}>\r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n)\r\n"],"sourceRoot":""}