{"version":3,"sources":["app/modules/auth/redux/AuthRedux.ts","_metronic/layout/core/DefaultLayoutConfig.ts","_metronic/layout/core/LayoutProvider.tsx","app/modules/auth/redux/AuthSlice.ts","app/modules/auth/components/Registration.tsx","app/modules/auth/components/ForgotPassword.tsx","app/modules/auth/components/Login.tsx","app/modules/auth/AuthPage.tsx","app/modules/auth/__mocks__/usersTableMock.ts","app/modules/auth/Logout.tsx","setup/slices/ActivitiesSlice.ts","setup/slices/CustomersSlice.ts","setup/slices/TahsilatCustomerSlice.ts","setup/redux/RootReducer.ts","app/modules/auth/redux/AuthInit.tsx","_metronic/layout/core/PageData.tsx","app/modules/Tahsilat/Content/CustomerSearch.tsx","app/modules/Tahsilat/Content/CustomersTable.tsx","app/modules/Tahsilat/Content/CustomerFilter.tsx","app/ApolloClient/client.tsx","app/helper/ActivityHelper.ts","app/modules/Tahsilat/modal/modal-components/CallAgain.tsx","app/modules/Tahsilat/modal/modal-components/FuturePayment.tsx","app/modules/Tahsilat/modal/modal-components/InstantPayment.tsx","app/modules/Tahsilat/modal/modal-components/ModalBillTable.tsx","app/modules/Tahsilat/modal/modal-components/TablePassedCalls.tsx","app/modules/Tahsilat/modal/modal-components/ModalPassedCalls.tsx","app/modules/Tahsilat/modal/ModalCard.tsx","app/pages/Tahsilat/Tahsilat.tsx","_metronic/helpers/AssetHelpers.ts","_metronic/helpers/RouterHelpers.ts","_metronic/helpers/components/KTSVG.tsx","_metronic/helpers/dataExamples.ts","setup/slices/ModalSlice.ts","_metronic/layout/core/MetronicSplashScreen.tsx","app/modules/auth/redux/AuthService.tsx","setup/redux/Store.ts","_metronic/i18n/Metronici18n.tsx","_metronic/i18n/i18nProvider.tsx","_metronic/layout/components/aside/AsideMenuItem.tsx","_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","_metronic/layout/components/header/page-title/DefaultTitle.tsx","_metronic/partials/layout/header-menus/HeaderUserMenu.tsx","_metronic/partials/chat/ChatInner.tsx","_metronic/partials/layout/drawer-messenger/DrawerMessenger.tsx","_metronic/partials/content/activity/Item1.tsx","_metronic/partials/content/activity/Item2.tsx","_metronic/partials/content/activity/Item3.tsx","_metronic/partials/content/activity/Item4.tsx","_metronic/partials/content/activity/Item5.tsx","_metronic/partials/content/activity/Item6.tsx","_metronic/partials/content/activity/Item7.tsx","_metronic/partials/content/activity/Item8.tsx","_metronic/partials/layout/activity-drawer/ActivityDrawer.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/errors/components/Error500.tsx","app/modules/errors/components/Error404.tsx","app/modules/errors/ErrorsPage.tsx","app/modules/AnaVezne/Content/CustomersTable.tsx","app/modules/AnaVezne/Content/Filter/CustomerFilter.tsx","app/modules/AnaVezne/Content/Filter/CustomerSearch.tsx","app/modules/AnaVezne/Content/FilterCard.tsx","app/modules/AnaVezne/Content/TableButtons.tsx","app/modules/AnaVezne/Modal/VezneModalCard.tsx","app/pages/AnaVezne.tsx","app/pages/MainPageWrapper.tsx","app/routing/PrivateRoutes.tsx","app/routing/Routes.tsx","app/App.tsx","index.tsx","app/modules/AnaVezne/apis/ApiCall.tsx","_metronic/layout/core/LayoutSetup.ts","setup/helpers/apiUrl.js","setup/slices/AnavezneSlice.ts","app/modules/auth/redux/AuthCRUD.ts","app/store/queries.ts"],"names":["saga","actionTypes","initialAuthState","user","undefined","accessToken","reducer","persistReducer","storage","key","whitelist","state","action","type","payload","actions","login","register","logout","requestUser","fulfillUser","setUser","takeLatest","loginSaga","put","registerSaga","userRequested","getUserByToken","data","DefaultLayoutConfig","main","primaryColor","darkSkinEnabled","loader","display","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","LayoutContext","createContext","config","classes","getEmptyCssClasses","attributes","getEmptyHTMLAttributes","cssVariables","getEmptyCSSVariables","setLayout","disableSplashScreen","splashScreen","document","getElementById","style","setProperty","LayoutProvider","children","useState","LayoutSetup","setConfig","setClasses","setAttributes","setCSSVariables","value","_themeConfig","enableSplashScreen","Array","from","body","classList","forEach","cl","remove","updatePartialConfig","Object","assign","setTimeout","useEffect","Provider","useLayout","useContext","initialState","session","userSlice","createSlice","name","reducers","AuthService","SetCurrentUser","JSON","stringify","deleteUser","initialValues","firstname","lastname","email","password","changepassword","acceptTerms","registrationSchema","Yup","shape","min","max","required","when","is","val","length","then","oneOf","Registration","loading","setLoading","dispatch","useDispatch","formik","useFormik","validationSchema","onSubmit","values","setStatus","setSubmitting","auth","catch","className","noValidate","id","handleSubmit","to","marginLeft","alt","src","toAbsoluteUrl","status","placeholder","autoComplete","getFieldProps","clsx","touched","errors","role","data-kt-password-meter","htmlFor","disabled","isSubmitting","isValid","forgotPasswordSchema","ForgotPassword","hasErrors","setHasErrors","requestPassword","result","loginSchema","Login","client","useApolloClient","a","query","GET_TOKEN","variables","response","salesPersonGuid","userInfo","token","serverUrl","userData","location","reload","error","marginTop","href","target","rel","AuthPage","add","path","component","exact","UsersTableMock","Logout","localStorage","clear","table","username","refreshToken","roles","pic","fullname","occupation","companyName","phone","language","timeZone","website","emailSettings","emailNotification","sendCopyToPersonalEmail","activityRelatesEmail","youHaveNewNotifications","youAreSentADirectMessage","someoneAddsYouAsAsAConnection","uponNewOrder","newMembershipApproval","memberRegistration","updatesFromKeenthemes","newsAboutKeenthemesProductsAndFeatureUpdates","tipsOnGettingMoreOutOfKeen","thingsYouMissedSindeYouLastLoggedIntoKeen","newsAboutStartOnPartnerProductsAndOtherServices","tipsOnStartBusinessProducts","communication","sms","address","addressLine","city","postCode","socialNetworks","linkedIn","facebook","twitter","instagram","activitySlice","activitiesByWeek","activityIndex","createdActivityId","createPlanDateTime","createdActivityGuid","acceptedActivityId","selectedDateForActivityCreate","selectedHourForActivityCreate","setActivities","activities","newItem","filter","f","includes","guid","map","m","api_activity","client_activity","activityStatementIndex","activityStatements","__typename","st","activityStatementId","customerSlice","customerList","setAllCustomers","tahsilatSlice","allTahsilatCustomers","filteredTahsilatCustomers","serachedTahsilatCustomers","setAllTahsilatCustomers","Detail","setFilteredTahsilatCustomer","setSearchedTahsilatCustomers","searchedTahsilatCustomers","rootSaga","rootReducer","combineReducers","userReducer","UserSliceReducer","tahsilatCustomers","TahsilatCustomerSlice","customers","AnavezneSlice","isVisible","ModalSlice","ActivitiesSlice","CustomersSlice","all","connector","connect","props","didRequest","useRef","showSplashScreen","setShowSplashScreen","useSelector","shallowEqual","current","console","PageDataContext","setPageTitle","_title","setPageBreadcrumbs","_breadcrumbs","setPageDescription","_description","PageDataProvider","pageDescription","pageBreadcrumbs","usePageData","PageTitle","breadcrumbs","toString","CustomerSearch","setSearchText","onChange","e","CustomersTable","setCustomer","isLoading","isAdmin","message","workInCustomerId","React","sortedColumn","setSortedColumn","setSortedData","sortOrder","setSortOrder","noticeButton","setNoticeButton","selectedCustomerNote","setSelectedCustomerNote","selectedCustName","setSelectedCustName","selectedCustomerCallCode","setSelectedCustomerCallCode","log","handleSort","column","newSortedData","newSortOrder","sort","b","valueA","valueB","localeCompare","hideNoticeButton","Button","onClick","excelCustomers","customer","AramaTarihi","OdemeTarihi","Note","Not","CustomerId","GecikmeGunOrt","TotalBalance","TotalOverDue","CustName","GetCustomersByExcel","downloadExcel","textAlign","color","borderBottom","cursor","background","colSpan","index","bgColor","PlanTarihi","split","moment","Date","format","changeModalVisibility","handleClick","textDecoration","Customerreference","AtCustNo","VergiNo","toLocaleString","AramaSonucu","BeklenenOdeme","OdemeKanali","handleNoticeButton","Modal","show","onHide","size","aria-labelledby","centered","Header","Title","Body","Footer","variant","CustomerFilter","setTodayPayment","setDelayedPayment","setTodayRecall","setPassedExpiry","checked","border","GetCurrentUser","httpLink","HttpLink","uri","API_URL","concat","authLink","setContext","_","headers","authorization","sessionGuid","errorLink","onError","graphQLErrors","networkError","test","ApolloClient","link","defaultOptions","watchQuery","fetchPolicy","errorPolicy","cache","InMemoryCache","getActivityStatementsFromEmpty","typeGuid","setEmptyActivity","GET_EMPTY_ACTIVITY","paramGuid","parsed","parse","resp","createEmptyActivity","getActivityCallHistory","lastActivityNumber","setCallHistory","customerId","GET_ACTIVITY_HISTORY","res","edges","getActivityInfo","setActivityInfo","GET_ACTIVITY_INFO","activityTypes","node","getSalesPersonId","setSalesPersonId","salesPersonId","GET_SALESPERSON_ID","salespersonGuid","salesPeople","getWorkInCustomerId","setWorkInCustomerId","GET_CUSTOMER_WORKINCUSTOMERID","str","salesPersonReference","CallAgain","emptyActivity","setFormValues","composeActivity","callDate","setCallDate","expText","setExpText","buttonDisabled","setButtonDisabled","jsonValues","items","option","event","preventDefault","alignSelf","statementText","rows","FuturePayment","selectedDebt","paymentMethod","setPaymentMethod","paymentAmount","setPaymentAmount","contactOption","setContactOption","contactValue","setContactValue","paymentDate","setPaymentDate","contactText","setContactText","parseFloat","toFixed","elm","element","slice","defaultValue","InstantPayment","ModalBillTable","bills","setSelectedDebt","selectAll","billCheckbox","getElementsByName","compareDates","date1","date2","parts1","reverse","parts2","i","num1","parseInt","num2","data-kt-check","data-kt-check-target","temp","hasAttribute","getAttribute","tempsec","handleAll","Status","bill","UpbTutar","handleSum","BelgeNo","BelgeTarihi","NetVadeTarihi","Tayin","TablePassedCalls","callHistory","checkValueEntered","activityStatementList","activityId","activity","planDateTime","ModalPassedCalls","activityHistNumber","setActivityHistNumber","Accordion","Item","eventKey","Card","ModalCard","activityInfo","activityForms","setActivityForms","formValues","emptyActivityStatementCodes","setEmptyActivityStatementCodes","setBills","setEmail","setSms","primaryContactName","setPrimaryContactName","GetBillTable","GetCustomerContactInfo","escFunction","useCallback","addEventListener","removeEventListener","statementCodeArray","push","statementCode","composeEmptyActivityObj","emptyActivityStatementList","object","notes","model","activityTypeGuid","activityStatus","planEndDateTime","customerGuid","CustomerGuid","mutate","mutation","CREATE_ACTIVITY_FROM_EMPTY","createActivityFromEmptyActivity","updateVersion","UPDATE_ACTIVITY_STATUS","err","currentTarget","data-dismiss","Tahsilat","setIsLoading","setCustomerList","searchText","setMessage","filteredCustomers","setFilteredCustomers","todayPayment","delayedPayment","todayRecall","passedExpiry","some","toUpperCase","todayFilter","delayedFilter","recallFilter","expiryFilter","OdemeTaihi","newArr","self","findIndex","t","GetCustomers","GetAdminTahsilatCustomers","zIndex","backgroundColor","pathname","process","checkIsActive","url","getCurrentUrl","indexOf","KTSVG","svgClassName","defaultMessages","text","time","template","defaultUserInfos","avatar","position","online","initials","label","messageFromClient","defaultAlerts","title","icon","defaultLogs","code","settingSlice","MetronicSplashScreenContext","LayoutSplashScreen","visible","setCount","prev","getItem","setItem","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","MetronicI18nProvider","lang","ls","er","getConfig","allMessages","de","en","es","fr","ja","zh","I18nProvider","locale","messages","AsideMenuItem","fontIcon","hasBullet","useLocation","isActive","active","AsideMenuMain","useIntl","CookieComponent","matches","cookie","match","RegExp","replace","decodeURIComponent","cookieOptions","options","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","set","ElementStyleUtil","property","important","attributeName","getPropertyValue","attibuteName","removeProperty","DataUtil","instance","instanceData","get","newMap","Map","delete","has","v","k","getObjectPropertyValueByKey","obj","entries","hasOwnProperty","getUniqueIdWithPrefix","prefix","Math","floor","random","getTime","stringSnakeToCamel","DOMEventHandlerUtil","selector","eventName","callBack","eventId","targets","querySelectorAll","call","parentElement","funcFromStore","calee","ElementAnimateUtil","duration","update","complete","easings","c","d","change","start","window","performance","now","requestAnimationFrame","loop","timestamp","animationName","animateClasses","cssClass","one","offset","targetPos","getElementOffset","top","scrollPos","pageYOffset","documentElement","scrollTop","animate","scrollTo","getCSS","el","styleProp","defaultView","ownerDocument","toLowerCase","getComputedStyle","getElementActualCss","prop","css","cssText","offsetWidth","offsetHeight","setAttribute","attributeValue","getElementIndex","parentNode","getElementMatches","p","Element","prototype","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","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","this","setFiredByNameAndHandlerId","addEvent","removeEvent","on","defaultDrawerOptions","overlay","baseClass","overlayClass","DrawerComponent","_element","overlayElement","toggleElement","instanceUid","shown","lastWidth","closeElement","_handlers","togglers","_getOption","closers","_toggle","_hide","_update","String","hasBaseClass","contains","bodyCanvasAttr","attr","optionName","trigger","_show","_deleteOverlay","removeAttribute","_createOverlay","createElement","elementZIndex","overlayZindex","append","overlayClassOption","removeChild","_getDirection","_getWidth","toggle","hide","isShown","goElement","off","item","drawer","getInstance","hasInstace","hideAll","getAllInstancesByKey","dr","updateAll","handleDismiss","closest","bootstrap","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","getHeightType","getAutoHeight","dependencies","wrappers","len","borderTop","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","refreshUI","initHandlers","stepDirection","_getStepDirection","getStepContent","getLastStepIndex","getTotalStepsNumber","isLastStep","isFirstStep","animateClass","isBetweenStep","goto","goNext","getNextStepIndex","goPrev","getPrevStepIndex","goFirst","goLast","getCurrentStepIndex","getPassedStepIndex","destroy","stepper","defaultStickyOptions","animationClass","StickyComponent","instanceName","eventTriggerState","lastScrollTop","offsetNum","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","count","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","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","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","data-kt-scroll","data-kt-scroll-activate","data-kt-scroll-height","data-kt-scroll-dependencies","data-kt-scroll-wrappers","data-kt-scroll-offset","data-kt-menu","AsideDefault","data-kt-drawer","data-kt-drawer-name","data-kt-drawer-activate","data-kt-drawer-overlay","data-kt-drawer-width","data-kt-drawer-direction","data-kt-drawer-toggle","data-kt-toggle","data-kt-toggle-state","data-kt-toggle-target","data-kt-toggle-name","asideMenu","footerContainer","getFullYear","MenuInner","data-kt-swapper","data-kt-swapper-mode","data-kt-swapper-parent","DefaultTitle","isSeparator","HeaderUserMenu","bufferMessages","ChatInner","isDrawer","chatUpdateFlag","toggleChatUpdateFlat","setMessages","userInfos","sendMessage","newMessage","flag","data-kt-element","data-kt-scroll-max-height","templateAttr","defineProperty","contentClass","dangerouslySetInnerHTML","__html","onKeyDown","shiftKey","data-bs-toggle","DrawerMessenger","data-kt-drawer-close","data-kt-menu-trigger","data-kt-menu-placement","data-kt-menu-flip","Item1","data-bs-boundary","data-bs-placement","Item2","Item3","Item4","Item5","Item6","Item7","Item8","ActivityDrawer","FallbackView","inits","appName","category","framework","dbName","dbType","nameOnCard","cardNumber","cardExpiryMonth","cardExpiryYear","cardCvv","saveCard","createAppSchema","Main","stepperRef","currentSchema","setCurrentSchema","initValues","prevStep","aria-hidden","data-bs-dismiss","data-kt-stepper-element","resetForm","as","data-kt-stepper-action","InviteUsers","access","charAt","data-select2-id","plans","subTitle","priceMonth","priceAnnual","default","custom","features","supported","UpgradePlan","currentState","setCurrentState","selected","setSelected","data-kt-buttons","data-kt-plan","plan","data-bs-target","feature","Topbar","data-kt-menu-attach","HeaderWrapper","headerMenu","headerContainer","Toolbar1","toolbarContainer","Toolbar","ScrollTop","isFirstRun","reInitialization","stickyHeader","updateHeaderSticky","data-kt-scrolltop","Content","contentContainer","MasterInit","MasterLayout","Error500","Error404","ErrorsPage","history","useHistory","backgroundImage","setCustomerInfo","searchedCustomers","sortSearchedCustomers","StoreId","StoreDesc","stores","setCustomers","setCurrentStore","allCustomers","filteredValue","setFilteredValue","setSearchedCustomers","AnaVezneCustomersCall","fromAllCustomers","AnavezneKodu","AnavezneAdi","CustomerReference","DisplayName","inputValue","setInputValue","lastCustomers","custNameMatches","customerReferenceMatches","vergiNoMatches","FilterCustomers","TableButtons","currentStore","setFileName","uploadInput","importProducts","file","UploadCustomersFromExcell","anavezneCustomers","newCustomer","MusteriAdi","VkNo","Kodu","GetAnaVezneCustomerByExcell","handleCustomerDownload","hidden","VezneModalCard","selectedStore","setSelectedStore","handleUpdateSubmit","customerReference","storeId","storeDesc","newStoreDesc","shift","UpdateCustomerStore","customerreference","AnaVezne","customerInfo","setStores","AnaVezneStoreCall","FilterCard","MainPage","MainPageWrapper","PrivateRoutes","TahsilatWrapper","lazy","fallback","Routes","usr","isAuthorized","App","basename","ApolloProvider","AuthInit","Chart","registerables","ReactDOM","render","axios","post","AXIOS_API_URL","Value","EmailAddress","MobilePhoneNumber","PrimaryContactName","TahsilatItems","responseType","URL","createObjectURL","Blob","AnavezneExcelItems","bodyFormData","FormData","detailResponse","responseEntity","LAYOUT_CONFIG_KEY","headerMobile","asideToggle","sidebar","class","typeOptions","bodyStyles","initLayout","initHeader","initPageTitle","initToolbar","initContent","initAside","initFooter","initAsideMenu","fieldsToUpdate","updatedConfig","initCSSClasses","initCSSVariables","initHTMLAttributes","isLoaded","initConfig","getLayout","Configs","customersSlice","sortedCustomers","GET_USER_BY_ACCESSTOKEN_URL","LOGIN_URL","REGISTER_URL","REQUEST_PASSWORD_URL","gql","GET_LAST_ACTIVITY"],"mappings":"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","file":"static/js/main.a897ea59.chunk.js","sourcesContent":["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\nimport {getUserByToken} from './AuthCRUD'\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 return {accessToken, user: undefined}\r\n }\r\n\r\n case actionTypes.Register: {\r\n const accessToken = action.payload?.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.UserRequested: {\r\n return {...state, user: undefined}\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 register: (accessToken: string) => ({\r\n type: actionTypes.Register,\r\n 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 const {data: user} = yield getUserByToken()\r\n yield put(actions.fulfillUser(user))\r\n })\r\n}\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: true,\r\n responsiveBreakpoint: 'lg',\r\n responsiveTarget: '#kt_toolbar_container',\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","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;","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {useState} from 'react'\r\nimport {useDispatch} from 'react-redux'\r\nimport {useFormik} from 'formik'\r\nimport * as Yup from 'yup'\r\nimport clsx from 'clsx'\r\nimport * as auth from '../redux/AuthRedux'\r\nimport {register} from '../redux/AuthCRUD'\r\nimport {Link} from 'react-router-dom'\r\nimport {toAbsoluteUrl} from '../../../../_metronic/helpers'\r\n\r\nconst initialValues = {\r\n firstname: '',\r\n lastname: '',\r\n email: '',\r\n password: '',\r\n changepassword: '',\r\n acceptTerms: false,\r\n}\r\n\r\nconst registrationSchema = Yup.object().shape({\r\n firstname: Yup.string()\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('First name is required'),\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 is required'),\r\n lastname: Yup.string()\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('Last name is required'),\r\n password: Yup.string()\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('Password is required'),\r\n changepassword: Yup.string()\r\n .required('Password confirmation is required')\r\n .when('password', {\r\n is: (val: string) => (val && val.length > 0 ? true : false),\r\n then: Yup.string().oneOf([Yup.ref('password')], \"Password and Confirm Password didn't match\"),\r\n }),\r\n acceptTerms: Yup.bool().required('You must accept the terms and conditions'),\r\n})\r\n\r\nexport function Registration() {\r\n const [loading, setLoading] = useState(false)\r\n const dispatch = useDispatch()\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: registrationSchema,\r\n onSubmit: (values, {setStatus, setSubmitting}) => {\r\n setLoading(true)\r\n setTimeout(() => {\r\n register(values.email, values.firstname, values.lastname, values.password)\r\n .then(({data: {accessToken}}) => {\r\n setLoading(false)\r\n dispatch(auth.actions.login(accessToken))\r\n })\r\n .catch(() => {\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus('Registration process has broken')\r\n })\r\n }, 1000)\r\n },\r\n })\r\n\r\n return (\r\n \r\n {/* begin::Heading */}\r\n
\r\n {/* begin::Title */}\r\n

Create an Account

\r\n {/* end::Title */}\r\n\r\n {/* begin::Link */}\r\n
\r\n Already have an account?\r\n \r\n Forgot Password ?\r\n \r\n
\r\n {/* end::Link */}\r\n
\r\n {/* end::Heading */}\r\n\r\n {/* begin::Action */}\r\n \r\n {/* end::Action */}\r\n\r\n
\r\n
\r\n OR\r\n
\r\n
\r\n\r\n {formik.status && (\r\n
\r\n
{formik.status}
\r\n
\r\n )}\r\n\r\n {/* begin::Form group Firstname */}\r\n
\r\n
\r\n \r\n \r\n {formik.touched.firstname && formik.errors.firstname && (\r\n
\r\n
\r\n {formik.errors.firstname}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {/* begin::Form group Lastname */}\r\n
\r\n \r\n \r\n {formik.touched.lastname && formik.errors.lastname && (\r\n
\r\n
\r\n {formik.errors.lastname}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n
\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group Email */}\r\n
\r\n \r\n \r\n {formik.touched.email && formik.errors.email && (\r\n
\r\n
\r\n {formik.errors.email}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group Password */}\r\n
\r\n
\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
\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group Confirm password */}\r\n
\r\n \r\n \r\n {formik.touched.changepassword && formik.errors.changepassword && (\r\n
\r\n
\r\n {formik.errors.changepassword}\r\n
\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 \r\n I Agree the{' '}\r\n \r\n terms and conditions\r\n \r\n .\r\n \r\n {formik.touched.acceptTerms && formik.errors.acceptTerms && (\r\n
\r\n
\r\n {formik.errors.acceptTerms}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n {!loading && Submit}\r\n {loading && (\r\n \r\n Please wait...{' '}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n
\r\n {/* end::Form group */}\r\n \r\n )\r\n}\r\n","import React, {useState} from 'react'\r\nimport * as Yup from 'yup'\r\nimport clsx from 'clsx'\r\nimport {Link} from 'react-router-dom'\r\nimport {useFormik} from 'formik'\r\nimport {requestPassword} from '../redux/AuthCRUD'\r\n\r\nconst initialValues = {\r\n email: 'admin@demo.com',\r\n}\r\n\r\nconst forgotPasswordSchema = 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 is required'),\r\n})\r\n\r\nexport function ForgotPassword() {\r\n const [loading, setLoading] = useState(false)\r\n const [hasErrors, setHasErrors] = useState(undefined)\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: forgotPasswordSchema,\r\n onSubmit: (values, {setStatus, setSubmitting}) => {\r\n setLoading(true)\r\n setHasErrors(undefined)\r\n setTimeout(() => {\r\n requestPassword(values.email)\r\n .then(({data: {result}}) => {\r\n setHasErrors(false)\r\n setLoading(false)\r\n })\r\n .catch(() => {\r\n setHasErrors(true)\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus('The login detail is incorrect')\r\n })\r\n }, 1000)\r\n },\r\n })\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {/* begin::Title */}\r\n

Forgot Password ?

\r\n {/* end::Title */}\r\n\r\n {/* begin::Link */}\r\n
Enter your email to reset your password.
\r\n {/* end::Link */}\r\n
\r\n\r\n {/* begin::Title */}\r\n {hasErrors === true && (\r\n
\r\n
\r\n Sorry, looks like there are some errors detected, please try again.\r\n
\r\n
\r\n )}\r\n\r\n {hasErrors === false && (\r\n
\r\n
Sent password reset. Please check your email
\r\n
\r\n )}\r\n {/* end::Title */}\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
\r\n {formik.errors.email}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n Submit\r\n {loading && (\r\n \r\n Please wait...\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Cancel\r\n \r\n {' '}\r\n
\r\n {/* end::Form group */}\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 { 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 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 await client.query({\r\n query: GET_TOKEN,\r\n variables: { email, password }\r\n }).then(async (data: any) => {\r\n setLoading(false)\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 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 });\r\n }, 1000)\r\n },\r\n })\r\n\r\n return (\r\n <>\r\n \r\n \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","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {useEffect} from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom'\r\nimport {Registration} from './components/Registration'\r\nimport {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

Tahsilat

\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 {/* end::Footer */}\r\n \r\n )\r\n}\r\n","import {toAbsoluteUrl} from '../../../../_metronic/helpers'\r\nimport {UserModel} from '../models/UserModel'\r\n\r\nexport class UsersTableMock {\r\n public static table: Array = [\r\n {\r\n id: 1,\r\n username: 'admin',\r\n password: 'demo',\r\n email: 'admin@demo.com',\r\n auth: {\r\n accessToken: 'access-token-8f3ae836da744329a6f93bf20594b5cc',\r\n refreshToken: 'access-token-f8c137a2c98743f48b643e71161d90aa',\r\n },\r\n roles: [1], // Administrator\r\n pic: toAbsoluteUrl('/media/metro/metro-apple-touch-icon-144x144.png'),\r\n fullname: 'User',\r\n firstname: 'Kullanıcı',\r\n lastname: '1',\r\n occupation: 'CEO',\r\n companyName: 'Keenthemes',\r\n phone: '456669067890',\r\n language: 'en',\r\n timeZone: 'International Date Line West',\r\n website: 'https://keenthemes.com',\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutStartOnPartnerProductsAndOtherServices: true,\r\n tipsOnStartBusinessProducts: true,\r\n },\r\n },\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n address: {\r\n addressLine: 'L-12-20 Vertex, Cybersquare',\r\n city: 'San Francisco',\r\n state: 'California',\r\n postCode: '45000',\r\n },\r\n socialNetworks: {\r\n linkedIn: 'https://linkedin.com/admin',\r\n facebook: 'https://facebook.com/admin',\r\n twitter: 'https://twitter.com/admin',\r\n instagram: 'https://instagram.com/admin',\r\n },\r\n },\r\n {\r\n id: 2,\r\n username: 'user',\r\n password: 'demo',\r\n email: 'user@demo.com',\r\n auth: {\r\n accessToken: 'access-token-6829bba69dd3421d8762-991e9e806dbf',\r\n refreshToken: 'access-token-f8e4c61a318e4d618b6c199ef96b9e55',\r\n },\r\n roles: [2], // Manager\r\n pic: toAbsoluteUrl('/media/avatars/150-1.jpg'),\r\n fullname: 'Megan F',\r\n firstname: 'Megan',\r\n lastname: 'Fox',\r\n occupation: 'Deputy Head of Keenthemes in New York office',\r\n companyName: 'Keenthemes',\r\n phone: '456669067891',\r\n language: 'en',\r\n timeZone: 'International Date Line West',\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutStartOnPartnerProductsAndOtherServices: true,\r\n tipsOnStartBusinessProducts: true,\r\n },\r\n },\r\n address: {\r\n addressLine: '3487 Ingram Road',\r\n city: 'Greensboro',\r\n state: 'North Carolina',\r\n postCode: '27409',\r\n },\r\n socialNetworks: {\r\n linkedIn: 'https://linkedin.com/user',\r\n facebook: 'https://facebook.com/user',\r\n twitter: 'https://twitter.com/user',\r\n instagram: 'https://instagram.com/user',\r\n },\r\n },\r\n {\r\n id: 3,\r\n username: 'guest',\r\n password: 'demo',\r\n email: 'guest@demo.com',\r\n auth: {\r\n accessToken: 'access-token-d2dff7b82f784de584b60964abbe45b9',\r\n refreshToken: 'access-token-c999ccfe74aa40d0aa1a64c5e620c1a5',\r\n },\r\n roles: [3], // Guest\r\n pic: toAbsoluteUrl('/media/avatars/150-5.jpg'),\r\n fullname: 'Manu G',\r\n firstname: 'Manu',\r\n lastname: 'Ginobili',\r\n occupation: 'CFO',\r\n companyName: 'Keenthemes',\r\n phone: '456669067892',\r\n language: 'en',\r\n timeZone: 'International Date Line West',\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutStartOnPartnerProductsAndOtherServices: true,\r\n tipsOnStartBusinessProducts: true,\r\n },\r\n },\r\n address: {\r\n addressLine: '1467 Griffin Street',\r\n city: 'Phoenix',\r\n state: 'Arizona',\r\n postCode: '85012',\r\n },\r\n socialNetworks: {\r\n linkedIn: 'https://linkedin.com/guest',\r\n facebook: 'https://facebook.com/guest',\r\n twitter: 'https://twitter.com/guest',\r\n instagram: 'https://instagram.com/guest',\r\n },\r\n },\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 { createSlice } from '@reduxjs/toolkit';\r\nimport { Activity, ActivityState, ApiActivity } from '../../app/types';\r\n\r\nconst initialState: ActivityState = {\r\n activitiesByWeek: {},\r\n activityIndex: {},\r\n createdActivityId: null,\r\n createPlanDateTime: \"\",\r\n createdActivityGuid: '',\r\n acceptedActivityId: null,\r\n selectedDateForActivityCreate: '',\r\n selectedHourForActivityCreate: ''\r\n}\r\nconst activitySlice = createSlice({\r\n name: 'activity',\r\n initialState,\r\n reducers: {\r\n setActivities(state: ActivityState, action: { payload: { key: string, activities: ApiActivity[]} }) {\r\n let { activities, key } = action.payload;\r\n if (!state.activitiesByWeek) state.activitiesByWeek = {};\r\n if (!state.activityIndex) state.activityIndex = {};\r\n // burada array formunda gelen statement listesini\r\n // map'e donusturuyoruz. surekli bu elemanlara erismemiz gerekecek\r\n // array icinde bulmaya calismak liste boyutu arttikca performans\r\n // sorunlarina neden olacaktir.\r\n if (state.activitiesByWeek[key] !== undefined && state.activitiesByWeek[key].length > 0 ) {\r\n const newItem = activities.filter((f) => { return !state.activitiesByWeek[key].includes(f.guid) }).map((m) => m.guid);// Var olanları tekrar eklemesin..\r\n state.activitiesByWeek[key] = [...state.activitiesByWeek[key], ...newItem];\r\n } else {\r\n state.activitiesByWeek[key] = [...activities.map(a => a.guid)];\r\n }\r\n activities.forEach((api_activity) => {\r\n let client_activity: Activity = { ...api_activity, activityStatementIndex: {} };\r\n delete (client_activity as any).activityStatements;\r\n delete (client_activity as any).__typename;\r\n if (api_activity.activityStatements) {\r\n api_activity.activityStatements.forEach((st: any) => {\r\n client_activity.activityStatementIndex[st.activityStatementId] = st;\r\n });\r\n }\r\n state.activityIndex[client_activity.guid] = client_activity;\r\n });\r\n },\r\n // updateActivityStatus(state: ActivityState, action: { payload: { activityGuid: string, status: ActivityStatus, updateVersion: [] } }) {\r\n // let { activityGuid, status, updateVersion } = action.payload;\r\n // state.activityIndex[activityGuid].activityStatus = status;\r\n // state.activityIndex[activityGuid].activityStatusId = status.activityStatusId;\r\n // state.activityIndex[activityGuid].updateVersion = updateVersion;\r\n // },\r\n // setUpdateActivityStatement(state: ActivityState, action: { payload: ModelOfStateUpdateStatement }) {\r\n // let myActivity: any;\r\n // myActivity = state.activityIndex[action.payload.activityGuid]\r\n // let newElementActivity = myActivity as Activity\r\n // console.log('newElementActivity', newElementActivity.activityStatementIndex);\r\n // let getElement = state.activityIndex[newElementActivity.guid].activityStatementIndex[action.payload.activityStatementId]\r\n // console.log('getElement', getElement);\r\n // getElement.value = action.payload.value\r\n // getElement.notes = action.payload.note\r\n // console.log('action.payload.note',\r\n // action.payload.note);\r\n // getElement.updateVersion = action.payload.updateVersion\r\n // state.activityIndex[newElementActivity.guid].activityStatementIndex[action.payload.activityStatementId] = getElement\r\n // },\r\n // deleteActivities(state: ActivityState) {\r\n // state.activitiesByWeek = {};\r\n // state.activityIndex = {};\r\n // state.createdActivityId = null;\r\n // state.createdActivityId = \"\";\r\n // state.createPlanDateTime = \"\";\r\n // state.acceptedActivityId = null;\r\n // },\r\n }\r\n});\r\nexport const {\r\n // setUpdateActivityStatement,\r\n // pushActivityStatementDocument,\r\n // spliceActivityStatementDocument,\r\n // checkAndSetActivityDocumentsExists,\r\n // setActivityStatementDocumentIsExists,\r\n // checkAndSetActivityStatementDocumentExsists,\r\n setActivities,\r\n // updateActivityStatus,\r\n // setAcceptedActivityId,\r\n // deleteActivities\r\n} = activitySlice.actions;\r\nexport default activitySlice.reducer;","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport { AllCustomersModel, CustomerModel, SalesRegionsModel } from \"../../app/types\";\r\n\r\n\r\nconst initialState: AllCustomersModel = {\r\n customerList: []\r\n}\r\nconst customerSlice = createSlice({\r\n name: 'customers',\r\n initialState,\r\n reducers: {\r\n setAllCustomers(state: AllCustomersModel, action:{payload: {customers: CustomerModel[], salesRegions: SalesRegionsModel[]} }) {\r\n \r\n\r\n }\r\n\r\n \r\n }\r\n \r\n \r\n });\r\n\r\nexport const {\r\n setAllCustomers\r\n} = customerSlice.actions;\r\nexport default customerSlice.reducer\r\n\r\n","import {createSlice} from '@reduxjs/toolkit'\r\n\r\nconst initialState = {\r\n allTahsilatCustomers: {},\r\n filteredTahsilatCustomers: [],\r\n serachedTahsilatCustomers: [],\r\n}\r\n\r\nconst tahsilatSlice = createSlice({\r\n name: 'tahsilatCustomers',\r\n initialState,\r\n reducers: {\r\n setAllTahsilatCustomers(state: any, action: {payload: {Detail: any[]; Status: string}}) {\r\n state.allTahsilatCustomers = action.payload.Detail\r\n },\r\n setFilteredTahsilatCustomer(state: any, action: {payload: any}) {\r\n state.filteredTahsilatCustomers = action.payload\r\n },\r\n setSearchedTahsilatCustomers(state: any, action: {payload: any}) {\r\n state.searchedTahsilatCustomers = action.payload\r\n },\r\n },\r\n})\r\n\r\nexport const {setAllTahsilatCustomers, setFilteredTahsilatCustomer, setSearchedTahsilatCustomers} =\r\n tahsilatSlice.actions\r\nexport default tahsilatSlice.reducer\r\n","import {all} from 'redux-saga/effects'\r\nimport {combineReducers} from 'redux'\r\nimport UserSliceReducer from '../../app/modules/auth/redux/AuthSlice'\r\nimport * as auth from '../../app/modules/auth'\r\nimport AnavezneSlice from '../slices/AnavezneSlice'\r\nimport ModalSlice from '../slices/ModalSlice'\r\nimport ActivitiesSlice from '../slices/ActivitiesSlice'\r\nimport CustomersSlice from '../slices/CustomersSlice'\r\nimport TahsilatCustomerSlice from '../slices/TahsilatCustomerSlice'\r\n\r\nexport const rootReducer = combineReducers({\r\n auth: auth.reducer,\r\n userReducer: UserSliceReducer,\r\n tahsilatCustomers: TahsilatCustomerSlice,\r\n customers: AnavezneSlice,\r\n isVisible: ModalSlice,\r\n activities: ActivitiesSlice,\r\n customerList: CustomersSlice,\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","import {FC, useRef, useEffect, useState} from 'react'\r\nimport {shallowEqual, useSelector, connect, useDispatch, ConnectedProps} from 'react-redux'\r\nimport {LayoutSplashScreen} from '../../../../_metronic/layout/core'\r\nimport * as auth from './AuthRedux'\r\nimport {getUserByToken} from './AuthCRUD'\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 const {data: user} = await getUserByToken()\r\n dispatch(props.fulfillUser(user))\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}\r\n\r\nexport default connector(AuthInit)\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 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 from 'react'\r\nimport { KTSVG } from '../../../../_metronic/helpers'\r\n\r\ntype Props = {\r\n setSearchText: React.Dispatch>\r\n}\r\n\r\nconst CustomerSearch:React.FC = ({setSearchText}) => {\r\n return (\r\n
\r\n
\r\n setSearchText(e.target.value)}\r\n />\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default CustomerSearch\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport moment from 'moment'\r\nimport React, { useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { changeModalVisibility } from '../../../../setup/slices/ModalSlice'\r\nimport { KTSVG } from '../../../../_metronic/helpers'\r\nimport { GetCustomersByExcel } from '../../AnaVezne/apis/ApiCall'\r\nimport CustomerSearch from './CustomerSearch'\r\nimport { CustomerModel, CustomerModelTahsilat } from '../../../types'\r\nimport './content.css'\r\nimport { Button, Modal } from 'react-bootstrap-v5'\r\n\r\ninterface Props {\r\n setCustomer: React.Dispatch>\r\n isLoading: boolean\r\n customerList: any\r\n isAdmin: boolean\r\n setSearchText: React.Dispatch>\r\n message: string\r\n workInCustomerId: string\r\n}\r\n\r\nconst CustomersTable: React.FC = ({\r\n setCustomer,\r\n isLoading,\r\n customerList,\r\n isAdmin,\r\n setSearchText,\r\n message,\r\n workInCustomerId,\r\n}) => {\r\n const dispatch = useDispatch()\r\n\r\n const [sortedColumn, setSortedColumn] = React.useState('')\r\n const [sortedData, setSortedData] = React.useState([])\r\n const [sortOrder, setSortOrder] = useState('asc')\r\n const [noticeButton, setNoticeButton] = React.useState(false)\r\n const [selectedCustomerNote, setSelectedCustomerNote] = useState('')\r\n const [selectedCustName,setSelectedCustName] = useState('')\r\n const [selectedCustomerCallCode, setSelectedCustomerCallCode] = useState('')\r\n\r\n const handleClick = (customer: any) => {\r\n dispatch(changeModalVisibility(true))\r\n setCustomer(customer)\r\n }\r\n\r\n console.log(\"customerListcustomerList\",customerList)\r\n\r\n const handleSort = (column: keyof CustomerModelTahsilat) => {\r\n const newSortedData = customerList\r\n let newSortOrder = 'asc'\r\n\r\n if (sortedColumn === column) {\r\n newSortOrder = sortOrder === 'asc' ? 'desc' : 'asc'\r\n }\r\n\r\n newSortedData.sort((a: CustomerModelTahsilat, b: CustomerModelTahsilat) => {\r\n const valueA = a[column]\r\n const valueB = b[column]\r\n\r\n if (valueA === null && valueB === null) {\r\n return 0\r\n }\r\n\r\n if (valueA === null) {\r\n return -1\r\n }\r\n\r\n if (valueB === null) {\r\n return 1\r\n }\r\n\r\n if (typeof valueA === 'number' && typeof valueB === 'number') {\r\n return newSortOrder === 'asc' ? valueA - valueB : valueB - valueA\r\n } else if (typeof valueA === 'string' && typeof valueB === 'string') {\r\n return newSortOrder === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA)\r\n } else {\r\n return 0\r\n }\r\n })\r\n\r\n setSortedData(newSortedData)\r\n setSortedColumn(column)\r\n setSortOrder(newSortOrder)\r\n }\r\n\r\n console.log(handleSort)\r\n\r\n const downloadExcel = (customers: any[]) => {\r\n if (customerList.length > 0) {\r\n let excelCustomers = customers.map((customer: any) => {\r\n delete customer.AramaTarihi\r\n delete customer.OdemeTarihi\r\n customer.Note = customer.Not\r\n delete customer.Not\r\n customer.CustomerId = customer.CustomerId.toString()\r\n customer.GecikmeGunOrt !== null\r\n ? (customer.GecikmeGunOrt = customer.GecikmeGunOrt.toString())\r\n : (customer.GecikmeGunOrt = '')\r\n customer.TotalBalance !== null\r\n ? (customer.TotalBalance = customer.TotalBalance.toString())\r\n : (customer.TotalBalance = '')\r\n customer.TotalOverDue !== null\r\n ? (customer.TotalOverDue = customer.TotalOverDue.toString())\r\n : (customer.TotalOverDue = '')\r\n customer.CustName =\r\n customer.CustName !== null ? customer.CustName : 'Kayıtlı İsim Bilgisi Yok!'\r\n return customer\r\n })\r\n GetCustomersByExcel(excelCustomers)\r\n }\r\n }\r\n\r\n const hideNoticeButton = () => {\r\n setNoticeButton(false);\r\n }\r\n\r\n const handleNoticeButton = (customer: any) => {\r\n setSelectedCustomerNote(customer.Not || '-')\r\n setSelectedCustName(customer.CustName || '-')\r\n setSelectedCustomerCallCode(customer.Customerreference || '-')\r\n setNoticeButton(true);\r\n };\r\n\r\n\r\n return (\r\n
\r\n {/* begin::Header */}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {!isAdmin && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {/* end::Header */}\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Table container */}\r\n
\r\n {/* begin::Table */}\r\n \r\n {/* begin::Table head */}\r\n \r\n \r\n handleSort('Customerreference')}\r\n >\r\n Kod\r\n \r\n handleSort('AtCustNo')}\r\n >\r\n SAP No\r\n \r\n handleSort('CustName')}\r\n >\r\n Müşteri Adı\r\n {/* {sortOrder === 'desc' ? (\r\n \r\n ) : (\r\n \r\n )} */}\r\n \r\n handleSort('VergiNo')}\r\n >\r\n VK No\r\n \r\n handleSort('TotalBalance')}\r\n >\r\n Toplam Borç\r\n \r\n handleSort('TotalOverDue')}\r\n >\r\n Geciken Borç\r\n \r\n handleSort('GecikmeGunOrt')}\r\n >\r\n Ortalama Vade\r\n \r\n handleSort('AramaSonucu')}\r\n >\r\n Arama

Sonucu\r\n \r\n handleSort('PlanTarihi')}\r\n >\r\n Plan Tarihi\r\n \r\n handleSort('BeklenenOdeme')}\r\n >\r\n Beklenen Ödeme\r\n \r\n handleSort('OdemeKanali')}\r\n >\r\n Ödeme Kanalı\r\n \r\n handleSort('Not')}\r\n >\r\n Not\r\n \r\n
\r\n \r\n {/* begin::Table body */}\r\n \r\n {isLoading ? (\r\n \r\n \r\n \r\n ) : !isLoading ? (\r\n customerList.length > 0 ? (\r\n customerList.map((customer: any, index: number) => {\r\n let bgColor = 'white'\r\n\r\n if (customer.PlanTarihi !== null) {\r\n if (\r\n customer.PlanTarihi.split('T')[0] ===\r\n moment(new Date()).format('YYYY-MM-DD')\r\n ) {\r\n bgColor = 'bg-secondary'\r\n }\r\n }\r\n console.log(customer)\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\n )}\r\n \r\n {/* end::Table body */}\r\n
\r\n

Yükleniyor...

\r\n
\r\n handleClick(customer)}\r\n style={{ cursor: 'pointer' }}\r\n >\r\n \r\n {customer.Customerreference}\r\n \r\n \r\n \r\n
\r\n \r\n {customer.AtCustNo !== null ? customer.AtCustNo : '-'}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.CustName}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.VergiNo}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.TotalBalance?.toLocaleString('tr-TR')}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.TotalOverDue?.toLocaleString('tr-TR')}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.GecikmeGunOrt === null ? '-' : customer.GecikmeGunOrt}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.AramaSonucu === \"Hemen Ödeme\" ? () : customer.AramaSonucu === \"İleri Tarihli Ödeme\" ? () : customer.AramaSonucu === \"Tekrar Aranacak\" ? () : \"\"}\r\n {customer.AramaSonucu !== null ? customer.AramaSonucu : '-'}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.OdemeTarihi !== ''\r\n ? customer.OdemeTarihi !== null && customer.OdemeTarihi\r\n : customer.AramaTarihi !== ''\r\n ? customer.AramaTarihi !== null && customer.AramaTarihi\r\n : customer.PlanTarihi !== ''\r\n ? customer.PlanTarihi !== null && customer.PlanTarihi.split('T')[0]\r\n : '-'}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.BeklenenOdeme !== null ? customer.BeklenenOdeme : '-'}\r\n \r\n
\r\n
\r\n
\r\n \r\n {customer.OdemeKanali !== null ? customer.OdemeKanali : '-'}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {selectedCustName} Firmasının\r\n \r\n \r\n \r\n

{selectedCustomerCallCode} Kodlu Arama Notu

\r\n

{selectedCustomerNote !== '' ? selectedCustomerNote : 'İlgili aramaya ait not bulunamadı.'}

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

{message}

\r\n
\r\n {' '}\r\n {message}\r\n
\r\n {/* end::Table */}\r\n
\r\n {/* end::Table container */}\r\n
\r\n {/* begin::Body */}\r\n
\r\n )\r\n}\r\n\r\nexport default CustomersTable\r\n","import React from 'react'\r\nimport { Button } from 'react-bootstrap-v5'\r\n\r\ntype Props = {\r\n setTodayPayment: React.Dispatch>,\r\n setDelayedPayment: React.Dispatch>,\r\n setTodayRecall: React.Dispatch>,\r\n setPassedExpiry: React.Dispatch>\r\n}\r\n\r\nconst CustomerFilter:React.FC = ({setTodayPayment, setDelayedPayment, setTodayRecall, setPassedExpiry}) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n setTodayPayment(e.target.checked)} style={{border: \"3px solid #ffed00\"}}/>\r\n \r\n
\r\n
\r\n setDelayedPayment(e.target.checked)} style={{border: \"3px solid #ffed00\"}}/>\r\n \r\n
\r\n
\r\n setTodayRecall(e.target.checked)} style={{border: \"3px solid #ffed00\"}}/>\r\n \r\n
\r\n
\r\n setPassedExpiry(e.target.checked)} style={{border: \"3px solid #ffed00\"}}/>\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CustomerFilter\r\n","import { ApolloClient, InMemoryCache, HttpLink } from \"@apollo/client\";\r\n\r\nimport { setContext } from '@apollo/client/link/context';\r\nimport { onError } from \"@apollo/client/link/error\";\r\nimport AuthService from \"../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 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\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 { ApolloClient } from \"@apollo/client\";\r\nimport { Dispatch, SetStateAction } from \"react\";\r\nimport { client } from \"../ApolloClient/client\";\r\nimport { GET_ACTIVITY_HISTORY, GET_ACTIVITY_INFO, GET_CUSTOMER_WORKINCUSTOMERID, GET_EMPTY_ACTIVITY, GET_LAST_ACTIVITY, GET_SALESPERSON_ID, UPDATE_ACTIVITY_STATUS } from \"../store/queries\";\r\n\r\n\r\n\r\nexport const getActivityStatementsFromEmpty = async (\r\n typeGuid: string,\r\n setEmptyActivity: Dispatch>,\r\n client: ApolloClient\r\n ) => {\r\n try {\r\n let response = await client.query({\r\n query: GET_EMPTY_ACTIVITY,\r\n variables: { paramGuid: typeGuid },\r\n });\r\n let stringify = JSON.stringify(response);\r\n let parsed = JSON.parse(stringify);\r\n \r\n const resp = parsed?.data.createEmptyActivity;\r\n setEmptyActivity(resp);\r\n if (parsed === undefined) {\r\n return \"FAIL\";\r\n }\r\n return resp;\r\n } catch (error) {\r\n console.log(\"error getActivityStatementsFromEmpty\", error);\r\n }\r\n };\r\n\r\n export const getActivityCallHistory = async (lastActivityNumber: number, typeGuid: any, client: ApolloClient, setCallHistory: any, customerId: number) => {\r\n try {\r\n let response = await client.query({\r\n query: GET_ACTIVITY_HISTORY,\r\n variables: {lastActivityNumber: lastActivityNumber, paramGuid: typeGuid, customerId: customerId}\r\n });\r\n let stringify = JSON.stringify(response)\r\n let parsed = JSON.parse(stringify)\r\n \r\n \r\n const res = parsed.data.activities.edges\r\n setCallHistory(res)\r\n } catch (error) {\r\n console.log('Hata oluştu: ', error);\r\n }\r\n }\r\n\r\n\r\n export const getCustomerLastActivity = async ( customerId: number) => {\r\n \r\n return await client.query({\r\n query: GET_LAST_ACTIVITY,\r\n variables: {\r\n paramGuid: \"2978C75D-D89F-4EE4-8DA4-D82FA90F2605\",\r\n customerId: customerId\r\n }\r\n }).then((res: any) => JSON.stringify(res))\r\n .then((res: any) => JSON.parse(res))\r\n .then((res: any) => res.data)\r\n \r\n }\r\n export const getActivityInfo = async (setActivityInfo: React.Dispatch>) => {\r\n try {\r\n let response = await client.query({\r\n query: GET_ACTIVITY_INFO\r\n });\r\n\r\n let stringify = JSON.stringify(response)\r\n let parsed = JSON.parse(stringify)\r\n\r\n\r\n const res = parsed.data.activityTypes.edges[0].node\r\n setActivityInfo(res)\r\n } catch (error) {\r\n console.log(error);\r\n \r\n }\r\n }\r\n\r\n export const getSalesPersonId = async (setSalesPersonId: React.Dispatch>, salesPersonId: any) => {\r\n try {\r\n\r\n let response = await client.query({\r\n query: GET_SALESPERSON_ID,\r\n variables: {\r\n salespersonGuid: salesPersonId\r\n }\r\n })\r\n\r\n let stringify = JSON.stringify(response)\r\n let parsed = JSON.parse(stringify)\r\n\r\n setSalesPersonId(parsed.data.salesPeople.edges[0].node.salesPersonId)\r\n\r\n } catch (error) {\r\n\r\n console.log(error);\r\n\r\n }\r\n } \r\n\r\n export const getWorkInCustomerId = async (setWorkInCustomerId: React.Dispatch>, guid: string | undefined) => {\r\n try {\r\n await client.query({\r\n query: GET_CUSTOMER_WORKINCUSTOMERID,\r\n variables: {\r\n guid\r\n }\r\n })\r\n .then(res => JSON.stringify(res))\r\n .then(str => JSON.parse(str))\r\n .then(parse => parse.data.salesPeople.edges[0].node.salesPersonReference)\r\n .then(id => setWorkInCustomerId(id.toString()))\r\n\r\n } catch(error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n export const updateActivityStatus = async(model: {guid: string, updateVersion: any}) => {\r\n try {\r\n let response = await client.query({\r\n query: UPDATE_ACTIVITY_STATUS,\r\n variables: { model }\r\n })\r\n .then(res => JSON.stringify(res))\r\n .then(res => JSON.parse(res))\r\n .then(res => res.data)\r\n\r\n console.log(response)\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }","import React, {useEffect, useState} from 'react'\r\nimport {useDispatch} from 'react-redux'\r\nimport {changeModalVisibility} from '../../../../../setup/slices/ModalSlice'\r\nimport {client} from '../../../../ApolloClient/client'\r\nimport {getActivityCallHistory} from '../../../../helper/ActivityHelper'\r\n\r\ninterface Props {\r\n emptyActivity: any\r\n setFormValues: any\r\n composeActivity: any\r\n setCallHistory: any\r\n typeGuid: string\r\n customer: any\r\n}\r\n\r\nconst CallAgain: React.FC = ({\r\n emptyActivity,\r\n setFormValues,\r\n composeActivity,\r\n setCallHistory,\r\n typeGuid,\r\n customer,\r\n}) => {\r\n const [callDate, setCallDate] = useState()\r\n const [expText, setExpText] = useState()\r\n const [buttonDisabled, setButtonDisabled] = useState(false)\r\n\r\n const dispatch = useDispatch()\r\n\r\n const handleSubmit = (event: any) => {\r\n event.preventDefault()\r\n composeActivity(customer)\r\n getActivityCallHistory(5, typeGuid, client, setCallHistory, customer.CustomerId)\r\n setButtonDisabled(true)\r\n\r\n setTimeout(() => {\r\n dispatch(changeModalVisibility(false))\r\n setButtonDisabled(false)\r\n }, 1000)\r\n }\r\n\r\n useEffect(() => {\r\n setFormValues([])\r\n }, [])\r\n useEffect(() => {\r\n setFormValues([\r\n '',\r\n expText,\r\n callDate,\r\n emptyActivity.activityStatements[4].jsonValues.items[2].option,\r\n '',\r\n '',\r\n '',\r\n '',\r\n ])\r\n }, [callDate, expText])\r\n\r\n return (\r\n
handleSubmit(event)}>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n setCallDate(e.target.value)}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {emptyActivity.activityStatements[2].statementText}:\r\n \r\n
\r\n setExpText(e.target.value)}\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 CallAgain\r\n","import moment from 'moment'\r\nimport React, {useEffect, useState} from 'react'\r\nimport {useDispatch} from 'react-redux'\r\n\r\nimport {changeModalVisibility} from '../../../../../setup/slices/ModalSlice'\r\nimport {client} from '../../../../ApolloClient/client'\r\nimport {getActivityCallHistory} from '../../../../helper/ActivityHelper'\r\n\r\ninterface Props {\r\n emptyActivity: any\r\n setFormValues: any\r\n composeActivity: any\r\n setCallHistory: any\r\n typeGuid: string\r\n selectedDebt: any\r\n customer: any\r\n sms: string\r\n email: string\r\n}\r\n\r\nconst FuturePayment: React.FC = ({\r\n emptyActivity,\r\n setFormValues,\r\n composeActivity,\r\n setCallHistory,\r\n typeGuid,\r\n selectedDebt,\r\n customer,\r\n sms,\r\n email,\r\n}) => {\r\n const [paymentMethod, setPaymentMethod] = useState('')\r\n const [paymentAmount, setPaymentAmount] = useState('')\r\n const [contactOption, setContactOption] = useState('')\r\n const [contactValue, setContactValue] = useState('')\r\n const [paymentDate, setPaymentDate] = useState('')\r\n const [expText, setExpText] = useState('')\r\n const [buttonDisabled, setButtonDisabled] = useState(false)\r\n const [contactText, setContactText] = useState('')\r\n\r\n const dispatch = useDispatch()\r\n\r\n const handleSubmit = (event: any) => {\r\n event.preventDefault()\r\n setButtonDisabled(true)\r\n composeActivity(customer)\r\n getActivityCallHistory(5, typeGuid, client, setCallHistory, customer.CustomerId)\r\n\r\n setTimeout(() => {\r\n dispatch(changeModalVisibility(false))\r\n setButtonDisabled(false)\r\n }, 1000)\r\n }\r\n\r\n useEffect(() => {\r\n setContactValue(contactText)\r\n }, [contactText])\r\n\r\n useEffect(() => {\r\n if (contactOption === undefined) {\r\n setContactOption('')\r\n }\r\n }, [contactOption])\r\n\r\n useEffect(() => {\r\n setPaymentAmount(selectedDebt)\r\n }, [selectedDebt])\r\n\r\n useEffect(() => {\r\n setFormValues([\r\n contactOption,\r\n expText,\r\n '',\r\n emptyActivity.activityStatements[4].jsonValues.items[1].option,\r\n paymentAmount,\r\n paymentMethod,\r\n paymentDate,\r\n contactValue,\r\n ])\r\n }, [paymentMethod, paymentAmount, contactOption, paymentDate, expText, contactValue])\r\n\r\n useEffect(() => {\r\n setFormValues([])\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (paymentMethod === 'Diğer' || paymentMethod === undefined) {\r\n setContactOption('')\r\n setContactValue('')\r\n }\r\n }, [paymentMethod])\r\n\r\n return (\r\n
handleSubmit(event)}>\r\n
\r\n
\r\n \r\n {emptyActivity.activityStatements[5].statementText}\r\n \r\n
\r\n setPaymentAmount(e.target.value)}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {emptyActivity.activityStatements[6].jsonValues.items.map((elm: any, index: number) => (\r\n
\r\n setPaymentMethod(elm.option === 'Diğer' ? 'Diğer' : elm.option)}\r\n required\r\n />\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n {paymentMethod === 'Online Ödenecek' ? (\r\n <>\r\n {' '}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {emptyActivity.activityStatements[1].jsonValues.items.map(\r\n (element: any, index: number) => (\r\n
\r\n {\r\n setContactOption(e.target.value)\r\n setContactText(element.option === 'Sms' ? sms.slice(3) : email)\r\n }}\r\n required\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 setContactValue(e.target.value)}\r\n required\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 setPaymentDate(e.target.value)}\r\n min={moment(new Date()).format('YYYY-MM-DD')}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {emptyActivity.activityStatements[2].statementText}:\r\n \r\n
\r\n setExpText(e.target.value)}\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 FuturePayment\r\n","import React, {useEffect, useState} from 'react'\r\nimport {useDispatch} from 'react-redux'\r\nimport {changeModalVisibility} from '../../../../../setup/slices/ModalSlice'\r\nimport {client} from '../../../../ApolloClient/client'\r\nimport {getActivityCallHistory} from '../../../../helper/ActivityHelper'\r\n\r\ninterface Props {\r\n emptyActivity: any\r\n setFormValues: any\r\n composeActivity: any\r\n setCallHistory: any\r\n typeGuid: string\r\n selectedDebt: any\r\n customer: any\r\n sms: string\r\n email: string\r\n}\r\n\r\nconst InstantPayment: React.FC = ({\r\n emptyActivity,\r\n setFormValues,\r\n composeActivity,\r\n setCallHistory,\r\n typeGuid,\r\n selectedDebt,\r\n customer,\r\n sms,\r\n email,\r\n}) => {\r\n const [paymentAmount, setPaymentAmount] = useState()\r\n const [contactOption, setContactOption] = useState('')\r\n const [contactValue, setContactValue] = useState('')\r\n const [expText, setExpText] = useState()\r\n const [buttonDisabled, setButtonDisabled] = useState(false)\r\n const [contactText, setContactText] = useState('')\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n setFormValues([\r\n contactOption,\r\n expText,\r\n '',\r\n emptyActivity.activityStatements[4].jsonValues.items[0].option,\r\n paymentAmount,\r\n '',\r\n '',\r\n contactValue,\r\n ])\r\n }, [paymentAmount, contactOption, expText, contactValue])\r\n\r\n useEffect(() => {\r\n setFormValues([])\r\n }, [])\r\n\r\n useEffect(() => {\r\n setContactValue(contactText)\r\n }, [contactText])\r\n\r\n useEffect(() => {\r\n setPaymentAmount(selectedDebt)\r\n }, [selectedDebt])\r\n\r\n const handleSubmit = (event: any) => {\r\n event.preventDefault()\r\n setButtonDisabled(true)\r\n composeActivity(customer)\r\n getActivityCallHistory(5, typeGuid, client, setCallHistory, customer.CustomerId)\r\n\r\n setTimeout(() => {\r\n dispatch(changeModalVisibility(false))\r\n setButtonDisabled(false)\r\n }, 1000)\r\n }\r\n\r\n return (\r\n
handleSubmit(event)}>\r\n
\r\n
\r\n \r\n {emptyActivity.activityStatements[5].statementText}\r\n \r\n
\r\n setPaymentAmount(e.target.value)}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {emptyActivity.activityStatements[1].jsonValues.items.map(\r\n (element: any, index: number) => (\r\n
\r\n {\r\n setContactOption(e.target.value)\r\n setContactText(element.option === 'Sms' ? sms.slice(3) : email)\r\n }}\r\n required\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 setContactValue(e.target.value)}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {emptyActivity.activityStatements[2].statementText}:\r\n \r\n
\r\n setExpText(e.target.value)}\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 InstantPayment\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport {CustomerModelTahsilat, CustomerModelTahsilatModal} from '../../../../types'\r\nimport './modal.css'\r\n\r\ninterface Props {\r\n bills: any\r\n customer: any\r\n selectedDebt: any\r\n setSelectedDebt: any\r\n}\r\n\r\nconst ModalBillTable: React.FC = ({bills, customer, selectedDebt, setSelectedDebt}) => {\r\n const selectAll: HTMLInputElement = document.getElementById('selectAll') as HTMLInputElement\r\n\r\n const [sortedColumn, setSortedColumn] = React.useState('')\r\n const [sortedData, setSortedData] = React.useState([])\r\n const [sortOrder, setSortOrder] = useState('asc')\r\n\r\n const handleSum = (e: any) => {\r\n if (e.target.checked === true) {\r\n setSelectedDebt(selectedDebt + parseFloat(e.target.value))\r\n } else {\r\n setSelectedDebt(selectedDebt - parseFloat(e.target.value))\r\n }\r\n }\r\n\r\n let billCheckbox = document.getElementsByName('bills')\r\n\r\n useEffect(() => {\r\n billCheckbox.forEach((element: HTMLElement) => {\r\n let elm: any = element\r\n let elm2: HTMLInputElement = elm\r\n if (!elm2.checked) {\r\n selectAll.checked = false\r\n }\r\n })\r\n }, [selectedDebt])\r\n\r\n const handleAll = (event: React.ChangeEvent) => {\r\n for (let i = 0; i < billCheckbox.length; i++) {\r\n let checkbox = billCheckbox[i] as HTMLInputElement\r\n checkbox.checked = event.target.checked\r\n }\r\n let temp = 0\r\n if (event.target.checked) {\r\n billCheckbox.forEach((element: HTMLElement) => {\r\n if (\r\n element &&\r\n element.hasAttribute('value') &&\r\n element.getAttribute('value') &&\r\n element.getAttribute('value')?.toString()\r\n ) {\r\n let temp2: any = element.getAttribute('value')\r\n let tempsec: string = temp2.toString()\r\n temp += +tempsec\r\n }\r\n })\r\n setSelectedDebt(temp)\r\n } else if (!event.target.checked) {\r\n setSelectedDebt(0)\r\n }\r\n }\r\n const compareDates = (date1: string, date2: string) => {\r\n const parts1 = date1.split('.').reverse()\r\n const parts2 = date2.split('.').reverse()\r\n\r\n for (let i = 0; i < parts1.length; i++) {\r\n const num1 = parseInt(parts1[i])\r\n const num2 = parseInt(parts2[i])\r\n\r\n if (num1 < num2) {\r\n return -1\r\n } else if (num1 > num2) {\r\n return 1\r\n }\r\n }\r\n\r\n return 0\r\n }\r\n const handleSort = (column: keyof CustomerModelTahsilatModal) => {\r\n const newSortedData = bills.Detail\r\n let newSortOrder = 'asc'\r\n\r\n if (sortedColumn === column) {\r\n newSortOrder = sortOrder === 'asc' ? 'desc' : 'asc'\r\n }\r\n\r\n newSortedData.sort((a: CustomerModelTahsilatModal, b: CustomerModelTahsilatModal) => {\r\n const valueA = a[column]\r\n const valueB = b[column]\r\n\r\n if (valueA === null && valueB === null) {\r\n return 0\r\n }\r\n\r\n if (valueA === null) {\r\n return 1\r\n }\r\n\r\n if (valueB === null) {\r\n return -1\r\n }\r\n\r\n if (column === 'NetVadeTarihi' || column === 'BelgeTarihi') {\r\n return newSortOrder === 'asc' ? compareDates(valueA, valueB) : compareDates(valueB, valueA)\r\n } else if (typeof valueA === 'number' && typeof valueB === 'number') {\r\n return newSortOrder === 'asc' ? valueA - valueB : valueB - valueA\r\n } else if (typeof valueA === 'string' && typeof valueB === 'string') {\r\n return newSortOrder === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA)\r\n } else {\r\n return 0\r\n }\r\n })\r\n\r\n setSortedData(newSortedData)\r\n setSortedColumn(column)\r\n setSortOrder(newSortOrder)\r\n }\r\n console.log('---->', bills)\r\n return (\r\n
\r\n {/* begin::Header */}\r\n\r\n {/* end::Header */}\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Table container */}\r\n
\r\n {/* begin::Table */}\r\n \r\n {/* begin::Table head */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* end::Table head */}\r\n {/* begin::Table body */}\r\n \r\n {bills === undefined && (\r\n \r\n \r\n \r\n )}\r\n {bills !== undefined &&\r\n (bills.Status === 'SUCCESS' ? (\r\n bills.Detail.map((bill: any, index: number) => (\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 {/* end::Table body */}\r\n
\r\n
\r\n handleAll(e)}\r\n />\r\n
\r\n
handleSort('BelgeNo')}>\r\n Fatura Numarası\r\n handleSort('BelgeTarihi')}>\r\n Fatura Tarihi\r\n handleSort('NetVadeTarihi')}>\r\n Net Vade Tarihi\r\n handleSort('UpbTutar')}>\r\n Tutar\r\n handleSort('UpbTutar')}>\r\n Tayın\r\n
\r\n {' '}\r\n

Yükleniyor...

\r\n
\r\n {' '}\r\n
\r\n handleSum(e)}\r\n />\r\n
\r\n
\r\n \r\n {bill.BelgeNo}\r\n \r\n \r\n \r\n {bill.BelgeTarihi}\r\n \r\n \r\n \r\n {bill.NetVadeTarihi}\r\n \r\n \r\n \r\n {bill.UpbTutar?.toLocaleString('tr-TR')} ₺\r\n \r\n \r\n \r\n {bill.Tayin?.toLocaleString('tr-TR')}\r\n \r\n
\r\n {/* end::Table */}\r\n
\r\n {/* end::Table container */}\r\n
\r\n {/* begin::Body */}\r\n\r\n
\r\n
\r\n \r\n Toplam Borç:{' '}\r\n \r\n {customer.TotalBalance?.toLocaleString('tr-TR')} ₺\r\n \r\n \r\n\r\n \r\n Gecikmiş Borç{' '}\r\n \r\n {customer.TotalOverDue?.toLocaleString('tr-TR')} ₺\r\n \r\n \r\n\r\n \r\n Seçili Borç{' '}\r\n {selectedDebt?.toLocaleString('tr-TR')} ₺\r\n \r\n \r\n Kalan Borç{' '}\r\n \r\n {customer.TotalOverDue - selectedDebt < 0\r\n ? 0\r\n : (customer.TotalOverDue - selectedDebt)?.toLocaleString('tr-TR')}{' '}\r\n ₺\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ModalBillTable\r\n","import React from 'react'\r\n\r\ninterface Props {\r\n callHistory: any\r\n}\r\n\r\nconst TablePassedCalls: React.FC = ({callHistory}) => {\r\n const checkValueEntered = (index: number, activityStatementList: any) => {\r\n var resp = ''\r\n if (activityStatementList === undefined || !(activityStatementList?.length > 0)) {\r\n resp = ''\r\n } else {\r\n if (activityStatementList[index]?.value === undefined) {\r\n resp = '-'\r\n } else if (activityStatementList[index]?.value === '') {\r\n resp = '-'\r\n } else {\r\n resp = activityStatementList[index]?.value\r\n }\r\n }\r\n\r\n return resp\r\n }\r\n\r\n console.log('callHistorycallHistory', callHistory)\r\n\r\n return (\r\n
\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Table container */}\r\n
\r\n {/* begin::Table */}\r\n \r\n {/* begin::Table head */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* end::Table head */}\r\n {/* begin::Table body */}\r\n \r\n {callHistory !== undefined &&\r\n callHistory\r\n .sort((a: any, b: any) => (a.node.activityId > b.node.activityId ? -1 : 0))\r\n .map((activity: any) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n {/* end::Table body */}\r\n
Aktivite IDArama SonucuÖdeme KanalıArama TarihiUzlaşılan TarihNot
\r\n \r\n {activity.node.activityId}\r\n \r\n \r\n \r\n {checkValueEntered(3, activity.node.activityStatements)}\r\n \r\n \r\n \r\n {checkValueEntered(5, activity.node.activityStatements)}\r\n \r\n \r\n \r\n {`${activity.node.planDateTime.split('T')[0].split('-')[0]}-${\r\n activity.node.planDateTime.split('T')[0].split('-')[1]\r\n }-${activity.node.planDateTime.split('T')[0].split('-')[2]}`}\r\n \r\n \r\n \r\n {checkValueEntered(6, activity.node.activityStatements).split(' ')[0]}\r\n \r\n \r\n \r\n {checkValueEntered(1, activity.node.activityStatements)}\r\n \r\n
\r\n {/* end::Table */}\r\n
\r\n {/* end::Table container */}\r\n
\r\n {/* begin::Body */}\r\n
\r\n )\r\n}\r\n\r\nexport default TablePassedCalls\r\n","import Accordion from 'react-bootstrap/Accordion'\r\nimport { Card } from 'react-bootstrap-v5'\r\nimport TablePassedCalls from './TablePassedCalls'\r\n\r\ninterface Props {\r\n callHistory: any[],\r\n activityHistNumber: number,\r\n setActivityHistNumber: any\r\n}\r\n\r\nconst ModalPassedCalls:React.FC = ({callHistory, activityHistNumber, setActivityHistNumber}) => {\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n Geçmiş Aramalar\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 //
Geçmiş Aramalar
\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 ModalPassedCalls\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useDispatch} from 'react-redux'\r\nimport {v4 as uuidv4} from 'uuid'\r\nimport {changeModalVisibility} from '../../../../setup/slices/ModalSlice'\r\nimport {client} from '../../../ApolloClient/client'\r\nimport {\r\n getActivityCallHistory,\r\n getActivityStatementsFromEmpty,\r\n getSalesPersonId,\r\n} from '../../../helper/ActivityHelper'\r\nimport {CREATE_ACTIVITY_FROM_EMPTY, UPDATE_ACTIVITY_STATUS} from '../../../store/queries'\r\nimport '../../../styles/Modal.css'\r\nimport {GetBillTable, GetCustomerContactInfo} from '../../AnaVezne/apis/ApiCall'\r\nimport CallAgain from './modal-components/CallAgain'\r\nimport FuturePayment from './modal-components/FuturePayment'\r\nimport InstantPayment from './modal-components/InstantPayment'\r\nimport ModalBillTable from './modal-components/ModalBillTable'\r\nimport ModalPassedCalls from './modal-components/ModalPassedCalls'\r\nimport moment from 'moment'\r\nimport AuthService from '../../auth/redux/AuthService'\r\n\r\ninterface Props {\r\n customer: any\r\n activityInfo: any\r\n}\r\n\r\nconst ModalCard: React.FC = ({customer, activityInfo}) => {\r\n const [activityForms, setActivityForms] = useState('none')\r\n const [emptyActivity, setEmptyActivity] = useState()\r\n const [formValues, setFormValues] = useState()\r\n const [emptyActivityStatementCodes, setEmptyActivityStatementCodes] = useState()\r\n const [callHistory, setCallHistory] = useState()\r\n const [activityHistNumber, setActivityHistNumber] = useState(5)\r\n const [bills, setBills] = useState()\r\n const [selectedDebt, setSelectedDebt] = useState(0.0)\r\n const [salesPersonId, setSalesPersonId] = useState()\r\n const [email, setEmail] = useState('')\r\n const [sms, setSms] = useState('')\r\n const [primaryContactName, setPrimaryContactName] = useState('')\r\n\r\n // const typeGuid = \"b7e39044-ea50-49a7-94d4-96ea12f851f8\"\r\n const typeGuid = '2978C75D-D89F-4EE4-8DA4-D82FA90F2605'\r\n const statusGuid = '4A61E63E-ABBA-40C2-9C0D-B4062B6B876A'\r\n\r\n const user = AuthService.GetCurrentUser()\r\n\r\n useEffect(() => {\r\n getSalesPersonId(setSalesPersonId, user.salesPersonGuid)\r\n }, [])\r\n\r\n useEffect(() => {\r\n getActivityCallHistory(\r\n activityHistNumber,\r\n typeGuid,\r\n client,\r\n setCallHistory,\r\n customer.CustomerId\r\n )\r\n }, [])\r\n\r\n useEffect(() => {\r\n getActivityCallHistory(\r\n activityHistNumber,\r\n typeGuid,\r\n client,\r\n setCallHistory,\r\n customer.CustomerId\r\n )\r\n }, [activityHistNumber])\r\n\r\n useEffect(() => {\r\n if (customer !== undefined) {\r\n GetBillTable(setBills, customer.Customerreference)\r\n GetCustomerContactInfo(customer.Customerreference, setEmail, setSms, setPrimaryContactName)\r\n console.log(customer)\r\n }\r\n }, [customer])\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n getActivityStatementsFromEmpty(typeGuid, setEmptyActivity, client)\r\n }, [])\r\n\r\n const escFunction = useCallback((event) => {\r\n if (event.key === 'Escape') {\r\n dispatch(changeModalVisibility(false))\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.addEventListener('keydown', escFunction, false)\r\n\r\n return () => {\r\n document.removeEventListener('keydown', escFunction, false)\r\n }\r\n }, [escFunction])\r\n\r\n let statementCodeArray: any[] = []\r\n useEffect(() => {\r\n if (emptyActivity !== undefined) {\r\n const activityStatements = emptyActivity?.activityStatements\r\n activityStatements?.map((element: {statementCode: any}) =>\r\n statementCodeArray.push(element.statementCode)\r\n )\r\n setEmptyActivityStatementCodes(statementCodeArray)\r\n }\r\n }, [emptyActivity])\r\n\r\n const composeEmptyActivityObj = (customer: any) => {\r\n if (formValues[0] !== undefined) {\r\n let emptyActivityStatementList = []\r\n\r\n for (let i = 0; i < emptyActivityStatementCodes.length; i++) {\r\n type ModelObject = {\r\n notes: string\r\n statementCode: string\r\n value: string\r\n }\r\n\r\n let object: ModelObject = {\r\n notes: '',\r\n statementCode: '',\r\n value: '',\r\n }\r\n\r\n if (emptyActivityStatementCodes[i] === 'Y1') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[0]\r\n emptyActivityStatementList.push(object)\r\n } else if (emptyActivityStatementCodes[i] === 'Y2') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[1]\r\n\r\n emptyActivityStatementList.push(object)\r\n } else if (emptyActivityStatementCodes[i] === 'Y3') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[2]\r\n\r\n emptyActivityStatementList.push(object)\r\n } else if (emptyActivityStatementCodes[i] === 'Y4') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[3]\r\n\r\n emptyActivityStatementList.push(object)\r\n } else if (emptyActivityStatementCodes[i] === 'Y5') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[4].toString()\r\n\r\n emptyActivityStatementList.push(object)\r\n } else if (emptyActivityStatementCodes[i] === 'Y6') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[5]\r\n\r\n emptyActivityStatementList.push(object)\r\n } else if (emptyActivityStatementCodes[i] === 'Y7') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[6]\r\n\r\n emptyActivityStatementList.push(object)\r\n } else if (emptyActivityStatementCodes[i] === 'Y8') {\r\n object.notes = `Program Bilgileri ${emptyActivityStatementCodes[i]}`\r\n object.statementCode = emptyActivityStatementCodes[i]\r\n object.value = formValues[7]\r\n\r\n emptyActivityStatementList.push(object)\r\n }\r\n }\r\n\r\n let model = {\r\n activityTypeGuid: typeGuid,\r\n activityStatus: {\r\n guid: statusGuid,\r\n },\r\n notes: '',\r\n activityStatements: emptyActivityStatementList,\r\n planDateTime: moment(new Date()).format('YYYY-MM-DD') + ' ' + moment().format('HH:mm'),\r\n planEndDateTime:\r\n moment(new Date()).add(5, 'days').format('YYYY-MM-DD') + ' ' + moment().format('HH:mm'),\r\n customerGuid: customer.CustomerGuid,\r\n }\r\n console.log(model)\r\n return model\r\n } else {\r\n return 'error'\r\n }\r\n }\r\n\r\n const composeActivity = async (customer: any) => {\r\n let model = composeEmptyActivityObj(customer)\r\n\r\n if (model === 'error' || model === undefined) {\r\n console.log('model oluşturulamadı!!')\r\n } else {\r\n await client\r\n .mutate({\r\n mutation: CREATE_ACTIVITY_FROM_EMPTY,\r\n variables: {model},\r\n })\r\n .then((resp) => resp.data.createActivityFromEmptyActivity.activity)\r\n .then((activity) => ({guid: activity.guid, updateVersion: activity.updateVersion}))\r\n .then(async (model: {guid: any; updateVersion: any}) => {\r\n await client\r\n .mutate({\r\n mutation: UPDATE_ACTIVITY_STATUS,\r\n variables: {model},\r\n })\r\n .then(() => console.log('Görev Başarılı!'))\r\n })\r\n .catch((err: any) => {\r\n console.log('Hata Oluştu: ' + err)\r\n })\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {customer.CustName}\r\n

\r\n dispatch(changeModalVisibility(false))}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n
\r\n
\r\n {' '}\r\n Tel:{' '}\r\n {sms.slice(3)}\r\n
\r\n
\r\n Yetkili: \r\n {primaryContactName}\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 {emptyActivity !== undefined &&\r\n emptyActivity?.activityStatements[4].jsonValues.items.map(\r\n (element: any, index: number) => (\r\n setActivityForms(e.currentTarget.id)}\r\n id={`list-${index}`}\r\n >\r\n \r\n {element.option}\r\n \r\n \r\n \r\n )\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {activityForms === 'none' ? null : activityForms === 'list-0' ? (\r\n \r\n ) : activityForms === 'list-1' ? (\r\n \r\n ) : activityForms === 'list-2' ? (\r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n dispatch(changeModalVisibility(false))}\r\n >\r\n İptal\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ModalCard\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {useEffect, useState} from 'react'\r\nimport CustomersTable from '../../modules/Tahsilat/Content/CustomersTable'\r\nimport CustomerFilter from '../../modules/Tahsilat/Content/CustomerFilter'\r\nimport ModalCard from '../../modules/Tahsilat/modal/ModalCard'\r\nimport {useDispatch, useSelector} from 'react-redux'\r\nimport {RootState} from '../../../setup'\r\nimport {changeModalVisibility} from '../../../setup/slices/ModalSlice'\r\nimport {getActivityInfo, getWorkInCustomerId} from '../../helper/ActivityHelper'\r\nimport {GetAdminTahsilatCustomers, GetCustomers} from '../../modules/AnaVezne/apis/ApiCall'\r\nimport AuthService from '../../modules/auth/redux/AuthService'\r\nimport '../../styles/Modal.css'\r\nimport moment from 'moment'\r\n\r\nconst Tahsilat: React.FC = () => {\r\n const [customer, setCustomer] = useState()\r\n const [workInCustomerId, setWorkInCustomerId] = useState('')\r\n const [activityInfo, setActivityInfo] = useState()\r\n const [isLoading, setIsLoading] = useState(true)\r\n const [customerList, setCustomerList] = useState({Status: 'NONE', Detail: []})\r\n const [searchText, setSearchText] = useState('')\r\n const [message, setMessage] = useState('')\r\n const [filteredCustomers, setFilteredCustomers] = useState([])\r\n\r\n const [todayPayment, setTodayPayment] = useState(false)\r\n const [delayedPayment, setDelayedPayment] = useState(false)\r\n const [todayRecall, setTodayRecall] = useState(false)\r\n const [passedExpiry, setPassedExpiry] = useState(false)\r\n\r\n const user = AuthService.GetCurrentUser()\r\n const isAdmin =\r\n user.userData?.roles?.some((element: string) => element === 'Anavezne Admin') || false\r\n\r\n const dispatch = useDispatch()\r\n const isVisible = useSelector((state: RootState) => state.isVisible.isVisible)\r\n\r\n useEffect(() => {\r\n getWorkInCustomerId(setWorkInCustomerId, user.userData?.salesPersonGuid)\r\n }, [user.userData?.salesPersonGuid])\r\n console.log('workInCustomerId', filteredCustomers)\r\n\r\n useEffect(() => {\r\n if (customerList !== undefined) {\r\n setFilteredCustomers(\r\n customerList.Detail.filter((customer: any) => {\r\n if (customer.CustName !== null) {\r\n return customer.CustName.toUpperCase().includes(searchText.toUpperCase())\r\n }\r\n })\r\n )\r\n }\r\n if (customerList !== undefined) {\r\n if (customerList.Status === 'SUCCESS') {\r\n if (\r\n todayPayment === false &&\r\n delayedPayment === false &&\r\n todayRecall === false &&\r\n passedExpiry === false\r\n ) {\r\n setFilteredCustomers(customerList.Detail)\r\n } else if (todayPayment || delayedPayment || todayRecall || passedExpiry) {\r\n let todayFilter = []\r\n let delayedFilter = []\r\n let recallFilter = []\r\n let expiryFilter = []\r\n\r\n if (todayPayment) {\r\n todayFilter = customerList.Detail.filter((customer: any) => {\r\n if (customer.OdemeTarihi !== null) {\r\n if (customer.OdemeTaihi !== '') {\r\n if (\r\n customer.OdemeTarihi === moment(new Date()).format('YYYY-MM-DD').split('T')[0]\r\n ) {\r\n return customer\r\n }\r\n }\r\n }\r\n return\r\n })\r\n }\r\n\r\n if (delayedPayment) {\r\n delayedFilter = customerList.Detail.filter((customer: any) => {\r\n if (customer.TotalOverDue > 0) {\r\n return customer\r\n }\r\n return\r\n })\r\n }\r\n\r\n if (todayRecall) {\r\n recallFilter = customerList.Detail.filter((customer: any) => {\r\n if (customer.AramaTarihi !== undefined) {\r\n if (customer.AramaTarihi !== '') {\r\n if (\r\n customer.AramaTarihi === moment(new Date()).format('YYYY-MM-DD').split('T')[0]\r\n ) {\r\n return customer\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n if (passedExpiry) {\r\n expiryFilter = customerList.Detail.filter((customer: any) => {\r\n if (customer.OdemeTarihi !== undefined) {\r\n if (customer.OdemeTarihi !== '') {\r\n if (\r\n customer.OdemeTarihi > moment(new Date()).format('YYYY-MM-DD').split('T')[0]\r\n ) {\r\n return\r\n } else {\r\n return customer\r\n }\r\n } else {\r\n return customer\r\n }\r\n }\r\n })\r\n }\r\n\r\n let arr = [...todayFilter, ...delayedFilter, ...recallFilter, ...expiryFilter]\r\n let newArr = arr.filter(\r\n (value, index, self) =>\r\n index === self.findIndex((t) => t.CustomerId === value.CustomerId)\r\n )\r\n setFilteredCustomers(newArr)\r\n }\r\n }\r\n }\r\n }, [\r\n todayPayment,\r\n delayedPayment,\r\n todayRecall,\r\n passedExpiry,\r\n customerList,\r\n user.userData?.salesPersonGuid,\r\n ])\r\n\r\n useEffect(() => {\r\n if (customerList !== undefined) {\r\n if (customerList.Status === 'SUCCESS') {\r\n setFilteredCustomers(customerList.Detail)\r\n }\r\n }\r\n }, [customerList])\r\n\r\n useEffect(() => {\r\n dispatch(changeModalVisibility(false))\r\n getActivityInfo(setActivityInfo)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!isAdmin) {\r\n setIsLoading(true)\r\n GetCustomers(setCustomerList, setIsLoading, workInCustomerId)\r\n } else {\r\n setIsLoading(false)\r\n }\r\n }, [workInCustomerId])\r\n\r\n useEffect(() => {\r\n if (!isAdmin) {\r\n if (filteredCustomers.length < 1 && !isLoading && filteredCustomers.length === 0) {\r\n setIsLoading(false)\r\n setMessage('Müşteri Bulunamadı')\r\n }\r\n }\r\n }, [filteredCustomers, searchText, isLoading])\r\n\r\n useEffect(() => {\r\n if (customerList !== undefined) {\r\n setFilteredCustomers(customerList.Detail)\r\n if (isAdmin) {\r\n if (searchText.length > 3) {\r\n setIsLoading(true)\r\n GetAdminTahsilatCustomers(searchText, setCustomerList, setIsLoading)\r\n } else if (searchText.length === 0) {\r\n setIsLoading(false)\r\n setCustomerList({Status: 'LOADING', Detail: []})\r\n setMessage('Müşterileri Görmek İçin Arama Yapın.')\r\n }\r\n } else {\r\n if (searchText.length > 0) {\r\n setFilteredCustomers(\r\n customerList.Detail.filter((customer: any) => {\r\n if (\r\n customer.CustName !== null &&\r\n customer.CustName.toUpperCase().includes(searchText.toUpperCase())\r\n ) {\r\n return true\r\n }\r\n if (\r\n customer.Customerreference !== null &&\r\n customer.Customerreference.toUpperCase().includes(searchText.toUpperCase())\r\n ) {\r\n return true\r\n }\r\n if (\r\n customer.VergiNo !== null &&\r\n customer.VergiNo.toUpperCase().includes(searchText.toUpperCase())\r\n ) {\r\n return true\r\n }\r\n return false\r\n })\r\n )\r\n }\r\n }\r\n }\r\n }, [searchText])\r\n\r\n return (\r\n <>\r\n {isVisible ? : <>}\r\n\r\n
\r\n
\r\n {!isAdmin && (\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 {Tahsilat}\r\n","export const toAbsoluteUrl = (pathname: string) => process.env.PUBLIC_URL + pathname\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","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","export interface MessageModel {\r\n user: number\r\n type: 'in' | 'out'\r\n text: string\r\n time: string\r\n template?: boolean\r\n}\r\n\r\nconst defaultMessages: Array = [\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'How likely are you to recommend our company to your friends and family ?',\r\n time: '2 mins',\r\n },\r\n {\r\n user: 2,\r\n type: 'out',\r\n text: 'Hey there, we’re just writing to let you know that you’ve been subscribed to a repository on GitHub.',\r\n time: '5 mins',\r\n },\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'Ok, Understood!',\r\n time: '1 Hour',\r\n },\r\n {\r\n user: 2,\r\n type: 'out',\r\n text: 'You’ll receive notifications for all issues, pull requests!',\r\n time: '2 Hours',\r\n },\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'You can unwatch this repository immediately by clicking here: Keenthemes.com',\r\n time: '3 Hours',\r\n },\r\n {\r\n user: 2,\r\n type: 'out',\r\n text: 'Most purchased Business courses during this sale!',\r\n time: '4 Hours',\r\n },\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'Company BBQ to celebrate the last quater achievements and goals. Food and drinks provided',\r\n time: '5 Hours',\r\n },\r\n {\r\n template: true,\r\n user: 2,\r\n type: 'out',\r\n text: '',\r\n time: 'Just now',\r\n },\r\n {\r\n template: true,\r\n user: 4,\r\n type: 'in',\r\n text: 'Right before vacation season we have the next Big Deal for you.',\r\n time: 'Just now',\r\n },\r\n]\r\n\r\nexport interface UserInfoModel {\r\n initials?: {label: string; state: 'warning' | 'danger' | 'primary' | 'success' | 'info'}\r\n name: string\r\n avatar?: string\r\n email: string\r\n position: string\r\n online: boolean\r\n}\r\n\r\nconst defaultUserInfos: Array = [\r\n {\r\n name: 'Emma Smith',\r\n avatar: 'avatars/150-1.jpg',\r\n email: 'e.smith@kpmg.com.au',\r\n position: 'Art Director',\r\n online: false,\r\n },\r\n {\r\n name: 'Melody Macy',\r\n initials: {label: 'M', state: 'danger'},\r\n email: 'melody@altbox.com',\r\n position: 'Marketing Analytic',\r\n online: true,\r\n },\r\n {\r\n name: 'Max Smith',\r\n avatar: 'metro/metro-apple-touch-icon-144x144.png',\r\n email: 'max@kt.com',\r\n position: 'Software Enginer',\r\n online: false,\r\n },\r\n {\r\n name: 'Sean Bean',\r\n avatar: 'avatars/150-4.jpg',\r\n email: 'sean@dellito.com',\r\n position: 'Web Developer',\r\n online: false,\r\n },\r\n {\r\n name: 'Brian Cox',\r\n avatar: 'avatars/150-15.jpg',\r\n email: 'brian@exchange.com',\r\n position: 'UI/UX Designer',\r\n online: false,\r\n },\r\n {\r\n name: 'Mikaela Collins',\r\n initials: {label: 'M', state: 'warning'},\r\n email: 'mikaela@pexcom.com',\r\n position: 'Head Of Marketing',\r\n online: true,\r\n },\r\n {\r\n name: 'Francis Mitcham',\r\n avatar: 'avatars/150-8.jpg',\r\n email: 'f.mitcham@kpmg.com.au',\r\n position: 'Software Arcitect',\r\n online: false,\r\n },\r\n\r\n {\r\n name: 'Olivia Wild',\r\n initials: {label: 'O', state: 'danger'},\r\n email: 'olivia@corpmail.com',\r\n position: 'System Admin',\r\n online: true,\r\n },\r\n {\r\n name: 'Neil Owen',\r\n initials: {label: 'N', state: 'primary'},\r\n email: 'owen.neil@gmail.com',\r\n position: 'Account Manager',\r\n online: true,\r\n },\r\n {\r\n name: 'Dan Wilson',\r\n avatar: 'avatars/150-6.jpg',\r\n email: 'dam@consilting.com',\r\n position: 'Web Desinger',\r\n online: false,\r\n },\r\n {\r\n name: 'Emma Bold',\r\n initials: {label: 'E', state: 'danger'},\r\n email: 'emma@intenso.com',\r\n position: 'Corporate Finance',\r\n online: true,\r\n },\r\n {\r\n name: 'Ana Crown',\r\n avatar: 'avatars/150-7.jpg',\r\n email: 'ana.cf@limtel.com',\r\n position: 'Customer Relationship',\r\n online: false,\r\n },\r\n {\r\n name: 'Robert Doe',\r\n initials: {label: 'A', state: 'info'},\r\n email: 'robert@benko.com',\r\n position: 'Marketing Executive',\r\n online: true,\r\n },\r\n {\r\n name: 'John Miller',\r\n avatar: 'avatars/150-17.jpg',\r\n email: 'miller@mapple.com',\r\n position: 'Project Manager',\r\n online: false,\r\n },\r\n {\r\n name: 'Lucy Kunic',\r\n initials: {label: 'L', state: 'success'},\r\n email: 'lucy.m@fentech.com',\r\n position: 'SEO Master',\r\n online: true,\r\n },\r\n {\r\n name: 'Ethan Wilder',\r\n avatar: 'avatars/150-10.jpg',\r\n email: 'ethan@loop.com.au',\r\n position: 'Accountant',\r\n online: true,\r\n },\r\n]\r\n\r\nconst messageFromClient: MessageModel = {\r\n user: 4,\r\n type: 'in',\r\n text: 'Thank you for your awesome support!',\r\n time: 'Just now',\r\n}\r\n\r\nexport interface AlertModel {\r\n title: string\r\n description: string\r\n time: string\r\n icon: string\r\n state: 'primary' | 'danger' | 'warning' | 'success' | 'info'\r\n}\r\n\r\nconst defaultAlerts: Array = [\r\n {\r\n title: 'Project Alice',\r\n description: 'Phase 1 development',\r\n time: '1 hr',\r\n icon: 'icons/duotone/Clothes/Crown.svg',\r\n state: 'primary',\r\n },\r\n {\r\n title: 'HR Confidential',\r\n description: 'Confidential staff documents',\r\n time: '2 hrs',\r\n icon: 'icons/duotone/Code/Warning-2.svg',\r\n state: 'danger',\r\n },\r\n {\r\n title: 'Company HR',\r\n description: 'Corporeate staff profiles',\r\n time: '5 hrs',\r\n icon: 'icons/duotone/Communication/Group.svg',\r\n state: 'warning',\r\n },\r\n {\r\n title: 'Project Redux',\r\n description: 'New frontend admin theme',\r\n time: '2 days',\r\n icon: 'icons/duotone/General/Thunder.svg',\r\n state: 'success',\r\n },\r\n {\r\n title: 'Project Breafing',\r\n description: 'Product launch status update',\r\n time: '21 Jan',\r\n icon: 'icons/duotone/Communication/Flag.svg',\r\n state: 'primary',\r\n },\r\n {\r\n title: 'Banner Assets',\r\n description: 'Collection of banner images',\r\n time: '21 Jan',\r\n icon: 'icons/duotone/Design/Image.svg',\r\n state: 'info',\r\n },\r\n {\r\n title: 'Icon Assets',\r\n description: 'Collection of SVG icons',\r\n time: '20 March',\r\n icon: 'icons/duotone/Design/Component.svg',\r\n state: 'warning',\r\n },\r\n]\r\nexport interface LogModel {\r\n code: string\r\n state: 'success' | 'danger' | 'warning'\r\n message: string\r\n time: string\r\n}\r\n\r\nconst defaultLogs: Array = [\r\n {code: '200 OK', state: 'success', message: 'New order', time: 'Just now'},\r\n {code: '500 ERR', state: 'danger', message: 'New customer', time: '2 hrs'},\r\n {code: '200 OK', state: 'success', message: 'Payment process', time: '5 hrs'},\r\n {code: '300 WRN', state: 'warning', message: 'Search query', time: '2 days'},\r\n {code: '200 OK', state: 'success', message: 'API connection', time: '1 week'},\r\n {code: '200 OK', state: 'success', message: 'Database restore', time: 'Mar 5'},\r\n {code: '300 WRN', state: 'warning', message: 'System update', time: 'May 15'},\r\n {code: '300 WRN', state: 'warning', message: 'Server OS update', time: 'Apr 3'},\r\n {code: '300 WRN', state: 'warning', message: 'API rollback', time: 'Jun 30'},\r\n {code: '500 ERR', state: 'danger', message: 'Refund process', time: 'Jul 10'},\r\n {code: '500 ERR', state: 'danger', message: 'Withdrawal process', time: 'Sep 10'},\r\n {code: '500 ERR', state: 'danger', message: 'Mail tasks', time: 'Dec 10'},\r\n]\r\n\r\nexport {defaultMessages, defaultUserInfos, defaultAlerts, defaultLogs, messageFromClient}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\ninterface visibleModel {\r\n isVisible: boolean\r\n}\r\n\r\nconst initialState = {\r\n isVisible: false,\r\n \r\n}\r\nconst settingSlice = createSlice({\r\n name: 'modalVisible',\r\n initialState,\r\n reducers: {\r\n changeModalVisibility(state: visibleModel, action: { payload: boolean}) {\r\n state.isVisible = action.payload\r\n }\r\n }\r\n});\r\nexport const {\r\n changeModalVisibility\r\n} = settingSlice.actions;\r\nexport default settingSlice.reducer;","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 { 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","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 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","/* eslint-disable react/jsx-no-target-blank */\r\nimport React from 'react'\r\nimport {useIntl} from 'react-intl'\r\nimport AuthService from '../../../../app/modules/auth/redux/AuthService'\r\nimport {AsideMenuItem} from './AsideMenuItem'\r\n\r\nexport function AsideMenuMain() {\r\n const intl = useIntl()\r\n\r\n const user = AuthService.GetCurrentUser()\r\n const isAdmin = user.userData?.roles?.some((element: string) => element === \"Anavezne Admin\")\r\n\r\n return (\r\n <>\r\n {/* { isAdmin && } */}\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","/* 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\nimport AuthService from '../../../../app/modules/auth/redux/AuthService'\r\n\r\nconst AsideDefault: FC = () => {\r\n\r\n\r\n const {config, classes} = useLayout()\r\n const {aside} = config\r\n\r\n const user = AuthService.GetCurrentUser()\r\n const isAdmin = user.userData?.roles?.some((element: string) => element === \"Anavezne Admin\")\r\n // let link = isAdmin ? \"/ana-vezne\" : \"/tahsilatListesi\"\r\n\r\n let link = \"/tahsilatListesi\"\r\n\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 {/* begin::Footer */}\r\n {/* */}\r\n {/* end::Footer */}\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\n\r\nexport function MenuInner() {\r\n\r\n return (\r\n
\r\n
Müşteriler
\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 clsx from 'clsx'\r\nimport React, {FC} from 'react'\r\nimport {Link} from 'react-router-dom'\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 {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 {Link} from 'react-router-dom'\r\n\r\nconst HeaderUserMenu: FC = () => {\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n Oturumu Kapat\r\n \r\n
\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport {HeaderUserMenu}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC, useState} from 'react'\r\nimport clsx from 'clsx'\r\nimport {\r\n toAbsoluteUrl,\r\n defaultMessages,\r\n defaultUserInfos,\r\n MessageModel,\r\n UserInfoModel,\r\n messageFromClient,\r\n} from '../../helpers'\r\n\r\ntype Props = {\r\n isDrawer?: boolean\r\n}\r\n\r\nconst bufferMessages = defaultMessages\r\n\r\nconst ChatInner: FC = ({isDrawer = false}) => {\r\n const [chatUpdateFlag, toggleChatUpdateFlat] = useState(false)\r\n const [message, setMessage] = useState('')\r\n const [messages, setMessages] = useState(bufferMessages)\r\n const [userInfos] = useState(defaultUserInfos)\r\n\r\n const sendMessage = () => {\r\n const newMessage: MessageModel = {\r\n user: 2,\r\n type: 'out',\r\n text: message,\r\n time: 'Just now',\r\n }\r\n\r\n bufferMessages.push(newMessage)\r\n setMessages(bufferMessages)\r\n toggleChatUpdateFlat(!chatUpdateFlag)\r\n setMessage('')\r\n setTimeout(() => {\r\n bufferMessages.push(messageFromClient)\r\n setMessages(() => bufferMessages)\r\n toggleChatUpdateFlat((flag) => !flag)\r\n }, 1000)\r\n }\r\n\r\n const onEnterPress = (e: React.KeyboardEvent) => {\r\n if (e.keyCode === 13 && e.shiftKey === false) {\r\n e.preventDefault()\r\n sendMessage()\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {messages.map((message, index) => {\r\n const userInfo = userInfos[message.user]\r\n const state = message.type === 'in' ? 'info' : 'primary'\r\n const templateAttr = {}\r\n if (message.template) {\r\n Object.defineProperty(templateAttr, 'data-kt-element', {\r\n value: `template-${message.type}`,\r\n })\r\n }\r\n const contentClass = `${isDrawer ? '' : 'd-flex'} justify-content-${\r\n message.type === 'in' ? 'start' : 'end'\r\n } mb-10`\r\n return (\r\n \r\n \r\n
\r\n {message.type === 'in' ? (\r\n <>\r\n
\r\n Pic\r\n
\r\n
\r\n \r\n {userInfo.name}\r\n \r\n {message.time}\r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n {message.time}\r\n \r\n You\r\n \r\n
\r\n
\r\n Pic\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 setMessage(e.target.value)}\r\n onKeyDown={onEnterPress}\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 Send\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport {ChatInner}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC} from 'react'\r\nimport {KTSVG} from '../../../helpers'\r\nimport {ChatInner} from '../../chat/ChatInner'\r\n\r\nconst DrawerMessenger: FC = () => (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Brian Cox\r\n \r\n\r\n
\r\n \r\n Active\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 {DrawerMessenger}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst Item1: FC = () => {\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 There are 2 new tasks for you in “AirPlus Mobile APp” project:\r\n
\r\n\r\n
\r\n
Added at 4:23 PM by
\r\n\r\n \r\n img\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Meeting with customer\r\n \r\n\r\n
\r\n Application Design\r\n
\r\n\r\n
\r\n
\r\n img\r\n
\r\n\r\n
\r\n img\r\n
\r\n\r\n
\r\n
A
\r\n
\r\n
\r\n\r\n
\r\n In Progress\r\n
\r\n\r\n \r\n View\r\n \r\n
\r\n\r\n
\r\n \r\n Project Delivery Preparation\r\n \r\n\r\n
\r\n CRM System Development\r\n
\r\n\r\n
\r\n
\r\n img\r\n
\r\n\r\n
\r\n
B
\r\n
\r\n
\r\n\r\n
\r\n Completed\r\n
\r\n\r\n \r\n View\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {Item1}\r\n","import {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst Item2: FC = () => {\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 Invitation for crafting engaging designs that speak human workshop\r\n
\r\n\r\n
\r\n
Sent at 4:23 PM by
\r\n\r\n \r\n img\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {Item2}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst Item3: FC = () => {\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 3 New Incoming Project Files:\r\n \r\n\r\n
\r\n
Sent at 10:30 PM by
\r\n\r\n \r\n img\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n Finance KPI App Guidelines\r\n \r\n\r\n
1.9mb
\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 Finance Reports\r\n \r\n\r\n
20mb
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {Item3}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst Item4: FC = () => {\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 Task{' '}\r\n \r\n #45890\r\n \r\n merged with{' '}\r\n \r\n #45890\r\n {' '}\r\n in “Ads Pro Admin Dashboard project:\r\n
\r\n\r\n
\r\n
Initiated at 4:23 PM by
\r\n\r\n \r\n img\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {Item4}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst Item5: FC = () => {\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
3 new application design concepts added:
\r\n\r\n
\r\n
Created at 4:23 PM by
\r\n\r\n \r\n img\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\r\nexport {Item5}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {KTSVG} from '../../../helpers'\r\n\r\nconst Item6: FC = () => {\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 New case{' '}\r\n \r\n #67890\r\n \r\n is assigned to you in Multi-platform Database Design project\r\n
\r\n\r\n
\r\n
\r\n
Added at 4:23 PM by
\r\n\r\n \r\n Alice Tan\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport {Item6}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst Item7: FC = () => {\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
You have received a new order:
\r\n\r\n
\r\n
Placed at 5:05 AM by
\r\n\r\n \r\n img\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Database Backup Process Completed!

\r\n
\r\n Login into Metronic Admin Dashboard to make sure the data integrity is OK\r\n
\r\n
\r\n \r\n Proceed\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {Item7}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\nimport {KTSVG} from '../../../helpers'\r\n\r\nconst Item8: FC = () => {\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 New order{' '}\r\n \r\n #67890\r\n \r\n is placed for Workshow Planning & Budget Estimation\r\n
\r\n\r\n
\r\n
Placed at 4:23 PM by
\r\n\r\n \r\n Jimmy Bold\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport {Item8}\r\n","import React, {FC} from 'react'\r\nimport {Link} from 'react-router-dom'\r\nimport {KTSVG} from '../../../helpers'\r\nimport {Item1} from '../../content/activity/Item1'\r\nimport {Item2} from '../../content/activity/Item2'\r\nimport {Item3} from '../../content/activity/Item3'\r\nimport {Item4} from '../../content/activity/Item4'\r\nimport {Item5} from '../../content/activity/Item5'\r\nimport {Item6} from '../../content/activity/Item6'\r\nimport {Item7} from '../../content/activity/Item7'\r\nimport {Item8} from '../../content/activity/Item8'\r\n\r\nconst ActivityDrawer: FC = () => (\r\n \r\n
\r\n
\r\n

Activity Logs

\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 {ActivityDrawer}\r\n","import {toAbsoluteUrl} from '../../../helpers'\r\n\r\nexport function FallbackView() {\r\n return (\r\n
\r\n Start logo\r\n Yükleniyor...\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/metro/metro-apple-touch-icon-144x144.png',\r\n name: 'Max Smith',\r\n email: 'max@kt.com',\r\n access: '3',\r\n },\r\n {\r\n avatar: '/media/metro/metro-apple-touch-icon-144x144.png',\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 {useLayout} from '../../core'\r\nimport { HeaderUserMenu } from '../../../partials'\r\n\r\nconst toolbarButtonMarginClass = 'ms-1 ms-lg-3',\r\n toolbarUserAvatarHeightClass = 'symbol-30px symbol-md-40px'\r\n\r\nconst Topbar: FC = () => {\r\n\r\n const {config} = useLayout()\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n {/* begin::User */}\r\n \r\n {/* begin::Toggle */}\r\n \r\n {/*
\r\n {user.firstname} {user.lastname}\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\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} from 'react'\r\nimport {Link, useLocation} from 'react-router-dom'\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\n\r\nexport function HeaderWrapper() {\r\n const {pathname} = useLocation()\r\n const {config, classes, attributes} = useLayout()\r\n const {header, aside} = config\r\n\r\n useEffect(() => {\r\n MenuComponent.reinitialization()\r\n }, [pathname])\r\n\r\n return (\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 {/* begin::Logo */}\r\n {/* {!aside.display && (\r\n
\r\n \r\n Logo\r\n \r\n
\r\n )} */}\r\n {/* end::Logo */}\r\n\r\n {aside.display && (\r\n
\r\n \r\n Logo\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 {useLayout} from '../../core'\r\nimport {DefaultTitle} from '../header/page-title/DefaultTitle'\r\n\r\nconst Toolbar1: FC = () => {\r\n const {classes} = useLayout()\r\n\r\n return (\r\n
\r\n {/* begin::Container */}\r\n \r\n \r\n\r\n {/* begin::Actions */}\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\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\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 ActivityDrawer,\r\n Main,\r\n InviteUsers,\r\n UpgradePlan,\r\n} from '../partials'\r\n\r\nconst MasterLayout: React.FC = ({children}) => {\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 {children}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* begin:: Drawers */}\r\n \r\n \r\n {/* end:: Drawers */}\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 {FC} from 'react'\r\n\r\nconst Error500: FC = () => {\r\n return (\r\n <>\r\n

System Error

\r\n\r\n
\r\n Something went wrong!
Please try again later.\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {Error500}\r\n","import {FC} from 'react'\r\n\r\nconst Error404: FC = () => {\r\n return (\r\n <>\r\n

Page Not Found

\r\n\r\n
\r\n The page you looked not found!
Plan your blog post by choosing a topic\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {Error404}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from 'react'\r\nimport {Redirect, Route, Switch, useHistory} from 'react-router-dom'\r\nimport {Error500} from './components/Error500'\r\nimport {Error404} from './components/Error404'\r\nimport {toAbsoluteUrl} from '../../../_metronic/helpers'\r\n\r\nconst ErrorsPage: React.FC = () => {\r\n const history = useHistory()\r\n const redirectToDashboard = () => {\r\n history.push('/')\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\n )\r\n}\r\n\r\nexport {ErrorsPage}\r\n","import React, {useState} from 'react'\r\nimport {useDispatch, useSelector} from 'react-redux'\r\nimport {RootState} from '../../../../setup'\r\nimport {changeModalVisibility} from '../../../../setup/slices/ModalSlice'\r\nimport {customerAnaVezne} from '../../../types'\r\nimport {sortSearchedCustomers} from '../../../../setup/slices/AnavezneSlice'\r\nimport './customerTable.css'\r\n\r\ntype Props = {\r\n setCustomerInfo: any\r\n customers: any\r\n setIsLoading: React.Dispatch>\r\n isLoading: boolean | undefined\r\n}\r\nconst CustomersTable: React.FC = ({setCustomerInfo, customers, setIsLoading, isLoading}) => {\r\n const dispatch = useDispatch()\r\n\r\n const [sortedColumn, setSortedColumn] = React.useState('')\r\n const [sortedData, setSortedData] = React.useState([])\r\n const [sortOrder, setSortOrder] = useState('asc')\r\n\r\n const searchedCustomers = useSelector((state: RootState) => state.customers.searchedCustomers)\r\n\r\n const handleSort = (column: keyof customerAnaVezne) => {\r\n const newSortOrder = sortedColumn === column ? (sortOrder === 'asc' ? 'desc' : 'asc') : 'asc'\r\n dispatch(sortSearchedCustomers({column, sortOrder: newSortOrder}))\r\n\r\n setSortedColumn(column)\r\n setSortOrder(newSortOrder)\r\n }\r\n console.log('------------------------------------------------------', searchedCustomers)\r\n return (\r\n
\r\n
\r\n {/* begin::Table */}\r\n \r\n {/* begin::Table head */}\r\n \r\n \r\n handleSort('Customerreference')}\r\n >\r\n Kodu\r\n {/* {sortOrder === 'desc' ? (\r\n \r\n ) : (\r\n \r\n )} */}\r\n \r\n handleSort('Customerreference')}\r\n >\r\n SAP No\r\n \r\n handleSort('CustName')}\r\n >\r\n Müşteri Adı\r\n \r\n handleSort('VergiNo')}\r\n >\r\n VK No\r\n \r\n handleSort('StoreId')}\r\n >\r\n Anavezne Kodu\r\n \r\n handleSort('StoreDesc')}\r\n >\r\n Anavezne Adı\r\n \r\n \r\n \r\n\r\n \r\n {isLoading === undefined ? (\r\n \r\n ) : isLoading ? (\r\n \r\n ) : searchedCustomers && searchedCustomers.length === 0 ? (\r\n \r\n ) : searchedCustomers !== undefined ? (\r\n searchedCustomers.map((customer: any, index: number) => (\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

Lütfen Vezne Seçiniz.

\r\n
\r\n

Yükleniyor...

\r\n
\r\n

Müşteri Bulunamadı.

\r\n
\r\n
\r\n {\r\n return dispatch(changeModalVisibility(true)), setCustomerInfo(customer)\r\n }}\r\n style={{cursor: 'pointer'}}\r\n >\r\n {customer.Customerreference}\r\n \r\n
\r\n
\r\n
\r\n {\r\n return dispatch(changeModalVisibility(true)), setCustomerInfo(customer)\r\n }}\r\n style={{cursor: 'pointer'}}\r\n >\r\n {customer.AtCustNo}\r\n \r\n
\r\n
\r\n {\r\n return dispatch(changeModalVisibility(true)), setCustomerInfo(customer)\r\n }}\r\n style={{cursor: 'pointer'}}\r\n >\r\n
\r\n \r\n {customer.CustName}\r\n \r\n
\r\n \r\n
\r\n
\r\n {customer.VergiNo}\r\n
\r\n
\r\n
\r\n {customer.StoreId !== null ? customer.StoreId : '-Bilgi Yok-'}\r\n
\r\n
\r\n
\r\n \r\n {customer.StoreDesc !== null ? customer.StoreDesc : '-Bilgi Yok-'}\r\n \r\n
\r\n
\r\n

Yükleniyor ...

\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CustomersTable\r\n","import React, {useEffect, useState} from 'react'\r\nimport {useDispatch, useSelector} from 'react-redux'\r\nimport {RootState} from '../../../../../setup'\r\nimport {setFilteredCustomers, setSearchedCustomers} from '../../../../../setup/slices/AnavezneSlice'\r\nimport {AnaVezneCustomersCall} from '../../apis/ApiCall'\r\n\r\ninterface Props {\r\n stores: any\r\n setCustomers: any\r\n setCurrentStore: React.Dispatch>\r\n setIsLoading: React.Dispatch>\r\n}\r\n\r\nconst CustomerFilter: React.FC = ({stores, setCustomers, setCurrentStore, setIsLoading}) => {\r\n const dispatch = useDispatch()\r\n const allCustomers = useSelector((state: RootState) => state.customers.allCustomers)\r\n const filteredCustomers = useSelector((state: RootState) => state.customers.filteredCustomers)\r\n\r\n const [filteredValue, setFilteredValue] = useState(3917462855)\r\n\r\n useEffect(() => {\r\n dispatch(setSearchedCustomers(filteredCustomers))\r\n }, [filteredCustomers])\r\n\r\n useEffect(() => {\r\n if (filteredValue !== 3917462855) {\r\n AnaVezneCustomersCall(setCustomers, setIsLoading)\r\n }\r\n }, [filteredValue])\r\n\r\n useEffect(() => {\r\n let fromAllCustomers: any[] = allCustomers.filter(\r\n (customer: any) => parseInt(customer.StoreId) === filteredValue && customer.StoreId !== null\r\n )\r\n switch (filteredValue) {\r\n case 0:\r\n dispatch(setFilteredCustomers(allCustomers))\r\n break\r\n case 1:\r\n dispatch(\r\n setFilteredCustomers(\r\n allCustomers.filter((customer: any) => typeof customer.StoreId !== typeof 0.0)\r\n )\r\n )\r\n break\r\n default:\r\n dispatch(setFilteredCustomers(fromAllCustomers))\r\n break\r\n }\r\n }, [allCustomers, dispatch, filteredValue])\r\n\r\n const handleSelect = (event: React.ChangeEvent) => {\r\n setIsLoading(true)\r\n setFilteredValue(parseInt(event.target.value))\r\n if (event.target.value === '0') {\r\n setCurrentStore({AnavezneKodu: '', AnavezneAdi: ''})\r\n } else {\r\n stores.Detail.map((store: any) => {\r\n //if(event.target.value === store.CustomerReference) {\r\n setCurrentStore({AnavezneKodu: store.CustomerReference, AnavezneAdi: store.DisplayName})\r\n //}\r\n })\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n handleSelect(e)}\r\n defaultValue={3917462855}\r\n >\r\n \r\n \r\n \r\n {stores.Detail.map((store: any, index: number) => (\r\n \r\n ))}\r\n \r\n
{' '}\r\n
\r\n )\r\n}\r\n\r\nexport default CustomerFilter\r\n","import React, {useEffect, useState} from 'react'\r\nimport {useDispatch, useSelector} from 'react-redux'\r\nimport {RootState} from '../../../../../setup'\r\nimport {setSearchedCustomers} from '../../../../../setup/slices/AnavezneSlice'\r\nimport {KTSVG} from '../../../../../_metronic/helpers'\r\n\r\nconst CustomerSearch = () => {\r\n const [inputValue, setInputValue] = useState('')\r\n\r\n const dispatch = useDispatch()\r\n const filteredCustomers = useSelector((state: RootState) => state.customers.filteredCustomers)\r\n\r\n useEffect(() => {\r\n dispatch(setSearchedCustomers(filteredCustomers))\r\n let lastCustomers = filteredCustomers\r\n lastCustomers = lastCustomers.filter((customer: any) => {\r\n const custNameMatches = customer.CustName.toLowerCase().includes(inputValue?.toLowerCase())\r\n const customerReferenceMatches = customer.Customerreference?.toString().includes(inputValue)\r\n const vergiNoMatches = customer.VergiNo?.toUpperCase().includes(inputValue.toUpperCase())\r\n\r\n return custNameMatches || customerReferenceMatches || vergiNoMatches\r\n })\r\n\r\n dispatch(setSearchedCustomers(lastCustomers))\r\n }, [dispatch, filteredCustomers, inputValue])\r\n\r\n return (\r\n
\r\n \r\n
\r\n {\r\n e.preventDefault()\r\n setInputValue(e.target.value)\r\n }}\r\n />\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default CustomerSearch\r\n","import React from 'react'\r\nimport CustomerFilter from './Filter/CustomerFilter'\r\nimport CustomerSearch from './Filter/CustomerSearch'\r\n\r\ninterface Props {\r\n stores: any,\r\n setCustomers: any,\r\n setCurrentStore: React.Dispatch>,\r\n setIsLoading: React.Dispatch>\r\n}\r\n\r\nconst FilterCustomers: React.FC = ({stores, setCustomers, setCurrentStore, setIsLoading}) => {\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 default FilterCustomers\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport {useSelector} from 'react-redux'\r\nimport {KTSVG} from '../../../../_metronic/helpers'\r\nimport {GetAnaVezneCustomerByExcell, UploadCustomersFromExcell} from '../apis/ApiCall'\r\nimport {RootState} from '../../../../setup'\r\n\r\ntype Props = {\r\n currentStore: {AnavezneKodu: string; AnavezneAdi: string}\r\n}\r\n\r\nconst TableButtons: React.FC = ({currentStore}) => {\r\n const [fileName, setFileName] = useState('')\r\n\r\n const searchedCustomers = useSelector((state: RootState) => state.customers.searchedCustomers)\r\n\r\n const uploadInput = useRef(null)\r\n\r\n const importProducts = async (file: any) => {\r\n if (file != null) {\r\n if ((file.name as string).includes('xls')) {\r\n var resp = await UploadCustomersFromExcell(file)\r\n }\r\n }\r\n }\r\n\r\n const handleFileUpload = (event: any) => {\r\n setFileName(event.target.files[0].name)\r\n\r\n setTimeout(() => {\r\n importProducts(event.target.files[0])\r\n }, 500)\r\n }\r\n\r\n const uploadButtonClicked = () => {\r\n ;(uploadInput.current as any).click()\r\n }\r\n\r\n const handleCustomerDownload = (e: any) => {\r\n e.preventDefault()\r\n let anavezneCustomers: any[] = []\r\n searchedCustomers.map((customer: any) => {\r\n let newCustomer = {\r\n MusteriAdi: 'İsim Bilgisi Yok',\r\n VkNo: 'Vergi No Bilgisi Yok',\r\n AnavezneKodu: 'Mağaza Bilgisi Yok',\r\n AnavezneAdi: 'Mağaza Bilgisi Yok',\r\n Kodu: 'Kod Bilgisi Yok',\r\n }\r\n\r\n newCustomer.MusteriAdi = customer.CustName !== null ? customer.CustName : 'İsim Bilgisi Yok'\r\n newCustomer.VkNo = customer.VergiNo !== null ? customer.VergiNo : 'Vergi No Bilgisi Yok'\r\n newCustomer.AnavezneKodu =\r\n customer.StoreId !== null ? customer.StoreId.toString() : 'Mağaza Bilgisi Yok'\r\n newCustomer.AnavezneAdi =\r\n customer.StoreDesc !== null ? customer.StoreDesc : 'Mağaza Bilgisi Yok'\r\n newCustomer.Kodu =\r\n customer.Customerreference !== null ? customer.Customerreference : 'Kod Bilgisi Yok'\r\n\r\n anavezneCustomers.push(newCustomer)\r\n })\r\n GetAnaVezneCustomerByExcell(anavezneCustomers)\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\nexport default TableButtons\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport './modal-style.css'\r\nimport {changeModalVisibility} from '../../../../setup/slices/ModalSlice'\r\nimport {useDispatch} from 'react-redux'\r\nimport {AnaVezneCustomersCall, UpdateCustomerStore} from '../apis/ApiCall'\r\n\r\ntype Props = {\r\n customer: any\r\n stores: any\r\n setCustomers: React.Dispatch>\r\n setIsLoading: React.Dispatch>\r\n}\r\n\r\nconst VezneModalCard: React.FC = ({customer, stores, setCustomers, setIsLoading}) => {\r\n const [selectedStore, setSelectedStore] = useState('Seçim')\r\n const [buttonDisabled, setButtonDisabled] = useState(false)\r\n\r\n const dispatch = useDispatch()\r\n\r\n const escFunction = useCallback(\r\n (event) => {\r\n if (event.key === 'Escape') {\r\n dispatch(changeModalVisibility(false))\r\n }\r\n },\r\n [dispatch]\r\n )\r\n\r\n useEffect(() => {\r\n document.addEventListener('keydown', escFunction, false)\r\n\r\n return () => {\r\n document.removeEventListener('keydown', escFunction, false)\r\n }\r\n }, [escFunction])\r\n\r\n const handleUpdateSubmit = async (\r\n customerReference: string,\r\n storeId: string,\r\n storeDesc: string\r\n ) => {\r\n let newStoreDesc = storeDesc.split(' ')\r\n newStoreDesc.shift()\r\n\r\n setButtonDisabled(true)\r\n await UpdateCustomerStore(customerReference, storeId, newStoreDesc.join(' '))\r\n setTimeout(() => {\r\n setButtonDisabled(false)\r\n }, 1000)\r\n dispatch(changeModalVisibility(false))\r\n AnaVezneCustomersCall(setCustomers, setIsLoading)\r\n }\r\n console.log('315269', stores, customer)\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Müşteri Kartı\r\n

\r\n dispatch(changeModalVisibility(false))}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n
\r\n
Müşteri Adı
\r\n
:
\r\n
{customer?.CustName}
\r\n
\r\n
\r\n
Müşteri Kodu
\r\n
:
\r\n
{customer?.Customerreference}
\r\n
\r\n
\r\n
VKN
\r\n
:
\r\n
{customer?.VergiNo}
\r\n
\r\n
\r\n
Tanımlı Ana Vezne
\r\n
:
\r\n
\r\n setSelectedStore(e.target.value)}\r\n className='bg-light-primary text-gray-700'\r\n >\r\n \r\n {stores.Detail.map((store: any, index: number) => (\r\n \r\n {store.CustomerReference} - {store.DisplayName}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n dispatch(changeModalVisibility(false))}\r\n >\r\n İptal\r\n \r\n \r\n handleUpdateSubmit(\r\n customer.Customerreference,\r\n selectedStore.split(' ')[0],\r\n selectedStore\r\n )\r\n }\r\n disabled={selectedStore === 'Seçim' || buttonDisabled}\r\n >\r\n Değişiklikleri Kaydet\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default VezneModalCard\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {useEffect, useState} from 'react'\r\nimport CustomersTable from '../modules/AnaVezne/Content/CustomersTable'\r\nimport FilterCard from '../modules/AnaVezne/Content/FilterCard'\r\nimport TableButtons from '../modules/AnaVezne/Content/TableButtons'\r\nimport './ana-vezne.css'\r\nimport VezneModalCard from '../modules/AnaVezne/Modal/VezneModalCard'\r\nimport { RootState} from '../../setup'\r\nimport {useDispatch, useSelector} from 'react-redux'\r\nimport { setAllCustomers, setFilteredCustomers} from '../../setup/slices/AnavezneSlice'\r\nimport { changeModalVisibility } from '../../setup/slices/ModalSlice'\r\nimport { AnaVezneStoreCall } from '../modules/AnaVezne/apis/ApiCall'\r\n\r\nconst AnaVezne: React.FC = () => {\r\n\r\n const [customerInfo, setCustomerInfo] = useState()\r\n const [stores, setStores] = useState<{Detail: [], Status: string}>({Detail: [], Status: 'LOADING'})\r\n const [customers, setCustomers] = useState<{Detail: [], Status: string}>({Detail: [], Status: 'LOADING'})\r\n const [currentStore, setCurrentStore] = useState<{AnavezneKodu: string, AnavezneAdi: string}>({AnavezneAdi: '', AnavezneKodu:''})\r\n const [isLoading, setIsLoading] = useState()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const isVisible = useSelector((state: RootState) => state.isVisible.isVisible) \r\n\r\n\r\n\r\n useEffect(() => {\r\n dispatch(changeModalVisibility(false))\r\n AnaVezneStoreCall(setStores)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if(customers.Status === \"SUCCESS\") {\r\n dispatch(setAllCustomers(customers))\r\n }\r\n }, [customers])\r\n\r\n\r\n return( <>\r\n {isVisible ? : null}\r\n\r\n
\r\n \r\n\r\n {/* begin::Body */}\r\n
\r\n \r\n
\r\n \r\n {/* begin::Body */}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {AnaVezne}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC } from 'react'\r\nimport { PageTitle } from '../../_metronic/layout/core'\r\nimport AuthService from '../modules/auth/redux/AuthService'\r\nimport { AnaVezne } from './AnaVezne'\r\nimport { Tahsilat } from './Tahsilat/Tahsilat'\r\n\r\n\r\nconst MainPage: FC = () => {\r\n\r\n const user = AuthService.GetCurrentUser()\r\n const isAdmin = user.userData?.roles?.some((element: string) => element === \"Anavezne Admin\")\r\n\r\n return (
\r\n \r\n\r\n {/* begin::Row */}\r\n
\r\n
\r\n {isAdmin ? : }\r\n \r\n
\r\n
\r\n {/* end::Row */}\r\n\r\n \r\n
)\r\n}\r\n\r\n\r\nconst MainPageWrapper: FC = () => {\r\n return (\r\n <>\r\n Metro Tahsilat Listesi\r\n \r\n \r\n )\r\n}\r\n\r\nexport {MainPageWrapper}\r\n","import {Suspense, lazy} from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom'\r\nimport {FallbackView} from '../../_metronic/partials'\r\nimport AuthService from '../modules/auth/redux/AuthService'\r\nimport {MainPageWrapper} from '../pages/MainPageWrapper'\r\n\r\nexport function PrivateRoutes() {\r\n const TahsilatWrapper = lazy(() => import('../pages/Tahsilat/TahsilatWrapper'))\r\n\r\n\r\n const user = AuthService.GetCurrentUser()\r\n\r\n const isAdmin = user.userData?.roles?.some((element: string) => element === \"Anavezne Admin\")\r\n const link = isAdmin ? '/ana-vezne' : \"/tahsilatListesi\"\r\n \r\n\r\n return (\r\n }>\r\n \r\n {isAdmin ? (\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 * High level router.\r\n *\r\n * Note: It's recommended to compose related routes in internal router\r\n * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).\r\n */\r\n\r\nimport React, {FC} from 'react'\r\nimport {Redirect, Switch, Route} from 'react-router-dom'\r\nimport {MasterLayout} from '../../_metronic/layout/MasterLayout'\r\nimport {Logout, AuthPage} from '../modules/auth'\r\nimport {ErrorsPage} from '../modules/errors/ErrorsPage'\r\nimport AuthService from '../modules/auth/redux/AuthService'\r\nimport { PrivateRoutes } from './PrivateRoutes'\r\n\r\nconst Routes: FC = () => {\r\n\r\n const usr = AuthService.GetCurrentUser();\r\n const isAuthorized = usr != null ? (usr.userData !== null ? ((usr.userData?.roles?.some((element: string) => element === \"Anavezne Admin\")) || (usr.userData?.roles?.some((element: string) => element === \"AnaVezne\"))) : false) : false;\r\n // const isAuthorized = useSelector(({auth}) => auth.user, shallowEqual)\r\n\r\n\r\n\r\n return (\r\n \r\n {!isAuthorized ? (\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 {!isAuthorized ? (\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\n\r\nexport {Routes}\r\n","import React, {Suspense} from 'react'\r\nimport {BrowserRouter} from 'react-router-dom'\r\nimport {ApolloClient, InMemoryCache, ApolloProvider, HttpLink} from '@apollo/client'\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 { 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\ntype Props = {\r\n basename: string\r\n}\r\n\r\nconst App: React.FC = ({basename}) => {\r\n\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 return {\r\n headers: {\r\n ...headers,\r\n authorization: token ? `Bearer ${token}` : \"\",\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\n 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});\r\n\r\n\r\n\r\n\r\n\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport {App}\r\n","import React from 'react'\r\n\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 store, {persistor} from './setup/redux/Store'\r\n// Axios\r\nimport {Chart, registerables} from 'chart.js'\r\nimport 'bootstrap-icons/font/bootstrap-icons.css'\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 Yükleniyor...}>\r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n)\r\n","import axios from \"axios\"\r\nimport React from \"react\";\r\nimport { AXIOS_API_URL } from \"../../../../setup\"\r\nimport AuthService from \"../../auth/redux/AuthService\";\r\n\r\n\r\nexport const AnaVezneCustomersCall = async (setCustomers: React.Dispatch>, setIsLoading: React.Dispatch>) => {\r\n try {\r\n await axios.post(`${AXIOS_API_URL}GetRptCsumSf`).then((res) => res.data).then(data => {\r\n setCustomers(data)\r\n setIsLoading(false)\r\n })\r\n } catch (err) {\r\n console.log(err)\r\n }\r\n}\r\n\r\nexport const AnaVezneStoreCall = async (setStores: any ) => {\r\n try {\r\n await axios.post(`${AXIOS_API_URL}GetVezneList` ).then((res) => res.data).then(data => setStores(data))\r\n } catch (err) {\r\n console.log(err)\r\n }\r\n}\r\n\r\nexport const GetBillTable = async (setBills: React.Dispatch>, customerReference: string) => {\r\n let data;\r\n try {\r\n data = await axios.post(`${AXIOS_API_URL}GetDetailSfByCustomerReferenceRequestModel`, {customerreference: customerReference } ).then((res) => res.data)\r\n setBills(data)\r\n } catch (err) {\r\n console.log(err)\r\n data = undefined\r\n }\r\n}\r\n\r\nexport const GetCustomers = async (setCustomers: React.Dispatch>, setIsLoading: React.Dispatch>, salesPersonReference: string ) => {\r\n try {\r\n await axios.post(`${AXIOS_API_URL}GetCustomerTableOfAnaveznelistByCustomerId`, {salesPersonReference: salesPersonReference} ).then((res) => res.data).then(data => {\r\n if(data.Status === 'SUCCESS') {\r\n setCustomers(data)\r\n setIsLoading(false)\r\n }\r\n return data\r\n }).then((data) => console.log(data))\r\n \r\n } catch (err) {\r\n console.log(err)\r\n }\r\n}\r\n\r\nexport const UpdateCustomerStore = async (customerReference: string, storeId: string, storeDesc: string ) => {\r\n try {\r\n await axios.post(`${AXIOS_API_URL}AddOrUpdateCustomerDetail`, {CustomerReference: customerReference, Value: storeId, StoreDesc: storeDesc})\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n}\r\n\r\nexport const GetAdminTahsilatCustomers = async (CustName: string, setCustomers: React.Dispatch>, setIsLoading: React.Dispatch>) => {\r\n try {\r\n await axios.post(`${AXIOS_API_URL}GetRptCsumSfWithDetailsUseParameter`, {CustName: CustName}).then(res => res.data).then(data => {\r\n if(data.Status === 'SUCCESS') {\r\n setCustomers(data)\r\n setIsLoading(false)\r\n }})\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n}\r\n\r\nexport const GetCustomerContactInfo = async (CustomerReference: string, setEmail: React.Dispatch>, setSms: React.Dispatch>, setPrimaryContactName: React.Dispatch>) => {\r\n try {\r\n await axios.post(`${AXIOS_API_URL}GetCustomerByCustomerreference`, { customerReference: CustomerReference}).then((res:any) =>res.data).then((data: any) => {\r\n if(data.Status === 'SUCCESS') {\r\n setEmail(data.Detail.EmailAddress)\r\n setSms(data.Detail.MobilePhoneNumber)\r\n setPrimaryContactName(data.Detail.PrimaryContactName)\r\n }\r\n })\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n}\r\n\r\nexport const GetCustomersByExcel = async (customers: any[]) => {\r\n let data = {\r\n TahsilatItems: customers\r\n }\r\n try {\r\n axios.post(`${AXIOS_API_URL}DownloadAsExceltahsilatGicvenCustomerData`, data, {\r\n headers: { \r\n 'Content-Disposition': \"attachment; filename=template.xlsx\",\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', 'Tahsilat Müşteri Listesi.xlsx');\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n}\r\n\r\nexport const GetAnaVezneCustomerByExcell = (customerList: any[]) => {\r\n \r\n try {\r\n axios.post(`${AXIOS_API_URL}DownloadDetailTahsilatanavezneAsExcelByGivenData`,{AnavezneExcelItems: customerList}, {\r\n headers: { \r\n 'Content-Disposition': \"attachment; filename=template.xlsx\",\r\n 'Content-Type': 'application/json'\r\n }, \r\n responseType: 'arraybuffer'\r\n })\r\n .then(res => res.data)\r\n .then(data => {\r\n const url = window.URL.createObjectURL(new Blob([data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', 'Ana Vezne Müşteri Listesi.xlsx');\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n}\r\n\r\n\r\nexport const UploadCustomersFromExcell = async (file: any): Promise => {\r\n\r\n var bodyFormData = new FormData();\r\n bodyFormData.append('file', file);\r\n\r\n var responseEntity: any;\r\n await axios.post(`${AXIOS_API_URL}AddCustomerDetailFromExcel`, bodyFormData, { headers: { \"Content-Type\": \"multipart/form-data\" } })\r\n .then(function (response) {\r\n //handle success \r\n console.log(\"ok\", response?.data?.detailResponse);\r\n responseEntity = response?.data;\r\n })\r\n .catch(function (response) {\r\n //handle error\r\n console.log(\"bad\", response);\r\n });\r\n console.log(\"responseEntity =>\", responseEntity);\r\n return responseEntity;\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","export const API_URL = window.Configs.API_URL;\r\nexport const AXIOS_API_URL = window.Configs.AXIOS_API_URL;","import {createSlice} from '@reduxjs/toolkit'\r\n\r\ninterface anavezneModel {\r\n allCustomers: any[]\r\n filteredCustomers: any[]\r\n searchedCustomers: any[]\r\n}\r\n\r\nconst initialState: anavezneModel = {\r\n allCustomers: [],\r\n filteredCustomers: [],\r\n searchedCustomers: [],\r\n}\r\n\r\nconst customersSlice = createSlice({\r\n name: 'customers',\r\n initialState,\r\n reducers: {\r\n setAllCustomers(state, action) {\r\n state.allCustomers = action.payload.Detail\r\n },\r\n setFilteredCustomers(state, action) {\r\n state.filteredCustomers = action.payload\r\n },\r\n setSearchedCustomers(state, action) {\r\n state.searchedCustomers = action.payload\r\n },\r\n sortSearchedCustomers(state, action) {\r\n const {column, sortOrder} = action.payload\r\n\r\n const sortedCustomers = [...state.searchedCustomers] // Yeni bir kopya dizi oluşturun\r\n\r\n sortedCustomers.sort((a: any, b: any) => {\r\n const valueA = a[column]\r\n const valueB = b[column]\r\n\r\n if (valueA === null && valueB === null) {\r\n return 0\r\n }\r\n if (valueA === null) {\r\n return sortOrder === 'asc' ? 1 : -1 // Büyükten küçüğe sıralama\r\n }\r\n if (valueB === null) {\r\n return sortOrder === 'asc' ? -1 : 1 // Büyükten küçüğe sıralama\r\n }\r\n\r\n if (typeof valueA === 'number' && typeof valueB === 'number') {\r\n return sortOrder === 'asc' ? valueA - valueB : valueB - valueA\r\n } else if (typeof valueA === 'string' && typeof valueB === 'string') {\r\n return sortOrder === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA)\r\n } else {\r\n return 0\r\n }\r\n })\r\n\r\n state.searchedCustomers = sortedCustomers // Sıralanmış diziyi state'e atayın\r\n },\r\n },\r\n})\r\n\r\nexport const {setAllCustomers, setFilteredCustomers, setSearchedCustomers, sortSearchedCustomers} =\r\n customersSlice.actions\r\n\r\nexport default customersSlice.reducer\r\n","import axios from 'axios'\r\nimport {AuthModel} from '../models/AuthModel'\r\nimport {UserModel} from '../models/UserModel'\r\n\r\nconst API_URL = process.env.REACT_APP_API_URL || 'api'\r\n\r\nexport const GET_USER_BY_ACCESSTOKEN_URL = `${API_URL}/auth/get-user`\r\nexport const LOGIN_URL = `${API_URL}/auth/login`\r\nexport const REGISTER_URL = `${API_URL}/auth/register`\r\nexport const REQUEST_PASSWORD_URL = `${API_URL}/auth/forgot-password`\r\n\r\n// Server should return AuthModel\r\nexport function login(email: string, password: string) {\r\n return axios.post(LOGIN_URL, {email, password})\r\n}\r\n\r\n// Server should return AuthModel\r\nexport function register(email: string, firstname: string, lastname: string, password: string) {\r\n return axios.post(REGISTER_URL, {\r\n email,\r\n firstname,\r\n lastname,\r\n password,\r\n })\r\n}\r\n\r\n// Server should return object => { result: boolean } (Is Email in DB)\r\nexport function requestPassword(email: string) {\r\n return axios.post<{result: boolean}>(REQUEST_PASSWORD_URL, {email})\r\n}\r\n\r\nexport function getUserByToken() {\r\n // Authorization head should be fulfilled in interceptor.\r\n // Check common redux folder => setupAxios\r\n return axios.get(GET_USER_BY_ACCESSTOKEN_URL)\r\n}\r\n","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\nexport const GET_CUSTOMERS = gql`\r\n query {\r\n customers {\r\n nodes {\r\n customerId\r\n displayName\r\n taxNumber\r\n salesRegionId\r\n }\r\n }\r\n salesRegions {\r\n nodes {\r\n salesRegionId\r\n displayName\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const GET_SALESPERSON_ID = gql`\r\nquery ($salespersonGuid: UUID!) {\r\n salesPeople (where: {guid: {eq: $salespersonGuid}}) {\r\n edges {\r\n node {\r\n salesPersonId\r\n }\r\n }\r\n }\r\n}`\r\n\r\nexport const GET_EMPTY_ACTIVITY = gql`\r\n query ($paramGuid: UUID!) {\r\n createEmptyActivity(activityTypeGuid: $paramGuid) {\r\n activityTypeGuid\r\n notes\r\n planDateTime\r\n planEndDateTime\r\n activityStatements {\r\n titleText\r\n statementCode\r\n statementText\r\n dataType\r\n notes\r\n\r\n jsonValues {\r\n items {\r\n option\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const GET_CUSTOMER_WORKINCUSTOMERID = gql`\r\nquery($guid: UUID!) {\r\n salesPeople(where: {guid: {eq: $guid}}) {\r\n edges {\r\n node {\r\n worksInCustomerId\r\n salesPersonReference\r\n }\r\n }\r\n }\r\n}\r\n`\r\n\r\n\r\nexport const GET_ACTIVITY_INFO= gql`\r\nquery{\r\n activityTypes(where: {guid:{eq:\"2978C75D-D89F-4EE4-8DA4-D82FA90F2605\"}}) {\r\n edges{\r\n node {\r\n activityTypeId\r\n workflow {\r\n startActivityStatusId\r\n }\r\n activityTypeStatements {\r\n statementCode\r\n titleText\r\n statementText\r\n rank\r\n dataType\r\n activityTypeStatementId\r\n format\r\n }\r\n }\r\n }\r\n }\r\n}\r\n`\r\n\r\nexport const CREATE_ACTIVITY_FROM_EMPTY = gql`\r\nmutation ($model: InsertEmptyActivityModelInput) {\r\n createActivityFromEmptyActivity (model: $model) {\r\n response {\r\n status\r\n detail\r\n }\r\n activity {\r\n activityId\r\n updateVersion\r\n guid\r\n activityType {\r\n guid\r\n }\r\n activityStatements {\r\n value\r\n }\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const UPDATE_ACTIVITY_STATUS = gql`\r\nmutation($model: UpdateActivityToNextStatusModelInput) {\r\n updateActivityToNextStatus (model: $model) {\r\n response {\r\n status\r\n detail\r\n }\r\n activity {\r\n activityId\r\n updateVersion\r\n guid\r\n }\r\n }\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\n\r\nexport const GET_LAST_ACTIVITY = gql ` \r\nquery ($paramGuid: UUID!, $customerId\r\n : Int!) {\r\n activities (\r\n first: 1,\r\n order: {activityId: DESC},\r\n where: {\r\n activityType: {\r\n guid: {\r\n eq: $paramGuid\r\n }\r\n },\r\n customerId: {\r\n eq: $customerId\r\n }\r\n \r\n }) {\r\n edges {\r\n node {\r\n planDateTime\r\n activityStatements {\r\n value \r\n }\r\n }\r\n }\r\n }\r\n}\r\n`\r\n\r\nexport const GET_ACTIVITY_HISTORY = gql`\r\nquery ($lastActivityNumber: Int!, $paramGuid: UUID!, $customerId: Int!){\r\n activities (first: $lastActivityNumber , order: { planDateTime: DESC } , \r\n where: { and:[{\r\n activityType: { guid: { eq: $paramGuid } } } , \r\n {customerId: {eq: $customerId} }] }) {\r\n pageInfo {\r\n hasNextPage\r\n endCursor\r\n }\r\n edges {\r\n node {\r\n notes\r\n customerId\r\n activityType {\r\n guid\r\n activityTypeId\r\n }\r\n activityId\r\n activityStatements {\r\n activityStatementId\r\n titleText\r\n statementText\r\n statementCode\r\n value\r\n guid\r\n notes\r\n }\r\n planDateTime\r\n }\r\n }\r\n }\r\n}\r\n`\r\n\r\nexport const GET_ACTIVITIES = gql`\r\n query GetActivities($cursor: String, $salesPersonGuid: UUID) {\r\n activities(after: $cursor, where: {createSalesPerson: {guid: {eq: $salesPersonGuid}}}) {\r\n pageInfo {\r\n endCursor\r\n hasNextPage\r\n }\r\n edges {\r\n node {\r\n createSalesPerson {\r\n name\r\n }\r\n guid\r\n updateVersion\r\n activityId\r\n projectId\r\n planDateTime\r\n planEndDateTime\r\n activityStatusId\r\n customer {\r\n customerId\r\n displayName\r\n guid\r\n taxNumber\r\n customerCategoryId\r\n customerTypeId\r\n customerReference\r\n }\r\n activityStatements {\r\n guid\r\n activityTypeStatementId\r\n activityStatementId\r\n titleText\r\n value\r\n statementText\r\n statementCode\r\n notes\r\n activityDocuments {\r\n guid\r\n activityStatementId\r\n document {\r\n guid\r\n fileName\r\n }\r\n }\r\n }\r\n activityType {\r\n guid\r\n workflow {\r\n workflowId\r\n activityStatusWorkflows {\r\n toActivityStatusId\r\n role\r\n }\r\n }\r\n }\r\n activityStatus {\r\n activityStatusId\r\n guid\r\n displayName\r\n activityStatusWorkflowToActivityStatusesWf {\r\n activityStatusWorkflowId\r\n toActivityStatusId\r\n isDefault\r\n role\r\n }\r\n }\r\n salesPerson {\r\n salesPersonId\r\n name\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const GET_SETTING = gql`\r\n query 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\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: [{guid: {eq: $guid1}}, {guid: {eq: $guid2}}, {guid: {eq: $guid3}}, {guid: {eq: $guid4}}]\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 }\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\n\r\nexport const GET_PRODUCT_DETAIL = gql`\r\n query ($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\n query ($searchString: 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 }\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 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\nexport const SEARCH_PRODUCTTAG = gql`\r\n query ($searchString: String!) {\r\n productTagList(where: {or: [{tagText: {contains: $searchString}}]}) {\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\n query ($searchString: String!) {\r\n productHierarchies(where: {or: [{displayName: {contains: $searchString}}]}) {\r\n edges {\r\n node {\r\n displayName\r\n guid\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(\r\n after: $cursor\r\n 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\nexport const GET_PRODUCTS_BY_TAGTEXT = gql`\r\n query ($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"],"sourceRoot":""}