{"version":3,"sources":["_themeBase/_assets/js/components/util.js","_themeBase/_partials/controls/forms/DatePickerField.js","_themeBase/_partials/controls/forms/Input.js","_themeBase/_partials/controls/forms/Select.js","_themeBase/_partials/controls/forms/HeaderCheckbox.js","_themeBase/_partials/controls/pagination/PaginationLinks.js","_themeBase/_partials/controls/pagination/PaginationToolbar.js","_themeBase/_partials/controls/pagination/Pagination.js","_themeBase/_partials/controls/Card.js","_themeBase/_partials/controls/AnimateLoading.js","_themeBase/_partials/controls/LoadingDialog.js","_themeBase/_partials/controls/Notice.js","_themeBase/_partials/controls/ModalProgressBar.js","_themeBase/_partials/controls/index.js","_themeBase/_partials/widgets/mixed/MixedWidget4.js","_themeBase/_partials/widgets/mixed/MixedWidget6.js","_themeBase/_partials/widgets/lists/ListsWidget14.js","_themeBase/_partials/widgets/index.js","_themeBase/layout/_core/HTMLClassService.js","_themeBase/layout/_core/BaseLayout.js","_themeBase/layout/_core/LayoutConfig.js","_themeBase/layout/components/header-mobile/HeaderMobile.js","_themeBase/layout/components/aside/aside-menu/MenuIcons.js","_themeBase/layout/components/aside/aside-menu/AsideMenuList.js","_themeBase/layout/components/aside/aside-menu/AsideMenu.js","_themeBase/layout/components/extras/dropdowns/UserProfileDropdown.js","_themeBase/layout/components/extras/QuickUserToggler.js","_themeBase/layout/components/brand/Brand.js","_themeBase/layout/components/aside/Aside.js","_themeBase/layout/components/footer/Footer.js","_themeBase/_assets/js/layout/base/aside.js","_themeBase/_assets/js/layout/base/aside-menu.js","_themeBase/_assets/js/layout/base/subheader.js","_themeBase/_assets/js/layout/base/footer.js","_themeBase/_assets/js/layout/base/content.js","_themeBase/_assets/js/layout/extended/scrolltop.js","_themeBase/_assets/js/layout/base/sticky-card.js","_themeBase/_assets/js/layout/base/stretched-card.js","_themeBase/_assets/js/layout/extended/quick-panel.js","_themeBase/_assets/js/layout/extended/quick-user.js","_themeBase/_assets/js/layout/base/header-mobile.js","_themeBase/_assets/js/layout/base/aside-toggle.js","_themeBase/_assets/js/layout/extended/quick-search.js","_themeBase/_assets/js/layout/extended/quick-notifications.js","_themeBase/_assets/js/layout/extended/quick-actions.js","_themeBase/layout/components/LayoutInit.js","_themeBase/layout/components/subheader/components/QuickActions.js","_themeBase/layout/components/subheader/components/BreadCrumbs.js","_themeBase/layout/_core/BaseSubheader.js","_themeBase/layout/components/subheader/SubHeader.js","_themeBase/layout/components/extras/ScrollTop.js","_themeBase/layout/components/Layout.js","_themeBase/layout/components/content/Content.js","_themeBase/layout/components/content/ContentRoute.js","_themeBase/layout/_core/BaseSplashScreen.js","_themeBase/layout/_core/MaterialThemeProvider.js","_themeBase/layout/index.js","app/modules/Auth/_redux/authRedux.js","app/utils/WeekDays.js","_themeBase/i18n/Basei18n.js","_themeBase/_partials/controls/forms/FieldFeedbackLabel.js","app/modules/Auth/_redux/authCrud.js","_themeBase/_partials/dropdowns/DropdownMenu1.js","_themeBase/_partials/dropdowns/DropdownMenu2.js","_themeBase/_partials/dropdowns/DropdownMenu3.js","_themeBase/_partials/dropdowns/DropdownMenu4.js","_themeBase/_partials/dropdowns/DropdownItemToggler.js","_themeBase/_partials/dropdowns/index.js","_themeBase/_helpers/ToastHelpers.js","_themeBase/_helpers/AssetsHelpers.js","_themeBase/_helpers/RouterHelpers.js","_themeBase/_helpers/TablePaginationHelpers.js","_themeBase/_helpers/TableRowSelectionHelpers.js","_themeBase/_helpers/TableSortingHelpers.js","_themeBase/_helpers/index.js","_themeBase/_assets/js/components/cookie.js","app/services/PublicCrudService.js","app/actions/generalActions.js","_themeBase/_helpers/DateFormaterHelpers.js","_themeBase/layout/components/extras/dropdowns/LanguageSelectorDropdown.js","app/SetLayout.jsx","_themeBase/_partials/dropdowns/DropdownCustomToggler.js","_themeBase/layout/components/extras/offcanvas/QuickUser.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/ConfirmColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/StatusColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/ConnectionColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/EditorColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/GroupSettingActionsColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/RoomReservActionsColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/EmsTypeColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/ActionsColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/ViewColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/TranslateColumn.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/translateByMessageIdParam.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/DateColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/CompletedColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/UserTrafficColumnFormatter.js","_themeBase/layout/components/basePage/pages/objects-table/column-formatters/index.js","_themeBase/_assets/js/components/menu.js","_themeBase/_assets/js/components/scrolltop.js","_themeBase/_assets/js/components/card.js","_themeBase/_assets/js/components/toggle.js","_themeBase/layout/components/basePage/pages/ObjectsUIHelpers.js","app/reduxSlices/objectsSlice.js","app/reduxSlices/BaseInfo/calendarSlice.js","redux/baseInfoReducer.js","redux/shiftReducer.js","redux/sportReducer.js","redux/dormReducer.js","redux/rootReducer.js","redux/store.js","_themeBase/layout/components/basePage/multiFormStepper/MultiStepperFormUIContext.js","_themeBase/layout/components/basePage/multiFormStepper/MultiStepperForm.js","_themeBase/_partials/dashboards/DormitoryDashboard.js","_themeBase/_partials/dashboards/CulinanDashboard.js","_themeBase/_partials/dashboards/Dashboard.js","app/pages/DashboardPage.js","app/BasePage.js","app/modules/Auth/pages/AuthPage.js","app/modules/Auth/pages/Logout.js","app/modules/ErrorsExamples/ErrorPage1.js","app/modules/ErrorsExamples/ErrorPage2.js","app/modules/ErrorsExamples/ErrorPage3.js","app/modules/ErrorsExamples/ErrorPage4.js","app/modules/ErrorsExamples/ErrorPage5.js","app/modules/ErrorsExamples/ErrorPage6.js","app/modules/ErrorsExamples/ErrorsPage.js","app/Routes.js","redux/setupAxios.js","app/App.js","index.js","_themeBase/_assets/js/components/offcanvas.js","_themeBase/i18n/I18nProvider.js","_themeBase/i18n/index.js"],"names":["Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","closest","s","ancestor","this","document","documentElement","contains","parentElement","elem","i","length","window","remove","parentNode","removeChild","lastTime","vendors","x","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","Math","max","id","setTimeout","clearTimeout","Document","DocumentFragment","forEach","item","hasOwnProperty","Object","defineProperty","configurable","enumerable","writable","value","argArr","Array","slice","call","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","undefined","getAttributeNames","attributes","result","name","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","KTUtil","resizeHandlers","breakpoints","sm","md","lg","xl","_windowResizeHandler","addEventListener","throttle","timer","_runResizeHandlers","init","settings","addResizeHandler","push","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","val","params","location","search","substring","split","unescape","isMobileDevice","test","getViewPort","width","getBreakpoint","navigator","userAgent","match","isDesktopDevice","e","a","body","height","isInResponsiveRange","mode","breakpoint","isBreakpointUp","isBreakpointDown","getUniqueID","prefix","floor","random","isset","obj","keys","stone","indexOf","Error","shift","getHighestZindex","el","position","css","parseInt","isNaN","hasFixedPositionedParent","sleep","milliseconds","start","getRandomInt","min","isAngularVersion","Zone","deepExtend","out","key","extend","getById","getElementById","getByTag","query","getElementsByTagName","getByTagName","getByClass","getElementsByClassName","getBody","hasClasses","classes","classesArr","hasClass","trim","className","classList","RegExp","addClass","classNames","add","removeClass","replace","triggerCustomEvent","eventName","data","event","CustomEvent","detail","initCustomEvent","triggerEvent","node","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","index","c","children","string","eventTriggered","currentTarget","dataset","triggered","find","parent","querySelector","findAll","querySelectorAll","insertAfter","referenceNode","nextSibling","parents","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","log","childNodes","l","child","p","f","tagName","set","customDataTag","get","has","outerWidth","margin","parseFloat","offsetWidth","offset","rect","win","getClientRects","getBoundingClientRect","defaultView","top","pageYOffset","left","pageXOffset","outerHeight","style","withMargic","offsetHeight","getComputedStyle","marginTop","marginBottom","visible","attr","getAttribute","setAttribute","hasAttr","removeAttr","removeAttribute","animate","from","to","duration","update","easing","done","easings","linear","t","b","d","rAF","change","performance","now","loop","timestamp","time","actualCss","prop","cache","HTMLElement","cssText","actualHeight","actualWidth","getScroll","element","method","self","browserSupportsBoxModel","styleProp","toLowerCase","getPropertyValue","currentStyle","str","letter","toUpperCase","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","speed","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","display","overflow","slideUp","slideDown","show","hide","addEvent","type","handler","one","removeEvent","removeEventListener","on","eventId","targets","target","j","off","callee","hash","charCodeAt","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","scrollTo","targetPos","scrollPos","scrollTop","isArray","ready","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","rv","edge","isRTL","html","scrollInit","options","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","handleWindowResize","ps","attrs","attrName","includes","optionName","filterBoolean","Function","mobileHeight","mobileNativeScroll","disableForMobile","desktopNativeScroll","windowScroll","PerfectScrollbar","uid","cookie","KTCookie","getCookie","rememberPosition","pos","setCookie","console","error","resetHeightOnDestroy","destroy","scrollDestroy","scrollUpdate","scrollUpdateAll","scrollers","len","resetAll","setProperty","setHTML","innerHTML","getHTML","getDocumentHeight","scrollHeight","clientHeight","getScrollTop","scrollingElement","colorDarken","color","amount","subtractLight","cc","toString","colorLighten","addLight","func","delay","debounce","btnWait","cls","message","disable","caption","btnRelease","isOffscreen","direction","windowWidth","windowHeight","module","exports","KTAppSettings","onload","getFieldCSSClasses","touched","errors","join","DatePickerField","props","useFormikContext","setFieldValue","field","locale","useLang","useState","selectedDay","setSelectedDay","onSelected","setOnSelected","label","zIndex","rowIdx","onClick","isRtl","minimumDate","year","month","day","onChange","newValue","moment","format","setDatepickerValue","shouldHighlightWeekends","renderInput","ref","convertDateStringToLocal","readOnly","calendarClassName","Input","form","withFeedbackLabel","customFeedbackLabel","FieldFeedbackLabel","Select","HeaderCheckbox","checked","PaginationLinks","paginationProps","totalSize","sizePerPage","page","paginationSize","pagesCount","getPagesCount","pages","getPages","disabledClass","onPageChange","handlePrevPage","map","pageNum","handleNextPage","PaginationToolbar","intl","useIntl","isLoading","sizePerPageList","onSizePerPageChange","text","formatMessage","disabled","newSize","option","isSelect","Pagination","CardHeaderTitle","forwardRef","clsx","CardHeaderToolbar","CardHeader","icon","title","toolbar","sticky","labelRef","setTop","setWindowHeight","useEffect","handleResize","innerWidth","headerElement","subheaderElement","headerMobileElement","nextMarginTop","backgroundColor","isFragment","CardBody","fit","fluid","Card","fluidHeight","AnimateLoading","state","routeChanged","nextProps","pathname","scrollToTop","scrollToTopBtn","click","animateTimeout","setState","stopAnimate","animateInterval","stopAnimateTimeout","ProgressBar","variant","React","Component","withRouter","initCssClasses","LoadingDialog","cssClasses","setCssClasses","timeoutId","svg","iconRef","textRef","iconWrapperRef","role","src","toAbsoluteUrl","ModalProgressBar","animated","MixedWidget4","chartColor","customColor","bgColor","iconUrl","chartId","totalCount","currentState","labels","maxValue","showAll","uiService","useHtmlClassService","layoutProps","useMemo","colorsGrayGray500","objectPath","config","colorsGrayGray200","colorsThemeBaseColor","colorsThemeLightColor","fontFamily","series","chart","sparkline","enabled","plotOptions","bar","horizontal","columnWidth","endingShape","legend","dataLabels","stroke","colors","xaxis","categories","axisBorder","axisTicks","fontSize","yaxis","fill","opacity","states","normal","filter","hover","active","allowMultipleDataPointsSelection","tooltip","y","formatter","marker","grid","borderColor","strokeDashArray","lines","padding","right","getChartOption","ApexCharts","render","data-color","barColors","MixedWidget6","fullData","dataActive","dataPresent","dataAbsent","dataJustify","totalAbsent","dataNotActive","dataMore3Present","dataMore3Absent","offsetX","offsetY","tools","download","selection","zoom","zoomin","zoomout","pan","reset","customIcons","export","csv","filename","columnDelimiter","headerCategory","headerValue","dateFormatter","toDateString","png","autoSelected","columns","dataField","rowStyle","wrapperClasses","bootstrap4","bordered","remote","keyField","ListsWidget14","Dropdown","alignRight","Toggle","as","DropdownCustomToggler","Menu","backgroundImage","href","HtmlClassService","layoutConfig","preInit","header","header_container","header_mobile","header_menu","aside","aside_menu","subheader","subheader_container","content","content_container","footer_container","initLoader","initLayout","initHeader","initSubheader","initContent","initAside","initFooter","updateLayoutConfig","assign","fixed","path","logo","getLogo","selfBodyBackgroundImage","backgroundImageUrl","_selfBodyClass","cssClass","subheaderStyle","subheaderClass","asideSelfDisplay","asideMenuDropdown","asideSubmenuDHoverTimeout","LAYOUT_CONFIG_KEY","process","REACT_APP_LAYOUT_CONFIG_KEY","getConfig","ls","localStorage","getItem","JSON","parse","er","demo","js","xxl","theme","base","white","primary","secondary","success","info","warning","danger","light","dark","inverse","gray","gray100","gray200","gray300","gray400","gray500","gray600","gray700","gray800","gray900","layout","loader","mobile","displayDesc","displayDaterangepicker","breadcrumb","clear","minimize","toggle","default","menu","dropdown","scroll","submenu","accordion","footer","extras","offcanvas","notifications","cart","chat","user","languages","scrolltop","HtmlClassServiceContext","createContext","useContext","Consumer","BaseLayoutProvider","lc","hcs","service","setConfig","Provider","HeaderMobile","asideDisplay","headerMobileCssClasses","getClasses","headerMobileAttributes","getAttributes","alt","MenuIcons","iconKey","startsWith","AsideMenuList","menuList","useLocation","ulClasses","parentMenuId","hasSubMenu","url","getTypeMenu","MenuItem","hasSubmenu","checkIsActive","getMenuItemActive","aria-haspopup","SubMenuItem","SectionMenuItem","SubMenu","data-menu-toggle","q","AsideMenu","isActive","asideMenuAttr","asideClassesFromConfig","data-menu-vertical","UserProfileDropdown","useSelector","auth","drop","DropdownItemToggler","fullname","QuickUserToggler","OverlayTrigger","placement","overlay","Tooltip","data-placement","data-container","data-boundary","Brand","Aside","asideSecondaryDisplay","asideSelfMinimizeToggle","extrasSearchDisplay","extrasNotificationsDisplay","extrasQuickActionsDisplay","extrasQuickPanelDisplay","extrasLanguagesDisplay","extrasUserDisplay","shallowEqual","tabsTrget","history","useHistory","activeTab","setActiveTab","isTabMenu","isMenu","tab","data-toggle","data-target","asideWorkspace","handleTabChange","tabId","sort","orderInTab","Footer","getFullYear","footerLayout","footerClasses","footerContainerClasses","KTLayoutAside","_element","_offcanvasObject","offcanvasClass","KTOffcanvas","baseClass","closeBy","toggleBy","_init","asideNav","asideBrand","asideFooter","_initNav","asideTabs","asideSecondary","$","_initWorkspace","getElement","getOffcanvas","KTLayoutAsideMenu","_menuObject","KTMenu","desktop","tablet","expandAll","getMenu","pauseDropdownHover","closeMobileOffcanvas","KTLayoutSubheader","isFixed","getHeight","_getHeight","KTLayoutFooter","KTLayoutContent","KTLayoutScrolltop","KTScrolltop","KTLayoutStickyCard","_object","KTLayoutHeader","KTCard","isFixedForMobile","getHeightForMobile","card","cardWidth","initSticky","updateSticky","KTLayoutStretchedCard","cardBody","cardHeader","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","KTLayoutQuickUser","KTLayoutHeaderMobile","getHeader","KTLayoutAsideToggle","_body","_toggleObject","KTToggle","targetState","toggleState","KTLayoutHeaderMenu","getState","getToggle","onToggle","KTLayoutQuickSearch","results","KTLayoutQuickNotifications","KTLayoutQuickActions","LayoutInit","useLayoutEffect","preventDefault","BreadCrumbs","items","getBreadcrumbsAndTitle","menuId","pathName","breadcrumbs","activeLinks","link","titleSpans","titleSpan","breadCrumbs","getTitle","SubheaderContext","useSubheader","BaseSubheaderProvider","setTitle","setBreadcrumbs","SubHeader","subheaderFixed","subheaderMobileToggle","subheaderCssClasses","subheaderContainerCssClasses","ScrollTop","Layout","selfLayout","subheaderDisplay","contentCssClasses","contentContainerClasses","contentExtended","QuickUser","Content","useRouteMatch","cssClassesState","setCssClassesState","fullClasses","startAnimation","timeOutId","ContentRoute","component","routeProps","createElement","BaseSplashScreenContext","BaseSplashScreenProvider","count","setCount","timeout","splashScreen","LayoutSplashScreen","prev","createMuiTheme","typography","palette","main","MuiButtonBase","disableRipple","MuiPopover","elevation","MaterialThemeProvider","ThemeProvider","saga","expireReducer","require","actionTypes","initialAuthState","authToken","refreshToken","reducer","persistReducer","storage","whitelist","transforms","persistedAtKey","expireSeconds","expiredState","autoExpire","action","payload","actions","login","tokenRefreshed","register","logout","requestUser","fulfillUser","takeLatest","loginSaga","put","registerSaga","userRequested","sessionStorage","authUser","authUserMenu","WeekDays","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","initialState","selectedLang","setLanguage","lang","setItem","stringify","reload","I18nContext","BaseI18nProvider","inputLabel","selectLabel","baseApiUrl","LOGIN_URL","sendOTP","username","password","axios","post","otp","getInitialInfo","changePassword","oldPassword","newPassword","getNewToken","requestPassword","email","DropdownMenu1","DropdownMenu2","DropdownMenu3","DropdownMenu4","data-offset","displayName","ShowToast","clientMessage","ToastType","toastPosition","toast","autoClose","freeze","current","getCurrentUrl","ceil","shiftCount","getHandlerTableChange","setQueryParams","setEditableList","sortField","sortOrder","cellEdit","rowId","pageNumber","orderClause","pageSize","takeCount","skipCount","getHandlerReportTableChange","setChangeFilter","PleaseWaitMessage","entities","NoRecordsFoundMessage","customersList","SelectionCheckbox","isSelected","groupingItemOnSelect","ids","setIds","customerId","nonSelectableIds","some","newIds","groupingAllOnSelect","allIds","getSelectRow","hideSelected","nonSelectable","nonSelectableClasses","clickToSelect","hideSelectAll","hideSelectColumn","selectionHeaderRenderer","selectionRenderer","rowIndex","sortCaret","order","column","decodeURIComponent","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","deleteCookie","createObjects","API_URL","objects","functionName","findObjects","queryParams","queryMethodName","getSpReports","funcName","pay","object","updateObjects","idList","updateValues","deleteObject","objectId","deleteObjects","hardDeleteObject","delete","hardDeleteObjects","fetchObjects","sliceName","dispatch","objectsSlice","startCall","callType","callTypes","list","objectsFetched","requestFromServer","then","response","catch","showError","fetchSelectedObjectsLocal","setSelectedObjects","fetchSpReports","catchError","fetchSpReportsOnline","fetchObjectsByParentId","parentId","parentName","whereClause","whereClauseParameters","fetchSelectObjects","queryFunctionName","temp","dormId","blockId","groupId","collageId","provinceId","deviceGroupId","request","columnFormatters","responseText","fetchObjectByParentId","objectFetched","objectForEdit","fetchObject","methodName","salonId","teacherId","startTime","endTime","isSunday","Boolean","weekDay","Sunday","isMonday","Monday","isTuesday","Tuesday","isWednesday","Wednesday","isThursday","Thursday","isFriday","Friday","isSaturday","Saturday","updateObjectLocal","softDelete","objectDeleted","createObject","objectForCreation","objectCreated","uploadCSVObjects","objectsForCreation","saveCount","errorCount","showErrors","objectsCreated","updateObject","objectUpdated","uploadImage","imageUrl","fileDesc","formFile","passData","FormData","append","downloadImage","imageFileDescriptionId","imageFile","objectsUpdated","updateObjectsAllowed","allowed","updateObjectsFullAccess","isFullAccess","objectsFullAccessUpdated","updateObjectsHoliday","holiday","objectsHolidayUpdated","updateObjectsStatus","isDeleted","objectsStatusUpdated","objectsDeleted","downloadExcelFile","responseType","URL","createObjectURL","Blob","fileName","fileType","nowDateTime","nowTime","toLocaleTimeString","hour12","hour","minute","nowDate","toLocaleDateString","generateFileName","redirextForm","input","submit","payFree","Message","status","dateString","token","fromCharCode","LanguageSelectorDropdown","activeLanguages","flag","currentLanguage","language","userData","values","COUNT","roleTitle","firstName","lastName","groupTitle","subGroupTitle","idNumber","formatMather","lastLoginDate","ConfirmColumnFormatter","cellContent","row","ObjectConfirmCssClasses","isConfirm","ObjectConfirmTitles","ConfirmRoomReservationColumnFormatter","isPayed","isExpired","StatusColumnFormatter","ObjectStatusCssClasses","ObjectActiveTitles","ObjectDeletedTitles","ObjectStatusTitles","setRow","ObjectSCssClasses","ObjectIcons","ConnectionColumnFormatter","isConnected","EditorColumnFormatter","ReactHtmlParser","GroupSettingActionsColumnFormatter","openAttendenceSettingPage","accessAttendence","openCullinanSettingPage","accessCullinan","openDormSettingPage","accessDorm","openSportSettingPage","accessSport","openBankAccountAccessPage","accessBankAccountAccess","maxHeight","RoomReservActionsColumnFormatter","openReservRoomDialog","openStudentsRoomDialog","openRoomFacilityDialog","EmsTypeColumnFormatter","ObjectCssClasses","ObjectTitles","ActionsColumnFormatter","openEditObjectPage","haveEditAction","openDeleteObjectDialog","openRefreshObjectDialog","haveDeleteAction","openConfirmObjectPage","confirmAction","openPaymentDialog","payAction","ViewColumnFormatter","translateByMessageId","msgId","translateByMessageIdParam","param","msgParam","DateColumnFormatter","DateTimeColumnFormatter","CompletedColumnFormatter","completed","UserTrafficColumnFormatter","getColor","trafficTypeCode","trafficTypeTitle","UserTrafficOColumnFormatter","originalTrafficTypeCode","originalTrafficTypeTitle","code","the","getSubmenuMode","hideDropdowns","elementId","defaultOptions","slideSpeed","autoScroll","autoScrollSpeed","Plugin","construct","build","events","eventHandlers","pauseDropdownHoverTime","resetSubmenuProps","handleSubmenuAccordion","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","submenus","hasAttribute","resumeDropdownHover","showSubmenuDropdown","hideSubmenuDropdown","eventTrigger","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","subnav","closables","el_","submenu_","scrollToItem","classAlso","cnt","createSubmenuDropdownClickDropoff","dropoff","stopPropagation","date","resetActiveItem","i_","len_","setActiveItem","getBreadcrumbs","submenuLink","reverse","getPageTitle","fired","setDefaults","scrollReInit","hideDropdown","apply","handle","args","toggleSpeed","releseOnReverse","onScrollSticky","st","resetSticky","setContent","getSelf","expand","collapse","destroySticky","targetToggleMode","toggleOn","toggleOff","ObjectGenderTitles","ObjectEmsTitles","ObjectConditionCssClasses","ObjectConditionTitles","defaultSorted","initialObjectsState","listLoading","actionsLoading","lastError","lastMsg","selectedIds","createSlice","reducers","allObjectsFetched","entity","findIndex","objectsAllowedUpdated","objectsSelectedUpdated","baseInfoReducer","combineReducers","dormDashboard","users","profileFileDescription","golestanUsers","detailUsers","univercities","dorms","blocks","dormBlocks","rooms","blockRooms","collages","workUnit","fields","groups","subGroups","devices","deviceTypes","deviceGroups","terms","years","semesters","grades","accounts","banks","calendars","roles","menus","tabMenus","permissions","groupPermissions","menuPermissions","tabPermissions","rolePermissions","workUnits","workUnitPermissions","blogs","bankAccountSubGroups","provinces","towns","logs","emsSettings","shiftReducer","workTimes","shifts","shiftCategories","shiftPatterns","attSettingSubGroups","missions","myMissions","trafficTypes","userTrafficTypes","missionTrafficTypes","userTraffics","myUserTraffics","trafficsReport","myTrafficsReport","sportReducer","salon","sport","closet","contract","sans_category","sans_time","sans_time_selectedSport","sans_time_selectedWeekDay","subGroupSansPermissions","subGroupDeviceSportPermissions","sportSubGroupPriceSetting","sport_payment","bankAccountSalons","dormReducer","facility","roomFacility","roomFacility_selectedFacility","subGroupDeviceSDormPermissions","dormTrafficsReport","myDormTrafficsReport","dormitoryTraffics","myDormitoryTraffics","bankAccountDorms","reservationTimeSettings","reservationTimeSubGroup","reservationTimeSubGroup_selectedSubGroups","dormTerms","dormTermRooms","dormTermRooms_selectedRooms","roomPricings","roomReservations","dormManageReservations","dormMyReservations","roomStudents","roomStatus","dormPersonsReport","roomReservationsReport","rootSaga","rootReducer","baseInfo","dorm","all","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","store","configureStore","devTools","enhancers","reduxBatch","persistor","persistStore","run","makeStyles","root","button","marginRight","spacing","instructions","DormitoryDashboard","dormTitles","setDormTitles","allData","setAllData","usersActiveCount","setUsersActiveCount","totalActiveCount","setTotalActiveCount","usersPresentCount","setUsersPresentCount","totalPresentCount","setTotalPresentCount","usersAbsentCount","setUsersAbsentCount","totalAbsentCount","setTotalAbsentCount","usersAbsentjustify","setUsersAbsentjustify","totalAbsentjustify","setTotalAbsentjustify","usersNotTrafficToday","setUsersNotTrafficToday","totalNotTrafficToday","setTotalNotTrafficToday","usersPresentMore3Days","setUsersPresentMore3Days","totalPresentMore3Days","setTotalPresentMore3Days","usersAbsentmore3Days","setUsersAbsentmore3Days","totalAbsentmore3Days","setTotalAbsentmore3Days","useDispatch","userActive","userPresent","userAbsent","userAbsentJustify","userNotTrafficToday","userPresentMore3Day","userAbsentMore3Day","dormTitle","symbolShape","CulinanDashboard","Dashboard","DashboardPage","DormBasePage","lazy","CollageBasePage","GroupBasePage","DevicePage","TermBasePage","UniInfoPage","RolePage","GradePage","AccountPage","UsersPage","CalendarBasePage","WorkUnitPage","BlogPage","LogPage","EmsSettingPage","ShiftBasePage","DailyMissionPage","UserTrafficPage","TrafficReportBasePage","MyTrafficPage","MyDailyMissionPage","MyTrafficReportBasePage","SalonPage","SportPage","ClosetPage","ContractPage","SansCategoryPage","PaymentPage","PaymentResultPage","DormTrafficReportPage","MyDormTrafficReportPage","DormitoryTrafficPage","MyDormitoryTrafficPage","ReservationTimeSettingPage","DormTermPage","RoomPricingPage","RoomReservationPage","ManageRoomReservationPage","MyRoomReservationPage","RoomReservationReportPage","DormPersonReportPage","RoomStatusPage","BasePage","fallback","exact","Login","Registration","ForgotPassword","ChangePassword","AuthPage","setActiveLanguages","blogList","class","Accordion","defaultActiveKey","Header","eventKey","Collapse","Body","Logout","hasAuthToken","connect","ErrorPage1","ErrorPage2","ErrorPage3","ErrorPage4","ErrorPage5","ErrorPage6","ErrorsPage","Routes","isAuthorized","App","basename","linkGlobalStyle","divBody","loading","Suspense","hideProgressBar","newestOnTop","closeOnClick","rtl","pauseOnFocusLoss","draggable","pauseOnHover","bodyClassName","progressClassName","interceptors","use","headers","Authorization","tempToken","accessToken","err","Promise","reject","res","authReducer","ReactDOM","attrCustom","classBase","classShown","classOverlay","isShown","toggleClass","classCustom","allMessages","ar","arMessages","en","CommonEn","BaseInfoEn","AttendanceEn","SportEn","DormEn","fa","CommonFa","BaseInfoFa","AttendanceFa","SportFa","DormFa","I18nProvider","messages"],"mappings":"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","file":"static/js/main.4ebaa50c.chunk.js","sourcesContent":["/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\n\r\nimport { KTCookie } from \"./cookie.js\";\r\n\r\n/**\r\n * @class KTUtil base utilize class that privides helper functions\r\n */\r\n\r\n// Polyfills\r\n/**\r\n * Element.matches() polyfill (simple version)\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\r\n */\r\nif (!Element.prototype.matches) {\r\n\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\n/**\r\n * Element.closest() polyfill\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\r\n */\r\nif (!Element.prototype.closest) {\r\n\tif (!Element.prototype.matches) {\r\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n\t}\r\n\tElement.prototype.closest = function (s) {\r\n\t\tvar el = this;\r\n\t\tvar ancestor = this;\r\n\t\tif (!document.documentElement.contains(el)) return null;\r\n\t\tdo {\r\n\t\t\tif (ancestor.matches(s)) return ancestor;\r\n\t\t\tancestor = ancestor.parentElement;\r\n\t\t} while (ancestor !== null);\r\n\t\treturn null;\r\n\t};\r\n}\r\n\r\n/**\r\n * ChildNode.remove() polyfill\r\n * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/\r\n * @author Chris Ferdinandi\r\n * @license MIT\r\n */\r\n(function (elem) {\r\n\tfor (var i = 0; i < elem.length; i++) {\r\n\t\tif (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue;\r\n\t\twindow[elem[i]].prototype.remove = function () {\r\n\t\t\tthis.parentNode.removeChild(this);\r\n\t\t};\r\n\t}\r\n})(['Element', 'CharacterData', 'DocumentType']);\r\n\r\n\r\n//\r\n// requestAnimationFrame polyfill by Erik Möller.\r\n// With fixes from Paul Irish and Tino Zijdel\r\n//\r\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\r\n//\r\n// MIT license\r\n//\r\n(function() {\r\n var lastTime = 0;\r\n var vendors = ['webkit', 'moz'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame =\r\n window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function(callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function() {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md\r\n(function(arr) {\r\n arr.forEach(function(item) {\r\n if (item.hasOwnProperty('prepend')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'prepend', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function prepend() {\r\n var argArr = Array.prototype.slice.call(arguments),\r\n docFrag = document.createDocumentFragment();\r\n\r\n argArr.forEach(function(argItem) {\r\n var isNode = argItem instanceof Node;\r\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n });\r\n\r\n this.insertBefore(docFrag, this.firstChild);\r\n }\r\n });\r\n });\r\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n\r\n// getAttributeNames\r\nif (Element.prototype.getAttributeNames == undefined) {\r\n Element.prototype.getAttributeNames = function () {\r\n var attributes = this.attributes;\r\n var length = attributes.length;\r\n var result = new Array(length);\r\n for (var i = 0; i < length; i++) {\r\n result[i] = attributes[i].name;\r\n }\r\n return result;\r\n };\r\n}\r\n\r\n// Global variables\r\nwindow.KTUtilElementDataStore = {};\r\nwindow.KTUtilElementDataStoreID = 0;\r\nwindow.KTUtilDelegatedEventHandlers = {};\r\n\r\nexport var KTUtil = function() {\r\n var resizeHandlers = [];\r\n\r\n /** @type {object} breakpoints The device width breakpoints **/\r\n var breakpoints = {\r\n sm: 544, // Small screen / phone\r\n md: 768, // Medium screen / tablet\r\n lg: 992, // Large screen / desktop\r\n xl: 1200 // Extra large screen / wide desktop\r\n };\r\n\r\n /**\r\n * Handle window resize event with some\r\n * delay to attach event handlers upon resize complete\r\n */\r\n var _windowResizeHandler = function() {\r\n var _runResizeHandlers = function() {\r\n // reinitialize other subscribed elements\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n var each = resizeHandlers[i];\r\n each.call();\r\n }\r\n };\r\n\r\n var timer;\r\n\r\n window.addEventListener('resize', function() {\r\n KTUtil.throttle(timer, function() {\r\n _runResizeHandlers();\r\n }, 200);\r\n });\r\n };\r\n\r\n return {\r\n /**\r\n * Class main initializer.\r\n * @param {object} settings.\r\n * @returns null\r\n */\r\n //main function to initiate the theme\r\n init: function(settings) {\r\n if (settings && settings.breakpoints) {\r\n breakpoints = settings.breakpoints;\r\n }\r\n\r\n _windowResizeHandler();\r\n },\r\n\r\n /**\r\n * Adds window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n addResizeHandler: function(callback) {\r\n resizeHandlers.push(callback);\r\n },\r\n\r\n /**\r\n * Removes window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n removeResizeHandler: function(callback) {\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n if (callback === resizeHandlers[i]) {\r\n delete resizeHandlers[i];\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Trigger window resize handlers.\r\n */\r\n runResizeHandlers: function() {\r\n _runResizeHandlers();\r\n },\r\n\r\n resize: function() {\r\n if (typeof(Event) === 'function') {\r\n // modern browsers\r\n window.dispatchEvent(new Event('resize'));\r\n } else {\r\n // for IE and other old browsers\r\n // causes deprecation warning on modern browsers\r\n var evt = window.document.createEvent('UIEvents');\r\n evt.initUIEvent('resize', true, false, window, 0);\r\n window.dispatchEvent(evt);\r\n }\r\n },\r\n\r\n /**\r\n * Get GET parameter value from URL.\r\n * @param {string} paramName Parameter name.\r\n * @returns {string}\r\n */\r\n getURLParam: function(paramName) {\r\n var searchString = window.location.search.substring(1),\r\n i, val, params = searchString.split(\"&\");\r\n\r\n for (i = 0; i < params.length; i++) {\r\n val = params[i].split(\"=\");\r\n if (val[0] == paramName) {\r\n return unescape(val[1]);\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether current device is mobile touch.\r\n * @returns {boolean}\r\n */\r\n isMobileDevice: function() {\r\n var test = (this.getViewPort().width < this.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\n /**\r\n * Checks whether current device is desktop.\r\n * @returns {boolean}\r\n */\r\n isDesktopDevice: function() {\r\n return KTUtil.isMobileDevice() ? false : true;\r\n },\r\n\r\n /**\r\n * Gets browser window viewport size. Ref:\r\n * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\r\n * @returns {object}\r\n */\r\n getViewPort: function() {\r\n var e = window,\r\n a = 'inner';\r\n if (!('innerWidth' in window)) {\r\n a = 'client';\r\n e = document.documentElement || document.body;\r\n }\r\n\r\n return {\r\n width: e[a + 'Width'],\r\n height: e[a + 'Height']\r\n };\r\n },\r\n\r\n /**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isInResponsiveRange: function(mode) {\r\n var breakpoint = this.getViewPort().width;\r\n\r\n if (mode == 'general') {\r\n return true;\r\n } else if (mode == 'desktop' && breakpoint >= (this.getBreakpoint('lg') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet' && (breakpoint >= (this.getBreakpoint('md') + 1) && breakpoint < this.getBreakpoint('lg'))) {\r\n return true;\r\n } else if (mode == 'mobile' && breakpoint <= this.getBreakpoint('md')) {\r\n return true;\r\n } else if (mode == 'desktop-and-tablet' && breakpoint >= (this.getBreakpoint('md') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet-and-mobile' && breakpoint <= this.getBreakpoint('lg')) {\r\n return true;\r\n } else if (mode == 'minimal-desktop-and-below' && breakpoint <= this.getBreakpoint('xl')) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n\t\t/**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isBreakpointUp: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width >= breakpoint);\r\n },\r\n\r\n\t\tisBreakpointDown: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width < breakpoint);\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\n getUniqueID: function(prefix) {\r\n return prefix + Math.floor(Math.random() * (new Date()).getTime());\r\n },\r\n\r\n /**\r\n * Gets window width for give breakpoint mode.\r\n * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm)\r\n * @returns {number}\r\n */\r\n getBreakpoint: function(mode) {\r\n return breakpoints[mode];\r\n },\r\n\r\n /**\r\n * Checks whether object has property matchs given key path.\r\n * @param {object} obj Object contains values paired with given key path\r\n * @param {string} keys Keys path seperated with dots\r\n * @returns {object}\r\n */\r\n isset: function(obj, keys) {\r\n var stone;\r\n\r\n keys = keys || '';\r\n\r\n if (keys.indexOf('[') !== -1) {\r\n throw new Error('Unsupported object path notation.');\r\n }\r\n\r\n keys = keys.split('.');\r\n\r\n do {\r\n if (obj === undefined) {\r\n return false;\r\n }\r\n\r\n stone = keys.shift();\r\n\r\n if (!obj.hasOwnProperty(stone)) {\r\n return false;\r\n }\r\n\r\n obj = obj[stone];\r\n\r\n } while (keys.length);\r\n\r\n return true;\r\n },\r\n\r\n /**\r\n * Gets highest z-index of the given element parents\r\n * @param {object} el jQuery element object\r\n * @returns {number}\r\n */\r\n getHighestZindex: function(el) {\r\n var position, value;\r\n\r\n while (el && el !== 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 position = KTUtil.css(el, 'position');\r\n\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 value = parseInt(KTUtil.css(el, 'z-index'));\r\n\r\n if (!isNaN(value) && value !== 0) {\r\n return value;\r\n }\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether the element has any parent with fixed positionfreg\r\n * @param {object} el jQuery element object\r\n * @returns {boolean}\r\n */\r\n hasFixedPositionedParent: function(el) {\r\n var position;\r\n\r\n while (el && el !== document) {\r\n position = KTUtil.css(el, 'position');\r\n\r\n if (position === \"fixed\") {\r\n return true;\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n /**\r\n * Simulates delay\r\n */\r\n sleep: function(milliseconds) {\r\n var start = new Date().getTime();\r\n for (var i = 0; i < 1e7; i++) {\r\n if ((new Date().getTime() - start) > milliseconds) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Gets randomly generated integer value within given min and max range\r\n * @param {number} min Range start value\r\n * @param {number} max Range end value\r\n * @returns {number}\r\n */\r\n getRandomInt: function(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n },\r\n\r\n /**\r\n * Checks whether Angular library is included\r\n * @returns {boolean}\r\n */\r\n isAngularVersion: function() {\r\n return window.Zone !== undefined ? true : false;\r\n },\r\n\r\n // jQuery Workarounds\r\n\r\n // Deep extend: $.extend(true, {}, objA, objB);\r\n deepExtend: function(out) {\r\n out = out || {};\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n var obj = arguments[i];\r\n\r\n if (!obj)\r\n continue;\r\n\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === 'object')\r\n out[key] = KTUtil.deepExtend(out[key], obj[key]);\r\n else\r\n out[key] = obj[key];\r\n }\r\n }\r\n }\r\n\r\n return out;\r\n },\r\n\r\n // extend: $.extend({}, objA, objB);\r\n extend: function(out) {\r\n out = out || {};\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!arguments[i])\r\n continue;\r\n\r\n for (var key in arguments[i]) {\r\n if (arguments[i].hasOwnProperty(key))\r\n out[key] = arguments[i][key];\r\n }\r\n }\r\n\r\n return out;\r\n },\r\n\r\n getById: function(el) {\r\n if (typeof el === 'string') {\r\n return document.getElementById(el);\r\n } else {\r\n return el;\r\n }\r\n },\r\n\r\n getByTag: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByTagName: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByClass: function(query) {\r\n return document.getElementsByClassName(query);\r\n },\r\n\r\n getBody: function() {\r\n return document.getElementsByTagName('body')[0];\r\n },\r\n\r\n /**\r\n * Checks whether the element has given classes\r\n * @param {object} el jQuery element object\r\n * @param {string} Classes string\r\n * @returns {boolean}\r\n */\r\n hasClasses: function(el, classes) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n var classesArr = classes.split(\" \");\r\n\r\n for (var i = 0; i < classesArr.length; i++) {\r\n if (KTUtil.hasClass(el, KTUtil.trim(classesArr[i])) == false) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n hasClass: function(el, className) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n return el.classList ? el.classList.contains(className) : new RegExp('\\\\b' + className + '\\\\b').test(el.className);\r\n },\r\n\r\n addClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (classNames[i] && classNames[i].length > 0) {\r\n el.classList.add(KTUtil.trim(classNames[i]));\r\n }\r\n }\r\n } else if (!KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className += ' ' + KTUtil.trim(classNames[x]);\r\n }\r\n }\r\n },\r\n\r\n removeClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n el.classList.remove(KTUtil.trim(classNames[i]));\r\n }\r\n } else if (KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className = el.className.replace(new RegExp('\\\\b' + KTUtil.trim(classNames[x]) + '\\\\b', 'g'), '');\r\n }\r\n }\r\n },\r\n\r\n triggerCustomEvent: function(el, eventName, data) {\r\n var event;\r\n if (window.CustomEvent) {\r\n event = new CustomEvent(eventName, {\r\n detail: data\r\n });\r\n } else {\r\n event = document.createEvent('CustomEvent');\r\n event.initCustomEvent(eventName, true, true, data);\r\n }\r\n\r\n el.dispatchEvent(event);\r\n },\r\n\r\n triggerEvent: function(node, eventName) {\r\n // Make sure we use the ownerDocument from the provided node to avoid cross-window problems\r\n var doc;\r\n if (node.ownerDocument) {\r\n doc = node.ownerDocument;\r\n } else if (node.nodeType == 9) {\r\n // the node may be the document itself, nodeType 9 = DOCUMENT_NODE\r\n doc = node;\r\n } else {\r\n throw new Error(\"Invalid node passed to fireEvent: \" + node.id);\r\n }\r\n\r\n if (node.dispatchEvent) {\r\n // Gecko-style approach (now the standard) takes more work\r\n var eventClass = \"\";\r\n\r\n // Different events have different event classes.\r\n // If this switch statement can't map an eventName to an eventClass,\r\n // the event firing is going to fail.\r\n switch (eventName) {\r\n case \"click\": // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.\r\n case \"mouseenter\":\r\n case \"mouseleave\":\r\n case \"mousedown\":\r\n case \"mouseup\":\r\n eventClass = \"MouseEvents\";\r\n break;\r\n\r\n case \"focus\":\r\n case \"change\":\r\n case \"blur\":\r\n case \"select\":\r\n eventClass = \"HTMLEvents\";\r\n break;\r\n\r\n default:\r\n throw \"fireEvent: Couldn't find an event class for event '\" + eventName + \"'.\";\r\n break;\r\n }\r\n var event = doc.createEvent(eventClass);\r\n\r\n var bubbles = eventName == \"change\" ? false : true;\r\n event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.\r\n\r\n event.synthetic = true; // allow detection of synthetic events\r\n // The second parameter says go ahead with the default action\r\n node.dispatchEvent(event, true);\r\n } else if (node.fireEvent) {\r\n // IE-old school style\r\n var event = doc.createEventObject();\r\n event.synthetic = true; // allow detection of synthetic events\r\n node.fireEvent(\"on\" + eventName, event);\r\n }\r\n },\r\n\r\n index: function( el ){\r\n var c = el.parentNode.children, i = 0;\r\n for(; i < c.length; i++ )\r\n if( c[i] == el ) return i;\r\n },\r\n\r\n trim: function(string) {\r\n return string.trim();\r\n },\r\n\r\n eventTriggered: function(e) {\r\n if (e.currentTarget.dataset.triggered) {\r\n return true;\r\n } else {\r\n e.currentTarget.dataset.triggered = true;\r\n\r\n return false;\r\n }\r\n },\r\n\r\n remove: function(el) {\r\n if (el && el.parentNode) {\r\n el.parentNode.removeChild(el);\r\n }\r\n },\r\n\r\n find: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelector(query);\r\n }\r\n },\r\n\r\n findAll: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelectorAll(query);\r\n }\r\n },\r\n\r\n insertAfter: function(el, referenceNode) {\r\n return referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);\r\n },\r\n\r\n parents: function(elem, selector) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.matchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.oMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n function(s) {\r\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n 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 var parents = [];\r\n\r\n // Push each parent element to the array\r\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\r\n if (selector) {\r\n if (elem.matches(selector)) {\r\n parents.push(elem);\r\n }\r\n continue;\r\n }\r\n parents.push(elem);\r\n }\r\n\r\n // Return our parent array\r\n return parents;\r\n },\r\n\r\n children: function(el, selector, log) {\r\n if (!el || !el.childNodes) {\r\n return;\r\n }\r\n\r\n var result = [],\r\n i = 0,\r\n l = el.childNodes.length;\r\n\r\n for (var i; i < l; ++i) {\r\n if (el.childNodes[i].nodeType == 1 && KTUtil.matches(el.childNodes[i], selector, log)) {\r\n result.push(el.childNodes[i]);\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n child: function(el, selector, log) {\r\n var children = KTUtil.children(el, selector, log);\r\n\r\n return children ? children[0] : null;\r\n },\r\n\r\n matches: function(el, selector, log) {\r\n var p = Element.prototype;\r\n var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {\r\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\r\n };\r\n\r\n if (el && el.tagName) {\r\n return f.call(el, selector);\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n data: function(el) {\r\n return {\r\n set: function(name, data) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n window.KTUtilElementDataStoreID++;\r\n el.customDataTag = window.KTUtilElementDataStoreID;\r\n }\r\n\r\n if (window.KTUtilElementDataStore[el.customDataTag] === undefined) {\r\n window.KTUtilElementDataStore[el.customDataTag] = {};\r\n }\r\n\r\n window.KTUtilElementDataStore[el.customDataTag][name] = data;\r\n },\r\n\r\n get: function(name) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return null;\r\n }\r\n\r\n return this.has(name) ? window.KTUtilElementDataStore[el.customDataTag][name] : null;\r\n },\r\n\r\n has: function(name) {\r\n if (!el) {\r\n return false;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return false;\r\n }\r\n\r\n return (window.KTUtilElementDataStore[el.customDataTag] && window.KTUtilElementDataStore[el.customDataTag][name]) ? true : false;\r\n },\r\n\r\n remove: function(name) {\r\n if (el && this.has(name)) {\r\n delete window.KTUtilElementDataStore[el.customDataTag][name];\r\n }\r\n }\r\n };\r\n },\r\n\r\n outerWidth: function(el, margin) {\r\n var width;\r\n\r\n if (margin === true) {\r\n width = parseFloat(el.offsetWidth);\r\n width += parseFloat(KTUtil.css(el, 'margin-left')) + parseFloat(KTUtil.css(el, 'margin-right'));\r\n\r\n return parseFloat(width);\r\n } else {\r\n width = parseFloat(el.offsetWidth);\r\n\r\n return width;\r\n }\r\n },\r\n\r\n offset: function(el) {\r\n var rect, win;\r\n\r\n if ( !el ) {\r\n return;\r\n }\r\n\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\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 rect = el.getBoundingClientRect();\r\n win = el.ownerDocument.defaultView;\r\n\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 height: function(el) {\r\n return KTUtil.css(el, 'height');\r\n },\r\n\r\n outerHeight: function(el, withMargic = false) {\r\n var height = el.offsetHeight;\r\n var style;\r\n\r\n if (withMargic) {\r\n style = getComputedStyle(el);\r\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\r\n\r\n return height;\r\n } else {\r\n return height;\r\n }\r\n },\r\n\r\n visible: function(el) {\r\n return !(el.offsetWidth === 0 && el.offsetHeight === 0);\r\n },\r\n\r\n attr: function(el, name, value) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.setAttribute(name, value);\r\n } else {\r\n return el.getAttribute(name);\r\n }\r\n },\r\n\r\n hasAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n return el.getAttribute(name) ? true : false;\r\n },\r\n\r\n removeAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n el.removeAttribute(name);\r\n },\r\n\r\n animate: function(from, to, duration, update, easing, done) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n var easings = {};\r\n var easing;\r\n\r\n easings.linear = function(t, b, c, d) {\r\n return c * t / d + b;\r\n };\r\n\r\n easing = easings.linear;\r\n\r\n // Early bail out if called incorrectly\r\n if (typeof from !== 'number' ||\r\n typeof to !== 'number' ||\r\n typeof duration !== 'number' ||\r\n typeof update !== 'function') {\r\n return;\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (typeof done !== 'function') {\r\n done = function() {};\r\n }\r\n\r\n // Pick implementation (requestAnimationFrame | setTimeout)\r\n var rAF = window.requestAnimationFrame || function(callback) {\r\n window.setTimeout(callback, 1000 / 50);\r\n };\r\n\r\n // Animation loop\r\n var canceled = false;\r\n var change = to - from;\r\n\r\n function loop(timestamp) {\r\n var time = (timestamp || +new Date()) - start;\r\n\r\n if (time >= 0) {\r\n update(easing(time, from, change, duration));\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to);\r\n done();\r\n } else {\r\n rAF(loop);\r\n }\r\n }\r\n\r\n update(from);\r\n\r\n // Start animation loop\r\n var start = window.performance && window.performance.now ? window.performance.now() : +new Date();\r\n\r\n rAF(loop);\r\n },\r\n\r\n actualCss: function(el, prop, cache) {\r\n var css = '';\r\n\r\n if (el instanceof HTMLElement === false) {\r\n return;\r\n }\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n var 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 el.setAttribute('kt-hidden-' + prop, value);\r\n\r\n return parseFloat(value);\r\n } else {\r\n // store it in cache\r\n return parseFloat(el.getAttribute('kt-hidden-' + prop));\r\n }\r\n },\r\n\r\n actualHeight: function(el, cache) {\r\n return KTUtil.actualCss(el, 'height', cache);\r\n },\r\n\r\n actualWidth: function(el, cache) {\r\n return KTUtil.actualCss(el, 'width', cache);\r\n },\r\n\r\n getScroll: function(element, method) {\r\n // The passed in `method` value should be 'Top' or 'Left'\r\n method = 'scroll' + method;\r\n return (element == window || element == document) ? (\r\n self[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] ||\r\n (browserSupportsBoxModel && document.documentElement[method]) ||\r\n document.body[method]\r\n ) : element[method];\r\n },\r\n\r\n css: function(el, styleProp, value) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.style[styleProp] = value;\r\n } else {\r\n var defaultView = (el.ownerDocument || document).defaultView;\r\n // W3C standard way:\r\n if (defaultView && defaultView.getComputedStyle) {\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 return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\r\n } else if (el.currentStyle) { // IE\r\n // sanitize property name to camelCase\r\n styleProp = styleProp.replace(/\\-(\\w)/g, function(str, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = el.currentStyle[styleProp];\r\n // convert other units to pixels on IE\r\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\r\n return (function(value) {\r\n var oldLeft = el.style.left,\r\n oldRsLeft = el.runtimeStyle.left;\r\n el.runtimeStyle.left = el.currentStyle.left;\r\n el.style.left = value || 0;\r\n value = el.style.pixelLeft + \"px\";\r\n el.style.left = oldLeft;\r\n el.runtimeStyle.left = oldRsLeft;\r\n return value;\r\n })(value);\r\n }\r\n return value;\r\n }\r\n }\r\n },\r\n\r\n slide: function(el, dir, speed, callback, recalcMaxHeight) {\r\n if (!el || (dir == 'up' && KTUtil.visible(el) === false) || (dir == 'down' && KTUtil.visible(el) === true)) {\r\n return;\r\n }\r\n\r\n speed = (speed ? speed : 600);\r\n var calcHeight = KTUtil.actualHeight(el);\r\n var calcPaddingTop = false;\r\n var calcPaddingBottom = false;\r\n\r\n if (KTUtil.css(el, 'padding-top') && KTUtil.data(el).has('slide-padding-top') !== true) {\r\n KTUtil.data(el).set('slide-padding-top', KTUtil.css(el, 'padding-top'));\r\n }\r\n\r\n if (KTUtil.css(el, 'padding-bottom') && KTUtil.data(el).has('slide-padding-bottom') !== true) {\r\n KTUtil.data(el).set('slide-padding-bottom', KTUtil.css(el, 'padding-bottom'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-top')) {\r\n calcPaddingTop = parseInt(KTUtil.data(el).get('slide-padding-top'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(KTUtil.data(el).get('slide-padding-bottom'));\r\n }\r\n\r\n if (dir == 'up') { // up\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {\r\n el.style.paddingTop = (calcPaddingTop - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = (calcPaddingBottom - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = (calcHeight - value) + 'px';\r\n }, 'linear', 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\r\n } else if (dir == 'down') { // down\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {//\r\n el.style.paddingTop = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingTop = '';\r\n });\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingBottom = '';\r\n });\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = value + 'px';\r\n }, 'linear', 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 slideUp: function(el, speed, callback) {\r\n KTUtil.slide(el, 'up', speed, callback);\r\n },\r\n\r\n slideDown: function(el, speed, callback) {\r\n KTUtil.slide(el, 'down', speed, callback);\r\n },\r\n\r\n show: function(el, display) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = (display ? display : 'block');\r\n }\r\n },\r\n\r\n hide: function(el) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = 'none';\r\n }\r\n },\r\n\r\n addEvent: function(el, type, handler, one) {\r\n if (typeof el !== 'undefined' && el !== null) {\r\n el.addEventListener(type, handler);\r\n }\r\n },\r\n\r\n removeEvent: function(el, type, handler) {\r\n if (el !== null) {\r\n el.removeEventListener(type, handler);\r\n }\r\n },\r\n\r\n on: function(element, selector, event, handler) {\r\n if (!selector) {\r\n return;\r\n }\r\n\r\n var eventId = KTUtil.getUniqueID('event');\r\n\r\n window.KTUtilDelegatedEventHandlers[eventId] = function(e) {\r\n var targets = element.querySelectorAll(selector);\r\n var target = e.target;\r\n\r\n while (target && target !== element) {\r\n for (var i = 0, j = targets.length; i < j; i++) {\r\n if (target === targets[i]) {\r\n handler.call(target, e);\r\n }\r\n }\r\n\r\n target = target.parentNode;\r\n }\r\n }\r\n\r\n KTUtil.addEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n return eventId;\r\n },\r\n\r\n off: function(element, event, eventId) {\r\n if (!element || !window.KTUtilDelegatedEventHandlers[eventId]) {\r\n return;\r\n }\r\n\r\n KTUtil.removeEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n delete window.KTUtilDelegatedEventHandlers[eventId];\r\n },\r\n\r\n one: function onetime(el, type, callback) {\r\n el.addEventListener(type, function callee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, callee);\r\n }\r\n\r\n // need to verify from https://themeforest.net/author_dashboard#comment_23615588\r\n if (el && el.removeEventListener) {\r\n\t\t\t\t e.currentTarget.removeEventListener(e.type, callee);\r\n\t\t\t }\r\n\r\n // call handler\r\n return callback(e);\r\n });\r\n },\r\n\r\n hash: function(str) {\r\n var hash = 0,\r\n i, chr;\r\n\r\n if (str.length === 0) return hash;\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n\r\n return hash;\r\n },\r\n\r\n animateClass: function(el, animationName, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd',\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.addClass(el, 'animated ' + animationName);\r\n\r\n KTUtil.one(el, animation, function() {\r\n KTUtil.removeClass(el, 'animated ' + animationName);\r\n });\r\n\r\n if (callback) {\r\n KTUtil.one(el, animation, callback);\r\n }\r\n },\r\n\r\n transitionEnd: function(el, callback) {\r\n var transition;\r\n var transitions = {\r\n transition: 'transitionend',\r\n OTransition: 'oTransitionEnd',\r\n MozTransition: 'mozTransitionEnd',\r\n WebkitTransition: 'webkitTransitionEnd',\r\n msTransition: 'msTransitionEnd'\r\n };\r\n\r\n for (var t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n transition = transitions[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, transition, callback);\r\n },\r\n\r\n animationEnd: function(el, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd'\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, animation, callback);\r\n },\r\n\r\n animateDelay: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-delay', value);\r\n }\r\n },\r\n\r\n animateDuration: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-duration', value);\r\n }\r\n },\r\n\r\n scrollTo: function(target, offset, duration) {\r\n var duration = duration ? duration : 500;\r\n var targetPos = target ? KTUtil.offset(target).top : 0;\r\n var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n var from, to;\r\n\r\n if (offset) {\r\n scrollPos += offset;\r\n }\r\n\r\n from = scrollPos;\r\n to = targetPos;\r\n\r\n KTUtil.animate(from, to, duration, function(value) {\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\r\n scrollTop: function(offset, duration) {\r\n KTUtil.scrollTo(null, offset, duration);\r\n },\r\n\r\n isArray: function(obj) {\r\n return obj && Array.isArray(obj);\r\n },\r\n\r\n ready: function(callback) {\r\n if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\") {\r\n callback();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n }\r\n },\r\n\r\n isEmpty: function(obj) {\r\n for (var prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n numberString: function(nStr) {\r\n nStr += '';\r\n var x = nStr.split('.');\r\n var x1 = x[0];\r\n var x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n },\r\n\r\n detectIE: function() {\r\n var ua = window.navigator.userAgent;\r\n\r\n // Test values; Uncomment to check result …\r\n\r\n // IE 10\r\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\r\n\r\n // IE 11\r\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\r\n\r\n // Edge 12 (Spartan)\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\r\n\r\n // Edge 13\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';\r\n\r\n var msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n // IE 10 or older => return version number\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // Edge (IE 12+) => return version number\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n },\r\n\r\n isRTL: function() {\r\n var html = KTUtil.getByTagName('html')[0];\r\n\r\n if (html) {\r\n return (KTUtil.attr(html, 'direction') == 'rtl');\r\n }\r\n },\r\n\r\n // Scroller\r\n scrollInit: function(element, options) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Learn more: https://github.com/mdbootstrap/perfect-scrollbar#options\r\n var pluginDefOptions = {\r\n wheelSpeed: 0.5,\r\n swipeEasing: true,\r\n wheelPropagation: false,\r\n minScrollbarLength: 40,\r\n maxScrollbarLength: 300,\r\n suppressScrollX: true\r\n };\r\n\r\n options = KTUtil.deepExtend({}, pluginDefOptions, options);\r\n\r\n // Define init function\r\n function init() {\r\n var ps;\r\n var height;\r\n\r\n // Get extra options via data attributes\r\n var attrs = element.getAttributeNames();\r\n if (attrs.length > 0) {\r\n attrs.forEach(function(attrName) {\r\n \t\t\t// more options; https://github.com/ganlanyuan/tiny-slider#options\r\n \t\t\tif ((/^data-.*/g).test(attrName)) {\r\n if (['scroll', 'height', 'mobile-height'].includes(optionName) == false) {\r\n var optionName = attrName.replace('data-', '').toLowerCase().replace(/(?:[\\s-])\\w/g, function(match) {\r\n \t\t\t\t\treturn match.replace('-', '').toUpperCase();\r\n \t\t\t\t});\r\n\r\n options[optionName] = KTUtil.filterBoolean(element.getAttribute(attrName));\r\n }\r\n \t\t\t}\r\n \t\t});\r\n }\r\n\r\n if (options.height instanceof Function) {\r\n height = options.height.call();\r\n } else {\r\n if (KTUtil.isMobileDevice() === true && options.mobileHeight) {\r\n height = parseInt(options.mobileHeight);\r\n } else {\r\n height = parseInt(options.height);\r\n }\r\n }\r\n\r\n if (height === false) {\r\n KTUtil.scrollDestroy(element, true);\r\n\r\n return;\r\n }\r\n\r\n height = parseInt(height);\r\n\r\n // Destroy scroll on table and mobile modes\r\n if ((options.mobileNativeScroll || options.disableForMobile) && KTUtil.isMobileDevice() === true) {\r\n ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n if (options.resetHeightOnDestroy) {\r\n KTUtil.css(element, 'height', 'auto');\r\n } else {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n }\r\n\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n } else if (height > 0){\r\n KTUtil.css(element, 'overflow', 'auto');\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n if (options.desktopNativeScroll) {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n return;\r\n }\r\n\r\n // Pass options via HTML Attributes\r\n if (KTUtil.attr(element, 'data-window-scroll') == 'true') {\r\n options.windowScroll = true;\r\n }\r\n\r\n // Init scroll\r\n ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.update();\r\n } else {\r\n KTUtil.css(element, 'overflow', 'hidden');\r\n KTUtil.addClass(element, 'scroll');\r\n\r\n ps = new PerfectScrollbar(element, options);\r\n\r\n KTUtil.data(element).set('ps', ps);\r\n }\r\n\r\n // Remember scroll position in cookie\r\n var uid = KTUtil.attr(element, 'id');\r\n try {\r\n if (uid) {\r\n var cookie = KTCookie.getCookie(uid);\r\n if (options.rememberPosition === true && cookie) {\r\n var pos = parseInt(cookie);\r\n if (pos > 0) {\r\n element.scrollTop = pos;\r\n }\r\n element.addEventListener('ps-scroll-y', function() {\r\n KTCookie.setCookie(uid, element.scrollTop, {});\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n // Consider using Localstorage\r\n //if (options.rememberPosition === true && Cookies && uid) {\r\n // if (KTCookie.getCookie(uid)) {\r\n // var pos = parseInt(KTCookie.getCookie(uid));\r\n //\r\n // if (pos > 0) {\r\n // element.scrollTop = pos;\r\n // }\r\n // }\r\n //\r\n // element.addEventListener('ps-scroll-y', function() {\r\n // KTCookie.setCookie(uid, element.scrollTop);\r\n // });\r\n //}\r\n }\r\n\r\n // Init\r\n init();\r\n\r\n // Handle window resize\r\n if (options.handleWindowResize) {\r\n KTUtil.addResizeHandler(function() {\r\n init();\r\n });\r\n }\r\n },\r\n\r\n scrollUpdate: function(element) {\r\n var ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n ps.update();\r\n }\r\n },\r\n\r\n scrollUpdateAll: function(parent) {\r\n var scrollers = KTUtil.findAll(parent, '.ps');\r\n for (var i = 0, len = scrollers.length; i < len; i++) {\r\n KTUtil.scrollUpdate(scrollers[i]);\r\n }\r\n },\r\n\r\n scrollDestroy: function(element, resetAll) {\r\n var ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n }\r\n\r\n if (element && resetAll) {\r\n element.style.setProperty('overflow', '');\r\n element.style.setProperty('height', '');\r\n }\r\n },\r\n\r\n filterBoolean: function(val) {\r\n // Convert string boolean\r\n\t\t\tif (val === true || val === 'true') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (val === false || val === 'false') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n return val;\r\n },\r\n\r\n setHTML: function(el, html) {\r\n el.innerHTML = html;\r\n },\r\n\r\n getHTML: function(el) {\r\n if (el) {\r\n return el.innerHTML;\r\n }\r\n },\r\n\r\n getDocumentHeight: function() {\r\n var body = document.body;\r\n var html = document.documentElement;\r\n\r\n return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );\r\n },\r\n\r\n getScrollTop: function() {\r\n return (document.scrollingElement || document.documentElement).scrollTop;\r\n },\r\n\r\n colorDarken: function(color, amount) {\r\n var subtractLight = function(color, amount){\r\n var cc = parseInt(color,16) - amount;\r\n var c = (cc < 0) ? 0 : (cc);\r\n c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;\r\n\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);\r\n\r\n return color = `#${subtractLight(color.substring(0,2), amount)}${subtractLight(color.substring(2,4), amount)}${subtractLight(color.substring(4,6), amount)}`;\r\n },\r\n\r\n colorLighten: function(color, amount) {\r\n var addLight = function(color, amount){\r\n var cc = parseInt(color,16) + amount;\r\n var c = (cc > 255) ? 255 : (cc);\r\n c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;\r\n\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);\r\n\r\n return color = `#${addLight(color.substring(0,2), amount)}${addLight(color.substring(2,4), amount)}${addLight(color.substring(4,6), amount)}`;\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\n throttle: function (timer, func, delay) {\r\n \t// If setTimeout is already scheduled, no need to do anything\r\n \tif (timer) {\r\n \t\treturn;\r\n \t}\r\n\r\n \t// Schedule a setTimeout after delay seconds\r\n \ttimer = setTimeout(function () {\r\n \t\tfunc();\r\n\r\n \t\t// Once setTimeout function execution is finished, timerId = undefined so that in
\r\n \t\t// the next scroll event function execution can be scheduled by the setTimeout\r\n \t\ttimer = undefined;\r\n \t}, delay);\r\n },\r\n\r\n // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds\r\n debounce: function (timer, func, delay) {\r\n \t// Cancels the setTimeout method execution\r\n \tclearTimeout(timer)\r\n\r\n \t// Executes the func after delay time.\r\n \ttimer = setTimeout(func, delay);\r\n },\r\n\r\n btnWait: function(el, cls, message, disable = true) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (disable) {\r\n KTUtil.attr(el, \"disabled\", true);\r\n }\r\n\r\n if (cls) {\r\n KTUtil.addClass(el, cls);\r\n KTUtil.attr(el, \"wait-class\", cls);\r\n }\r\n\r\n if (message) {\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption) {\r\n KTUtil.data(caption).set('caption', KTUtil.getHTML(caption));\r\n KTUtil.setHTML(caption, message);\r\n } else {\r\n KTUtil.data(el).set('caption', KTUtil.getHTML(el));\r\n KTUtil.setHTML(el, message);\r\n }\r\n }\r\n },\r\n\r\n btnRelease: function(el) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n /// Show loading state on button\r\n KTUtil.removeAttr(el, \"disabled\");\r\n\r\n if (KTUtil.hasAttr(el, \"wait-class\")) {\r\n KTUtil.removeClass(el, KTUtil.attr(el, \"wait-class\"));\r\n }\r\n\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption && KTUtil.data(caption).has('caption')) {\r\n KTUtil.setHTML(caption, KTUtil.data(caption).get('caption'));\r\n } else if (KTUtil.data(el).has('caption')) {\r\n KTUtil.setHTML(el, KTUtil.data(el).get('caption'));\r\n }\r\n },\r\n\r\n isOffscreen: function(el, direction, offset = 0) {\r\n var windowWidth = KTUtil.getViewPort().width;\r\n var windowHeight = KTUtil.getViewPort().height;\r\n\r\n var top = KTUtil.offset(el).top;\r\n var height = KTUtil.outerHeight(el) + offset;\r\n var left = KTUtil.offset(el).left;\r\n var width = KTUtil.outerWidth(el) + offset;\r\n\r\n if (direction == 'bottom') {\r\n if (windowHeight < top + height) {\r\n return true;\r\n } else if (windowHeight > top + height * 1.5) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'top') {\r\n if (top < 0) {\r\n return true;\r\n } else if (top > height) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'left') {\r\n if (left < 0) {\r\n return true;\r\n } else if (left * 2 > width) {\r\n //console.log('left 2');\r\n //return true;\r\n }\r\n }\r\n\r\n if (direction == 'right') {\r\n if (windowWidth < left + width) {\r\n return true;\r\n } else {\r\n //console.log('right 2');\r\n //return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTUtil;\r\n}\r\n\r\n// Initialize KTUtil class on document ready\r\nKTUtil.ready(function() {\r\n\tif (typeof KTAppSettings !== 'undefined') {\r\n\t\tKTUtil.init(KTAppSettings);\r\n\t} else {\r\n\t\tKTUtil.init();\r\n\t}\r\n});\r\n\r\n// CSS3 Transitions only after page load(.page-loading class added to body tag and remove with JS on page load)\r\nwindow.onload = function() {\r\n var result = KTUtil.getByTagName('body');\r\n if (result && result[0]) {\r\n KTUtil.removeClass(result[0], 'page-loading');\r\n }\r\n}\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport DatePicker from \"react-modern-calendar-datepicker\";\r\nimport \"react-modern-calendar-datepicker/lib/DatePicker.css\";\r\nimport moment from \"moment-jalaali\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { InputGroup, FormControl, FormLabel, FormText } from 'react-bootstrap';\r\nimport { useLang } from \"../../../i18n/Basei18n\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport {\r\n formatDateString,\r\n convertDateStringToLocal,\r\n initDatePickerValue,\r\n} from \"../../../_helpers/DateFormaterHelpers\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n// import { utils } from 'react-modern-calendar-datepicker';\r\n// import \"./customDatePickerWidth.css\";\r\n// import { DateTimeInput, DateTimeInputSimple, DateInput, DateInputSimple } from 'react-hichestan-datetimepicker';\r\n// import DatePicker from \"react-datepicker\";\r\n\r\nconst getFieldCSSClasses = (touched, errors) => {\r\n const classes = [\"form-control \"];\r\n if (touched && errors) {\r\n classes.push(\"is-invalid\");\r\n }\r\n if (touched && !errors) {\r\n classes.push(\"is-valid\");\r\n }\r\n return classes.join(\" \");\r\n};\r\n\r\n\r\nexport function DatePickerField(props) {\r\n const { setFieldValue, errors, touched } = useFormikContext();\r\n const { field } = props;\r\n const locale = useLang();\r\n const [selectedDay, setSelectedDay] = useState(null);\r\n const [onSelected, setOnSelected] = useState(0);\r\n const tdOnClick = (index) => {\r\n setOnSelected(index);\r\n };\r\n\r\n // ////debugger\r\n // const [meta, helpers] = useField(props.name);\r\n\r\n // const { value } = meta;\r\n // const { setValue } = helpers;\r\n\r\n // useEffect(() => {\r\n // if (field.value) {\r\n // var date = convertDateStringToLocal(field.value, locale)\r\n // var d = new Date(date),\r\n // month = \"\" + (d.getMonth() + 1),\r\n // day = \"\" + d.getDate(),\r\n // year = d.getFullYear();\r\n // setSelectedDay({\r\n // day: day,\r\n // month: month,\r\n // year: year,\r\n // });\r\n // }\r\n\r\n // }, [field.value]);\r\n\r\n const setDatepickerValue = ({\r\n val,\r\n field,\r\n locale,\r\n setFieldValue,\r\n }) => {\r\n\r\n debugger\r\n // console.log(meta.value)\r\n let utcDate = null;\r\n if (locale === \"fa\") {\r\n utcDate = moment(`${val.year}/${val.month}/${val.day}`, \"jYYYY/jM/jD\");\r\n } else {\r\n utcDate = moment(`${val.year}-${val.month}-${val.day}`, \"YYYY-MM-DD\");\r\n }\r\n let newValue = utcDate.format(\"YYYY-MM-DDTHH:mm:ss\");\r\n setFieldValue(field.name, newValue);\r\n setSelectedDay();\r\n if (props.onChange) {\r\n props.onChange()\r\n }\r\n };\r\n\r\n\r\n const renderCustomInput = ({ ref }) => (\r\n \r\n )\r\n\r\n // const renderCustomInputFilter = ({ ref }) => (\r\n // \r\n // )\r\n\r\n const minimumDateEn = {\r\n year: 2021,\r\n month: 3,\r\n day: 21\r\n };\r\n\r\n const minimumDateFa = {\r\n year: 1400,\r\n month: 1,\r\n day: 1\r\n };\r\n\r\n return (\r\n <>\r\n {props.label && }\r\n tdOnClick(props.rowIdx)}\r\n >\r\n {/* \r\n \r\n \r\n \r\n {\r\n // setShow(true)\r\n // }}\r\n />\r\n \r\n \r\n\r\n */}\r\n {\r\n setDatepickerValue({\r\n val,\r\n field,\r\n locale,\r\n setFieldValue,\r\n });\r\n }}\r\n shouldHighlightWeekends\r\n renderInput={renderCustomInput} // render a custom input\r\n calendarClassName=\"responsive-calendar\"\r\n // renderInput={props.label ? renderCustomInput : renderCustomInputFilter} // render a custom input\r\n\r\n // renderFooter={() => (\r\n //
\r\n // {\r\n // setSelectedDay(null);\r\n // setFieldValue(field.name, \"\");\r\n // if (props.onChange) {\r\n // props.onChange()\r\n // }\r\n // }}\r\n // style={{\r\n // border: '#0fbcf9',\r\n // color: '#be9a57',\r\n // borderRadius: '0.5rem',\r\n // padding: '1rem 2rem',\r\n // }}\r\n // >\r\n // پاک کردن\r\n // \r\n //
\r\n // )}\r\n />\r\n {/*
*/}\r\n \r\n {errors[field.name] && touched[field.name] ? (\r\n
\r\n {errors[field.name].toString()}\r\n
\r\n ) : (\r\n
\r\n {/* Please enter {props.label} in 'mm/dd/yyyy' format */}\r\n
\r\n )}\r\n\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { FieldFeedbackLabel } from \"./FieldFeedbackLabel\";\r\n\r\nconst getFieldCSSClasses = (touched, errors) => {\r\n const classes = [\"form-control\"];\r\n if (touched && errors) {\r\n classes.push(\"is-invalid\");\r\n }\r\n\r\n if (touched && !errors) {\r\n classes.push(\"is-valid\");\r\n }\r\n\r\n return classes.join(\" \");\r\n};\r\n\r\nexport function Input({\r\n field, // { name, value, onChange, onBlur }\r\n form: { touched, errors }, // also values, set, handle, dirty, isValid, status, etc.\r\n label,\r\n withFeedbackLabel = true,\r\n customFeedbackLabel,\r\n type = \"text\",\r\n min,\r\n ...props\r\n}) {\r\n\r\n // console.log(\"Input props :\")\r\n // console.log(touched)\r\n // console.log(errors)\r\n\r\n return (\r\n <>\r\n {/* {label && } */}\r\n {label && }\r\n \r\n {withFeedbackLabel && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useField } from \"formik\";\r\nimport { FieldFeedbackLabel } from \"./FieldFeedbackLabel\";\r\n\r\n\r\nconst getFieldCSSClasses = (touched, errors) => {\r\n const classes = [\"form-control\"];\r\n if (errors) {\r\n classes.push(\"is-invalid-select\");\r\n }\r\n\r\n if (!errors) {\r\n classes.push(\"is-valid-select\");\r\n }\r\n\r\n return classes.join(\" \");\r\n};\r\n\r\n\r\nexport function Select({\r\n field, // { name, value, onChange, onBlur }\r\n form: { touched, errors }, // also values, setXXXX, handleXXXX, dirty, isValid, status, etc.\r\n label,\r\n withFeedbackLabel = true,\r\n type = \"select\",\r\n customFeedbackLabel,\r\n children,\r\n ...props\r\n}) {\r\n // const [field, meta] = useField(props);\r\n // const { touched, error } = meta;\r\n\r\n // console.log(\"props :\")\r\n // console.log(touched)\r\n // console.log(errors)\r\n ////debugger\r\n return (\r\n <>\r\n\r\n {label && }\r\n \r\n {children}\r\n \r\n {withFeedbackLabel && (\r\n \r\n )}\r\n\r\n {/* {!!errors[field.name] && (\r\n
\r\n {errors[field.name]}\r\n
\r\n )} */}\r\n\r\n\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useFormikContext } from \"formik\";\r\n\r\nexport function HeaderCheckbox(props) {\r\n const { label, field } = props;\r\n const { setFieldValue } = useFormikContext();\r\n // ////////////////debugger;\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { getPages, getPagesCount } from \"../../../_helpers\";\r\n\r\nexport function PaginationLinks({ paginationProps }) {\r\n const { totalSize, sizePerPage, page, paginationSize } = paginationProps;\r\n const pagesCount = getPagesCount(totalSize, sizePerPage);\r\n const pages = getPages(page, pagesCount, paginationSize);\r\n const handleFirstPage = ({ onPageChange }) => {\r\n onPageChange(1);\r\n };\r\n\r\n const handlePrevPage = ({ page, onPageChange }) => {\r\n onPageChange(page - 1);\r\n };\r\n\r\n const handleNextPage = ({ page, onPageChange }) => {\r\n if (page < pagesCount) {\r\n onPageChange(page + 1);\r\n }\r\n };\r\n\r\n const handleLastPage = ({ onPageChange }) => {\r\n onPageChange(pagesCount);\r\n };\r\n\r\n const handleSelectedPage = ({ onPageChange }, pageNum) => {\r\n onPageChange(pageNum);\r\n };\r\n\r\n const disabledClass = pagesCount > 1 ? \"\" : \"disabled\";\r\n return (\r\n <>\r\n {pagesCount < 2 && <>}\r\n {pagesCount > 1 && (\r\n <>\r\n
\r\n handleFirstPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n handlePrevPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n\r\n {page > 1 && (\r\n \r\n ...\r\n \r\n )}\r\n {pages.map((p) => (\r\n handleSelectedPage(paginationProps, p)}\r\n className={`btn btn-icon btn-sm border-0 btn-light ${\r\n page === p ? \" btn-hover-primary active\" : \"\"\r\n } mr-2 my-1`}\r\n >\r\n {p}\r\n \r\n ))}\r\n {page < pagesCount && (\r\n \r\n ...\r\n \r\n )}\r\n handleNextPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n handleLastPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nimport React from \"react\";\r\nimport { useIntl } from \"react-intl\";\r\nimport {PaginationTotalStandalone} from \"react-bootstrap-table2-paginator\";\r\n\r\nexport function PaginationToolbar(props) {\r\n const intl = useIntl();\r\n const { isLoading, paginationProps } = props;\r\n const {\r\n sizePerPageList,\r\n sizePerPage,\r\n totalSize,\r\n onSizePerPageChange = [\r\n { text: \"3\", value: 3 },\r\n { text: \"5\", value: 5 },\r\n { text: \"10\", value: 10 }\r\n ]\r\n } = paginationProps;\r\n const style = {\r\n width: \"75px\"\r\n };\r\n\r\n const onSizeChange = event => {\r\n const newSize = +event.target.value;\r\n onSizePerPageChange(newSize);\r\n };\r\n\r\n return (\r\n
\r\n {isLoading && (\r\n
\r\n
{intl.formatMessage({ id: \"LOADING\" })}
\r\n
\r\n
\r\n )}\r\n \r\n {sizePerPageList.map(option => {\r\n const isSelect = sizePerPage === `${option.page}`;\r\n return (\r\n \r\n {option.text}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport {PaginationLinks} from \"./PaginationLinks\";\r\nimport {PaginationToolbar} from \"./PaginationToolbar\";\r\n\r\nexport function Pagination(props) {\r\n const { children, isLoading, paginationProps } = props;\r\n return (\r\n <>\r\n {children}\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import React, { forwardRef, useEffect, useState } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport {isFragment} from \"react-is\";\r\n\r\nexport const CardHeaderIcon = forwardRef(({ className }, ref) => (\r\n \r\n));\r\n\r\nexport const CardHeaderTitle = forwardRef(({ className, ...props }, ref) => (\r\n // eslint-disable-next-line jsx-a11y/heading-has-content\r\n

\r\n));\r\n\r\nexport const CardHeaderToolbar = forwardRef(\r\n ({ children, className, ...props }, ref) => (\r\n
\r\n {children}\r\n
\r\n )\r\n);\r\n\r\nexport const CardHeader = forwardRef(\r\n (\r\n {\r\n children,\r\n icon,\r\n title,\r\n toolbar,\r\n className,\r\n sticky = false,\r\n labelRef,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [top, setTop] = useState(0);\r\n const [windowHeight, setWindowHeight] = useState(0);\r\n\r\n useEffect(() => {\r\n handleResize();\r\n\r\n function handleResize() {\r\n setWindowHeight(window.innerWidth);\r\n }\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", handleResize);\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n // Skip if sticky is disabled or on initial render when we don't know about window height.\r\n if (!sticky || windowHeight === 0) {\r\n return;\r\n }\r\n\r\n const headerElement = document.querySelector(\".header\");\r\n const subheaderElement = document.querySelector(\".subheader\");\r\n const headerMobileElement = document.querySelector(\".header-mobile\");\r\n\r\n let nextMarginTop = 0;\r\n\r\n // mobile header\r\n if (window.getComputedStyle(headerElement).height === \"0px\") {\r\n nextMarginTop = headerMobileElement.offsetHeight;\r\n } else {\r\n // desktop header\r\n if (document.body.classList.contains(\"header-minimize-topbar\")) {\r\n // hardcoded minimized header height\r\n nextMarginTop = 60;\r\n } else {\r\n // normal fixed header\r\n if (document.body.classList.contains(\"header-fixed\")) {\r\n nextMarginTop += headerElement.offsetHeight;\r\n }\r\n\r\n if (document.body.classList.contains(\"subheader-fixed\")) {\r\n nextMarginTop += subheaderElement.offsetHeight;\r\n }\r\n }\r\n }\r\n\r\n setTop(nextMarginTop);\r\n }, [sticky, windowHeight]);\r\n\r\n return (\r\n \r\n {title != null && (\r\n
\r\n {icon}\r\n\r\n {/* Wrap string and fragments in CardHeaderTitle */\r\n typeof title === \"string\" || isFragment(title) ? (\r\n {title}\r\n ) : (\r\n title\r\n )}\r\n
\r\n )}\r\n\r\n {toolbar}\r\n {children}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport const CardBody = forwardRef(\r\n ({ fit, fluid, className, ...props }, ref) => (\r\n \r\n )\r\n);\r\n\r\nexport const CardFooter = forwardRef(({ className, ...props }, ref) => (\r\n
\r\n));\r\n\r\nexport const Card = forwardRef(({ fluidHeight, className, ...props }, ref) => (\r\n \r\n));\r\n\r\n// Set display names for debugging.\r\nif (process.env.NODE_ENV !== \"production\") {\r\n Card.displayName = \"Card\";\r\n\r\n CardHeader.displayName = \"CardHeader\";\r\n CardHeaderIcon.displayName = \"CardHeaderIcon\";\r\n CardHeaderTitle.displayName = \"CardHeaderTitle\";\r\n CardHeaderToolbar.displayName = \"CardHeaderToolbar\";\r\n\r\n CardBody.displayName = \"CardBody\";\r\n CardFooter.displayName = \"CardFooter\";\r\n}\r\n","import React from \"react\";\r\nimport {withRouter} from \"react-router-dom\";\r\nimport {ProgressBar} from \"react-bootstrap\";\r\n\r\n// TODO: Should be rewrited to pure function\r\nclass AnimateLoading extends React.Component {\r\n animateTimeout;\r\n stopAnimateTimeout;\r\n state = {\r\n width: 0,\r\n routeChanged: false\r\n };\r\n\r\n componentDidUpdate(nextProps) {\r\n if (this.props.location.pathname !== nextProps.location.pathname) {\r\n this.animate();\r\n this.scrollToTop();\r\n }\r\n }\r\n\r\n scrollToTop() {\r\n const scrollToTopBtn = document.getElementById(\"kt_scrolltop\");\r\n if (scrollToTopBtn) {\r\n scrollToTopBtn.click();\r\n }\r\n }\r\n\r\n animate() {\r\n this.animateTimeout = setTimeout(() => {\r\n if (this.state.width <= 100) {\r\n this.setState({ width: this.state.width + 10 });\r\n this.animate();\r\n } else {\r\n this.stopAnimate();\r\n }\r\n }, 30);\r\n }\r\n stopAnimate() {\r\n clearTimeout(this.animateInterval);\r\n this.stopAnimateTimeout = setTimeout(() => {\r\n this.setState({ width: 0 });\r\n }, 300);\r\n }\r\n componentWillUnmount() {\r\n if (this.stopAnimateTimeout) {\r\n clearTimeout(this.stopAnimateTimeout);\r\n }\r\n if (this.animateTimeout) {\r\n clearTimeout(this.animateTimeout);\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n {this.state.width > 0 && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AnimateLoading);\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {Portal} from \"react-portal\";\r\n\r\nconst animationStartClass = \"dialog-shown\";\r\nconst animationEndClass = \"dialog-hidden\";\r\nconst initCssClasses = [\r\n \"dialog\",\r\n \"dialog-default\",\r\n \"dialog-loader\",\r\n \"dialog-top-center\"\r\n];\r\n\r\nexport function LoadingDialog({ isLoading, text }) {\r\n const [cssClasses, setCssClasses] = useState(initCssClasses);\r\n\r\n useEffect(() => {\r\n // for animation start should toggle 'dialog-hidden' css class\r\n setCssClasses(initCssClasses);\r\n const timeoutId = setTimeout(() => {\r\n const cssClassForAdding = isLoading\r\n ? animationStartClass\r\n : animationEndClass;\r\n setCssClasses([...initCssClasses, cssClassForAdding]);\r\n }, 200);\r\n \r\n return () => {\r\n clearTimeout(timeoutId);\r\n };\r\n }, [isLoading]);\r\n\r\n return (\r\n \r\n
{text}
\r\n
\r\n );\r\n}\r\n","import React, { forwardRef } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {toAbsoluteUrl} from \"../../_helpers\";\r\n\r\nexport const Notice = forwardRef(\r\n (\r\n {\r\n icon,\r\n svg,\r\n iconRef,\r\n textRef,\r\n iconWrapperRef,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n return (\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// Set display name for debugging.\r\nif (process.env.NODE_ENV !== \"production\") {\r\n Notice.displayName = \"Notice\";\r\n}\r\n","import React from \"react\";\r\nimport { ProgressBar } from \"react-bootstrap\";\r\n\r\nexport function ModalProgressBar({variant = \"success\"}) {\r\n return (\r\n \r\n );\r\n}\r\n","// Forms\r\nexport {DatePickerField} from \"./forms/DatePickerField\";\r\nexport {FieldFeedbackLabel} from \"./forms/FieldFeedbackLabel\";\r\nexport {FormAlert} from \"./forms/FormAlert\";\r\nexport {Input} from \"./forms/Input\";\r\nexport {Select} from \"./forms/Select\";\r\nexport {Checkbox} from \"./forms/Checkbox\";\r\nexport {HeaderCheckbox} from \"./forms/HeaderCheckbox\";\r\n\r\n\r\n// Paginations\r\nexport {Pagination} from \"./pagination/Pagination\"\r\nexport {PaginationLinks} from \"./pagination/PaginationLinks\";\r\nexport {PaginationToolbar} from \"./pagination/PaginationToolbar\";\r\n\r\n// Controls\r\nexport * from \"./Card\";\r\nexport {default as AnimateLoading} from \"./AnimateLoading\";\r\nexport {LoadingDialog} from \"./LoadingDialog\";\r\nexport {Notice} from \"./Notice\";\r\nexport {SplashScreen} from \"./SplashScreen\";\r\nexport {SVGIcon} from \"./SVGIcon\";\r\nexport {ModalProgressBar} from \"./ModalProgressBar\";","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport { DropdownCustomToggler, DropdownMenu2 } from \"../../dropdowns\";\r\nimport { useHtmlClassService } from \"../../../layout\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function MixedWidget4({\r\n className,\r\n chartColor = \"primary\",\r\n customColor = \"#ffffff\",\r\n bgColor = \"dark\",\r\n iconUrl = \"/media/svg/icons/Layout/Layout-4-blocks.svg\",\r\n chartId,\r\n title,\r\n totalCount,\r\n currentState,\r\n data,\r\n labels,\r\n maxValue = 100,\r\n showAll = false\r\n}) {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n colorsGrayGray500: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray400\"\r\n ),\r\n colorsGrayGray200: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray200\"\r\n ),\r\n colorsThemeBaseColor: objectPath.get(\r\n uiService.config,\r\n `js.colors.theme.base.${chartColor}`\r\n ),\r\n colorsThemeLightColor: objectPath.get(\r\n uiService.config,\r\n `js.colors.theme.light.${chartColor}`\r\n ),\r\n fontFamily: objectPath.get(uiService.config, \"js.fontFamily\"),\r\n };\r\n }, [uiService, chartColor]);\r\n\r\n useEffect(() => {\r\n debugger\r\n const element = document.getElementById(chartId);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const options = getChartOption(layoutProps, data, labels, title, maxValue, customColor);\r\n const chart = new ApexCharts(element, options);\r\n chart.render();\r\n return function cleanUp() {\r\n chart.destroy();\r\n };\r\n }, [layoutProps]);\r\n\r\n return (\r\n <>\r\n {/* begin::Tiles Widget 1 */}\r\n \r\n {/* begin::Header */}\r\n
\r\n
\r\n

\r\n {totalCount} نفر\r\n

\r\n \r\n {title}\r\n \r\n {/* \r\n {title}\r\n */}\r\n
\r\n\r\n
\r\n \r\n \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::Header */}\r\n\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Chart */}\r\n \r\n {/* end::Chart */}\r\n\r\n {/* begin::Stats */}\r\n\r\n {showAll &&\r\n
\r\n
\r\n\r\n
\r\n
\r\n جمع همه\r\n
\r\n
{totalCount}
\r\n
\r\n\r\n {labels.map((item, index) =>\r\n
\r\n
\r\n {item}\r\n
\r\n
{data[index]}
\r\n
\r\n )}\r\n
\r\n
\r\n }\r\n {/* end::Stats */}\r\n\r\n
\r\n\r\n {/* end::Body */}\r\n \r\n {/* end::Tiles Widget 1 */}\r\n \r\n );\r\n}\r\n\r\nfunction getChartOption(layoutProps, data, labels, title, maxValue, customColor) {\r\n const options = {\r\n series: [\r\n {\r\n name: title,\r\n data: data,\r\n },\r\n // {\r\n // name: \"Revenue\",\r\n // data: data,\r\n // },\r\n ],\r\n\r\n chart: {\r\n type: \"bar\",\r\n height: \"160px\",\r\n toolbar: {\r\n show: false,\r\n },\r\n sparkline: {\r\n enabled: true,\r\n },\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: false,\r\n columnWidth: [\"30%\"],\r\n endingShape: \"rounded\",\r\n },\r\n },\r\n legend: {\r\n show: false,\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: [\"transparent\"],\r\n },\r\n xaxis: {\r\n categories: labels,\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n },\r\n },\r\n yaxis: {\r\n min: 0,\r\n max: { maxValue },\r\n labels: {\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n },\r\n },\r\n fill: {\r\n type: [\"solid\"],\r\n opacity: [0.8],\r\n // type: [\"solid\", \"solid\"],\r\n // opacity: [0.8, 0.4],\r\n },\r\n states: {\r\n normal: {\r\n filter: {\r\n type: \"none\",\r\n value: 0,\r\n },\r\n },\r\n hover: {\r\n filter: {\r\n type: \"none\",\r\n value: 0,\r\n },\r\n },\r\n active: {\r\n allowMultipleDataPointsSelection: false,\r\n filter: {\r\n type: \"none\",\r\n value: 0,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n style: {\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n y: {\r\n formatter: function (val) {\r\n return val + \" نفر\";\r\n },\r\n },\r\n marker: {\r\n show: false,\r\n },\r\n },\r\n colors: [customColor],\r\n grid: {\r\n borderColor: layoutProps.colorsGrayGray200,\r\n strokeDashArray: 4,\r\n yaxis: {\r\n lines: {\r\n show: true,\r\n },\r\n },\r\n padding: {\r\n left: 20,\r\n right: 20,\r\n },\r\n },\r\n };\r\n return options;\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport Brightness1 from '@material-ui/icons/Brightness1';\r\nimport objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport { DropdownCustomToggler, DropdownMenu2 } from \"../../dropdowns\";\r\nimport { useHtmlClassService } from \"../../../layout\";\r\n\r\nexport const barColors = [\"#ffffff\", \"#0acc4b\", \"#e7403a\", \"#07b8e4\", \"#F1AE15\", \"#4A7DFF\", \"#b121ce\"]\r\n\r\nexport function MixedWidget6({ className, chartColor = \"primary\", currentState, fullData, title, chartId, labels, dataActive, dataPresent, dataAbsent, totalAbsent, dataJustify, dataNotActive, dataMore3Present, dataMore3Absent }) {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n colorsGrayGray500: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray500\"\r\n ),\r\n colorsGrayGray200: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray200\"\r\n ),\r\n colorsThemeBaseColor: objectPath.get(\r\n uiService.config,\r\n `js.colors.theme.base.${chartColor}`\r\n ),\r\n colorsThemeLightColor: objectPath.get(\r\n uiService.config,\r\n `js.colors.theme.light.${chartColor}`\r\n ),\r\n fontFamily: objectPath.get(uiService.config, \"js.fontFamily\"),\r\n };\r\n }, [uiService, chartColor]);\r\n\r\n useEffect(() => {\r\n debugger\r\n const element = document.getElementById(chartId);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const options = getChartOption(layoutProps, labels, dataActive, dataPresent, dataAbsent, dataJustify, dataNotActive, dataMore3Present, dataMore3Absent);\r\n const chart = new ApexCharts(element, options);\r\n chart.render();\r\n return function cleanUp() {\r\n chart.destroy();\r\n };\r\n }, [layoutProps]);\r\n\r\n const columns = [\r\n {\r\n dataField: \"dormTitle\",\r\n text: \"خوابگاه\",\r\n },\r\n {\r\n dataField: \"userActive\",\r\n text: \"تردد امروز\",\r\n // style: { color: barColors[0] }\r\n },\r\n {\r\n dataField: \"userPresent\",\r\n text: \"حاضرین\",\r\n style: { color: barColors[1] }\r\n },\r\n {\r\n dataField: \"userAbsent\",\r\n text: \"غائبین\",\r\n style: { color: barColors[2] }\r\n },\r\n {\r\n dataField: \"userAbsentJustify\",\r\n text: \"غائبین موجه\",\r\n style: { color: barColors[3] }\r\n },\r\n {\r\n dataField: \"userNotTrafficToday\",\r\n text: \"امروز تردد نداشته اند\",\r\n style: { color: barColors[4] }\r\n },\r\n {\r\n dataField: \"userPresentMore3Day\",\r\n text: \"بیش از 3 روز حاضر\",\r\n style: { color: barColors[5] }\r\n },\r\n {\r\n dataField: \"userAbsentMore3Day\",\r\n text: \"بیش از 3 روز غائب\",\r\n style: { color: barColors[6] }\r\n },\r\n\r\n ];\r\n\r\n\r\n return (\r\n <>\r\n {/* begin::Tiles Widget 1 */}\r\n \r\n {/* begin::Header */}\r\n
\r\n

\r\n {title}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n تردد امروز\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n حاضرین\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n غائبین\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n غائبین موجه\r\n \r\n
\r\n
\r\n \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 روز حاضر\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n بیش از 3 روز غائب\r\n \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::Header */}\r\n\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Chart */}\r\n \r\n {/* end::Chart */}\r\n\r\n
\r\n
\r\n\r\n {/*
\r\n
\r\n جمع غائبین\r\n
\r\n
{totalAbsent}
\r\n
\r\n\r\n {labels.map((item, index) =>\r\n
\r\n
\r\n {item}\r\n
\r\n
{dataAbsent[index]}
\r\n
\r\n )} */}\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n {/* end::Body */}\r\n \r\n {/* end::Tiles Widget 1 */}\r\n \r\n );\r\n}\r\n\r\nfunction getChartOption(layoutProps, labels, dataActive, dataPresent, dataAbsent, dataJustify, dataNotActive, dataMore3Present, dataMore3Absent) {\r\n const options = {\r\n series: [\r\n {\r\n name: \"تردد امروز\",\r\n data: dataActive,\r\n },\r\n {\r\n name: \"حاضرین\",\r\n data: dataPresent,\r\n },\r\n {\r\n name: \"غائبین\",\r\n data: dataAbsent,\r\n },\r\n {\r\n name: \"غائبین موجه\",\r\n data: dataJustify,\r\n },\r\n {\r\n name: \"امروز تردد نداشته اند\",\r\n data: dataNotActive,\r\n },\r\n {\r\n name: \"بیش از 3 روز حاضر\",\r\n data: dataMore3Present,\r\n },\r\n {\r\n name: \"بیش از 3 روز غائب\",\r\n data: dataMore3Absent,\r\n },\r\n ],\r\n chart: {\r\n type: \"bar\",\r\n height: \"200px\",\r\n toolbar: {\r\n show: false,\r\n offsetX: 0,\r\n offsetY: 0,\r\n tools: {\r\n download: true,\r\n selection: true,\r\n zoom: true,\r\n zoomin: true,\r\n zoomout: true,\r\n pan: true,\r\n reset: true | '',\r\n customIcons: []\r\n },\r\n export: {\r\n csv: {\r\n filename: undefined,\r\n columnDelimiter: ',',\r\n headerCategory: 'category',\r\n headerValue: 'value',\r\n dateFormatter(timestamp) {\r\n return new Date(timestamp).toDateString()\r\n }\r\n },\r\n svg: {\r\n filename: undefined,\r\n },\r\n png: {\r\n filename: undefined,\r\n }\r\n },\r\n autoSelected: 'zoom'\r\n },\r\n sparkline: {\r\n enabled: true,\r\n },\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: false,\r\n columnWidth: [\"30%\"],\r\n endingShape: \"rounded\",\r\n },\r\n },\r\n legend: {\r\n show: false,\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: [\"transparent\"],\r\n },\r\n xaxis: {\r\n categories: labels,\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n },\r\n },\r\n yaxis: {\r\n min: 0,\r\n max: 80,\r\n labels: {\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n },\r\n },\r\n fill: {\r\n type: [\"solid\", \"solid\", \"solid\", \"solid\", \"solid\", \"solid\", \"solid\"],\r\n opacity: [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6],\r\n },\r\n states: {\r\n normal: {\r\n filter: {\r\n type: \"none\",\r\n value: 0,\r\n },\r\n },\r\n hover: {\r\n filter: {\r\n type: \"none\",\r\n value: 0,\r\n },\r\n },\r\n active: {\r\n allowMultipleDataPointsSelection: false,\r\n filter: {\r\n type: \"none\",\r\n value: 0,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n style: {\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n y: {\r\n formatter: function (val) {\r\n return val + \" نفر\";\r\n },\r\n },\r\n marker: {\r\n show: false,\r\n },\r\n },\r\n colors: barColors,\r\n grid: {\r\n borderColor: layoutProps.colorsGrayGray200,\r\n strokeDashArray: 4,\r\n yaxis: {\r\n lines: {\r\n show: true,\r\n },\r\n },\r\n padding: {\r\n left: 20,\r\n right: 20,\r\n },\r\n },\r\n };\r\n return options;\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { DropdownCustomToggler, DropdownMenu1 } from \"../../dropdowns\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function ListsWidget14({ className }) {\r\n return (\r\n <>\r\n {/* begin::List Widget 14 */}\r\n
\r\n {/* begin::Header */}\r\n
\r\n

\r\n Market Leaders\r\n

\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::Header */}\r\n\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Item */}\r\n
\r\n {/* begin::Symbol */}\r\n
\r\n
\r\n
\r\n {/* end::Symbol */}\r\n\r\n {/* begin::Title */}\r\n
\r\n \r\n Cup & Green\r\n \r\n \r\n Local, clean & environmental\r\n \r\n \r\n Created by:{\" \"}\r\n CoreAd\r\n \r\n
\r\n {/* end::Title */}\r\n\r\n {/* begin::Info */}\r\n
\r\n
\r\n \r\n 24,900\r\n \r\n \r\n votes\r\n \r\n
\r\n
\r\n {/* end::Info */}\r\n
\r\n {/* end::Item */}\r\n\r\n {/* begin: Item */}\r\n
\r\n {/* begin::Symbol */}\r\n
\r\n
\r\n
\r\n {/* end::Symbol */}\r\n\r\n {/* begin::Title */}\r\n
\r\n \r\n Yellow Background\r\n \r\n \r\n Strong abstract concept\r\n \r\n \r\n Created by:{\" \"}\r\n \r\n KeenThemes\r\n \r\n \r\n
\r\n {/* end::Title */}\r\n\r\n {/* begin::Info */}\r\n
\r\n
\r\n \r\n 70,380\r\n \r\n \r\n votes\r\n \r\n
\r\n
\r\n {/* end::Info */}\r\n
\r\n {/* end: Item */}\r\n\r\n {/* begin::Item */}\r\n
\r\n {/* begin::Symbol */}\r\n
\r\n
\r\n
\r\n {/* end::Symbol */}\r\n\r\n {/* begin::Title */}\r\n
\r\n \r\n Nike & Blue\r\n \r\n \r\n Footwear overalls\r\n \r\n \r\n Created by:{\" \"}\r\n \r\n Invision Inc.\r\n \r\n \r\n
\r\n {/* end::Title */}\r\n\r\n {/* begin::Info */}\r\n
\r\n
\r\n \r\n 7,200\r\n \r\n \r\n votes\r\n \r\n
\r\n
\r\n {/* end::Info */}\r\n \r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n
\r\n {/* begin::Symbol */}\r\n
\r\n
\r\n
\r\n {/* end::Symbol */}\r\n\r\n {/* begin::Title */}\r\n
\r\n \r\n Desserts platter\r\n \r\n \r\n Food trends & reviews\r\n \r\n \r\n Created by:{\" \"}\r\n \r\n Figma Studio\r\n \r\n \r\n
\r\n {/* end::Title */}\r\n\r\n {/* begin::Info */}\r\n
\r\n
\r\n \r\n 36,450\r\n \r\n \r\n votes\r\n \r\n
\r\n
\r\n {/* end::Info */}\r\n \r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n
\r\n {/* begin::Symbol */}\r\n
\r\n
\r\n
\r\n {/* end::Symbol */}\r\n\r\n {/* begin::Title */}\r\n
\r\n \r\n Cup & Green\r\n \r\n \r\n Local, clean & environmental\r\n \r\n \r\n Created by:{\" \"}\r\n CoreAd\r\n \r\n
\r\n {/* end::Title */}\r\n\r\n {/* begin::Info */}\r\n
\r\n
\r\n \r\n 23,900\r\n \r\n \r\n votes\r\n \r\n
\r\n
\r\n {/* end::Info */}\r\n \r\n {/* end::Item */}\r\n \r\n {/* end::Body */}\r\n \r\n {/* end::List Widget 14 */}\r\n \r\n );\r\n}\r\n","// Mixed\r\nexport { MixedWidget1 } from \"./mixed/MixedWidget1\";\r\nexport { MixedWidget4 } from \"./mixed/MixedWidget4\";\r\nexport { MixedWidget6 } from \"./mixed/MixedWidget6\";\r\nexport { MixedWidget10 } from \"./mixed/MixedWidget10\";\r\nexport { MixedWidget11 } from \"./mixed/MixedWidget11\";\r\nexport { MixedWidget12 } from \"./mixed/MixedWidget12\";\r\nexport { MixedWidget14 } from \"./mixed/MixedWidget14\";\r\n\r\n// Lists\r\nexport { ListsWidget1 } from \"./lists/ListsWidget1\";\r\nexport { ListsWidget3 } from \"./lists/ListsWidget3\";\r\nexport { ListsWidget4 } from \"./lists/ListsWidget4\";\r\nexport { ListsWidget8 } from \"./lists/ListsWidget8\";\r\nexport { ListsWidget9 } from \"./lists/ListsWidget9\";\r\nexport { ListsWidget10 } from \"./lists/ListsWidget10\";\r\nexport { ListsWidget11 } from \"./lists/ListsWidget11\";\r\nexport { ListsWidget14 } from \"./lists/ListsWidget14\";\r\n\r\n// Stats\r\nexport { StatsWidget10 } from \"./stats/StatsWidget10\";\r\nexport { StatsWidget11 } from \"./stats/StatsWidget11\";\r\nexport { StatsWidget12 } from \"./stats/StatsWidget12\";\r\n\r\n// Base tables\r\nexport { BaseTablesWidget1 } from \"./base-tables/BaseTablesWidget1\";\r\nexport { BaseTablesWidget2 } from \"./base-tables/BaseTablesWidget2\";\r\nexport { BaseTablesWidget6 } from \"./base-tables/BaseTablesWidget6\";\r\n\r\n// Advance tables\r\nexport { AdvanceTablesWidget1 } from \"./advance-tables/AdvanceTablesWidget1\";\r\nexport { AdvanceTablesWidget2 } from \"./advance-tables/AdvanceTablesWidget2\";\r\nexport { AdvanceTablesWidget4 } from \"./advance-tables/AdvanceTablesWidget4\";\r\nexport { AdvanceTablesWidget9 } from \"./advance-tables/AdvanceTablesWidget9\";\r\n\r\n// Tiles\r\nexport { TilesWidget1 } from \"./tiles/TilesWidget1\";\r\nexport { TilesWidget3 } from \"./tiles/TilesWidget3\";\r\nexport { TilesWidget10 } from \"./tiles/TilesWidget10\";\r\nexport { TilesWidget11 } from \"./tiles/TilesWidget11\";\r\nexport { TilesWidget12 } from \"./tiles/TilesWidget12\";\r\nexport { TilesWidget13 } from \"./tiles/TilesWidget13\";\r\nexport { TilesWidget14 } from \"./tiles/TilesWidget14\";\r\n","import objectPath from \"object-path\";\r\nimport {toAbsoluteUrl} from \"../../_helpers\";\r\n\r\nexport class HtmlClassService {\r\n // Public properties\r\n config;\r\n classes;\r\n attributes;\r\n\r\n /**\r\n * Build html element classes from layout config\r\n * @param layoutConfig\r\n */\r\n setConfig(layoutConfig) {\r\n this.config = this.preInit(layoutConfig);\r\n\r\n // scope list of classes\r\n this.classes = {\r\n header: [],\r\n header_container: [],\r\n header_mobile: [],\r\n header_menu: [],\r\n aside: [],\r\n aside_menu: [],\r\n subheader: [],\r\n subheader_container: [],\r\n content: [],\r\n content_container: [],\r\n footer_container: []\r\n };\r\n\r\n this.attributes = {\r\n aside_menu: {},\r\n header_mobile: {},\r\n header_menu: {}\r\n };\r\n\r\n // init base layout\r\n this.initLoader();\r\n this.initLayout();\r\n\r\n // init header and subheader menu\r\n this.initHeader();\r\n this.initSubheader();\r\n\r\n this.initContent();\r\n // init aside and aside menu\r\n this.initAside();\r\n\r\n // init footer\r\n this.initFooter();\r\n }\r\n\r\n preInit(layoutConfig) {\r\n const updateLayoutConfig = Object.assign({}, layoutConfig);\r\n const subheaderFixed = objectPath.get(layoutConfig, \"subheader.fixed\");\r\n if (subheaderFixed) {\r\n updateLayoutConfig.subheader.style = \"solid\";\r\n } else {\r\n updateLayoutConfig.subheader.fixed = false;\r\n }\r\n return updateLayoutConfig;\r\n }\r\n\r\n /**\r\n * Returns Classes\r\n *\r\n * @param path: string\r\n * @param toString boolean\r\n */\r\n getClasses(path, toString) {\r\n if (path) {\r\n const classes = objectPath.get(this.classes, path) || \"\";\r\n if (toString && Array.isArray(classes)) {\r\n return classes.join(\" \");\r\n }\r\n return classes.toString();\r\n }\r\n return this.classes;\r\n }\r\n\r\n getAttributes(path) {\r\n if (path) {\r\n const attributes = objectPath.get(this.attributes, path) || [];\r\n return attributes;\r\n }\r\n return [];\r\n }\r\n\r\n getLogo() {\r\n const brandSkin = objectPath.get(this.config, \"brand.self.theme\");\r\n if (brandSkin === \"light\") {\r\n return toAbsoluteUrl(\"images/Logo/CullinanLogo.png\");\r\n } else {\r\n return toAbsoluteUrl(\"images/Logo/CullinanLogo.png\");\r\n }\r\n }\r\n\r\n getStickyLogo() {\r\n let logo = objectPath.get(this.config, \"self.logo.sticky\");\r\n if (typeof logo === \"undefined\") {\r\n logo = this.getLogo();\r\n }\r\n return logo + \"\";\r\n }\r\n\r\n /**\r\n * Init Layout\r\n */\r\n initLayout() {\r\n const selfBodyBackgroundImage = objectPath.get(this.config, \"self.body.backgroundImage\");\r\n if (selfBodyBackgroundImage) {\r\n const backgroundImageUrl = `${toAbsoluteUrl(\"/media/\" + selfBodyBackgroundImage)}`;\r\n document.body.style.backgroundImage = `url(\"${backgroundImageUrl}\")`;\r\n }\r\n\r\n const _selfBodyClass = objectPath.get(this.config, \"self.body.class\");\r\n if (_selfBodyClass) {\r\n const bodyClasses = _selfBodyClass.toString().split(\" \");\r\n bodyClasses.forEach(cssClass => document.body.classList.add(cssClass));\r\n }\r\n }\r\n\r\n /**\r\n * Init Loader\r\n */\r\n initLoader() {}\r\n\r\n /**\r\n * Init Header\r\n */\r\n initHeader() {\r\n const headerSelfFixedMobile = objectPath.get(this.config, \"header.self.fixed.mobile\");\r\n if (headerSelfFixedMobile) {\r\n document.body.classList.add(\"header-mobile-fixed\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Subheader\r\n */\r\n initSubheader() {\r\n const subheaderDisplay = objectPath.get(this.config, \"subheader.display\");\r\n if (subheaderDisplay) {\r\n document.body.classList.add(\"subheader-enabled\");\r\n } else {\r\n return;\r\n }\r\n\r\n // Fixed content head\r\n const subheaderFixed = objectPath.get(this.config, \"subheader.fixed\");\r\n if (subheaderFixed ) {\r\n document.body.classList.add(\"subheader-fixed\");\r\n }\r\n\r\n const subheaderStyle = objectPath.get(this.config, \"subheader.style\");\r\n if (subheaderStyle) {\r\n const subheaderClass = `subheader-${subheaderStyle}`;\r\n objectPath.push(this.classes, \"subheader\", subheaderClass);\r\n }\r\n\r\n const subheaderWidth = objectPath.get(this.config, \"subheader.width\");\r\n if (subheaderWidth === \"fluid\") {\r\n objectPath.push(this.classes, \"subheader_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"subheader_container\", \"container\");\r\n }\r\n\r\n const subheaderClear = objectPath.get(this.config, \"subheader.clear\");\r\n if (subheaderClear) {\r\n objectPath.push(this.classes, \"subheader\", \"mb-0\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Content\r\n */\r\n initContent() {\r\n if (objectPath.get(this.config, \"content.fit-top\")) {\r\n objectPath.push(this.classes, \"content\", \"pt-0\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"content.fit-bottom\")) {\r\n objectPath.push(this.classes, \"content\", \"pb-0\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"content.width\") === \"fluid\") {\r\n objectPath.push(this.classes, \"content_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"content_container\", \"container\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Aside\r\n */\r\n initAside() {\r\n // Check Aside\r\n const asideSelfDisplay = objectPath.get(this.config, \"aside.self.display\");\r\n if (!asideSelfDisplay) {\r\n return;\r\n }\r\n\r\n // Enable Aside\r\n document.body.classList.add(\"aside-enabled\");\r\n\r\n // Fixed Aside\r\n const asideSelfFixed = objectPath.get(this.config, \"aside.self.fixed\");\r\n if (asideSelfFixed) {\r\n document.body.classList.add(\"aside-fixed\");\r\n objectPath.push(this.classes, \"aside\", \"aside-fixed\");\r\n } else {\r\n document.body.classList.add(\"aside-static\");\r\n }\r\n\r\n\t\t// Aside Secondary\r\n const asideSecondaryDisplay = objectPath.get(this.config, \"aside.secondary.display\");\r\n if (asideSecondaryDisplay) {\r\n document.body.classList.add(\"aside-secondary-enabled\");\r\n } else {\r\n document.body.classList.add(\"aside-secondary-disabled\");\r\n }\r\n\r\n // Check Aside\r\n if (!asideSelfDisplay) {\r\n return;\r\n }\r\n\r\n // Default fixed\r\n const asideSelfMinimizeDefault = objectPath.get(this.config, \"aside.self.minimize.default\");\r\n if (asideSelfMinimizeDefault) {\r\n document.body.classList.add(\"aside-minimize\");\r\n }\r\n\r\n // Menu\r\n // Dropdown Submenu\r\n const asideMenuDropdown = objectPath.get(this.config, \"aside.menu.dropdown\");\r\n if (asideMenuDropdown) {\r\n objectPath.push(this.classes, \"aside_menu\", \"aside-menu-dropdown\");\r\n this.attributes.aside_menu[\"data-menu-dropdown\"] = \"1\";\r\n }\r\n\r\n // Scrollable Menu\r\n this.attributes.aside_menu[\"data-menu-scroll\"] = asideMenuDropdown ? \"0\" : \"1\";\r\n\r\n const asideSubmenuDHoverTimeout = objectPath.get(\r\n this.config,\r\n \"aside.menu.submenu.dropdown.hover-timeout\"\r\n );\r\n if (asideSubmenuDHoverTimeout) {\r\n this.attributes.aside_menu[\r\n \"data-menu-dropdown-timeout\"\r\n ] = asideSubmenuDHoverTimeout;\r\n }\r\n }\r\n\r\n /**\r\n * Init Footer\r\n */\r\n initFooter() {\r\n const footerFixed = objectPath.get(this.config, \"footer.fixed\");\r\n if (footerFixed) {\r\n document.body.classList.add(\"footer-fixed\");\r\n objectPath.push(this.classes, \"footer\", \"bg-white\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"footer.width\") === \"fluid\") {\r\n objectPath.push(this.classes, \"footer_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"footer_container\", \"container\");\r\n }\r\n }\r\n}\r\n","import React, { createContext, useContext, useMemo } from \"react\";\r\nimport { getInitLayoutConfig } from \"./LayoutConfig\";\r\nimport { HtmlClassService } from \"./HTMLClassService\";\r\n\r\nconst LAYOUT_CONFIG_KEY =\r\n process.env.REACT_APP_LAYOUT_CONFIG_KEY || \"LayoutConfig\";\r\n\r\nfunction getConfig() {\r\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY);\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls);\r\n } catch (er) {\r\n console.error(er);\r\n }\r\n }\r\n return getInitLayoutConfig();\r\n}\r\n\r\n// Side effect\r\nexport function setLayoutConfig(config) {\r\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config));\r\n window.location.reload();\r\n}\r\n\r\nconst HtmlClassServiceContext = createContext();\r\n\r\n/**\r\n *\r\n *\r\n * @export\r\n * @returns Layout context from 'localStorage'\r\n */\r\nexport function useHtmlClassService() {\r\n return useContext(HtmlClassServiceContext);\r\n}\r\n\r\nexport function withHtmlClassService(Component) {\r\n class WithHtmlClassService extends React.Component {\r\n static displayName = `WithHtmlClassService(${Component.displayName ||\r\n Component.name})`;\r\n\r\n static contextType = HtmlClassServiceContext;\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return WithHtmlClassService;\r\n}\r\n\r\nexport const HtmlClassServiceConsumer = HtmlClassServiceContext.Consumer;\r\n\r\nexport function BaseLayoutProvider({ children }) {\r\n const lc = useMemo(getConfig, []);\r\n const hcs = useMemo(() => {\r\n const service = new HtmlClassService();\r\n\r\n service.setConfig(lc);\r\n\r\n return service;\r\n }, [lc]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import { toAbsoluteUrl } from \"../../_helpers\";\r\nexport function getInitLayoutConfig() {\r\n return {\r\n demo: \"Kherad\",\r\n // Javascript Settings\r\n js: {\r\n breakpoints: {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1200,\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n white: \"#ffffff\",\r\n primary: \"#1BC5BD\",\r\n secondary: \"#E5EAEE\",\r\n success: \"#1BC5BD\",\r\n info: \"#6993FF\",\r\n warning: \"#FFA800\",\r\n danger: \"#F64E60\",\r\n light: \"#F3F6F9\",\r\n dark: \"#212121\",\r\n },\r\n light: {\r\n white: \"#ffffff\",\r\n primary: \"#1BC5BD\",\r\n secondary: \"#ECF0F3\",\r\n success: \"#C9F7F5\",\r\n info: \"#E1E9FF\",\r\n warning: \"#FFF4DE\",\r\n danger: \"#FFE2E5\",\r\n light: \"#F3F6F9\",\r\n dark: \"#D6D6E0\",\r\n },\r\n inverse: {\r\n white: \"#ffffff\",\r\n primary: \"#ffffff\",\r\n secondary: \"#212121\",\r\n success: \"#ffffff\",\r\n info: \"#ffffff\",\r\n warning: \"#ffffff\",\r\n danger: \"#ffffff\",\r\n light: \"#464E5F\",\r\n dark: \"#ffffff\",\r\n },\r\n },\r\n gray: {\r\n gray100: \"#F3F6F9\",\r\n gray200: \"#ECF0F3\",\r\n gray300: \"#E5EAEE\",\r\n gray400: \"#D6D6E0\",\r\n gray500: \"#B5B5C3\",\r\n gray600: \"#80808F\",\r\n gray700: \"#464E5F\",\r\n gray800: \"#1B283F\",\r\n gray900: \"#212121\",\r\n },\r\n },\r\n // fontFamily: \"Poppins\",\r\n fontFamily: 'SANS',\r\n },\r\n // Base Settins\r\n self: {\r\n layout: \"default\", // blank/default page mode\r\n body: {},\r\n },\r\n // == Page Splash Screen loading\r\n loader: {\r\n enabled: true,\r\n type: \"\", // default|spinner-message|spinner-logo\r\n logo: toAbsoluteUrl(\"/media/logos/logo-dark-sm.png\"),\r\n message: \"Please wait...\",\r\n },\r\n header: {\r\n self: {\r\n fixed: {\r\n mobile: true,\r\n },\r\n }\r\n },\r\n subheader: {\r\n display: true,\r\n displayDesc: false,\r\n displayDaterangepicker: true,\r\n breadcrumb: {\r\n display: true,\r\n },\r\n layout: \"subheader-v6\",\r\n fixed: false,\r\n width: \"fixed\", // fixed/fluid,\r\n clear: false,\r\n style: \"transparent\", // solid/transparent\r\n },\r\n content: {\r\n width: \"fixed\", // fluid|fixed\r\n },\r\n aside: {\r\n self: {\r\n display: true,\r\n fixed: true,\r\n minimize: {\r\n toggle: true,\r\n default: false\r\n }\r\n },\r\n secondary: {\r\n display: true\r\n },\r\n menu: {\r\n dropdown: false, // ok\r\n scroll: false, // ok\r\n \"icon-style\": \"duotone\", // duotone, line, bold, solid\r\n submenu: {\r\n accordion: true,\r\n },\r\n },\r\n },\r\n footer: {\r\n width: \"fixed\", // fixed|fluid\r\n fixed: false\r\n },\r\n extras: {\r\n search: {\r\n display: false,\r\n layout: \"offcanvas\", // offcanvas, dropdown\r\n offcanvas: {\r\n direction: \"right\",\r\n },\r\n },\r\n notifications: {\r\n display: false,\r\n layout: \"offcanvas\", // offcanvas, dropdown\r\n dropdown: {\r\n style: \"dark\", // light, dark\r\n },\r\n offcanvas: {\r\n direction: \"right\",\r\n },\r\n },\r\n \"quick-actions\": {\r\n display: true,\r\n layout: \"offcanvas\", // offcanvas, dropdown,\r\n dropdown: {\r\n style: \"dark\", // light, dark\r\n },\r\n offcanvas: {\r\n direction: \"left\",\r\n },\r\n },\r\n cart: {\r\n display: false,\r\n layout: \"dropdown\", // offcanvas, dropdown\r\n offcanvas: {\r\n direction: \"dark\", // ligth, dark\r\n },\r\n },\r\n chat: {\r\n display: true,\r\n },\r\n user: {\r\n display: true,\r\n layout: \"offcanvas\", // offcanvas, dropdown\r\n dropdown: {\r\n style: \"light\", // light|dark\r\n },\r\n offcanvas: {\r\n direction: \"left\",\r\n },\r\n },\r\n languages: {\r\n display: false,\r\n },\r\n \"quick-panel\": {\r\n display: true,\r\n offcanvas: {\r\n direction: \"left\",\r\n },\r\n },\r\n\r\n toolbar: {\r\n display: true,\r\n },\r\n scrolltop: {\r\n display: true,\r\n },\r\n },\r\n };\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport objectPath from \"object-path\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\nimport { useHtmlClassService } from \"../../_core/BaseLayout\";\r\n\r\nexport function HeaderMobile() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n asideDisplay: objectPath.get(uiService.config, \"aside.self.display\"),\r\n headerMobileCssClasses: uiService.getClasses(\"header_mobile\", true),\r\n headerMobileAttributes: uiService.getAttributes(\"header_mobile\"),\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {/*begin::Header Mobile*/}\r\n \r\n {/* begin::Logo */}\r\n \r\n \r\n \r\n {/* end::Logo */}\r\n\r\n {/* begin::Toolbar */}\r\n
\r\n {layoutProps.asideDisplay && (\r\n \r\n \r\n \r\n )}\r\n
\r\n {/* end::Toolbar */}\r\n \r\n {/* end::Header Mobile */}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport LocalConvenienceStoreTwoToneIcon from \"@material-ui/icons/LocalConvenienceStoreTwoTone\";\r\nimport SportsVolleyballTwoToneIcon from \"@material-ui/icons/SportsVolleyballTwoTone\";\r\nimport ReceiptTwoToneIcon from \"@material-ui/icons/ReceiptTwoTone\";\r\nimport KitchenTwoToneIcon from \"@material-ui/icons/KitchenTwoTone\";\r\nimport MonetizationOnTwoToneIcon from \"@material-ui/icons/MonetizationOnTwoTone\";\r\nimport SportsTwoToneIcon from \"@material-ui/icons/SportsTwoTone\";\r\nimport EqualizerTwoToneIcon from \"@material-ui/icons/EqualizerTwoTone\";\r\nimport AccessTimeTwoToneIcon from \"@material-ui/icons/AccessTimeTwoTone\";\r\nimport PlaylistAddCheckTwoToneIcon from \"@material-ui/icons/PlaylistAddCheckTwoTone\";\r\nimport CreditCardTwoToneIcon from \"@material-ui/icons/CreditCardTwoTone\";\r\nimport PeopleAltTwoToneIcon from \"@material-ui/icons/PeopleAltTwoTone\";\r\nimport FingerprintTwoToneIcon from '@material-ui/icons/FingerprintTwoTone';\r\n\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\n\r\nexport const MenuIcons = (iconUrl) => {\r\n iconUrl = iconUrl.toLowerCase();\r\n let iconKey = \"\";\r\n\r\n // console.log(iconUrl);\r\n\r\n if (iconUrl.startsWith(\"mui:\")) {\r\n iconKey = iconUrl.replace(\"mui:\", \"\");\r\n // console.log(iconKey);\r\n\r\n if (iconKey === \"salon\") return ;\r\n else if (iconKey === \"sport\") return ;\r\n else if (iconKey === \"price\") return ;\r\n else if (iconKey === \"contract\") return ;\r\n else if (iconKey === \"teacher\") return ;\r\n else if (iconKey === \"subgroup\") return ;\r\n else if (iconKey === \"sans\") return ;\r\n else if (iconKey === \"report\") return ;\r\n else if (iconKey === \"closet\") return ;\r\n else if (iconKey === \"credit\") return ;\r\n else if (iconKey === \"reserve\") return ;\r\n else if (iconKey === \"fingerprint\") return ;\r\n } else {\r\n return ;\r\n }\r\n};\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { useLocation } from \"react-router\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl, checkIsActive } from \"../../../../_helpers\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { MenuIcons } from \"./MenuIcons\";\r\n\r\nexport const AsideMenuList = ({ layoutProps, menuList }) => {\r\n // const [menuList, setMenuList] = React.useState(initialMenus);\r\n\r\n const location = useLocation();\r\n const getMenuItemActive = (url, hasSubmenu = false) => {\r\n return checkIsActive(location, url)\r\n ? ` ${!hasSubmenu && \"menu-item-active\"} menu-item-open `\r\n : \"\";\r\n };\r\n\r\n const getTypeMenu = (item) => {\r\n if (item.parentMenuId === 1) {\r\n if (item.hasSubMenu) {\r\n // console.log(item);\r\n return ;\r\n } else {\r\n if (item.url === \"\") {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n {menuList.map((menu) => getTypeMenu(menu))}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport const MenuItem = ({ menu }) => {\r\n const location = useLocation();\r\n const getMenuItemActive = (url, hasSubmenu = false) => {\r\n return checkIsActive(location, url)\r\n ? ` ${!hasSubmenu && \"menu-item-active\"} menu-item-open `\r\n : \"\";\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {MenuIcons(menu.iconUrl)}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const SubMenuItem = ({ menu }) => {\r\n const location = useLocation();\r\n const getMenuItemActive = (url, hasSubmenu = false) => {\r\n return checkIsActive(location, url)\r\n ? ` ${!hasSubmenu && \"menu-item-active\"} menu-item-open `\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\nexport const SectionMenuItem = ({ menu }) => {\r\n return (\r\n
  • \r\n

    \r\n \r\n

    \r\n \r\n
  • \r\n );\r\n};\r\n\r\nexport const SubMenu = ({ menu, menuList }) => {\r\n const location = useLocation();\r\n const getMenuItemActive = (url, hasSubmenu = false) => {\r\n return checkIsActive(location, url)\r\n ? ` ${!hasSubmenu && \"menu-item-active\"} menu-item-open `\r\n : \"\";\r\n };\r\n\r\n const getTypeMenu = (item) => {\r\n if (item.hasSubMenu) {\r\n return (\r\n q.parentMenuId === item.id)]}\r\n />\r\n );\r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {MenuIcons(menu.iconUrl)}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n
      \r\n
    • \r\n \r\n \r\n \r\n \r\n \r\n
    • \r\n {menuList\r\n .filter((q) => q.parentMenuId === menu.id)\r\n .map((child) => getTypeMenu(child))}\r\n
    \r\n
    \r\n \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // {menu.title}\r\n // \r\n // \r\n\r\n //
    \r\n // \r\n //
      \r\n //
    • \r\n // \r\n // {menu.title}\r\n // \r\n //
    • \r\n\r\n // {\r\n // menuList.filter(q => q.parentMenuId === menu.id).map(child =>\r\n // getTypeMenu(child)\r\n // )\r\n // }\r\n\r\n //
    \r\n //
    \r\n // \r\n );\r\n};\r\n\r\nexport const SubMenuBullet = ({ menu, menuList }) => {\r\n const location = useLocation();\r\n const getMenuItemActive = (url, hasSubmenu = false) => {\r\n return checkIsActive(location, url)\r\n ? ` ${!hasSubmenu && \"menu-item-active\"} menu-item-open `\r\n : \"\";\r\n };\r\n\r\n const getTypeMenu = (item) => {\r\n if (item.hasSubMenu) {\r\n return (\r\n q.parentMenuId === item.id)]}\r\n />\r\n );\r\n } else {\r\n return ;\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 {menuList\r\n .filter((q) => q.parentMenuId === menu.id)\r\n .map((child) => getTypeMenu(child))}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { AsideMenuList } from \"./AsideMenuList\";\r\nimport { useHtmlClassService } from \"../../../_core/BaseLayout\";\r\n\r\nexport function AsideMenu({ isActive,menuList }) {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n layoutConfig: uiService.config,\r\n asideMenuAttr: uiService.getAttributes(\"aside_menu\"),\r\n ulClasses: uiService.getClasses(\"aside_menu_nav\", true),\r\n asideClassesFromConfig: uiService.getClasses(\"aside_menu\", true),\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n
    \r\n
    \r\n {/* begin::Menu Container */}\r\n \r\n \r\n
    \r\n {/* end::Menu Container */}\r\n
    \r\n \r\n );\r\n}\r\n","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {useMemo} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport Dropdown from \"react-bootstrap/Dropdown\";\r\nimport {useSelector} from \"react-redux\";\r\nimport objectPath from \"object-path\";\r\nimport {useHtmlClassService} from \"../../../_core/BaseLayout\";\r\nimport {toAbsoluteUrl} from \"../../../../_helpers\";\r\nimport {DropdownItemToggler} from \"../../../../_partials/dropdowns\";\r\n\r\nexport function UserProfileDropdown() {\r\n const {user} = useSelector(state => state.auth);\r\n\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n light: objectPath.get(uiService.config, \"extras.user.dropdown.style\") === \"light\",\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n Hi, \r\n \r\n {user.fullname}\r\n \r\n \r\n {user.fullname[0]}\r\n \r\n
    \r\n \r\n \r\n <>\r\n {/** ClassName should be 'dropdown-menu p-0 m-0 dropdown-menu-right dropdown-menu-anim dropdown-menu-top-unround dropdown-menu-xl' */}\r\n {layoutProps.light && (<>\r\n
    \r\n\r\n
    \r\n \"\"/\r\n
    \r\n
    Sean Stone
    \r\n 3 messages\r\n
    \r\n
    \r\n )}\r\n\r\n {!layoutProps.light && (\r\n \r\n
    \r\n S\r\n {/*\"Pic\"*/}\r\n
    \r\n
    \r\n Sean Stone\r\n
    \r\n \r\n 3 messages\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-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo } from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\n// import { useSelector } from \"react-redux\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport objectPath from \"object-path\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { useHtmlClassService } from \"../../_core/BaseLayout\";\r\nimport { UserProfileDropdown } from \"./dropdowns/UserProfileDropdown\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport const QuickUserToggler = () => {\r\n // const { user } = useSelector((state) => state.auth);\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n offcanvas:\r\n objectPath.get(uiService.config, \"extras.user.layout\") === \"offcanvas\",\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {layoutProps.offcanvas && (\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!layoutProps.offcanvas && }\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function Brand() {\r\n return (\r\n <>\r\n {/* begin::Brand */}\r\n \r\n {/* begin::Logo */}\r\n \r\n \r\n \r\n {/* end::Logo */}\r\n \r\n {/* end::Brand */}\r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useState } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { useHtmlClassService } from \"../../_core/BaseLayout\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { AsideSearch } from \"./AsideSearch\";\r\nimport { AsideMenu } from \"./aside-menu/AsideMenu\";\r\nimport { LanguageSelectorDropdown } from \"../extras/dropdowns/LanguageSelectorDropdown\";\r\nimport { QuickUserToggler } from \"../extras/QuickUserToggler\";\r\nimport { Brand } from \"../brand/Brand\";\r\nimport { KTUtil } from \"./../../../_assets/js/components/util\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\n\r\n// description: \"اطلاعات پایه\"\r\n// hasSubMenu: false\r\n// iconUrl: \"/media/svg/icons/Code/Settings4.svg\"\r\n// id: 1\r\n// isFullAccess: true\r\n// isTabMenu: true\r\n// parentMenuId: 1\r\n// tabId: 0\r\n// title: \"ASID.TABS.BASEINFO\"\r\n// url: \"/baseInfo\"\r\n\r\n// const initialMenus = [\r\n// { id: 1, isTabMenu: true, tabId: 0, title: \"ASID.TABS.BASEINFO\", url: '/baseInfo', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Code/Settings4.svg' },\r\n// { id: 2, isTabMenu: true, tabId: 0, title: \"ASID.TABS.CULLINAN\", url: '/cullinan', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Cooking/Chef.svg' },\r\n// { id: 3, isTabMenu: true, tabId: 0, title: \"ASID.TABS.DORMITORY\", url: '/dormitory', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Home/Bed.svg' },\r\n// { id: 4, isTabMenu: true, tabId: 0, title: \"ASID.TABS.ATTENDANCE\", url: '/attendance', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Communication/Group.svg' },\r\n// { id: 5, isTabMenu: true, tabId: 0, title: \"ASID.TABS.SPORT\", url: '/sport', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Clothes/T-Shirt.svg' },\r\n\r\n// { id: 6, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.DASHBOARD\", url: '/dashboard', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Design/Layers.svg' },\r\n// { id: 7, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.SETTING\", url: '', hasSubMenu: false, parentMenuId: 0, iconUrl: '' },\r\n// // { id: 6, isTabMenu: false, tabId: 1, title: \"راهبری عمومی\", url: '\\UniInfo', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Code/Settings4.svg' },\r\n// { id: 8, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.UNIINFO\", url:'/uni', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Home/Towel.svg' },\r\n// { id: 9, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.TERMS\", url: '/terms', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Code/Time-schedule.svg' },\r\n// { id: 10, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.GRADES\", url: '/grades', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Code/Puzzle.svg' },\r\n// { id: 11, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.COLLAGES\", url: '/collages', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Home/Home.svg' },\r\n// { id: 12, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.GROUPS\", url: '/groups', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Communication/Group.svg' },\r\n// { id: 13, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.DORMS\", url: '/dorms', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Home/Home.svg' },\r\n// { id: 14, isTabMenu: false,isFullAccess: false, tabId: 1, title: \"ASID.TABS.BASEINFO.ACCOUNTS\", url: '/accounts', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Communication/Group.svg' },\r\n// { id: 15, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.SHIFTS\", url: '/shifts', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Communication/Group.svg' },\r\n// { id: 16, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.YEARCALENDAR\", url: '/calendar', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Communication/Group.svg' },\r\n// { id: 17, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.DEVICES\", url: '/devices', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Communication/Group.svg' },\r\n// { id: 18, isTabMenu: false,isFullAccess: true, tabId: 1, title: \"ASID.TABS.BASEINFO.PERSONS\", url: '/persons', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Communication/Group.svg' },\r\n\r\n// ];\r\n\r\n// const initialMenus2 = [\r\n// { id: 1, title: \"پیشخوان\", url: '\\dashboard', hasSubMenu: false, parentMenuId: 0, iconUrl: '/media/svg/icons/Design/Layers.svg' },\r\n// { id: 2, title: \"راهبری سیستم\", url: '', hasSubMenu: false, parentMenuId: 0, iconUrl: '' },\r\n// { id: 3, title: \"اطلاعات پایه\", url: '', hasSubMenu: true, parentMenuId: 0, iconUrl: '/media/svg/icons/Design/Cap-2.svg' },\r\n// { id: 4, title: \"گروه ها\", url: '', hasSubMenu: true, parentMenuId: 3, iconUrl: '/media/svg/icons/Design/Layers.svg' },\r\n// { id: 5, title: \"تعریف گروه ها\", url: '/e-commerce/customers', hasSubMenu: false, parentMenuId: 4, iconUrl: '/media/svg/icons/Design/Layers.svg' },\r\n// { id: 6, title: \"تنظیمات گروه ها\", url: '/e-commerce/customers', hasSubMenu: false, parentMenuId: 4, iconUrl: '/media/svg/icons/Design/Layers.svg' },\r\n// { id: 7, title: \"شیفت های کاری\", url: '/react-bootstrap', hasSubMenu: true, parentMenuId: 0, iconUrl: '/media/svg/icons/Shopping/Box2.svg' },\r\n// { id: 8, title: \"تعریف شیفت ها\", url: '/react-bootstrap/badge', hasSubMenu: false, parentMenuId: 7, iconUrl: '/media/svg/icons/Shopping/Box2.svg' },\r\n// { id: 9, title: \"تنظیمات شیفت ها\", url: '/react-bootstrap/alert', hasSubMenu: false, parentMenuId: 7, iconUrl: '/media/svg/icons/Shopping/Box2.svg' },\r\n// ];\r\n\r\n\r\nexport function Aside() {\r\n\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n asideClassesFromConfig: uiService.getClasses(\"aside\", true),\r\n asideSecondaryDisplay: objectPath.get(\r\n uiService.config,\r\n \"aside.secondary.display\"\r\n ),\r\n asideSelfMinimizeToggle: objectPath.get(\r\n uiService.config,\r\n \"aside.self.minimize.toggle\"\r\n ),\r\n extrasSearchDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.search.display\"\r\n ),\r\n extrasNotificationsDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.notifications.display\"\r\n ),\r\n extrasQuickActionsDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.quick-actions.display\"\r\n ),\r\n extrasQuickPanelDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.quick-panel.display\"\r\n ),\r\n extrasLanguagesDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.languages.display\"\r\n ),\r\n extrasUserDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.user.display\"\r\n ),\r\n };\r\n }, [uiService]);\r\n\r\n\r\n const { menuList } = useSelector(\r\n (state) => ({ menuList: state.auth.menu }),\r\n shallowEqual\r\n );\r\n // console.log(\"menuList :\")\r\n // console.log(menuList)\r\n\r\n const tabsTrget = [\r\n \"kt_aside_tab_1\",\r\n \"kt_aside_tab_2\",\r\n \"kt_aside_tab_3\",\r\n \"kt_aside_tab_4\",\r\n \"kt_aside_tab_5\"\r\n ];\r\n\r\n const tabs = {\r\n tabId1: \"kt_aside_tab_1\",\r\n tabId2: \"kt_aside_tab_2\",\r\n tabId3: \"kt_aside_tab_3\",\r\n tabId4: \"kt_aside_tab_4\",\r\n tabId5: \"kt_aside_tab_5\",\r\n };\r\n\r\n // console.log(tabs.tabId1)\r\n // console.log(tabs.tabId2)\r\n // console.log(tabs.tabId3)\r\n // console.log(tabs.tabId1)\r\n\r\n // const [menuList, setMenuList] = React.useState(initialMenus);\r\n const history = useHistory()\r\n const [activeTab, setActiveTab] = useState(tabs.tabId1);\r\n const handleTabChange = (id, url) => {\r\n setActiveTab(id);\r\n const asideWorkspace = KTUtil.find(\r\n document.getElementById(\"kt_aside\"),\r\n \".aside-secondary .aside-workspace\"\r\n );\r\n if (asideWorkspace) {\r\n KTUtil.scrollUpdate(asideWorkspace);\r\n }\r\n history.push(url)\r\n };\r\n\r\n return (\r\n <>\r\n {/* begin::Aside */}\r\n \r\n {/* begin::Primary */}\r\n
    \r\n \r\n {/* begin::Nav Wrapper */}\r\n
    \r\n {/* begin::Nav */}\r\n
      \r\n\r\n {\r\n menuList.filter(q => q.isTabMenu && q.isMenu).map((tab, index) =>\r\n
    • \r\n \r\n }\r\n >\r\n handleTabChange(tabsTrget[index], tab.url)}\r\n role=\"tab\"\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::Nav */}\r\n
    \r\n {/* end::Nav Wrapper */}\r\n\r\n {/* begin::Footer */}\r\n
    \r\n {/* begin::Aside Toggle */}\r\n {layoutProps.asideSecondaryDisplay &&\r\n layoutProps.asideSelfMinimizeToggle && (\r\n <>\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {/* end::Aside Toggle */}\r\n\r\n {/* begin::Search */}\r\n {layoutProps.extrasSearchDisplay && (\r\n جستجوی سریع}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {/* end::Search */}\r\n\r\n {/* begin::Notifications */}\r\n {layoutProps.extrasNotificationsDisplay && (\r\n اعلان ها\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {/* end::Notifications */}\r\n\r\n {/* begin::Quick Actions */}\r\n {/* {layoutProps.extrasQuickActionsDisplay && (\r\n دسترسی سریع\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )} */}\r\n {/* end::Quick Actions */}\r\n\r\n {/* begin::Quick Panel */}\r\n {/* {layoutProps.extrasQuickPanelDisplay && (\r\n پنل دسترسی سریع}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n 3\r\n \r\n \r\n \r\n )} */}\r\n {/* end::Quick Panel */}\r\n\r\n {/* begin::Languages*/}\r\n {/* {layoutProps.extrasLanguagesDisplay && } */}\r\n {/* */}\r\n {/* end::Languages */}\r\n\r\n {/* begin::User*/}\r\n {layoutProps.extrasUserDisplay && }\r\n {/* end::User */}\r\n
    \r\n {/* end::Footer */}\r\n
    \r\n {/* end::Primary */}\r\n\r\n {layoutProps.asideSecondaryDisplay && (\r\n <>\r\n {/* begin::Secondary */}\r\n
    \r\n {/* begin::Workspace */}\r\n
    \r\n
    \r\n\r\n {\r\n menuList.filter(q => q.isTabMenu && q.isMenu).map((tab, index) =>\r\n q.tabId === tab.id && q.isMenu).sort().sort((a, b) => a.orderInTab - b.orderInTab)}\r\n isActive={activeTab === tabsTrget[index]}\r\n />\r\n )\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::Workspace */}\r\n
    \r\n {/* end::Secondary */}\r\n \r\n )}\r\n \r\n {/* end::Aside */}\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { useHtmlClassService } from \"../../_core/BaseLayout\";\r\n\r\nexport function Footer() {\r\n const today = new Date().getFullYear();\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n footerLayout: objectPath.get(uiService.config, \"footer.layout\"),\r\n footerClasses: uiService.getClasses(\"footer\", true),\r\n footerContainerClasses: uiService.getClasses(\"footer_container\", true),\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {/* begin::Footer */}\r\n {/* doc: add \"bg-white\" class to have footer with solod background color */}\r\n \r\n {/* begin::Container */}\r\n \r\n {/* begin::Copyright */}\r\n {/*
    \r\n \r\n {today} ©\r\n \r\n {` `}\r\n \r\n Keenthemes\r\n \r\n
    */}\r\n {/* end::Copyright */}\r\n {` `}\r\n {/* begin::Nav */}\r\n {/*
    \r\n \r\n About\r\n \r\n \r\n Team\r\n \r\n \r\n Contact\r\n \r\n
    */}\r\n {/* end::Nav */}\r\n \r\n {/* end::Container */}\r\n \r\n {/* end::Footer */}\r\n \r\n );\r\n}\r\n","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutAside = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar offcanvasClass = KTUtil.hasClass(_element, 'aside-offcanvas-default') ? 'aside-offcanvas-default' : 'aside';\r\n\r\n // Initialize mobile aside offcanvas\r\n\t\t_offcanvasObject = new KTOffcanvas(_element, {\r\n\t\t\tbaseClass: offcanvasClass,\r\n\t\t\toverlay: true,\r\n\t\t\tcloseBy: 'kt_aside_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_aside_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n var _initNav = function() {\r\n var asideNav = KTUtil.find(_element, '.aside-primary .aside-nav');\r\n\r\n if (!asideNav) {\r\n return;\r\n }\r\n\r\n KTUtil.scrollInit(asideNav, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n var asideBrand = KTUtil.find(_element, '.aside-primary .aside-brand');\r\n var asideFooter = KTUtil.find(_element, '.aside-primary .aside-footer');\r\n\r\n height = height - (parseInt(KTUtil.css(asideBrand, 'height')));\r\n height = height - (parseInt(KTUtil.css(asideBrand, 'marginBottom')) + parseInt(KTUtil.css(asideBrand, 'marginTop')));\r\n\r\n height = height - (parseInt(KTUtil.css(asideFooter, 'height')));\r\n height = height - (parseInt(KTUtil.css(asideFooter, 'marginBottom')) + parseInt(KTUtil.css(asideFooter, 'marginTop')));\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n var _initWorkspace = function() {\r\n var asideTabs = KTUtil.find(_element, '.aside-primary .aside-nav .nav');\r\n var asideWorkspace = KTUtil.find(_element, '.aside-secondary .aside-workspace');\r\n\r\n if (!asideWorkspace) {\r\n return;\r\n }\r\n\r\n KTUtil.scrollInit(asideWorkspace, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n var asideSecondary = KTUtil.find(_element, '.aside-secondary');\r\n\r\n height = height - (parseInt(KTUtil.css(asideWorkspace, 'marginBottom')) + parseInt(KTUtil.css(asideWorkspace, 'marginTop')));\r\n height = height - (parseInt(KTUtil.css(asideSecondary, 'paddingBottom')) + parseInt(KTUtil.css(asideSecondary, 'paddingTop')));\r\n\r\n return height;\r\n }\r\n });\r\n\r\n if (asideTabs) {\r\n $(asideTabs).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n KTUtil.scrollUpdate(asideWorkspace);\r\n });\r\n }\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n _initNav();\r\n _initWorkspace();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getOffcanvas: function() {\r\n return _offcanvasObject;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAside;\r\n}\r\n\r\nexport default KTLayoutAside;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTMenu from \"./../../components/menu.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutAside from \"./aside.js\";\r\n\r\nvar KTLayoutAsideMenu = function() {\r\n // Private properties\r\n var _element;\r\n var _menuObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\t_menuObject = new KTMenu(_element, {\r\n\t\t\t// Submenu setup\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: 'accordion',\r\n\t\t\t\ttablet: 'accordion', // menu set to accordion in tablet mode\r\n\t\t\t\tmobile: 'accordion' // menu set to accordion in mobile mode\r\n\t\t\t},\r\n\r\n\t\t\t// Accordion setup\r\n\t\t\taccordion: {\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t // Close aside offcanvas panel before page reload On tablet and mobile\r\n _menuObject.on('linkClick', function(menu) {\r\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\r\n KTLayoutAside.getOffcanvas().hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetElement: function() {\r\n\t\t\treturn _element;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n pauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_menuObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAsideMenu;\r\n}\r\n\r\nexport default KTLayoutAsideMenu;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutSubheader = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutSubheader;\r\n}\r\n\r\nexport default KTLayoutSubheader;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutFooter = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutFooter;\r\n}\r\n\r\nexport default KTLayoutFooter;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutSubheader from \"./subheader.js\";\r\nimport KTLayoutFooter from \"./footer.js\";\r\n\r\nvar KTLayoutContent = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height;\r\n\r\n\t\theight = KTUtil.getViewPort().height;\r\n\r\n if (_element) {\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n }\r\n\r\n height = height - KTLayoutSubheader.getHeight();\r\n height = height - KTLayoutFooter.getHeight();\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutContent;\r\n}\r\n\r\nexport default KTLayoutContent;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTScrolltop from \"./../../components/scrolltop.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutScrolltop = function() {\r\n // Private properties\r\n var _element;\r\n var _object;\r\n\r\n // Private functions\r\n var _init = function() {\r\n _object = new KTScrolltop(_element, {\r\n offset: 300,\r\n speed: 600,\r\n });\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutScrolltop;\r\n}\r\n\r\nexport default KTLayoutScrolltop;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTCard from \"./../../components/card.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutSubheader from \"./subheader.js\";\r\n\r\nvar KTLayoutStickyCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n var _object;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar offset = 300;\r\n\r\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\r\n\t\t\toffset = KTLayoutHeader.getHeight();\r\n\t\t}\r\n\r\n _object = new KTCard(_element, {\r\n\t\t\tsticky: {\r\n\t\t\t\toffset: offset,\r\n\t\t\t\tzIndex: 90,\r\n\t\t\t\tposition: {\r\n\t\t\t\t\ttop: function() {\r\n\t\t\t\t\t\tvar pos = 0;\r\n var body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\r\n\r\n\t\t\t\t\t\treturn pos;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tleft: function(card) {\r\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tright: function(card) {\r\n\t\t\t\t\t\tvar body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\r\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\r\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\r\n\r\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_object.initSticky();\r\n\r\n\t\tKTUtil.addResizeHandler(function() {\r\n\t\t\t_object.updateSticky();\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tif (_object) {\r\n\t\t\t\t_object.updateSticky();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutStickyCard;\r\n}\r\n\r\nexport default KTLayoutStickyCard;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutContent from \"./content.js\";\r\n\r\nvar KTLayoutStretchedCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\r\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\r\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\r\n\r\n\t\tvar height = KTLayoutContent.getHeight();\r\n\r\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\r\n\r\n\t\theight = height - 3;\r\n\r\n\t\tKTUtil.css(scroll, 'height', height + 'px');\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\r\n // Re-calculate on window resize\r\n KTUtil.addResizeHandler(function() {\r\n\t\t\t\t_init();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\t_init();\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutStretchedCard;\r\n}\r\n\r\nexport default KTLayoutStretchedCard;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickPanel = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n var _notificationsElement;\r\n var _logsElement;\r\n var _settingsElement;\r\n\r\n // Private functions\r\n var _getContentHeight = function() {\r\n var height;\r\n\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n\r\n var _init = function() {\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_panel_close',\r\n toggleBy: 'kt_quick_panel_toggle'\r\n });\r\n }\r\n\r\n var _initNotifications = function() {\r\n KTUtil.scrollInit(_notificationsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initLogs = function() {\r\n KTUtil.scrollInit(_logsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initSettings = function() {\r\n KTUtil.scrollInit(_settingsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _updateScrollbars = function() {\r\n $(_element).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n KTUtil.scrollUpdate(_notificationsElement);\r\n KTUtil.scrollUpdate(_logsElement);\r\n KTUtil.scrollUpdate(_settingsElement);\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\r\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\r\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\r\n\r\n _init();\r\n _initNotifications();\r\n _initLogs();\r\n _initSettings();\r\n\r\n \r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickPanel;\r\n}\r\n\r\nexport default KTLayoutQuickPanel;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickUser = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_user_close',\r\n toggleBy: 'kt_quick_user_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickUser;\r\n}\r\n\r\nexport default KTLayoutQuickUser;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutHeaderMobile = function() {\r\n // Private properties\r\n var _element;\r\n var _object;\r\n\r\n // Get height\r\n var _getHeight = function() {\r\n var height;\r\n\r\n height = KTUtil.actualHeight(_element);\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-mobile-fixed')\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeader: function() {\r\n return _object;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutHeaderMobile;\r\n}\r\n\r\nexport default KTLayoutHeaderMobile;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTToggle from \"./../../components/toggle.js\";\r\nimport KTLayoutStickyCard from \"./sticky-card.js\";\r\nimport KTLayoutAsideMenu from \"./aside-menu.js\";\r\nimport { KTCookie } from \"./../../components/cookie.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutAsideToggle = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _toggleObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\t_toggleObject = new KTToggle(_element, {\r\n\t\t\ttarget: _body,\r\n\t\t\ttargetState: 'aside-minimize',\r\n\t\t\ttoggleState: 'aside-toggle-active'\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('toggle', function(toggle) {\r\n // Update sticky card\r\n if (typeof KTLayoutStickyCard !== 'undefined') {\r\n setTimeout(function() {\r\n KTLayoutStickyCard.update();\r\n }, 500);\r\n }\r\n\r\n // Pause header menu dropdowns\r\n if (typeof KTLayoutHeaderMenu !== 'undefined') {\r\n KTLayoutHeaderMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Pause aside menu dropdowns\r\n if (typeof KTLayoutAsideMenu !== 'undefined') {\r\n KTLayoutAsideMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Remember state in cookie\r\n\t\t\tKTCookie.setCookie('kt_aside_toggle_state', toggle.getState());\r\n\t\t\t// to set default minimized left aside use this cookie value in your\r\n\t\t\t// server side code and add \"kt-primary--minimize aside-minimize\" classes to\r\n\t\t\t// the body tag in order to initialize the minimized left aside mode during page loading.\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('beforeToggle', function(toggle) {\r\n\t\t\t//if (KTUtil.hasClass(_body, 'aside-minimize') === false && KTUtil.hasClass(_body, 'aside-minimize-hover')) {\r\n\t\t\t//\tKTUtil.removeClass(_body, 'aside-minimize-hover');\r\n\t\t\t//}\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getToggle: function() {\r\n\t\t\treturn _toggleObject;\r\n\t\t},\r\n\r\n\t\tonToggle: function(handler) {\r\n\t\t\tif (typeof _toggleObject.element !== 'undefined') {\r\n\t\t\t\t_toggleObject.on('toggle', handler);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAsideToggle;\r\n}\r\n\r\nexport default KTLayoutAsideToggle;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickSearch = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n var form = KTUtil.find(_element, '.quick-search-form');\r\n var results = KTUtil.find(_element, '.quick-search-wrapper');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_search_close',\r\n toggleBy: 'kt_quick_search_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(results, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n if (results) {\r\n height = height - parseInt(KTUtil.actualHeight(form));\r\n height = height - parseInt(KTUtil.css(form, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(form, 'marginBottom'));\r\n\r\n height = height - parseInt(KTUtil.css(results, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(results, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickSearch;\r\n}\r\n\r\nexport default KTLayoutQuickSearch;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickNotifications = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_notifications_close',\r\n toggleBy: 'kt_quick_notifications_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickNotifications;\r\n}\r\n\r\nexport default KTLayoutQuickNotifications;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickActions = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_actions_close',\r\n toggleBy: 'kt_quick_actions_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickActions;\r\n}\r\n\r\nexport default KTLayoutQuickActions;","import React, { useLayoutEffect } from \"react\";\r\nimport { KTUtil } from \"../../_assets/js/components/util\";\r\nimport KTLayoutAside from \"../../_assets/js/layout/base/aside\";\r\nimport KTLayoutAsideMenu from \"../../_assets/js/layout/base/aside-menu\";\r\nimport KTLayoutContent from \"../../_assets/js/layout/base/content\";\r\nimport KTLayoutFooter from \"../../_assets/js/layout/base/footer\";\r\nimport KTLayoutSubheader from \"../../_assets/js/layout/base/subheader\";\r\nimport KTLayoutScrolltop from \"../../_assets/js/layout/extended/scrolltop\";\r\nimport KTLayoutStickyCard from \"../../_assets/js/layout/base/sticky-card\";\r\nimport KTLayoutStretchedCard from \"../../_assets/js/layout/base/stretched-card\";\r\nimport KTLayoutQuickPanel from \"../../_assets/js/layout/extended/quick-panel\";\r\nimport KTLayoutQuickUser from \"../../_assets/js/layout/extended/quick-user\";\r\nimport KTLayoutHeaderMobile from \"../../_assets/js/layout/base/header-mobile\";\r\nimport KTLayoutAsideToggle from \"../../_assets/js/layout/base/aside-toggle\";\r\nimport KTLayoutQuickSearch from \"../../_assets/js/layout/extended/quick-search\";\r\nimport KTLayoutQuickNotifications from \"../../_assets/js/layout/extended/quick-notifications\";\r\nimport KTLayoutQuickActions from \"../../_assets/js/layout/extended/quick-actions\";\r\n\r\nexport function LayoutInit() {\r\n useLayoutEffect(() => {\r\n // Initialization\r\n KTUtil.ready(function() {\r\n ////////////////////////////////////////////////////\r\n // Layout Base Partials(mandatory for core layout)//\r\n ////////////////////////////////////////////////////\r\n\r\n // Init Mobile Header\r\n KTLayoutHeaderMobile.init(\"kt_header_mobile\");\r\n\r\n // Init Aside\r\n KTLayoutAside.init(\"kt_aside\");\r\n\r\n // Init Aside Toggle\r\n KTLayoutAsideToggle.init(\"kt_aside_toggle\");\r\n\r\n // Init Aside Menu\r\n KTLayoutAsideMenu.init(\"kt_aside_menu\");\r\n\r\n // Init Content\r\n KTLayoutContent.init(\"kt_content\");\r\n\r\n // Init Footer\r\n KTLayoutFooter.init(\"kt_footer\");\r\n\r\n //////////////////////////////////////////////\r\n // Layout Extended Partials(optional to use)//\r\n //////////////////////////////////////////////\r\n\r\n // Init subheader\r\n KTLayoutSubheader.init(\"kt_subheader\");\r\n\r\n // Init Scrolltop\r\n KTLayoutScrolltop.init(\"kt_scrolltop\");\r\n\r\n // Init Sticky Card\r\n KTLayoutStickyCard.init(\"kt_page_sticky_card\");\r\n\r\n // Init Stretched Card\r\n KTLayoutStretchedCard.init(\"kt_page_stretched_card\");\r\n\r\n // Init Quick Actions Offcanvas Panel\r\n KTLayoutQuickActions.init(\"kt_quick_actions\");\r\n\r\n // Init Quick Offcanvas Panel\r\n KTLayoutQuickPanel.init(\"kt_quick_panel\");\r\n\r\n // Init Quick User Panel\r\n KTLayoutQuickUser.init(\"kt_quick_user\");\r\n\r\n // Init Quick Search Panel\r\n KTLayoutQuickSearch.init(\"kt_quick_search\");\r\n\r\n // Init Quick Notifications Offcanvas Panel\r\n KTLayoutQuickNotifications.init(\"kt_quick_notifications\");\r\n });\r\n }, []);\r\n return <>;\r\n}\r\n","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { forwardRef } from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport Dropdown from \"react-bootstrap/Dropdown\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { DropdownMenu1 } from \"../../../../_partials/dropdowns\";\r\n\r\nconst QuickActionsDropdownToggle = forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n id=\"kt_subheader_quick_actions\"\r\n className={`btn btn-fixed-height btn-white btn-hover-primary font-weight-bold px-2 px-lg-5 mr-2`}\r\n >\r\n \r\n \r\n \r\n {` `}New Report\r\n \r\n );\r\n});\r\n\r\nexport function QuickActions() {\r\n return (\r\n <>\r\n Quick actions}\r\n >\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport function BreadCrumbs({ items }) {\r\n if (!items || !items.length) {\r\n return \"\";\r\n }\r\n\r\n return (\r\n
      \r\n {/* \r\n \r\n */}\r\n\r\n {/* {items.map((item, index) => (\r\n
    • \r\n \r\n {item.title}\r\n \r\n
    • \r\n ))} */}\r\n
    \r\n );\r\n}\r\n","import React, {createContext, useState, useContext} from \"react\";\r\n\r\nexport function getBreadcrumbsAndTitle(menuId, pathName) {\r\n const result = {\r\n breadcrumbs: [],\r\n title: \"\"\r\n };\r\n const menu = document.getElementById(menuId);\r\n if (!menu) {\r\n return result;\r\n }\r\n\r\n const activeLinksArray = Array.from(menu.getElementsByClassName(\"active\") || []);\r\n const activeLinks = activeLinksArray.filter(el => el.tagName === \"A\");\r\n if (!activeLinks) {\r\n return result;\r\n }\r\n\r\n activeLinks.forEach(link => {\r\n const titleSpans = link.getElementsByClassName(\"menu-text\");\r\n\r\n if (titleSpans) {\r\n const titleSpan = Array.from(titleSpans).find(t => t.innerHTML && t.innerHTML.trim().length > 0);\r\n if (titleSpan) {\r\n result.breadcrumbs.push(\r\n {\r\n pathname: link.pathname,\r\n title: titleSpan.innerHTML\r\n }\r\n );\r\n }\r\n }\r\n });\r\n result.title = getTitle(result.breadcrumbs, pathName);\r\n return result;\r\n}\r\n\r\nexport function getTitle(breadCrumbs, pathname) {\r\n if (!breadCrumbs || !pathname) {\r\n return \"\";\r\n }\r\n\r\n const length = breadCrumbs.length;\r\n if (!length) {\r\n return \"\";\r\n }\r\n\r\n return breadCrumbs[length - 1].title;\r\n}\r\n\r\nconst SubheaderContext = createContext();\r\n\r\nexport function useSubheader() {\r\n return useContext(SubheaderContext);\r\n}\r\n\r\nexport const SubheaderConsumer = SubheaderContext.Consumer;\r\n\r\nexport function BaseSubheaderProvider({ children }) {\r\n const [title, setTitle] = useState(\"\");\r\n const [breadcrumbs, setBreadcrumbs] = useState([]);\r\n const value = { title, setTitle, breadcrumbs, setBreadcrumbs };\r\n return {children};\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useLayoutEffect, useEffect } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { QuickActions } from \"./components/QuickActions\";\r\nimport { BreadCrumbs } from \"./components/BreadCrumbs\";\r\nimport {\r\n getBreadcrumbsAndTitle,\r\n useSubheader,\r\n} from \"../../_core/BaseSubheader\";\r\nimport { useHtmlClassService } from \"../../_core/BaseLayout\";\r\n\r\nexport function SubHeader() {\r\n const uiService = useHtmlClassService();\r\n const location = useLocation();\r\n const subheader = useSubheader();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n config: uiService.config,\r\n subheaderFixed: objectPath.get(uiService.config, \"subheader.fixed\"),\r\n subheaderMobileToggle: objectPath.get(\r\n uiService.config,\r\n \"subheader.mobile-toggle\"\r\n ),\r\n subheaderCssClasses: uiService.getClasses(\"subheader\", true),\r\n subheaderContainerCssClasses: uiService.getClasses(\r\n \"subheader_container\",\r\n true\r\n ),\r\n };\r\n }, [uiService]);\r\n\r\n useLayoutEffect(() => {\r\n const aside = getBreadcrumbsAndTitle(\"kt_aside_menu\", location.pathname);\r\n const header = getBreadcrumbsAndTitle(\"kt_header_menu\", location.pathname);\r\n const breadcrumbs = (aside && aside.breadcrumbs.length > 0) ? aside.breadcrumbs : header.breadcrumbs;\r\n subheader.setBreadcrumbs(breadcrumbs);\r\n subheader.setTitle((aside && aside.title && aside.title.length > 0) ? aside.title : header.title);\r\n // eslint-disable-next-line\r\n }, [location.pathname]);\r\n\r\n // Do not remove this useEffect, need from update title/breadcrumbs outside (from the page)\r\n useEffect(() => { }, [subheader]);\r\n\r\n return (\r\n \r\n \r\n {/* Info */}\r\n
    \r\n {/* begin::Mobile Toggle */}\r\n {layoutProps.subheaderMobileToggle && (\r\n \r\n \r\n \r\n )}\r\n {/* end::Mobile Toggle */}\r\n\r\n {/* begin::Heading */}\r\n
    \r\n {/* begin::Title */}\r\n

    \r\n {subheader.title}\r\n

    \r\n {/* end::Title */}\r\n\r\n \r\n
    \r\n {/* end::Heading */}\r\n
    \r\n {/* Info */}\r\n\r\n {/* Toolbar */}\r\n
    \r\n {/* \r\n \r\n \r\n \r\n {` `}New Member\r\n */}\r\n\r\n {/* */}\r\n\r\n {/* Button */}\r\n {/* \r\n \r\n \r\n \r\n */}\r\n
    \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\n\r\nexport function ScrollTop() {\r\n return (\r\n
    \r\n \r\n \r\n {\" \"}\r\n
    \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport objectPath from \"object-path\";\r\n// LayoutContext\r\nimport { useHtmlClassService } from \"../_core/BaseLayout\";\r\n// Import Layout components\r\nimport { HeaderMobile } from \"./header-mobile/HeaderMobile\";\r\nimport { Aside } from \"./aside/Aside\";\r\nimport { Footer } from \"./footer/Footer\";\r\nimport { LayoutInit } from \"./LayoutInit\";\r\nimport { SubHeader } from \"./subheader/SubHeader\";\r\nimport { QuickPanel } from \"./extras/offcanvas/QuickPanel\";\r\nimport { QuickUser } from \"./extras/offcanvas/QuickUser\";\r\nimport { QuickSearch } from \"./extras/offcanvas/QuickSearch\";\r\nimport { QuickNotification } from \"./extras/offcanvas/QuickNotification\";\r\nimport { QuickActions } from \"./extras/offcanvas/QuickActions\";\r\nimport { ScrollTop } from \"./extras/ScrollTop\";\r\nimport { StickyToolbar } from \"./extras/StickyToolbar\";\r\nimport { AnimateLoading } from \"../../_partials/controls\";\r\nimport SetLayout from \"../../../app/SetLayout\";\r\n\r\nexport const Layout = ({ children }) => {\r\n const uiService = useHtmlClassService();\r\n // Layout settings (cssClasses/cssAttributes)\r\n const layoutProps = useMemo(() => {\r\n return {\r\n selfLayout: objectPath.get(uiService.config, \"self.layout\"),\r\n subheaderDisplay: objectPath.get(uiService.config, \"subheader.display\"),\r\n contentCssClasses: uiService.getClasses(\"content\", true),\r\n contentContainerClasses: uiService.getClasses(\"content_container\", true),\r\n contentExtended: objectPath.get(uiService.config, \"content.extended\"),\r\n };\r\n }, [uiService]);\r\n\r\n return layoutProps.selfLayout !== \"blank\" ? (\r\n <>\r\n {/* */}\r\n {/*begin::Main*/}\r\n \r\n\r\n
    \r\n {/*begin::Page*/}\r\n
    \r\n
    \r\n {/*end::Content*/}\r\n
    \r\n
    \r\n {/*end::Wrapper*/}\r\n \r\n {/*end::Page*/}\r\n \r\n \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::Main*/}\r\n \r\n \r\n ) : (\r\n // BLANK LAYOUT\r\n
    {children}
    \r\n );\r\n}\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\n\r\nexport function Content({ children }) {\r\n const match = useRouteMatch() || {};\r\n const animationEndClass = \"grid-animateContent-finished\";\r\n const [cssClassesState, setCssClassesState] = useState([\r\n \"grid-animateContent\",\r\n animationEndClass\r\n ]);\r\n\r\n useEffect(() => {\r\n // for animation start should toggle 'grid-animateContent-finished' css class\r\n // TODO: change useMemo\r\n const fullClasses = [...cssClassesState];\r\n const startAnimation = fullClasses.filter(el => el !== animationEndClass);\r\n setCssClassesState(startAnimation);\r\n const timeOutId = setTimeout(() => {\r\n setCssClassesState(fullClasses);\r\n }, 200);\r\n\r\n return () => {\r\n clearTimeout(timeOutId);\r\n };\r\n \r\n }, [match.url]);\r\n\r\n return <>{children};\r\n}\r\n","import React from \"react\";\r\nimport {Route} from \"react-router-dom\";\r\nimport {Content} from \"./Content\";\r\n\r\nexport function ContentRoute({ children, component, render, ...props }) {\r\n return (\r\n \r\n {routeProps => {\r\n if (typeof children === \"function\") {\r\n return {children(routeProps)};\r\n }\r\n\r\n if (!routeProps.match) {\r\n return null;\r\n }\r\n\r\n if (children) {\r\n return {children};\r\n }\r\n\r\n if (component) {\r\n return (\r\n {React.createElement(component, routeProps)}\r\n );\r\n }\r\n\r\n if (render) {\r\n return {render(routeProps)};\r\n }\r\n\r\n return null;\r\n }}\r\n \r\n );\r\n}\r\n","import React, {createContext, useContext, useState, useEffect} from \"react\";\r\n\r\nconst BaseSplashScreenContext = createContext();\r\n\r\nexport function BaseSplashScreenProvider({ 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;\r\n if (splashScreen && !visible) {\r\n timeout = 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\nexport function LayoutSplashScreen({ visible = true }) {\r\n // Everything are ready - remove splashscreen\r\n const setCount = useContext(BaseSplashScreenContext);\r\n\r\n useEffect(() => {\r\n if (!visible) {\r\n return;\r\n }\r\n\r\n setCount(prev => {\r\n return prev + 1;\r\n });\r\n\r\n return () => {\r\n setCount(prev => {\r\n return prev - 1;\r\n });\r\n };\r\n }, [setCount, visible]);\r\n\r\n return null;\r\n}\r\n","import React from \"react\";\r\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core\";\r\n\r\nconst theme = createMuiTheme(\r\n /**\r\n * @see https://material-ui.com/customization/themes/#theme-configuration-variables\r\n */\r\n {\r\n // direction: \"rtl\",\r\n typography: {\r\n // fontFamily: [\"Poppins\"].join(\",\")\r\n fontFamily: [\"SANS\"].join(\",\")\r\n },\r\n\r\n palette: {\r\n primary: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#17c191\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n },\r\n secondary: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#3783e7\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n },\r\n error: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#f018a6\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n }\r\n },\r\n\r\n /**\r\n * @see https://material-ui.com/customization/globals/#default-props\r\n */\r\n props: {\r\n // Name of the component ⚛️\r\n MuiButtonBase: {\r\n // The properties to apply\r\n disableRipple: false // No more ripple, on the whole application 💣!\r\n },\r\n\r\n // Set default elevation to 1 for popovers.\r\n MuiPopover: {\r\n elevation: 1\r\n }\r\n }\r\n }\r\n);\r\n\r\nexport function MaterialThemeProvider(props) {\r\n const { children } = props;\r\n\r\n return {children};\r\n}\r\n","export {Layout} from \"./components/Layout\";\r\nexport {ContentRoute} from \"./components/content/ContentRoute\";\r\nexport {Content} from \"./components/content/Content\";\r\n\r\n// core\r\nexport * from \"./_core/LayoutConfig\";\r\nexport * from \"./_core/BaseLayout\";\r\nexport * from \"./_core/BaseSplashScreen\";\r\nexport * from \"./_core/MaterialThemeProvider\";\r\nexport * from \"./_core/BaseSubheader\";\r\n","import { persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport { put, takeLatest } from \"redux-saga/effects\";\r\n\r\n\r\n// Import the transformer creator\r\nconst expireReducer = require('redux-persist-expire');\r\n\r\nexport const actionTypes = {\r\n Login: \"[Login] Action\",\r\n TokenRefreshed: \"[TokenRefreshed] 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 MenuLoaded: \"[Load Menu] Auth API\"\r\n};\r\n\r\nconst initialAuthState = {\r\n user: undefined,\r\n authToken: undefined,\r\n refreshToken: undefined,\r\n // tryRefreshTokenCount: 0,\r\n};\r\n\r\nexport const reducer = persistReducer(\r\n {\r\n storage, key: \"v706-Kherad-auth\",\r\n whitelist: [\"user\", \"authToken\", \"refreshToken\", \"menu\", \"tryRefreshTokenCount\"]\r\n , transforms: [\r\n // Create a transformer by passing the reducer key and configuration. Values\r\n // shown below are the available configurations with default values\r\n expireReducer('preference', {\r\n // (Optional) Key to be used for the time relative to which store is to be expired\r\n persistedAtKey: 'auth',\r\n // (Required) Seconds after which store will be expired\r\n expireSeconds: 28800,\r\n // (Optional) State to be used for resetting e.g. provide initial reducer state\r\n expiredState: {},\r\n // (Optional) Use it if you don't want to manually set the time in the reducer i.e. at `persistedAtKey` \r\n // and want the store to be automatically expired if the record is not updated in the `expireSeconds` time\r\n autoExpire: true\r\n })\r\n // You can add more `expireReducer` calls here for different reducers\r\n // that you may want to expire\r\n ]\r\n },\r\n (state = initialAuthState, action) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n // ////////////////debugger\r\n const { authToken, refreshToken } = action.payload;\r\n return { authToken, refreshToken, user: undefined };\r\n }\r\n case actionTypes.TokenRefreshed: {\r\n ////////////////debugger\r\n // const { user, menu } = state;\r\n return { ...action.payload };\r\n }\r\n case actionTypes.Register: {\r\n const { authToken } = action.payload;\r\n\r\n return { authToken, user: undefined };\r\n }\r\n case actionTypes.Logout: {\r\n // TODO: Change this code. Actions in reducer aren't allowed.\r\n return initialAuthState;\r\n }\r\n case actionTypes.UserLoaded: {\r\n const { user, menu } = action.payload;\r\n return { ...state, user, menu };\r\n }\r\n case actionTypes.MenuLoaded: {\r\n const { menu } = action.payload;\r\n return { ...state, menu };\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n);\r\n\r\nexport const actions = {\r\n login: (authToken, refreshToken) => ({ type: actionTypes.Login, payload: { authToken, refreshToken } }),\r\n tokenRefreshed: (authToken, refreshToken, user, menu) => ({ type: actionTypes.TokenRefreshed, payload: { authToken, refreshToken, user, menu } }),\r\n register: authToken => ({\r\n type: actionTypes.Register,\r\n payload: { authToken }\r\n }),\r\n logout: () => ({ type: actionTypes.Logout }),\r\n requestUser: user => ({ type: actionTypes.UserRequested, payload: { user } }),\r\n fulfillUser: (user, menu) => ({ type: actionTypes.UserLoaded, payload: { user, menu } }),\r\n // fulfillMenu: menu => ({ type: actionTypes.MenuLoaded, payload: { menu } })\r\n};\r\n\r\nexport function* saga() {\r\n yield takeLatest(actionTypes.Login, function* loginSaga() {\r\n ////////////////debugger\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.TokenRefreshed, function* tokenRefreshed() {\r\n // ////////////////debugger\r\n // yield put(actions.tokenRefreshed());\r\n // });\r\n\r\n\r\n yield takeLatest(actionTypes.UserRequested, function* userRequested() {\r\n // const { data: user } = yield getUserByToken();\r\n\r\n const user = JSON.parse(sessionStorage.authUser);\r\n const menu = JSON.parse(sessionStorage.authUserMenu);\r\n\r\n yield put(actions.fulfillUser(user, menu));\r\n // yield put(actions.fulfillMenu(menu));\r\n });\r\n\r\n\r\n}\r\n","// these week day indecies are the same in SQL week day indices -- requested by Mr.Ebrahimi\r\n// const WeekDays = {\r\n// Sunday: 1,\r\n// Monday: 2,\r\n// Tuesday: 3,\r\n// Wednesday: 4,\r\n// Thursday: 5,\r\n// Friday: 6,\r\n// Saturday: 7,\r\n// };\r\n\r\nconst WeekDays = [\r\n { id: 7, title: \"شنبه\" },\r\n { id: 1, title: \"یکشنبه\" },\r\n { id: 2, title: \"دوشنبه\" },\r\n { id: 3, title: \"سه شنبه\" },\r\n { id: 4, title: \"چهارشنبه\" },\r\n { id: 5, title: \"پنجشنبه\" },\r\n { id: 6, title: \"جمعه\" },\r\n]\r\n\r\nexport default WeekDays;\r\n","import React, { createContext } from \"react\";\r\nimport { useMemo } from \"react\";\r\nimport { useContext } from \"react\";\r\nimport SetLayout from \"../../app/SetLayout\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { toAbsoluteUrl } from \"../_helpers\";\r\n\r\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || \"i18nConfig\";\r\nconst initialState = {\r\n selectedLang: \"fa\"\r\n};\r\n\r\nfunction getConfig() {\r\n const ls = localStorage.getItem(I18N_CONFIG_KEY);\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls);\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) {\r\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({ selectedLang: lang }));\r\n window.location.reload();\r\n\r\n // let ret = '
    '\r\n\r\n // const linkGlobalStyle = document.querySelector(\".global_style\");\r\n // console.log(linkGlobalStyle);\r\n\r\n // const divBody = document.querySelector(\"#kt_body\");\r\n // console.log(divBody);\r\n\r\n // if (lang === 'en') {\r\n // console.log(\"left to right layout\");\r\n\r\n // linkGlobalStyle.setAttribute(\"href\",toAbsoluteUrl(\"/css/style.react.css\") );\r\n // divBody.setAttribute(\"direction\", \"\");\r\n // divBody.setAttribute(\"dir\", \"\");\r\n // divBody.setAttribute(\"style\", \"\");\r\n // console.log(linkGlobalStyle);\r\n // // ret =\r\n // // \r\n\r\n // // \r\n // // \r\n // // \r\n\r\n // }\r\n // else {\r\n // console.log(\"Right to left layout\");\r\n // linkGlobalStyle.setAttribute(\"href\", toAbsoluteUrl(\"/css/style.react.rtl.css\"));\r\n // divBody.setAttribute(\"direction\", \"rtl\");\r\n // divBody.setAttribute(\"dir\", \"rtl\");\r\n // divBody.setAttribute(\"style\", \"direction: rtl\");\r\n // console.log(linkGlobalStyle);\r\n // // ret = \r\n // // \r\n\r\n // // \r\n // // \r\n // // \r\n // }\r\n\r\n}\r\n\r\nconst I18nContext = createContext();\r\n\r\nexport function useLang() {\r\n return useContext(I18nContext).selectedLang;\r\n}\r\n\r\nexport function withI18n(Component) {\r\n class WithI18n extends React.Component {\r\n static displayName = `WithI18n(${Component.displayName || Component.name})`;\r\n\r\n static contextType = I18nContext;\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return WithI18n;\r\n}\r\n\r\nexport const I18nConsumer = I18nContext.Consumer;\r\n\r\nexport function BaseI18nProvider({ children }) {\r\n const lang = useMemo(getConfig, []);\r\n\r\n return (\r\n {children}\r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nconst inputLabel = ({ label, touched, error, customFeedbackLabel }) => {\r\n if (touched && error) {\r\n return
    {error}
    ;\r\n }\r\n\r\n if (touched && !error && label) {\r\n // return
    {label} به درستی تکمیل شده است
    ;\r\n return
    {label}
    ;\r\n }\r\n\r\n return (\r\n
    \r\n {customFeedbackLabel && <>{customFeedbackLabel}}\r\n {/* {!customFeedbackLabel && (\r\n <>\r\n {label}\r\n \r\n )} */}\r\n
    \r\n );\r\n};\r\n\r\nconst selectLabel = ({ label, touched, error, customFeedbackLabel }) => {\r\n if (error) {\r\n // return
    {error}
    ;\r\n return
    \r\n {error}\r\n
    \r\n }\r\n\r\n\r\n return (\r\n
    \r\n {customFeedbackLabel && <>{customFeedbackLabel}}\r\n {/* {!customFeedbackLabel && label && (\r\n <>\r\n لطفا یکی از موارد را انتخاب نمایید\r\n \r\n )} */}\r\n
    \r\n );\r\n};\r\n\r\nexport function FieldFeedbackLabel({\r\n label,\r\n touched,\r\n error,\r\n type,\r\n customFeedbackLabel\r\n}) {\r\n switch (type) {\r\n case \"text\":\r\n return inputLabel({ label, touched, error, customFeedbackLabel });\r\n case \"email\":\r\n return inputLabel({ label, touched, error, customFeedbackLabel });\r\n case \"password\":\r\n return inputLabel({ label, touched, error, customFeedbackLabel });\r\n default:\r\n return selectLabel({ label, touched, error, customFeedbackLabel });\r\n }\r\n}\r\n\r\n\r\n// import React from \"react\";\r\n\r\n// const inputLabel = ({ label, touched, error, customFeedbackLabel }) => {\r\n// if (touched && error) {\r\n// return
    {error}
    ;\r\n// }\r\n\r\n// if (touched && !error && label) {\r\n// return
    {label} was entered correct
    ;\r\n// }\r\n\r\n// return (\r\n//
    \r\n// {customFeedbackLabel && <>{customFeedbackLabel}}\r\n// {!customFeedbackLabel && (\r\n// <>\r\n// {/* Please enter {label} */}\r\n// \r\n// )}\r\n//
    \r\n// );\r\n// };\r\n\r\n// const selectLabel = ({ label, touched, error, customFeedbackLabel }) => {\r\n// if (touched && error) {\r\n// return
    {error}
    ;\r\n// }\r\n\r\n// return (\r\n//
    \r\n// {customFeedbackLabel && <>{customFeedbackLabel}}\r\n// {!customFeedbackLabel && label && (\r\n// <>\r\n// {/* Please select {label} */}\r\n// \r\n// )}\r\n//
    \r\n// );\r\n// };\r\n\r\n// export function FieldFeedbackLabel({\r\n// label,\r\n// touched,\r\n// error,\r\n// type,\r\n// customFeedbackLabel\r\n// }) {\r\n// switch (type) {\r\n// case \"text\":\r\n// return inputLabel({ label, touched, error, customFeedbackLabel });\r\n// case \"email\":\r\n// return inputLabel({ label, touched, error, customFeedbackLabel });\r\n// case \"password\":\r\n// return inputLabel({ label, touched, error, customFeedbackLabel });\r\n// default:\r\n// return selectLabel({ label, touched, error, customFeedbackLabel });\r\n// }\r\n// }\r\n","import axios from \"axios\";\r\n\r\n// export const LOGIN_URL = \"api/auth/login\";\r\nexport const baseApiUrl = process.env.REACT_APP_API_URL;\r\nexport const LOGIN_URL = baseApiUrl + \"/api/User/Login\";\r\nexport const LOGOUT_URL = baseApiUrl + \"/api/User/Logout\";\r\nexport const INITIAL_INFO_URL = baseApiUrl + \"/api/General/GetActivatorInfo\";\r\nexport const OTP_URL = baseApiUrl + \"/api/User/SendLoginSMS\";\r\nexport const LOGIN_WITH_OTP_URL = baseApiUrl + \"/api/User/LoginWithSMS\";\r\nexport const REFRESH_URL = baseApiUrl + \"/api/User/GetTokenByRefreshToken\";\r\nexport const REQUEST_PASSWORD_URL = baseApiUrl + \"/api/User/RequestPassword\";\r\nexport const CHANGE_PASSWORD_URL = baseApiUrl + \"/api/User/ChangePassword\";\r\n\r\nexport const SEND_OPT_URL = baseApiUrl + \"/api/User/opt\";\r\nexport const ME_URL = baseApiUrl + \"/api/User/Get/22\";\r\nexport const REGISTER_URL = baseApiUrl + \"/api/User/register\";\r\n\r\n\r\nexport function sendOTP(username, password) {\r\n return axios.post(OTP_URL, null, {\r\n params: {\r\n username,\r\n password\r\n }\r\n })\r\n}\r\n\r\nexport function login(username, password, otp = \"\") {\r\n return axios.post(LOGIN_URL, null, {\r\n params: {\r\n username,\r\n password,\r\n otp\r\n }\r\n })\r\n}\r\n\r\nexport function logout() {\r\n return axios.post(LOGOUT_URL, null, {\r\n params: {\r\n // userId\r\n }\r\n })\r\n}\r\n\r\nexport function getInitialInfo() {\r\n ////////////////debugger\r\n return axios.get(`${INITIAL_INFO_URL}`);\r\n}\r\n\r\n// export function loginWithOTP(username, password, otp) {\r\n// return axios.post(LOGIN_WITH_OTP_URL, null, {\r\n// params: {\r\n// username,\r\n// password,\r\n// otp\r\n// }\r\n// })\r\n// }\r\n\r\nexport function changePassword(username, oldPassword, newPassword) {\r\n return axios.post(CHANGE_PASSWORD_URL, null, {\r\n params: {\r\n username,\r\n oldPassword,\r\n newPassword\r\n }\r\n })\r\n}\r\n\r\nexport function getNewToken(username, refreshToken) {\r\n return axios.post(REFRESH_URL, null, {\r\n params: {\r\n username,\r\n refreshToken\r\n }\r\n })\r\n}\r\n\r\nexport function requestPassword(username, mobile) {\r\n return axios.post(REQUEST_PASSWORD_URL, null, {\r\n params: {\r\n username,\r\n mobile\r\n }\r\n })\r\n}\r\n\r\nexport function register(email, fullname, username, password) {\r\n return axios.post(REGISTER_URL, { email, fullname, username, password });\r\n}\r\n\r\n\r\n\r\nexport function getUserByToken() {\r\n // Authorization head should be fulfilled in interceptor.\r\n // return axios.get(ME_URL);\r\n return axios.get(ME_URL);\r\n}\r\n\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function DropdownMenu1() {\r\n return (<>\r\n {/*begin::Navigation*/}\r\n \r\n {/*end::Navigation*/}\r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function DropdownMenu2() {\r\n return <>\r\n {/*begin::Navigation*/}\r\n \r\n {/*end::Navigation*/}\r\n \r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function DropdownMenu3() {\r\n return <>\r\n {/*begin::Naviigation*/}\r\n \r\n {/*end::Naviigation*/}\r\n \r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function DropdownMenu4() {\r\n return <>\r\n {/*begin::Navigation*/}\r\n \r\n {/*end::Navigation*/}\r\n\r\n \r\n}\r\n","import React from \"react\";\r\n\r\nexport const DropdownItemToggler = React.forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n >\r\n {props.children}\r\n \r\n );\r\n});\r\n\r\nDropdownItemToggler.displayName = 'DropdownItemToggler';\r\n","// Dropdowns\r\nexport {DropdownMenu1} from \"./DropdownMenu1\";\r\nexport {DropdownMenu2} from \"./DropdownMenu2\";\r\nexport {DropdownMenu3} from \"./DropdownMenu3\";\r\nexport {DropdownMenu4} from \"./DropdownMenu4\";\r\n\r\nexport {DropdownCustomToggler} from \"./DropdownCustomToggler\";\r\nexport {DropdownItemToggler} from \"./DropdownItemToggler\";","import { toast } from \"react-toastify\";\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\n\r\nexport function ShowToast(\r\n clientMessage = \"نتیجه درخواست\",\r\n type = ToastType.default,\r\n timer = 5000,\r\n toastPosition = \"bottom-left\",\r\n) {\r\n\r\n switch (type) {\r\n case ToastType.default:\r\n toast.default(clientMessage, {\r\n position: toastPosition,\r\n autoClose: timer,\r\n });\r\n break;\r\n case ToastType.success:\r\n toast.success(clientMessage, {\r\n position: toastPosition,\r\n autoClose: timer,\r\n });\r\n break;\r\n case ToastType.info:\r\n toast.info(clientMessage, {\r\n position: toastPosition,\r\n autoClose: timer,\r\n });\r\n break;\r\n case ToastType.error:\r\n toast.error(clientMessage, {\r\n position: toastPosition,\r\n autoClose: timer,\r\n });\r\n break;\r\n case ToastType.warning:\r\n toast.warning(clientMessage, {\r\n position: toastPosition,\r\n autoClose: timer,\r\n });\r\n break;\r\n case ToastType.dark:\r\n toast.dark(clientMessage, {\r\n position: toastPosition,\r\n autoClose: timer,\r\n });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nexport const ToastType = Object.freeze({\r\n default: 1,\r\n success: 2,\r\n info: 3,\r\n error: 4,\r\n warning: 5,\r\n dark: 6,\r\n});\r\n\r\n","export function removeCSSClass(ele, cls) {\r\n const reg = new RegExp(\"(\\\\s|^)\" + cls + \"(\\\\s|$)\");\r\n ele.className = ele.className.replace(reg, \" \");\r\n}\r\n\r\nexport function addCSSClass(ele, cls) {\r\n ele.classList.add(cls);\r\n}\r\n\r\nexport const toAbsoluteUrl = pathname => process.env.PUBLIC_URL + pathname;\r\n","import React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport * as utils from \"./LocalStorageHelpers\";\r\n\r\nconst localStorageLastLocationKey = \"kherad-lastLocation\";\r\n\r\nfunction acceptLocation(lastLocation) {\r\n if (\r\n lastLocation &&\r\n lastLocation.pathname &&\r\n lastLocation.pathname !== \"/\" &&\r\n lastLocation.pathname.indexOf(\"auth\") === -1 &&\r\n lastLocation.pathname !== \"/logout\"\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function saveLastLocation(lastLocation) {\r\n if (acceptLocation(lastLocation)) {\r\n utils.setStorage(\r\n localStorageLastLocationKey,\r\n JSON.stringify(lastLocation),\r\n 120\r\n );\r\n }\r\n}\r\n\r\nexport function forgotLastLocation() {\r\n utils.removeStorage(localStorageLastLocationKey);\r\n}\r\n\r\nexport function getLastLocation() {\r\n debugger\r\n const defaultLocation = { pathname: \"/\", title: };\r\n const localStorateLocations = utils.getStorage(localStorageLastLocationKey);\r\n if (!localStorateLocations) {\r\n return { pathname: \"/\", title: };\r\n }\r\n\r\n try {\r\n const result = JSON.parse(localStorateLocations);\r\n return result;\r\n } catch (error) {\r\n console.error(error);\r\n return defaultLocation;\r\n }\r\n}\r\n\r\nexport function getCurrentUrl(location) {\r\n return location.pathname.split(/[?#]/)[0];\r\n}\r\n\r\nexport function checkIsActive(location, url) {\r\n const current = getCurrentUrl(location);\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","/* Pagination Helprs */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport const getPagesCount = (totalSize, sizePerPage) => {\r\n return Math.ceil(totalSize / sizePerPage);\r\n};\r\n\r\nexport const getPages = (page, pagesCount, paginationSize) => {\r\n const result = [];\r\n if (!page) {\r\n return result;\r\n }\r\n\r\n if (pagesCount === 1) {\r\n result.push(1);\r\n return result;\r\n }\r\n\r\n if (pagesCount < page) {\r\n return result;\r\n }\r\n\r\n if (pagesCount < paginationSize + 1) {\r\n for (let i = 1; i < pagesCount + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n if (page === 1) {\r\n for (let i = 1; i < paginationSize + 1; i++) {\r\n if (i < pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n if (page === pagesCount) {\r\n for (let i = pagesCount - paginationSize + 1; i <= pagesCount; i++) {\r\n if (i <= pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n const shiftCount = Math.floor(paginationSize / 2);\r\n if (shiftCount < 1) {\r\n result.push(page);\r\n return result;\r\n }\r\n\r\n //\r\n if (page < shiftCount + 2) {\r\n for (let i = 1; i < paginationSize + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n if (pagesCount - page < shiftCount + 2) {\r\n for (let i = pagesCount - paginationSize; i < pagesCount + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n for (let i = page - shiftCount; i < page; i++) {\r\n if (i > 0) {\r\n result.push(i);\r\n }\r\n }\r\n result.push(page);\r\n for (let i = page + 1; i < page + shiftCount + 1; i++) {\r\n if (i <= pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport function getHandlerTableChange(setQueryParams, setEditableList) {\r\n\r\n return (type, { page, sizePerPage, sortField, sortOrder, data, cellEdit }) => {\r\n\r\n console.log(type)\r\n console.log(page)\r\n console.log(sizePerPage)\r\n console.log(data)\r\n\r\n if (type === \"cellEdit\") {\r\n data.forEach(element => {\r\n if (element.id === cellEdit.rowId) {\r\n element[cellEdit.dataField] = cellEdit.newValue\r\n }\r\n });\r\n\r\n console.log(\"data2\")\r\n console.log(data)\r\n setEditableList([...data])\r\n }\r\n else {\r\n if (sortField == \"groupTitle\") sortField = \"groupId\"\r\n else if (sortField == \"dormTitle\") sortField = \"dormId\"\r\n else if (sortField == \"blockTitle\") sortField = \"blockId\"\r\n else if (sortField == \"roomTitle\") sortField = \"roomId\"\r\n else if (sortField == \"collageTitle\") sortField = \"collageId\"\r\n else if (sortField == \"semesterTitle\") sortField = \"semesterId\"\r\n else if (sortField == \"yearTitle\") sortField = \"yearId\"\r\n else if (sortField == \"termTitle\") sortField = \"termId\"\r\n else if (sortField == \"enterTermTitle\") sortField = \"enterTermId\"\r\n else if (sortField == \"gradeTitle\") sortField = \"gradeId\"\r\n else if (sortField == \"groupTitle\") sortField = \"groupId\"\r\n else if (sortField == \"subGroupTitle\") sortField = \"subGroupId\"\r\n else if (sortField == \"roleTitle\") sortField = \"roleId\"\r\n\r\n const pageNumber = page || 1;\r\n setQueryParams((prev) =>\r\n type === \"sort\"\r\n ? { ...prev, sortOrder, sortField, orderClause: `${sortField} ${sortOrder}` }\r\n : type === \"pagination\"\r\n ? { ...prev, pageNumber, pageSize: sizePerPage, takeCount: sizePerPage, skipCount: (pageNumber - 1) * sizePerPage }\r\n : prev\r\n );\r\n\r\n }\r\n };\r\n\r\n}\r\n\r\nexport function getHandlerReportTableChange(setQueryParams, setChangeFilter) {\r\n\r\n return (type, { page, sizePerPage, sortField, sortOrder, data, cellEdit }) => {\r\n\r\n console.log(type)\r\n console.log(page)\r\n console.log(sizePerPage)\r\n console.log(data)\r\n if (sortField == \"groupTitle\") sortField = \"groupId\"\r\n else if (sortField == \"dormTitle\") sortField = \"dormId\"\r\n else if (sortField == \"blockTitle\") sortField = \"blockId\"\r\n else if (sortField == \"roomTitle\") sortField = \"roomId\"\r\n else if (sortField == \"collageTitle\") sortField = \"collageId\"\r\n else if (sortField == \"semesterTitle\") sortField = \"semesterId\"\r\n else if (sortField == \"yearTitle\") sortField = \"yearId\"\r\n else if (sortField == \"termTitle\") sortField = \"termId\"\r\n else if (sortField == \"enterTermTitle\") sortField = \"enterTermId\"\r\n else if (sortField == \"gradeTitle\") sortField = \"gradeId\"\r\n else if (sortField == \"groupTitle\") sortField = \"groupId\"\r\n else if (sortField == \"subGroupTitle\") sortField = \"subGroupId\"\r\n else if (sortField == \"roleTitle\") sortField = \"roleId\"\r\n\r\n const pageNumber = page || 1;\r\n setQueryParams((prev) =>\r\n type === \"sort\"\r\n ? { ...prev, sortOrder, sortField, orderClause: `${sortField} ${sortOrder}` }\r\n : type === \"pagination\"\r\n ? { ...prev, pageNumber, pageSize: sizePerPage, takeCount: sizePerPage, skipCount: (pageNumber - 1) * sizePerPage }\r\n : prev\r\n );\r\n if (setChangeFilter) setChangeFilter(true)\r\n };\r\n\r\n}\r\n\r\n// export function getHandlerTableChange(setQueryParams, setEditableList) {\r\n\r\n// return (type, { page, sizePerPage, sortField, sortOrder, data, cellEdit }) => {\r\n\r\n// if (type === \"cellEdit\") {\r\n// data.forEach(element => {\r\n// if (element.id === cellEdit.rowId) {\r\n// element[cellEdit.dataField] = cellEdit.newValue\r\n// }\r\n// });\r\n\r\n// console.log(\"data2\")\r\n// console.log(data)\r\n// setEditableList([...data])\r\n// }\r\n// else {\r\n// if (sortField == \"groupTitle\") sortField = \"groupId\"\r\n// else if (sortField == \"dormTitle\") sortField = \"dormId\"\r\n// else if (sortField == \"blockTitle\") sortField = \"blockId\"\r\n// else if (sortField == \"roomTitle\") sortField = \"roomId\"\r\n// else if (sortField == \"collageTitle\") sortField = \"collageId\"\r\n// else if (sortField == \"semesterTitle\") sortField = \"semesterId\"\r\n// else if (sortField == \"yearTitle\") sortField = \"yearId\"\r\n// else if (sortField == \"termTitle\") sortField = \"termId\"\r\n// else if (sortField == \"enterTermTitle\") sortField = \"enterTermId\"\r\n// else if (sortField == \"gradeTitle\") sortField = \"gradeId\"\r\n// else if (sortField == \"groupTitle\") sortField = \"groupId\"\r\n// else if (sortField == \"subGroupTitle\") sortField = \"subGroupId\"\r\n\r\n// const pageNumber = page || 1;\r\n// setQueryParams((prev) =>\r\n// type === \"sort\"\r\n// ? { ...prev, sortOrder, sortField, orderClause: `${sortField} ${sortOrder}` }\r\n// : type === \"pagination\"\r\n// ? { ...prev, pageNumber, pageSize: sizePerPage, takeCount: sizePerPage, skipCount: (pageNumber - 1) * sizePerPage }\r\n// : prev\r\n// );\r\n// }\r\n// };\r\n\r\n// }\r\n\r\nexport function PleaseWaitMessage({ entities }) {\r\n return <>{entities === null &&
    };\r\n}\r\n\r\nexport function NoRecordsFoundMessage({ entities }) {\r\n const customersList = entities === null ? [] : entities;\r\n return (\r\n <>\r\n {customersList.length === 0 && entities !== null && (\r\n
    \r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport const SelectionCheckbox = ({ isSelected, onChange }) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst groupingItemOnSelect = (props) => {\r\n ////////debugger\r\n const { ids, setIds, customerId, nonSelectableIds } = props;\r\n if (ids.some((id) => id === customerId)) {\r\n setIds(ids.filter((id) => id !== customerId && !nonSelectableIds.includes(id)));\r\n } else {\r\n const newIds = [...ids];\r\n if (!nonSelectableIds.includes(customerId))\r\n newIds.push(customerId);\r\n setIds(newIds);\r\n }\r\n}\r\n\r\nconst groupingAllOnSelect = (props) => {\r\n ////////debugger\r\n const { isSelected, setIds, entities, nonSelectableIds } = props;\r\n if (!isSelected) {\r\n const allIds = [];\r\n entities.forEach((el) => !nonSelectableIds.includes(el.id) && allIds.push(el.id));\r\n setIds(allIds);\r\n } else {\r\n setIds([]);\r\n }\r\n\r\n return isSelected;\r\n}\r\n\r\n// check official documentations: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Row%20Selection&selectedStory=Custom%20Selection%20Column%20Header%20Style&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\nexport const getSelectRow = (props) => {\r\n\r\n const { entities, ids, setIds, hideSelected, nonSelectableIds = [] } = props;\r\n return {\r\n mode: \"checkbox\",\r\n nonSelectable: nonSelectableIds,\r\n nonSelectableClasses: 'table-danger',\r\n // classes: 'table-danger',\r\n clickToSelect: true,\r\n hideSelectAll: false,\r\n hideSelectColumn: hideSelected,\r\n selectionHeaderRenderer: () => {\r\n const isSelected =\r\n entities && entities.length > 0 && entities.length === ids.length;\r\n\r\n const props = { isSelected, entities, setIds, nonSelectableIds };\r\n return (\r\n groupingAllOnSelect(props)}\r\n />\r\n );\r\n },\r\n selectionRenderer: ({ rowIndex }) => {\r\n ////////debugger\r\n const isSelected = ids.some((el) => el === entities[rowIndex].id)\r\n const props = { ids, setIds, customerId: entities[rowIndex].id, nonSelectableIds };\r\n return (\r\n groupingItemOnSelect(props)}\r\n />\r\n );\r\n },\r\n // onSelect: (row, isSelect, rowIndex, e) => {\r\n // console.log(row.id);\r\n // console.log(isSelect);\r\n // console.log(rowIndex);\r\n // console.log(e);\r\n // },\r\n // onSelectAll: (isSelect, rows, e) => {\r\n // console.log(isSelect);\r\n // console.log(rows);\r\n // console.log(e);\r\n // }\r\n // selectColumnStyle: ({ checked,\r\n // disabled,\r\n // rowIndex,\r\n // rowKey }) => {\r\n\r\n // return { backgroundColor: 'blue' };\r\n // },\r\n };\r\n}\r\n\r\n\r\n\r\nexport const getEditableSelectRow = (props) => {\r\n\r\n const { entities, ids, setIds, hideSelected, nonSelectableIds = [] } = props;\r\n return {\r\n mode: \"checkbox\",\r\n nonSelectable: nonSelectableIds,\r\n nonSelectableClasses: 'table-danger',\r\n // classes: 'table-danger',\r\n clickToSelect: false,\r\n hideSelectAll: false,\r\n hideSelectColumn: hideSelected,\r\n selectionHeaderRenderer: () => {\r\n const isSelected =\r\n entities && entities.length > 0 && entities.length === ids.length;\r\n\r\n const props = { isSelected, entities, setIds, nonSelectableIds };\r\n return (\r\n groupingEditableAllOnSelect(props)}\r\n />\r\n );\r\n },\r\n selectionRenderer: ({ rowIndex }) => {\r\n ////////debugger\r\n const isSelected = ids.some((el) => el === entities[rowIndex].id)\r\n const props = { ids, setIds, customerId: entities[rowIndex].id, nonSelectableIds };\r\n return (\r\n groupingEditableItemOnSelect(props)}\r\n />\r\n );\r\n },\r\n };\r\n}\r\n\r\nconst groupingEditableItemOnSelect = (props) => {\r\n ////////debugger\r\n const { ids, setIds, customerId, nonSelectableIds } = props;\r\n if (ids.some((id) => id === customerId)) {\r\n setIds(ids.filter((id) => id !== customerId && !nonSelectableIds.includes(id)));\r\n } else {\r\n const newIds = [...ids];\r\n if (!nonSelectableIds.includes(customerId))\r\n newIds.push(customerId);\r\n setIds(newIds);\r\n }\r\n}\r\n\r\nconst groupingEditableAllOnSelect = (props) => {\r\n ////////debugger\r\n const { isSelected, setIds, entities, nonSelectableIds } = props;\r\n if (!isSelected) {\r\n const allIds = [];\r\n entities.forEach((el) => !nonSelectableIds.includes(el.id) && allIds.push(el.id));\r\n setIds(allIds);\r\n } else {\r\n setIds([]);\r\n }\r\n\r\n return isSelected;\r\n}\r\n\r\n// check official documentations: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Row%20Selection&selectedStory=Custom%20Selection%20Column%20Header%20Style&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\nexport const getSelectRowMultiSelectCheckBoxList = (props) => {\r\n\r\n const { entities, ids, setIds, hideSelected, nonSelectableIds = [] } = props;\r\n return {\r\n mode: \"checkbox\",\r\n bgColor: '#5ac444',\r\n nonSelectable: nonSelectableIds,\r\n nonSelectableClasses: 'table-danger',\r\n // classes: 'table-danger',\r\n clickToSelect: true,\r\n hideSelectAll: false,\r\n hideSelectColumn: false,\r\n selectionHeaderRenderer: () => {\r\n const isSelected =\r\n entities && entities.length > 0 && entities.length === ids.length;\r\n\r\n const props = { isSelected, entities, setIds, nonSelectableIds };\r\n return (\r\n groupingAllOnSelect(props)}\r\n />\r\n );\r\n },\r\n selectionRenderer: ({ rowIndex }) => {\r\n ////////debugger\r\n const isSelected = ids.some((el) => el === entities[rowIndex].id)\r\n const props = { ids, setIds, customerId: entities[rowIndex].id, nonSelectableIds };\r\n return (\r\n groupingItemOnSelect(props)}\r\n />\r\n );\r\n },\r\n // onSelect: (row, isSelect, rowIndex, e) => {\r\n // console.log(row.id);\r\n // console.log(isSelect);\r\n // console.log(rowIndex);\r\n // console.log(e);\r\n // },\r\n // onSelectAll: (isSelect, rows, e) => {\r\n // console.log(isSelect);\r\n // console.log(rows);\r\n // console.log(e);\r\n // }\r\n // selectColumnStyle: ({ checked,\r\n // disabled,\r\n // rowIndex,\r\n // rowKey }) => {\r\n\r\n // return { backgroundColor: 'blue' };\r\n // },\r\n };\r\n}\r\n","/* Pagination Helprs */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"./AssetsHelpers\";\r\n\r\nexport const sortCaret = (order, column) => {\r\n if (!order) return (\r\n \r\n \r\n \r\n );\r\n else if (order === \"asc\")\r\n return (\r\n \r\n \r\n \r\n );\r\n else if (order === \"desc\")\r\n return (\r\n \r\n \r\n \r\n );\r\n return null;\r\n};\r\n\r\nexport const headerSortingClasses = (column, sortOrder, isLastSorting, colIndex) => (\r\n (sortOrder === 'asc' || sortOrder === \"desc\") ? 'sortable-active' : ''\r\n);","export * from \"./AssetsHelpers\";\r\nexport * from \"./LocalStorageHelpers\";\r\nexport * from \"./RouterHelpers\";\r\nexport * from \"./TablePaginationHelpers\";\r\nexport * from \"./TableRowSelectionHelpers\";\r\nexport * from \"./TableSortingHelpers\";\r\nexport * from \"./ToastHelpers\";","/* eslint-disable */\r\n\"use strict\";\r\n// DOCS: https://javascript.info/cookie\r\n\r\n// Component Definition \r\nexport var KTCookie = function() {\r\n return {\r\n // returns the cookie with the given name,\r\n // or undefined if not found\r\n getCookie: function(name) {\r\n var matches = document.cookie.match(new RegExp(\r\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\r\n ));\r\n return matches ? decodeURIComponent(matches[1]) : undefined;\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 setCookie: function(name, value, options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n\r\n options = Object.assign({}, {path: '/'}, options);\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString();\r\n }\r\n\r\n var updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\r\n\r\n for (var optionKey in options) {\r\n if (!options.hasOwnProperty(optionKey)) {\r\n continue;\r\n }\r\n updatedCookie += \"; \" + optionKey;\r\n var 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 // To delete a cookie, we can call it with a negative expiration date:\r\n deleteCookie: function(name) {\r\n setCookie(name, \"\", {\r\n 'max-age': -1\r\n })\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTCookie;\r\n}\r\n","import axios from \"axios\";\r\n// import baseApiUrl from \"./BaseService\";\r\n\r\nconst baseApiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport function createObject(API_URL, object, functionName) {\r\n //////////////debugger\r\n return axios.post(`${baseApiUrl}/${API_URL}/${functionName ? functionName : \"create\"}`, object);\r\n}\r\n\r\nexport function createObjects(API_URL, objects, functionName = \"CreateRange\") {\r\n return axios.post(`${baseApiUrl}/${API_URL}/${functionName}`, objects);\r\n}\r\n\r\nexport function getAllObjects(API_URL) {\r\n return axios.get(`${baseApiUrl}/${API_URL}/getAll`);\r\n}\r\n\r\nexport function getObjectById(API_URL, objectId, methodName) {\r\n if (!methodName) methodName = \"get\";\r\n return axios.get(`${baseApiUrl}/${API_URL}/${methodName}/${objectId}`);\r\n}\r\n\r\nexport function findObjects(API_URL, queryParams, queryMethodName) {\r\n return axios.post(`${baseApiUrl}/${API_URL}/${queryMethodName ? queryMethodName : \"query\"}`, queryParams);\r\n}\r\n\r\nexport function getSpReports(API_URL, queryParams, funcName) {\r\n return axios.post(`${baseApiUrl}/${API_URL}/${funcName}`, queryParams);\r\n}\r\n\r\nexport function getFile(API_URL, queryParams, funcName) {\r\n return axios.post(`${baseApiUrl}/${API_URL}/${funcName}`, queryParams, {\r\n responseType: \"arraybuffer\",\r\n });\r\n}\r\n\r\nexport function pay(API_URL, object, funcName) {\r\n return axios.post(`${baseApiUrl}/${API_URL}/${funcName}`, object);\r\n}\r\n\r\nexport function openBankUrl(API_URL, body) {\r\n return axios.post(`${API_URL}`, body);\r\n}\r\n\r\nexport function updateObject(API_URL, object, functionName) {\r\n // return axios.put(`${baseApiUrl}/${API_URL}/update/${object.id}`, object);\r\n return axios.put(`${baseApiUrl}/${API_URL}/${functionName ? functionName : \"update\"}`, object);\r\n}\r\n\r\nexport function downloadImagebyFileId(API_URL, imageFileDescriptionId, methodName) {\r\n if (!methodName) methodName = \"Downloadfile\";\r\n return axios.get(`${baseApiUrl}/${API_URL}/${methodName}/${imageFileDescriptionId}`);\r\n}\r\n\r\nexport function uploadImage(API_URL = \"api/FileManagement\", formFile, fileDesc, functionName) {\r\n // var fileList = []\r\n // fileList.push(formFile)\r\n // var filesDescription = []\r\n // filesDescription.push(\"test profile\")\r\n const passData = new FormData();\r\n // passData.append('formFileList', fileList);\r\n // passData.append('filesDescription', filesDescription);\r\n\r\n passData.append('formFile', formFile);\r\n passData.append('fileDescription', JSON.stringify(fileDesc));\r\n // passData.append('fileDescription', formFile.);\r\n\r\n return axios.post(`${baseApiUrl}/${API_URL}/${functionName ? functionName : \"UploadFile\"}`, passData);\r\n}\r\n\r\nexport function updateObjects(API_URL, ids, object, functionName) {\r\n // return axios.put(`${baseApiUrl}/${API_URL}/update/${object.id}`, object);\r\n return axios.put(`${baseApiUrl}/${API_URL}/${functionName ? functionName : \"updateRange\"}`, {\r\n idList: ids,\r\n updateValues: object,\r\n });\r\n\r\n}\r\n\r\nexport function updateStatusForObjects(API_URL, ids, isDeleted) {\r\n if (isDeleted) {\r\n //status=isdeleted=true => deleteRange\r\n return axios.put(`${baseApiUrl}/${API_URL}/SoftDeleteRange`, {\r\n idList: ids,\r\n });\r\n } else {\r\n //status=isdeleted=false => RecoverDeleteRange\r\n return axios.put(`${baseApiUrl}/${API_URL}/RecoverDeleteRange`, {\r\n idList: ids,\r\n });\r\n }\r\n}\r\n\r\nexport function deleteObject(API_URL, objectId) {\r\n // return axios.delete(`${baseApiUrl}/${API_URL}/SoftDelete/${objectId}`);\r\n return axios.put(`${baseApiUrl}/${API_URL}/SoftDelete/${objectId}`);\r\n}\r\n\r\nexport function deleteObjects(API_URL, ids) {\r\n return axios.put(`${baseApiUrl}/${API_URL}/SoftDeleteRange`, { idList: ids });\r\n}\r\n\r\nexport function hardDeleteObject(API_URL, objectId) {\r\n // return axios.delete(`${baseApiUrl}/${API_URL}/SoftDelete/${objectId}`);\r\n return axios.delete(`${baseApiUrl}/${API_URL}/HardDelete/${objectId}`);\r\n}\r\n\r\nexport function hardDeleteObjects(API_URL, ids) {\r\n // return axios.delete(`${baseApiUrl}/${API_URL}/SoftDelete/${objectId}`);\r\n return axios.delete(`${baseApiUrl}/${API_URL}/HardDeleteRange`, {\r\n idList: ids,\r\n });\r\n}\r\n","import * as requestFromServer from \"../services/PublicCrudService\";\r\nimport { objectsSlice, callTypes } from \"../reduxSlices/objectsSlice\";\r\nimport axios from \"axios\";\r\nimport * as columnFormatters from \"../../_themeBase/layout/components/basePage/pages/objects-table/column-formatters\";\r\nimport {\r\n ToastType,\r\n ShowToast,\r\n setToastType,\r\n} from \"../../_themeBase/_helpers/ToastHelpers\";\r\nimport WeekDays from \"../utils/WeekDays\";\r\n\r\nexport const fetchObjects = (API_URL, sliceName, queryParams, funcName) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n\r\n if (API_URL === \"local\") {\r\n switch (sliceName) {\r\n case \"weekDay\":\r\n const entities = [...WeekDays]\r\n const totalCount = entities.length\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n else if (API_URL === \"forceEmpty\") {\r\n const entities = null\r\n const totalCount = 0\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n }\r\n else {\r\n return requestFromServer\r\n .findObjects(API_URL, queryParams, funcName)\r\n .then((response) => {\r\n // console.log(\"response.data :\");\r\n // console.log(response.data.data);\r\n const { totalCount, result: entities } = response.data.data;\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n const entities = null\r\n const totalCount = 0\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n // dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n }\r\n\r\n};\r\n\r\nexport const fetchSelectedObjectsLocal = (sliceName, ids) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n return dispatch(actions.setSelectedObjects({ ids }));\r\n};\r\n\r\nexport const updateSelectedObjectsLocal = (sliceName, ids, isSelected) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n return dispatch(actions.objectsSelectedUpdated({ ids, isSelected }));\r\n};\r\n\r\nexport const fetchSpReports = (API_URL, sliceName, queryParams, funcName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getSpReports(API_URL, queryParams, funcName)\r\n .then((response) => {\r\n if (response && response.data && response.data.data) {\r\n debugger\r\n const entities = response.data.data;\r\n if (entities[0] && entities[0].totalCount) {\r\n const totalCount = entities[0].totalCount;\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n }\r\n else {\r\n const totalCount = response.data.data.length;\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n }\r\n }\r\n else {\r\n const entities = []\r\n const totalCount = 0\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n }\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchSpReportsOnline = (API_URL, sliceName, queryParams, funcName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n // dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getSpReports(API_URL, queryParams, funcName)\r\n .then((response) => {\r\n if (response && response.data && response.data.data) {\r\n const entities = response.data.data;\r\n const totalCount = response.data.data.length;\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n }\r\n else {\r\n const entities = []\r\n const totalCount = 0\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n }\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n // dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchObjectsByParentId = (\r\n API_URL,\r\n sliceName,\r\n queryParams,\r\n parentId,\r\n parentName,\r\n queryMethodName\r\n) => (dispatch) => {\r\n\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n ////////////////debugger\r\n switch (sliceName) {\r\n case \"tabPermissions\":\r\n if (parentName === undefined || parentName === \"\") parentName = \"roleId\"\r\n queryParams.filter.tabId = 0\r\n break;\r\n case \"menuPermissions\":\r\n if (parentName === undefined || parentName === \"\") parentName = \"roleId\"\r\n if (!queryParams.filter.tabId || queryParams.filter.tabId <= 0) {\r\n const totalCount = 0\r\n const entities = []\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n return\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n const query = { ...queryParams };\r\n if (parentName !== \"\") {\r\n if (queryParams.whereClause === \"\") {\r\n query.whereClauseParameters = [];\r\n query.whereClause = `${parentName}=@0`;\r\n query.whereClauseParameters.push(parentId);\r\n }\r\n }\r\n\r\n // if (!queryParams.filter.isDeleted) {\r\n // if (query.whereClause === \"\") {\r\n // query.whereClauseParameters = [];\r\n // query.whereClause = \"isDeleted=@0\";\r\n // query.whereClauseParameters.push(false);\r\n // }\r\n // else {\r\n // query.whereClause = query.whereClause + ` and isDeleted=@${query.whereClauseParameters.length}`;\r\n // query.whereClauseParameters.push(false);\r\n // }\r\n // }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findObjects(API_URL, query, queryMethodName)\r\n .then((response) => {\r\n // console.log(\"response.data :\");\r\n // console.log(response.data.data);\r\n //////////////debugger\r\n const { totalCount, result: entities } = response.data.data;\r\n\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n // console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchSelectObjects = (API_URL, sliceName, queryParams, queryFunctionName) => (\r\n dispatch\r\n) => {\r\n const temp = { ...queryParams };\r\n const query = {\r\n whereClause: \"\",\r\n whereClauseParameters: [],\r\n orderClause: \"id asc \",\r\n skipCount: 0,\r\n takeCount: 1000,\r\n };\r\n\r\n switch (sliceName) {\r\n case \"dorms\":\r\n query.whereClause = \"isDeleted=@0\";\r\n query.whereClauseParameters.push(false);\r\n break;\r\n case \"blocks\":\r\n if (temp.filter.dormId > 0) {\r\n query.whereClause = query.whereClause + \"dormId=@0\";\r\n query.whereClauseParameters.push(temp.filter.dormId);\r\n } else {\r\n query.whereClause = query.whereClause + \"dormId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n\r\n break;\r\n case \"rooms\":\r\n if (temp.filter.dormId > 0) {\r\n query.whereClause = \"dormId=@0\";\r\n query.whereClauseParameters.push(temp.filter.dormId);\r\n\r\n if (temp.filter.blockId > 0) {\r\n query.whereClause = query.whereClause + \" and blockId=@1\";\r\n query.whereClauseParameters.push(temp.filter.blockId);\r\n\r\n } else {\r\n query.whereClause = query.whereClause + \" and blockId!=@1\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@2\";\r\n query.whereClauseParameters.push(false);\r\n\r\n }\r\n else if (temp.filter.blockId > 0) {\r\n query.whereClause = query.whereClause + \"blockId=@0\";\r\n query.whereClauseParameters.push(temp.filter.blockId);\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n }\r\n else {\r\n query.whereClause = query.whereClause + \" blockId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n }\r\n\r\n\r\n\r\n break;\r\n case \"dormBlocks\":\r\n if (temp.filter.dormId > 0) {\r\n query.whereClause = \"dormId=@0\";\r\n query.whereClauseParameters.push(temp.filter.dormId);\r\n }\r\n else {\r\n query.whereClause = \"dormId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n\r\n\r\n\r\n break;\r\n case \"blockRooms\":\r\n if (temp.filter.blockId > 0) {\r\n query.whereClause = \"blockId=@0\";\r\n query.whereClauseParameters.push(temp.filter.blockId);\r\n }\r\n else {\r\n query.whereClause = \" blockId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n\r\n break;\r\n\r\n\r\n case \"groups\":\r\n break;\r\n case \"subGroups\":\r\n if (temp.filter.groupId > 0) {\r\n query.whereClause = query.whereClause + \"groupId=@0\";\r\n query.whereClauseParameters.push(temp.filter.groupId);\r\n } else {\r\n query.whereClause = query.whereClause + \"groupId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n break;\r\n case \"collages\":\r\n query.whereClause = \"isDeleted=@0\";\r\n query.whereClauseParameters.push(false);\r\n break;\r\n case \"fields\":\r\n if (temp.filter.collageId > 0) {\r\n query.whereClause = query.whereClause + \"collageId=@0\";\r\n query.whereClauseParameters.push(temp.filter.collageId);\r\n } else {\r\n query.whereClause = query.whereClause + \"collageId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n break;\r\n case \"tabMenus\":\r\n query.whereClause = query.whereClause + \"tabId=@0\";\r\n query.whereClauseParameters.push(0);\r\n break;\r\n case \"menus\":\r\n if (temp.filter.tabId > 0) {\r\n query.whereClause = query.whereClause + \"tabId=@0\";\r\n query.whereClauseParameters.push(temp.filter.tabId);\r\n }\r\n break;\r\n case \"missionTrafficTypes\":\r\n query.whereClause = query.whereClause + \"groupType=@0\";\r\n query.whereClauseParameters.push(2);\r\n break;\r\n case \"userTrafficTypes\":\r\n query.whereClause = query.whereClause + \"groupType=@0\";\r\n query.whereClauseParameters.push(1);\r\n break;\r\n case \"towns\":\r\n if (temp.filter.provinceId > 0) {\r\n query.whereClause = query.whereClause + \"provinceId=@0\";\r\n query.whereClauseParameters.push(temp.filter.provinceId);\r\n } else {\r\n query.whereClause = query.whereClause + \"provinceId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n break;\r\n case \"devices\":\r\n if (temp.filter.deviceGroupId > 0) {\r\n query.whereClause = query.whereClause + \"deviceGroupId=@0\";\r\n query.whereClauseParameters.push(temp.filter.deviceGroupId);\r\n } else {\r\n query.whereClause = query.whereClause + \"deviceGroupId!=@0\";\r\n query.whereClauseParameters.push(0);\r\n }\r\n\r\n query.whereClause = query.whereClause + \" and isDeleted=@1\";\r\n query.whereClauseParameters.push(false);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findObjects(API_URL, query, queryFunctionName)\r\n .then((response) => {\r\n // console.log(\"response.data :\");\r\n // console.log(response.data.data);\r\n const { totalCount, result: entities } = response.data.data;\r\n\r\n dispatch(actions.objectsFetched({ totalCount, entities }));\r\n })\r\n .catch((error) => {\r\n error.clientMessage = \"خطا در دریافت اطلاعات\";\r\n\r\n if (error.response) {\r\n // error.clientMessage = columnFormatters.translateByMessageIdParam(\r\n // // \"HTTP.STATUS.4xx\",\r\n // error.response.data.Message,\r\n // error.response.status\r\n // );\r\n } else if (error.request) {\r\n error.clientMessage = columnFormatters.translateByMessageIdParam(\r\n error.request.responseText,\r\n error.message\r\n );\r\n } else {\r\n error.clientMessage = columnFormatters.translateByMessageIdParam(\r\n \"HTTP.STATUS.NETERROR\",\r\n error.message\r\n );\r\n }\r\n ShowToast(error.clientMessage, 1212);\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchAllObjects = (API_URL, sliceName) => (dispatch) => {\r\n // console.log(API_URL);\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getAllObjects(API_URL)\r\n .then((response) => {\r\n // console.log(\"response.data :\");\r\n // console.log(response.data.data);\r\n const entities = response.data.data;\r\n\r\n dispatch(actions.allObjectsFetched({ entities }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n // console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchObjectByParentId = (\r\n API_URL,\r\n sliceName,\r\n parentId,\r\n parentName,\r\n) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n var query = {};\r\n if (parentName !== \"\") {\r\n query = {\r\n whereClause: `${parentName}=@0`,\r\n whereClauseParameters: [parentId],\r\n orderClause: \"id asc \",\r\n skipCount: 0,\r\n takeCount: 1,\r\n };\r\n }\r\n\r\n ////debugger;\r\n if (!parentId) {\r\n return dispatch(actions.objectFetched({ objectForEdit: undefined }));\r\n }\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .findObjects(API_URL, query)\r\n .then((response) => {\r\n const result = response.data.data;\r\n // console.log(\"response.data :\");\r\n // console.log(result.result[0]);\r\n dispatch(actions.objectFetched({ objectForEdit: result.result[0] }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchObject = (API_URL, sliceName, id, methodName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n if (!id) {\r\n return dispatch(actions.objectFetched({ objectForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getObjectById(API_URL, id, methodName)\r\n .then((response) => {\r\n ////debugger\r\n let object = response.data.data;\r\n\r\n\r\n if (methodName && object) {\r\n if (\r\n methodName.trim().toLowerCase() ===\r\n \"GetBySansCategoryId\".trim().toLowerCase()\r\n ) {\r\n object = {\r\n salonId: object[0].salonId,\r\n teacherId: object[0].teacherId,\r\n startTime: object[0].startTime,\r\n endTime: object[0].endTime,\r\n isSunday: Boolean(\r\n object.filter((e) => e.weekDay === WeekDays.Sunday).length\r\n ),\r\n isMonday: Boolean(\r\n object.filter((e) => e.weekDay === WeekDays.Monday).length\r\n ),\r\n isTuesday: Boolean(\r\n object.filter((e) => e.weekDay === WeekDays.Tuesday).length\r\n ),\r\n isWednesday: Boolean(\r\n object.filter((e) => e.weekDay === WeekDays.Wednesday).length\r\n ),\r\n isThursday: Boolean(\r\n object.filter((e) => e.weekDay === WeekDays.Thursday).length\r\n ),\r\n isFriday: Boolean(\r\n object.filter((e) => e.weekDay === WeekDays.Friday).length\r\n ),\r\n isSaturday: Boolean(\r\n object.filter((e) => e.weekDay === WeekDays.Saturday).length\r\n ),\r\n };\r\n }\r\n }\r\n\r\n dispatch(actions.objectFetched({ objectForEdit: object }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateObjectLocal = (sliceName, object) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n return dispatch(actions.objectFetched({ objectForEdit: object }));\r\n};\r\n\r\nexport const deleteObject = (API_URL, sliceName, id, softDelete = true) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n if (softDelete) {\r\n return requestFromServer\r\n .deleteObject(API_URL, id)\r\n .then((response) => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectDeleted({ id }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n } else {\r\n return requestFromServer\r\n .hardDeleteObject(API_URL, id)\r\n .then((response) => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectDeleted({ id }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n }\r\n};\r\n\r\nexport const createObject = (API_URL, sliceName, objectForCreation, functionName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createObject(API_URL, objectForCreation, functionName)\r\n .then((response) => {\r\n ////debugger\r\n\r\n if (sliceName === \"roomReservations\") {\r\n var msg = \"درخواست رزرو شما ثبت شد. درخواست شما توسط سرپرست بررسی خواهد شد. پس از تایید سرپرست 30 دقیقه برای پرداخت هزینه مهلت دارید .\"\r\n ShowToast(msg, ToastType.success, 15000);\r\n dispatch(actions.catchError({ undefined, callType: callTypes.action }));\r\n }\r\n else {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n if (response.data.data) {\r\n const object = response.data.data;\r\n dispatch(actions.objectCreated({ object }));\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createObjects = (API_URL, sliceName, objectsForCreation, functionName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createObjects(API_URL, objectsForCreation, functionName)\r\n .then((response) => {\r\n ////////////////debugger\r\n const objects = response.data.data;\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectsCreated({ objects }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const uploadCSVObjects = (API_URL, sliceName, objectsForCreation, functionName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createObjects(API_URL, objectsForCreation, functionName)\r\n .then((response) => {\r\n ////////////////debugger\r\n const result = response.data.data;\r\n const { entities } = response.data.data;\r\n ShowToast(\r\n `تعداد ${result.saveCount} رکورد با موفقیت ثبت شد`,\r\n ToastType.success, 100000\r\n );\r\n ShowToast(\r\n `تعداد ${result.errorCount} رکورد ثبت نشد`,\r\n ToastType.error, 100000\r\n );\r\n var showErrors = \"\"\r\n result.errors.forEach(element => {\r\n showErrors = ` ${showErrors} - ${element}`\r\n });\r\n\r\n ShowToast(\r\n showErrors,\r\n ToastType.info, 100000\r\n );\r\n\r\n dispatch(actions.objectsCreated({ entities }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateObject = (API_URL, sliceName, object, functionName) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateObject(API_URL, object, functionName)\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectUpdated({ object }));\r\n })\r\n .catch((error) => {\r\n ////debugger\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const uploadImage = (API_URL, sliceName, imageUrl, fileDesc, functionName) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .uploadImage(API_URL, imageUrl, fileDesc, functionName)\r\n .then((response) => {\r\n debugger\r\n const object = response.data.data;\r\n ShowToast(\r\n \"آپلود عکس با موفقیت انجام شد\",\r\n ToastType.success\r\n );\r\n dispatch(actions.objectFetched({ objectForEdit: object }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\nexport const downloadImage = (API_URL, sliceName, imageFileDescriptionId, funcName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .downloadImagebyFileId(API_URL, imageFileDescriptionId, funcName)\r\n .then((response) => {\r\n debugger\r\n var temp = { ...actions.objectForEdit }\r\n // // const blob = new Blob([response.data]);\r\n // // var src = URL.createObjectURL(blob)\r\n // let base64ImageString = Buffer.from(response.data, 'binary').toString('base64')\r\n temp.imageFile = `data:image/jpeg;base64,${response.data}`;\r\n // temp.imageFile = window.URL.createObjectURL(new Blob([response.data]));\r\n dispatch(actions.objectFetched({ objectForEdit: temp }));\r\n\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateObjects = (API_URL, sliceName, ids, object, functionName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n //////debugger;\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateObjects(API_URL, ids, object, functionName)\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectsUpdated({ ids, object }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateObjectsAllowed = (API_URL, sliceName, ids, allowed) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n ////////////////debugger;\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateObjects(API_URL, ids, { allowed })\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n // dispatch(actions.objectsAllowedUpdated({ ids, allowed }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateObjectsFullAccess = (\r\n API_URL,\r\n sliceName,\r\n ids,\r\n isFullAccess\r\n) => (dispatch) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n ////////////////debugger;\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateObjects(API_URL, ids, { isFullAccess })\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectsFullAccessUpdated({ ids, isFullAccess }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateObjectsHoliday = (API_URL, sliceName, ids, holiday) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n ////////////////debugger;\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateObjects(API_URL, ids, { holiday })\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectsHolidayUpdated({ ids, holiday }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateObjectsStatus = (API_URL, sliceName, ids, isDeleted) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n ////////////////debugger;\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateStatusForObjects(API_URL, ids, isDeleted)\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectsStatusUpdated({ ids, isDeleted }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteObjects = (API_URL, sliceName, ids, softDelete = true) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n if (softDelete) {\r\n return requestFromServer\r\n .deleteObjects(API_URL, ids)\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectsDeleted({ ids }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n //console.log(\"generalActions error.message => \" + error.message);\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n } else {\r\n return requestFromServer\r\n .hardDeleteObjects(API_URL, ids)\r\n .then(() => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.objectsDeleted({ ids }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n }\r\n};\r\n\r\nexport const downloadExcelFile = (API_URL, sliceName, queryParams, funcName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getFile(API_URL, queryParams, funcName)\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\", generateFileName(\"Report\", \".xlsx\"));\r\n document.body.appendChild(link);\r\n link.click();\r\n dispatch(actions.catchError({ undefined, callType: callTypes.list }));\r\n })\r\n .catch((error) => {\r\n //console.log(\"download error\");\r\n //console.log(error);\r\n showError(error)\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const pay = (API_URL, sliceName, amount, funcName) => (\r\n dispatch\r\n) => {\r\n // const { actions } = objectsSlice({ name: sliceName });\r\n // dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .pay(API_URL, amount, funcName)\r\n .then((response) => {\r\n const { url, form } = response.data.data;\r\n var redirextForm = document.createElement('form');\r\n document.body.appendChild(redirextForm);\r\n redirextForm.method = 'post';\r\n redirextForm.action = url;\r\n for (var name in form) {\r\n var input = document.createElement('input');\r\n input.type = 'hidden';\r\n input.name = name;\r\n input.value = form[name];\r\n redirextForm.appendChild(input);\r\n }\r\n redirextForm.submit();\r\n document.body.removeChild(redirextForm);\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n // dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const payFree = (API_URL, sliceName, amount, funcName) => (\r\n dispatch\r\n) => {\r\n const { actions } = objectsSlice({ name: sliceName });\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .pay(API_URL, amount, funcName)\r\n .then((response) => {\r\n ShowToast(\r\n columnFormatters.translateByMessageIdParam(\"HTTP.STATUS.2xx\"),\r\n ToastType.success\r\n );\r\n dispatch(actions.catchError({ undefined, callType: callTypes.list }));\r\n })\r\n .catch((error) => {\r\n showError(error)\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nfunction generateFileName(fileName, fileType) {\r\n let nowDateTime = new Date();\r\n let nowTime = nowDateTime.toLocaleTimeString(\"en-US\", {\r\n hour12: false,\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n });\r\n\r\n let nowDate = nowDateTime.toLocaleDateString(\"en-US\");\r\n return fileName + \"_Date_\" + nowDate + \"_Time_\" + nowTime + fileType;\r\n}\r\n\r\nfunction showError(error) {\r\n error.clientMessage = \"خطا در دریافت اطلاعات\"\r\n //////////////////debugger;\r\n // console.log(\"generalActions error => \" + JSON.stringify(error));\r\n // Error 😨\r\n if (error.response) {\r\n /*\r\n * The request was made and the server responded with a\r\n * status code that falls out of the range of 2xx - error 4XX\r\n */\r\n error.clientMessage = columnFormatters.translateByMessageIdParam(\r\n // \"HTTP.STATUS.4xx\",\r\n error.response.data.Message,\r\n error.response.status\r\n );\r\n } else if (error.request) {\r\n /*\r\n * The request was made but no response was received, `error.request`\r\n * is an instance of XMLHttpRequest in the browser and an instance\r\n * of http.ClientRequest in Node.js\r\n */\r\n error.clientMessage = columnFormatters.translateByMessageIdParam(\r\n // \"HTTP.STATUS.5xx\",\r\n error.request.responseText,\r\n error.message\r\n );\r\n } else {\r\n // Something happened in setting up the request and triggered an Error - error Network\r\n // error.clientMessage = intl.formatMessage({ id: \"HTTP.STATUS.NETERROR\", values: { COUNT: `${error.message}` } });\r\n error.clientMessage = columnFormatters.translateByMessageIdParam(\r\n \"HTTP.STATUS.NETERROR\",\r\n error.message\r\n );\r\n }\r\n\r\n ShowToast(error.clientMessage, ToastType.error);\r\n\r\n}\r\n\r\n// export const hardDeleteObject = (API_URL, sliceName, id) => dispatch => {\r\n// const { actions } = objectsSlice({ name: sliceName });\r\n\r\n// dispatch(actions.startCall({ callType: callTypes.action }));\r\n// return requestFromServer\r\n// .hardDeleteObject(API_URL, id)\r\n// .then(response => {\r\n// dispatch(actions.objectDeleted({ id }));\r\n// })\r\n// .catch(error => {\r\n// error.clientMessage = \"Can't delete object\";\r\n// dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n// });\r\n// };\r\n","import moment from \"moment-jalaali\";\r\n\r\nexport function formatDateString(dateString, spiliterChar) {\r\n var d = new Date(dateString),\r\n month = \"\" + (d.getMonth() + 1),\r\n day = \"\" + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2) month = \"0\" + month;\r\n if (day.length < 2) day = \"0\" + day;\r\n\r\n return [year, month, day].join(spiliterChar);\r\n}\r\n\r\n//dateString: '2006-09-20T00:00:00'\r\n//locale: 'fa'\r\nexport function convertDateStringToLocal(dateString, locale) {\r\n const tempDateString = new Date(dateString)\r\n .toLocaleDateString(locale)\r\n .replace(/([۰-۹])/g, (token) =>\r\n String.fromCharCode(token.charCodeAt(0) - 1728)\r\n );\r\n return tempDateString;\r\n}\r\n\r\nexport function initDatePickerValue(curDate) {\r\n // const day = moment(curDate, \"YYYY/MM/DD\").date();\r\n // const month = moment(curDate, \"YYYY/MM/DD\").month();\r\n // const year = moment(curDate, \"YYYY/MM/DD\").year();\r\n\r\n // ////////////////debugger;\r\n let day = \"01\";\r\n let month = \"01\";\r\n let year = \"0001\";\r\n\r\n if (curDate && curDate.length > 7) {\r\n let temp = curDate.split(\"/\");\r\n day = temp[2];\r\n month = temp[1];\r\n year = temp[0];\r\n\r\n if (temp[1].length < 2) {\r\n month = \"0\" + temp[1];\r\n }\r\n if (temp[2].length < 2) {\r\n day = \"0\" + temp[2];\r\n }\r\n }\r\n\r\n const newValue = {\r\n year: year,\r\n month: month,\r\n day: day,\r\n };\r\n\r\n return newValue;\r\n}\r\n\r\n// import moment from 'moment-jalaali'\r\n\r\n// export function formatDateString(dateString, spiliterChar) {\r\n// var d = new Date(dateString),\r\n// month = '' + (d.getMonth() + 1),\r\n// day = '' + d.getDate(),\r\n// year = d.getFullYear();\r\n\r\n// if (month.length < 2)\r\n// month = '0' + month;\r\n// if (day.length < 2)\r\n// day = '0' + day;\r\n\r\n// return [year, month, day].join(spiliterChar);\r\n// }\r\n\r\n// //dateString: '2006-09-20T00:00:00'\r\n// //locale: 'fa'\r\n// export function convertDateStringToLocal(dateString, locale) {\r\n\r\n// const tempDateString = new Date(dateString)\r\n// .toLocaleDateString(locale)\r\n// .replace(/([۰-۹])/g, (token) =>\r\n// String.fromCharCode(token.charCodeAt(0) - 1728)\r\n// );\r\n// return tempDateString;\r\n// }\r\n\r\n// export function initDatePickerValue(curDate) {\r\n\r\n// // let utcDate = moment(curDate, 'jYYYY/jM/jD').format(\"YYYY/MM/DD\");\r\n\r\n// // const day = utcDate.date();\r\n// // const month = utcDate.month();\r\n// // const year = utcDate.year();\r\n\r\n// let day = \"01\";\r\n// let month = \"01\";\r\n// let year = \"0001\";\r\n\r\n// if (curDate && curDate.length > 7) {\r\n// let temp = curDate.split('/');\r\n// day = temp[2];\r\n// month = temp[1];\r\n// year = temp[0];\r\n\r\n// if (temp[1].length < 2) { month = '0' + temp[1] }\r\n// if (temp[2].length < 2) { day = '0' + temp[2] }\r\n// }\r\n\r\n// const newValue = {\r\n// year: year,\r\n// month: month,\r\n// day: day,\r\n// };\r\n\r\n// return newValue;\r\n// }\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { useLang, setLanguage } from \"../../../../i18n\";\r\nimport { DropdownItemToggler } from \"../../../../_partials/dropdowns\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nconst languages = [\r\n // {\r\n // lang: \"fa\",\r\n // name: \"فارسی\",\r\n // flag: toAbsoluteUrl(\"/media/svg/flags/136-iran.svg\"),\r\n // },\r\n // {\r\n // lang: \"en\",\r\n // name: \"English\",\r\n // flag: toAbsoluteUrl(\"/media/svg/flags/012-uk.svg\"),\r\n // },\r\n // {\r\n // lang: \"ar\",\r\n // name: \"العربیه\",\r\n // flag: toAbsoluteUrl(\"/media/svg/flags/020-iraq.svg\"),\r\n // },\r\n];\r\n\r\nexport function LanguageSelectorDropdown({ activeLanguages }) {\r\n\r\n if (languages.length <= 0) {\r\n activeLanguages.map(item => {\r\n if (item === \"Farsi\")\r\n languages.push({\r\n lang: \"fa\",\r\n name: \"فارسی\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/136-iran.svg\"),\r\n })\r\n else if (item === \"English\")\r\n languages.push({\r\n lang: \"en\",\r\n name: \"English\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/012-uk.svg\"),\r\n })\r\n else if (item === \"Arabic\")\r\n languages.push({\r\n lang: \"ar\",\r\n name: \"العربیه\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/020-iraq.svg\"),\r\n })\r\n })\r\n\r\n }\r\n\r\n const lang = useLang();\r\n const currentLanguage = languages.find((x) => x.lang === lang);\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 {languages.map((language) => (\r\n \r\n setLanguage(language.lang)}\r\n className=\"navi-link\"\r\n >\r\n \r\n {language.name}\r\n \r\n {language.name}\r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","\r\nimport React from 'react';\r\nimport { useLang } from \"../_themeBase/i18n/Basei18n\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { toAbsoluteUrl } from '../_themeBase/_helpers';\r\n\r\n\r\nconst languages = [\r\n {\r\n lang: \"fa\",\r\n name: \"فارسی\",\r\n // flag: toAbsoluteUrl(\"/media/svg/flags/136-iran.svg\"),\r\n },\r\n {\r\n lang: \"en\",\r\n name: \"English\",\r\n // flag: toAbsoluteUrl(\"/media/svg/flags/226-united-states.svg\"),\r\n },\r\n {\r\n lang: \"ar\",\r\n name: \"العربیه\",\r\n // flag: toAbsoluteUrl(\"/media/svg/flags/133-saudi-arabia.svg\"),\r\n },\r\n];\r\n\r\n\r\nlet currentLanguage = 'en';\r\nexport const SetLayout = () => {\r\n\r\n const linkGlobalStyle = document.querySelector(\".global_style\");\r\n // console.log(linkGlobalStyle);\r\n\r\n const divBody = document.querySelector(\"#kt_body\");\r\n // console.log(divBody);\r\n\r\n const lang = useLang();\r\n currentLanguage = languages.find((x) => x.lang === lang);\r\n // console.log(currentLanguage);\r\n\r\n return (\r\n \r\n \r\n {(currentLanguage.lang === 'en' && ) ||\r\n (currentLanguage.lang !== 'en' && )}\r\n\r\n \r\n )\r\n\r\n\r\n // let ret = '
    '\r\n // if (currentLanguage.lang === 'en') {\r\n // // console.log(\"left to right layout\");\r\n\r\n // // linkGlobalStyle.setAttribute(\"href\", \"./css/style.react.css\");\r\n // // divBody.setAttribute(\"direction\", \"\");\r\n // // divBody.setAttribute(\"dir\", \"\");\r\n // // divBody.setAttribute(\"style\", \"\");\r\n // // // console.log(linkGlobalStyle);\r\n // ret =\r\n // \r\n\r\n // \r\n // \r\n // \r\n\r\n // }\r\n // else {\r\n // // console.log(\"Right to left layout\");\r\n // // linkGlobalStyle.setAttribute(\"href\", \"./css/style.react.rtl.css\");\r\n // // divBody.setAttribute(\"direction\", \"rtl\");\r\n // // divBody.setAttribute(\"dir\", \"rtl\");\r\n // // divBody.setAttribute(\"style\", \"direction: rtl\");\r\n // // // console.log(linkGlobalStyle);\r\n // ret = \r\n // \r\n\r\n // \r\n // \r\n // \r\n // }\r\n // return ret;\r\n // // return (null);\r\n\r\n}\r\n\r\nexport default SetLayout;","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { forwardRef } from \"react\";\r\n\r\nexport const DropdownCustomToggler = forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n >\r\n {props.children}\r\n \r\n );\r\n});\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid,no-undef */\r\n\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { FormattedDate, FormattedMessage, FormattedTime } from \"react-intl\";\r\nimport { useSelector, shallowEqual } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\n\r\nexport function QuickUser() {\r\n const history = useHistory();\r\n const { userData } = useSelector(\r\n (state) => ({ userData: state.auth.user }),\r\n shallowEqual\r\n );\r\n // \"{\"groupId\":null,\"subGroupTitle\":\"0\",\"dormId\":null,\"blockId\":null,\"isDeleted\":false,\"username\":\"admin\",\"idNumber\":\"123\",\"firstName\":\"مهدی\",\"lastName\":\"ابراهیمی\",\"gender\":\"Male\",\"nationalCode\":\"123\",\"email\":\"student@7diamond.ir\",\"mobile\":\"09122435833\",\"barcodeNumber\":\"1\",\"expirationDate\":\"3263-04-20T00:00:00\",\"deliveryDate\":\"2641-06-10T00:00:00\",\"credit\":100,\"isPayOff\":false,\"lostCard\":false,\"replicaCard1\":false,\"replicaCard2\":false,\"replicaCard3\":false,\"isLogin\":true,\"lastLoginDate\":\"2021-03-02T14:31:05.997\",\"lastLoginIp\":\"::1\",\"isActive\":true,\"reasonDeactivated\":\"0\",\"roomId\":2,\"roleId\":1,\"subGroupId\":1,\"collageId\":2,\"fieldId\":1,\"gradeId\":1,\"workUnitId\":null,\"description\":null,\"id\":22}\"\r\n\r\n\r\n // console.log(\"333 userData\" + JSON.stringify(userData))\r\n const messagesCount = 0;\r\n const logoutClick = () => {\r\n const toggle = document.getElementById(\"kt_quick_user_toggle\");\r\n if (toggle) {\r\n toggle.click();\r\n }\r\n history.push(\"/logout\");\r\n };\r\n\r\n const userProfile = () => {\r\n const toggle = document.getElementById(\"kt_quick_user_toggle\");\r\n if (toggle) {\r\n toggle.click();\r\n }\r\n history.push(`/persons/${userData.id}/edit`);\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 {userData.roleTitle}

    \r\n {userData.firstName} {userData.lastName}\r\n \r\n
    \r\n {userData.groupTitle} {userData.subGroupTitle}\r\n {/* \r\n

    \r\n */}\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {/* \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {\r\n ObjectConfirmCssClasses,\r\n ObjectConfirmTitles\r\n} from \"../../ObjectsUIHelpers\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nexport const ConfirmColumnFormatter = (cellContent, row) => (\r\n \r\n \r\n \r\n);\r\n\r\n\r\nexport const ConfirmRoomReservationColumnFormatter = (cellContent, row) => (\r\n <>\r\n {row.isPayed &&\r\n < span\r\n className={`label label-lg label-light-success\r\n } label-inline`}\r\n >\r\n \r\n {\" - \"}\r\n \r\n \r\n }\r\n {!row.isPayed && row.isExpired &&\r\n < span\r\n className={`label label-lg label-light-danger\r\n } label-inline`}\r\n >\r\n \r\n {\" - \"}\r\n \r\n \r\n\r\n }\r\n {!row.isPayed && !row.isExpired &&\r\n \r\n \r\n \r\n }\r\n \r\n);","import React from \"react\";\r\nimport {\r\n ObjectStatusCssClasses,\r\n ObjectStatusTitles,\r\n ObjectDeletedTitles,\r\n ObjectActiveTitles\r\n} from \"../../ObjectsUIHelpers\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\n\r\nconst setRow = (row) => {\r\n ////debugger\r\n if (row.isActive !== undefined && row.isDeleted !== undefined) {\r\n return (\r\n <>\r\n < span\r\n className={`label label-lg label-light-${ObjectStatusCssClasses[(+!row.isActive)]\r\n } label-inline`\r\n }\r\n >\r\n \r\n \r\n {\" \"}\r\n < span\r\n className={`label label-lg label-light-${ObjectStatusCssClasses[(+!!row.isDeleted)]\r\n } label-inline`\r\n }\r\n >\r\n \r\n \r\n \r\n )\r\n }\r\n else if (row.isActive !== undefined) {\r\n return (\r\n < span\r\n className={`label label-lg label-light-${ObjectStatusCssClasses[(+!row.isActive)]\r\n } label-inline`\r\n }\r\n >\r\n \r\n \r\n )\r\n }\r\n else if (row.isDeleted !== undefined) {\r\n return (\r\n < span\r\n className={`label label-lg label-light-${ObjectStatusCssClasses[(+!!row.isDeleted)]\r\n } label-inline`\r\n }\r\n >\r\n \r\n \r\n )\r\n\r\n\r\n }\r\n}\r\n\r\n\r\nexport const StatusColumnFormatter = (cellContent, row) => setRow(row);\r\n","import React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../_helpers\";\r\nimport FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord';\r\nimport WifiTetheringIcon from '@material-ui/icons/WifiTethering';\r\nimport PortableWifiOffIcon from '@material-ui/icons/PortableWifiOff';\r\n\r\nexport const ObjectSCssClasses = [\"danger\", \"success\"];\r\nexport const ObjectSTitles = [\r\n \"MODULES.GENERAL.NONSELECTED\",\r\n \"MODULES.GENERAL.SELECTED\",\r\n];\r\n\r\nexport const ObjectIcons = [\r\n ,\r\n ,\r\n];\r\n\r\nexport const ConnectionColumnFormatter = (cellContent, row) => (\r\n\r\n \r\n {/* */}\r\n {/* */}\r\n {ObjectIcons[(+row.isConnected)]}\r\n \r\n);\r\n","import React from \"react\";\r\nimport ReactHtmlParser, { processNodes, convertNodeToElement, htmlparser2 } from 'react-html-parser';\r\n\r\nexport const EditorColumnFormatter = (cellContent, row) =>
    {ReactHtmlParser(row.body)}
    ;\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_themeBase/_helpers\";\r\n\r\n\r\n\r\nexport const GroupSettingActionsColumnFormatter = (\r\n cellContent,\r\n row,\r\n rowIndex,\r\n {\r\n openAttendenceSettingPage, accessAttendence,\r\n openCullinanSettingPage, accessCullinan,\r\n openDormSettingPage, accessDorm,\r\n openSportSettingPage, accessSport,\r\n openBankAccountAccessPage, accessBankAccountAccess,\r\n }\r\n) => (\r\n
    \r\n {accessBankAccountAccess &&\r\n \r\n حساب های بانکی مجاز}\r\n >\r\n openBankAccountAccessPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {accessAttendence &&\r\n \r\n تنظیمات حضور غیاب}\r\n >\r\n openAttendenceSettingPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n\r\n {accessCullinan &&\r\n \r\n تنظیمات تغذیه}\r\n >\r\n openCullinanSettingPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n\r\n\r\n {accessDorm &&\r\n \r\n تنظیمات خوابگاهی}\r\n >\r\n openDormSettingPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n\r\n {accessSport &&\r\n \r\n تنظیمات ورزشی}\r\n >\r\n openSportSettingPage(row.id)}\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-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_themeBase/_helpers\";\r\n\r\n\r\n\r\nexport const RoomReservActionsColumnFormatter = (\r\n cellContent,\r\n row,\r\n rowIndex,\r\n {\r\n openReservRoomDialog, openStudentsRoomDialog, openRoomFacilityDialog\r\n }\r\n) => (\r\n <>\r\n انتخاب اتاق}\r\n >\r\n openReservRoomDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n <> \r\n دانشجویان}\r\n >\r\n openStudentsRoomDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n <> \r\n امکانات اتاق}\r\n >\r\n openRoomFacilityDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nexport const EmsTypeColumnFormatter = (cellContent, row) => (\r\n \r\n \r\n \r\n);\r\n\r\n\r\nexport const ObjectCssClasses = [\"success\", \"info\"];\r\nexport const ObjectTitles = [\"MODULES.BASEINFO.EMS.SETTING.TYPE1\", \"MODULES.BASEINFO.EMS.SETTING.TYPE2\"];","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_themeBase/_helpers\";\r\n\r\n\r\n\r\nexport const ActionsColumnFormatter = (\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditObjectPage,\r\n haveEditAction,\r\n openDeleteObjectDialog,\r\n openRefreshObjectDialog,\r\n haveDeleteAction,\r\n openConfirmObjectPage,\r\n confirmAction,\r\n openPaymentDialog,\r\n payAction,\r\n }\r\n) => (\r\n <>\r\n\r\n {haveEditAction && ویرایش}\r\n >\r\n openEditObjectPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n <> \r\n {!row.isDeleted && haveDeleteAction && حذف}\r\n >\r\n openDeleteObjectDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n {row.isDeleted && haveDeleteAction && فعالسازی}\r\n >\r\n openRefreshObjectDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n\r\n\r\n <> \r\n {confirmAction && !row.isPayed && !row.isExpired && تایید یا رد درخواست}\r\n >\r\n openConfirmObjectPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n\r\n {confirmAction && row.isPayed &&\r\n درخواست رزرو پرداخت شده است}\r\n >\r\n openConfirmObjectPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {confirmAction && !row.isPayed && row.isExpired &&\r\n درخواست رزرو منقضی شده است}\r\n >\r\n openConfirmObjectPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n <> \r\n {payAction && row.isConfirm && !row.isPayed && !row.isExpired && پرداخت هزینه}\r\n >\r\n openPaymentDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n\r\n {payAction && row.isPayed &&\r\n درخواست رزرو پرداخت شده است}\r\n >\r\n openPaymentDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {payAction && !row.isPayed && row.isExpired &&\r\n درخواست رزرو منقضی شده است}\r\n >\r\n openPaymentDialog(row.id)}\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-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_themeBase/_helpers\";\r\n\r\n\r\n\r\nexport const ViewColumnFormatter = (\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditObjectPage }\r\n) => (\r\n <>\r\n \r\n مشاهده}\r\n >\r\n openEditObjectPage(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n","import React from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport const translateByMessageId = (msgId) => {\r\n // some logic\r\n return ;\r\n}\r\n\r\nexport default translateByMessageId;\r\n","import React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport const translateByMessageIdParam = (msgId,param ='') => { \r\n return ;\r\n } ","import React from \"react\";\r\nimport { FormattedDate, FormattedTime } from 'react-intl'\r\nexport const DateColumnFormatter = (cellContent, row, props) => (\r\n \r\n // \r\n\r\n);\r\n\r\nexport const DateTimeColumnFormatter = (cellContent, row, props) => (\r\n \r\n);\r\n\r\n\r\n","import React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nexport const CompletedColumnFormatter = (cellContent, row) => (\r\n \r\n \r\n \r\n);\r\n\r\n\r\nexport const ObjectCssClasses = [\"info\", \"success\"];\r\nexport const ObjectTitles = [\"MODULES.GENERAL.NONCOMPLETED\", \"MODULES.GENERAL.COMPLETED\"];","import React from \"react\";\r\nexport const UserTrafficColumnFormatter = (cellContent, row) => (\r\n \r\n {row.trafficTypeTitle}\r\n \r\n);\r\n\r\nexport const UserTrafficOColumnFormatter = (cellContent, row) => (\r\n \r\n {row.originalTrafficTypeTitle}\r\n \r\n);\r\n\r\n// export const ObjectCssClasses = [\"info\", \"info\", \"info\", \"danger\", \"danger\", \"danger\", \"success\", \"success\", \"success\", \"warning\", \"warning\", \"warning\", \"warning\", \"warning\", \"warning\", \"warning\"];\r\n\r\nconst getColor = (code) => {\r\n\r\n switch (code) {\r\n case 16:\r\n return \"info\";\r\n case 17:\r\n return \"info\";\r\n case 18:\r\n return \"info\";\r\n\r\n case 32:\r\n return \"danger\";\r\n case 33:\r\n return \"danger\";\r\n case 34:\r\n return \"danger\";\r\n\r\n case 48:\r\n return \"success\";\r\n case 49:\r\n return \"success\";\r\n case 50:\r\n return \"success\";\r\n\r\n case 64:\r\n return \"warning\";\r\n case 65:\r\n return \"warning\";\r\n case 66:\r\n return \"warning\";\r\n case 67:\r\n return \"warning\";\r\n case 68:\r\n return \"warning\";\r\n case 69:\r\n return \"warning\";\r\n case 70:\r\n return \"warning\";\r\n\r\n\r\n default:\r\n break;\r\n }\r\n}","// TODO: Rename all formatters\r\nexport { ConfirmColumnFormatter } from \"./ConfirmColumnFormatter\";\r\nexport { ConfirmRoomReservationColumnFormatter } from \"./ConfirmColumnFormatter\";\r\nexport { StatusColumnFormatter } from \"./StatusColumnFormatter\";\r\nexport { ConnectionColumnFormatter } from \"./ConnectionColumnFormatter\";\r\nexport { ConditionColumnFormatter } from \"./ConditionColumnFormatter\";\r\nexport { ColorColumnFormatter } from \"./ColorColumnFormatter\";\r\nexport { PriceColumnFormatter } from \"./PriceColumnFormatter\";\r\nexport { EditorColumnFormatter } from \"./EditorColumnFormatter\";\r\nexport { GroupSettingActionsColumnFormatter } from \"./GroupSettingActionsColumnFormatter\";\r\nexport { RoomReservActionsColumnFormatter } from \"./RoomReservActionsColumnFormatter\";\r\nexport { PayActionColumnFormatter } from \"./PayActionColumnFormatter\";\r\nexport { EmsTypeColumnFormatter } from \"./EmsTypeColumnFormatter\";\r\n\r\nexport { ActionsColumnFormatter } from \"./ActionsColumnFormatter\";\r\nexport { ViewColumnFormatter } from \"./ViewColumnFormatter\";\r\nexport { translateByMessageId } from \"./TranslateColumn\";\r\nexport { translateByMessageIdParam } from \"./translateByMessageIdParam\";\r\nexport { DateColumnFormatter } from \"./DateColumnFormatter\";\r\nexport { DateTimeColumnFormatter } from \"./DateColumnFormatter\";\r\nexport { CompletedColumnFormatter } from \"./CompletedColumnFormatter\";\r\nexport { UserTrafficColumnFormatter } from \"./UserTrafficColumnFormatter\";\r\nexport { UserTrafficOColumnFormatter } from \"./UserTrafficColumnFormatter\";\r\nexport { SelectedColumnFormatter } from \"./SelectedColumnFormatter\";\r\n","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTMenu = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n // scrollable area with Perfect Scroll\r\n scroll: {\r\n rememberPosition: false\r\n },\r\n\r\n // accordion submenu mode\r\n accordion: {\r\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\r\n autoScrollSpeed: 1200,\r\n expandAll: true // allow having multiple expanded accordions in the menu\r\n },\r\n\r\n // dropdown submenu mode\r\n dropdown: {\r\n timeout: 500 // timeout in milliseconds to show and hide the hoverable submenu dropdown\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {KTMenu}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('menu')) {\r\n the = KTUtil.data(element).get('menu');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n the.eventHandlers = {};\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n the.uid = KTUtil.getUniqueID();\r\n },\r\n\r\n update: function(options) {\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n the.eventHandlers = {};\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n },\r\n\r\n reload: function() {\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n // reset submenu props\r\n Plugin.resetSubmenuProps();\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n build: function() {\r\n // General accordion submenu toggle\r\n the.eventHandlers['event_1'] = KTUtil.on( element, '.menu-toggle', 'click', Plugin.handleSubmenuAccordion);\r\n\r\n // Dropdown mode(hoverable)\r\n if (Plugin.getSubmenuMode() === 'dropdown' || Plugin.isConditionalSubmenuDropdown()) {\r\n // dropdown submenu - hover toggle\r\n the.eventHandlers['event_2'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseover', Plugin.handleSubmenuDrodownHoverEnter);\r\n the.eventHandlers['event_3'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseout', Plugin.handleSubmenuDrodownHoverExit);\r\n\r\n // dropdown submenu - click toggle\r\n the.eventHandlers['event_4'] = KTUtil.on( element, '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownClick);\r\n the.eventHandlers['event_5'] = KTUtil.on( element, '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownTabClick);\r\n }\r\n\r\n // Handle general link click\r\n the.eventHandlers['event_6'] = KTUtil.on(element, '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)', 'click', Plugin.handleLinkClick);\r\n\r\n // Init scrollable menu\r\n if (the.options.scroll && the.options.scroll.height) {\r\n Plugin.scrollInit();\r\n }\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n reset: function() {\r\n KTUtil.off( element, 'click', the.eventHandlers['event_1']);\r\n\r\n // dropdown submenu - hover toggle\r\n KTUtil.off( element, 'mouseover', the.eventHandlers['event_2']);\r\n KTUtil.off( element, 'mouseout', the.eventHandlers['event_3']);\r\n\r\n // dropdown submenu - click toggle\r\n KTUtil.off( element, 'click', the.eventHandlers['event_4']);\r\n KTUtil.off( element, 'click', the.eventHandlers['event_5']);\r\n\r\n // handle link click\r\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\r\n },\r\n\r\n /**\r\n * Init scroll menu\r\n *\r\n */\r\n scrollInit: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollDestroy(element, true);\r\n KTUtil.scrollInit(element, {mobileNativeScroll: true, windowScroll: false, resetHeightOnDestroy: true, handleWindowResize: true, height: the.options.scroll.height, rememberPosition: the.options.scroll.rememberPosition});\r\n } else {\r\n KTUtil.scrollDestroy(element, true);\r\n }\r\n },\r\n\r\n /**\r\n * Update scroll menu\r\n */\r\n scrollUpdate: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollUpdate(element);\r\n }\r\n },\r\n\r\n /**\r\n * Scroll top\r\n */\r\n scrollTop: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollTop(element);\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n getSubmenuMode: function(el) {\r\n if ( KTUtil.isBreakpointUp('lg') ) {\r\n if (el && KTUtil.hasAttr(el, 'data-menu-toggle') && KTUtil.attr(el, 'data-menu-toggle') == 'hover') {\r\n return 'dropdown';\r\n }\r\n\r\n if ( KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n if ( KTUtil.hasClasses(body, the.options.submenu.desktop.state.body) ) {\r\n return the.options.submenu.desktop.state.mode;\r\n } else {\r\n return the.options.submenu.desktop.default;\r\n }\r\n } else if ( KTUtil.isset(the.options.submenu, 'desktop') ) {\r\n return the.options.submenu.desktop;\r\n }\r\n } else if ( KTUtil.isBreakpointUp('md') && KTUtil.isBreakpointDown('lg') && KTUtil.isset(the.options.submenu, 'tablet') ) {\r\n return the.options.submenu.tablet;\r\n } else if ( KTUtil.isBreakpointDown('md') && KTUtil.isset(the.options.submenu, 'mobile') ) {\r\n return the.options.submenu.mobile;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n isConditionalSubmenuDropdown: function() {\r\n if ( KTUtil.isBreakpointUp('lg') && KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Reset submenu attributes\r\n * @returns {KTMenu}\r\n */\r\n resetSubmenuProps: function(e) {\r\n var submenus = KTUtil.findAll(element, '.menu-submenu');\r\n if ( submenus ) {\r\n for (var i = 0, len = submenus.length; i < len; i++) {\r\n var submenu = submenus[0];\r\n\r\n KTUtil.css(submenu, 'display', '');\r\n KTUtil.css(submenu, 'overflow', '');\r\n\r\n if (submenu.hasAttribute('data-hor-direction')) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, submenu.getAttribute('data-hor-direction'));\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverEnter: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n item.removeAttribute('data-hover');\r\n clearTimeout( item.getAttribute('data-timeout') );\r\n item.removeAttribute('data-timeout');\r\n }\r\n\r\n Plugin.showSubmenuDropdown(item);\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverExit: function(e) {\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n var time = the.options.dropdown.timeout;\r\n\r\n var timeout = setTimeout(function() {\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n }, time);\r\n\r\n item.setAttribute('data-hover', '1');\r\n item.setAttribute('data-timeout', timeout);\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClick: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( item.getAttribute('data-menu-submenu-mode') == 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( KTUtil.hasClass(item, 'menu-item-hover') === false ) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n } else {\r\n KTUtil.removeClass(item, 'menu-item-open-dropdown' );\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles tab click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownTabClick: function(e) {\r\n if (Plugin.getSubmenuMode(this) === 'accordion') {\r\n return;\r\n }\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles link click\r\n * @returns {KTMenu}\r\n */\r\n handleLinkClick: function(e) {\r\n var submenu = this.closest('.menu-item.menu-item-submenu');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('linkClick', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( submenu && Plugin.getSubmenuMode(submenu) === 'dropdown' ) {\r\n Plugin.hideSubmenuDropdowns();\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu dropdown close on link click\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClose: function(e, el) {\r\n // exit if its not submenu dropdown mode\r\n if (Plugin.getSubmenuMode(el) === 'accordion') {\r\n return;\r\n }\r\n\r\n var shown = element.querySelectorAll('.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)');\r\n\r\n // check if currently clicked link's parent item ha\r\n if (shown.length > 0 && KTUtil.hasClass(el, 'menu-toggle') === false && el.querySelectorAll('.menu-toggle').length === 0) {\r\n // close opened dropdown menus\r\n for (var i = 0, len = shown.length; i < len; i++) {\r\n Plugin.hideSubmenuDropdown(shown[0], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuAccordion: function(e, el) {\r\n var query;\r\n var item = el ? el : this;\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(el) === 'dropdown' && (query = item.closest('.menu-item') ) ) {\r\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion' ) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n var li = item.closest('.menu-item');\r\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\r\n\r\n if (KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')) {\r\n return;\r\n }\r\n\r\n if ( li && submenu ) {\r\n e.preventDefault();\r\n var speed = the.options.accordion.slideSpeed;\r\n var hasClosables = false;\r\n\r\n if ( KTUtil.hasClass(li, 'menu-item-open') === false ) {\r\n // hide other accordions\r\n if ( the.options.accordion.expandAll === false ) {\r\n var subnav = item.closest('.menu-nav, .menu-subnav');\r\n var closables = KTUtil.children(subnav, '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)');\r\n\r\n if ( subnav && closables ) {\r\n for (var i = 0, len = closables.length; i < len; i++) {\r\n var el_ = closables[0];\r\n var submenu_ = KTUtil.child(el_, '.menu-submenu');\r\n if ( submenu_ ) {\r\n KTUtil.slideUp(submenu_, speed, function() {\r\n Plugin.scrollUpdate();\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n KTUtil.slideDown(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.scrollUpdate();\r\n\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.addClass(li, 'menu-item-open');\r\n\r\n } else {\r\n KTUtil.slideUp(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.removeClass(li, 'menu-item-open');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * scroll to item function\r\n * @returns {KTMenu}\r\n */\r\n scrollToItem: function(item) {\r\n // handle auto scroll for accordion submenus\r\n if ( KTUtil.isBreakpointUp('lg') && the.options.accordion.autoScroll && element.getAttribute('data-menu-scroll') !== '1' ) {\r\n KTUtil.scrollTo(item, the.options.accordion.autoScrollSpeed);\r\n }\r\n },\r\n\r\n /**\r\n * Hide submenu dropdown\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdown: function(item, classAlso) {\r\n // remove submenu activation class\r\n if ( classAlso ) {\r\n KTUtil.removeClass(item, 'menu-item-hover');\r\n KTUtil.removeClass(item, 'menu-item-active-tab');\r\n }\r\n\r\n // clear timeout\r\n item.removeAttribute('data-hover');\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.removeClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n\r\n var timeout = item.getAttribute('data-timeout');\r\n item.removeAttribute('data-timeout');\r\n clearTimeout(timeout);\r\n },\r\n\r\n /**\r\n * Hide submenu dropdowns\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdowns: function() {\r\n var items;\r\n if ( items = element.querySelectorAll('.menu-item-submenu.menu-item-hover:not(.menu-item-tabs):not([data-menu-toggle=\"tab\"])') ) {\r\n for (var j = 0, cnt = items.length; j < cnt; j++) {\r\n Plugin.hideSubmenuDropdown(items[j], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n showSubmenuDropdown: function(item) {\r\n // close active submenus\r\n var list = element.querySelectorAll('.menu-item-submenu.menu-item-hover, .menu-item-submenu.menu-item-active-tab');\r\n\r\n if ( list ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[i];\r\n if ( item !== el && el.contains(item) === false && item.contains(el) === false ) {\r\n Plugin.hideSubmenuDropdown(el, true);\r\n }\r\n }\r\n }\r\n\r\n // add submenu activation class\r\n KTUtil.addClass(item, 'menu-item-hover');\r\n\r\n // Change the alignment of submenu is offscreen.\r\n var submenu = KTUtil.find(item, '.menu-submenu');\r\n\r\n if (submenu && submenu.hasAttribute('data-hor-direction') === false) {\r\n if (KTUtil.hasClass(submenu, 'menu-submenu-left')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-left');\r\n } else if (KTUtil.hasClass(submenu, 'menu-submenu-right')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-right');\r\n }\r\n }\r\n\r\n if ( submenu && KTUtil.isOffscreen(submenu, 'left', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.addClass(submenu, 'menu-submenu-right');\r\n } else if ( submenu && KTUtil.isOffscreen(submenu, 'right', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, 'menu-submenu-left');\r\n }\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.addClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu slide toggle\r\n * @returns {KTMenu}\r\n */\r\n createSubmenuDropdownClickDropoff: function(el) {\r\n var query;\r\n var zIndex = (query = KTUtil.child(el, '.menu-submenu') ? KTUtil.css(query, 'z-index') : 0) - 1;\r\n\r\n var dropoff = document.createElement('
    ');\r\n\r\n body.appendChild(dropoff);\r\n\r\n KTUtil.addEvent(dropoff, 'click', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n KTUtil.remove(this);\r\n Plugin.hideSubmenuDropdown(el, true);\r\n });\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n pauseDropdownHover: function(time) {\r\n var date = new Date();\r\n\r\n the.pauseDropdownHoverTime = date.getTime() + time;\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n resumeDropdownHover: function() {\r\n var date = new Date();\r\n\r\n return (date.getTime() > the.pauseDropdownHoverTime ? true : false);\r\n },\r\n\r\n /**\r\n * Reset menu's current active item\r\n * @returns {KTMenu}\r\n */\r\n resetActiveItem: function(item) {\r\n var list;\r\n var parents;\r\n\r\n list = element.querySelectorAll('.menu-item-active');\r\n\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[0];\r\n KTUtil.removeClass(el, 'menu-item-active');\r\n KTUtil.hide( KTUtil.child(el, '.menu-submenu') );\r\n parents = KTUtil.parents(el, '.menu-item-submenu') || [];\r\n\r\n for (var i_ = 0, len_ = parents.length; i_ < len_; i_++) {\r\n var el_ = parents[i];\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n KTUtil.hide( KTUtil.child(el_, '.menu-submenu') );\r\n }\r\n }\r\n\r\n // close open submenus\r\n if ( the.options.accordion.expandAll === false ) {\r\n if ( list = element.querySelectorAll('.menu-item-open') ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n KTUtil.removeClass(parents[0], 'menu-item-open');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Sets menu's active item\r\n * @returns {KTMenu}\r\n */\r\n setActiveItem: function(item) {\r\n // reset current active item\r\n Plugin.resetActiveItem();\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu') || [];\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n KTUtil.addClass(parents[i], 'menu-item-open');\r\n }\r\n\r\n KTUtil.addClass(item, 'menu-item-active');\r\n },\r\n\r\n /**\r\n * Returns page breadcrumbs for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getBreadcrumbs: function(item) {\r\n var query;\r\n var breadcrumbs = [];\r\n var link = KTUtil.child(item, '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(link, '.menu-text') ? query.innerHTML : ''),\r\n title: link.getAttribute('title'),\r\n href: link.getAttribute('href')\r\n });\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu');\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n var submenuLink = KTUtil.child(parents[i], '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(submenuLink, '.menu-text') ? query.innerHTML : ''),\r\n title: submenuLink.getAttribute('title'),\r\n href: submenuLink.getAttribute('href')\r\n });\r\n }\r\n\r\n return breadcrumbs.reverse();\r\n },\r\n\r\n /**\r\n * Returns page title for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getPageTitle: function(item) {\r\n var query;\r\n\r\n return (query = KTUtil.child(item, '.menu-text') ? query.innerHTML : '');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, target, e) {\r\n for (var i = 0; i < the.events.length; i++ ) {\r\n var event = the.events[i];\r\n if ( event.name == name ) {\r\n if ( event.one == true ) {\r\n if ( event.fired == false ) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, target, e);\r\n }\r\n } else {\r\n return event.handler.call(this, target, e);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n },\r\n\r\n removeEvent: function(name) {\r\n if (the.events[name]) {\r\n delete the.events[name];\r\n }\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Update scroll\r\n */\r\n the.scrollUpdate = function() {\r\n return Plugin.scrollUpdate();\r\n };\r\n\r\n /**\r\n * Re-init scroll\r\n */\r\n the.scrollReInit = function() {\r\n return Plugin.scrollInit();\r\n };\r\n\r\n /**\r\n * Scroll top\r\n */\r\n the.scrollTop = function() {\r\n return Plugin.scrollTop();\r\n };\r\n\r\n /**\r\n * Set active menu item\r\n */\r\n the.setActiveItem = function(item) {\r\n return Plugin.setActiveItem(item);\r\n };\r\n\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n the.update = function(options) {\r\n return Plugin.update(options);\r\n };\r\n\r\n /**\r\n * Set breadcrumb for menu item\r\n */\r\n the.getBreadcrumbs = function(item) {\r\n return Plugin.getBreadcrumbs(item);\r\n };\r\n\r\n /**\r\n * Set page title for menu item\r\n */\r\n the.getPageTitle = function(item) {\r\n return Plugin.getPageTitle(item);\r\n };\r\n\r\n /**\r\n * Get submenu mode\r\n */\r\n the.getSubmenuMode = function(el) {\r\n return Plugin.getSubmenuMode(el);\r\n };\r\n\r\n /**\r\n * Hide dropdown\r\n * @returns {Object}\r\n */\r\n the.hideDropdown = function(item) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n };\r\n\r\n /**\r\n * Hide dropdowns\r\n * @returns {Object}\r\n */\r\n the.hideDropdowns = function() {\r\n Plugin.hideSubmenuDropdowns();\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.pauseDropdownHover = function(time) {\r\n Plugin.pauseDropdownHover(time);\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.resumeDropdownHover = function() {\r\n return Plugin.resumeDropdownHover();\r\n };\r\n\r\n /**\r\n * Register event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n the.off = function(name) {\r\n return Plugin.removeEvent(name);\r\n };\r\n\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Handle plugin on window resize\r\n KTUtil.addResizeHandler(function() {\r\n if (init) {\r\n the.reload();\r\n }\r\n });\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTMenu;\r\n}\r\n\r\n// Plugin global lazy initialization\r\ndocument.addEventListener(\"click\", function (e) {\r\n var body = KTUtil.getByTagName('body')[0];\r\n var query;\r\n if ( query = body.querySelectorAll('.menu-nav .menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)[data-menu-toggle=\"click\"]') ) {\r\n for (var i = 0, len = query.length; i < len; i++) {\r\n var element = query[i].closest('.menu-nav').parentNode;\r\n\r\n if ( element ) {\r\n var the = KTUtil.data(element).get('menu');\r\n\r\n if ( !the ) {\r\n break;\r\n }\r\n\r\n if ( !the || the.getSubmenuMode() !== 'dropdown' ) {\r\n break;\r\n }\r\n\r\n if ( e.target !== element && element.contains(e.target) === false ) {\r\n the.hideDropdowns();\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\r\nexport default KTMenu;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTScrolltop = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n offset: 300,\r\n speed: 6000\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {mscrolltop}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('scrolltop')) {\r\n the = KTUtil.data(element).get('scrolltop');\r\n } else {\r\n // reset scrolltop\r\n Plugin.init(options);\r\n\r\n // build scrolltop\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('scrolltop', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subscrolltop click toggle\r\n * @returns {mscrolltop}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n build: function() {\r\n var timer;\r\n\r\n window.addEventListener('scroll', function() {\r\n KTUtil.throttle(timer, function() {\r\n Plugin.handle();\r\n }, 200);\r\n });\r\n\r\n // handle button click\r\n KTUtil.addEvent(element, 'click', Plugin.scroll);\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n handle: function() {\r\n var pos = KTUtil.getScrollTop(); // current vertical position\r\n\r\n if (pos > the.options.offset) {\r\n if (body.hasAttribute('data-scrolltop') === false) {\r\n body.setAttribute('data-scrolltop', 'on');\r\n }\r\n } else {\r\n if (body.hasAttribute('data-scrolltop') === true) {\r\n body.removeAttribute('data-scrolltop');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n scroll: function(e) {\r\n e.preventDefault();\r\n\r\n KTUtil.scrollTop(0, the.options.speed);\r\n },\r\n\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get subscrolltop mode\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Set scrolltop content\r\n * @returns {mscrolltop}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTScrolltop;\r\n}\r\n\r\nexport default KTScrolltop;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTCard = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n toggleSpeed: 400,\r\n sticky: {\r\n releseOnReverse: false,\r\n offset: 300,\r\n zIndex: 101\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('card')) {\r\n the = KTUtil.data(element).get('card');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('card', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init card\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n the.header = KTUtil.child(element, '.card-header');\r\n the.footer = KTUtil.child(element, '.card-footer');\r\n\r\n if (KTUtil.child(element, '.card-body')) {\r\n the.body = KTUtil.child(element, '.card-body');\r\n } else if (KTUtil.child(element, '.form')) {\r\n the.body = KTUtil.child(element, '.form');\r\n }\r\n },\r\n\r\n /**\r\n * Build Form Wizard\r\n */\r\n build: function() {\r\n // Remove\r\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\r\n if (remove) {\r\n KTUtil.addEvent(remove, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.remove();\r\n });\r\n }\r\n\r\n // Reload\r\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\r\n if (reload) {\r\n KTUtil.addEvent(reload, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.reload();\r\n });\r\n }\r\n\r\n // Toggle\r\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\r\n if (toggle) {\r\n KTUtil.addEvent(toggle, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.toggle();\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Enable stickt mode\r\n */\r\n initSticky: function() {\r\n var lastScrollTop = 0;\r\n var offset = the.options.sticky.offset;\r\n\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n\t window.addEventListener('scroll', Plugin.onScrollSticky);\r\n },\r\n\r\n\t /**\r\n\t * Window scroll handle event for sticky card\r\n\t */\r\n\t onScrollSticky: function(e) {\r\n\t\t var offset = the.options.sticky.offset;\r\n\r\n\t\t if(isNaN(offset)) return;\r\n\r\n\t\t var st = KTUtil.getScrollTop();\r\n\r\n\t\t if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n\t\t\t Plugin.eventTrigger('stickyOn');\r\n\r\n\t\t\t KTUtil.addClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.updateSticky();\r\n\r\n\t\t } else if ((st*1.5) <= offset && KTUtil.hasClass(body, 'card-sticky-on')) {\r\n\t\t\t // Back scroll mode\r\n\t\t\t Plugin.eventTrigger('stickyOff');\r\n\r\n\t\t\t KTUtil.removeClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.resetSticky();\r\n\t\t }\r\n\t },\r\n\r\n updateSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n var top;\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\r\n if (the.options.sticky.position.top instanceof Function) {\r\n top = parseInt(the.options.sticky.position.top.call(this, the));\r\n } else {\r\n top = parseInt(the.options.sticky.position.top);\r\n }\r\n\r\n var left;\r\n if (the.options.sticky.position.left instanceof Function) {\r\n left = parseInt(the.options.sticky.position.left.call(this, the));\r\n } else {\r\n left = parseInt(the.options.sticky.position.left);\r\n }\r\n\r\n var right;\r\n if (the.options.sticky.position.right instanceof Function) {\r\n right = parseInt(the.options.sticky.position.right.call(this, the));\r\n } else {\r\n right = parseInt(the.options.sticky.position.right);\r\n }\r\n\r\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\r\n KTUtil.css(the.header, 'top', top + 'px');\r\n KTUtil.css(the.header, 'left', left + 'px');\r\n KTUtil.css(the.header, 'right', right + 'px');\r\n }\r\n },\r\n\r\n resetSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n KTUtil.css(the.header, 'z-index', '');\r\n KTUtil.css(the.header, 'top', '');\r\n KTUtil.css(the.header, 'left', '');\r\n KTUtil.css(the.header, 'right', '');\r\n }\r\n },\r\n\r\n /**\r\n * Remove card\r\n */\r\n remove: function() {\r\n if (Plugin.eventTrigger('beforeRemove') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.remove(element);\r\n\r\n Plugin.eventTrigger('afterRemove');\r\n },\r\n\r\n /**\r\n * Set content\r\n */\r\n setContent: function(html) {\r\n if (html) {\r\n the.body.innerHTML = html;\r\n }\r\n },\r\n\r\n /**\r\n * Get body\r\n */\r\n getBody: function() {\r\n return the.body;\r\n },\r\n\r\n /**\r\n * Get self\r\n */\r\n getSelf: function() {\r\n return element;\r\n },\r\n\r\n /**\r\n * Reload\r\n */\r\n reload: function() {\r\n Plugin.eventTrigger('reload');\r\n },\r\n\r\n /**\r\n * Toggle\r\n */\r\n toggle: function() {\r\n if (KTUtil.hasClass(element, 'card-collapse') || KTUtil.hasClass(element, 'card-collapsed')) {\r\n Plugin.expand();\r\n } else {\r\n Plugin.collapse();\r\n }\r\n },\r\n\r\n /**\r\n * Collapse\r\n */\r\n collapse: function() {\r\n if (Plugin.eventTrigger('beforeCollapse') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideUp(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterCollapse');\r\n });\r\n\r\n KTUtil.addClass(element, 'card-collapse');\r\n },\r\n\r\n /**\r\n * Expand\r\n */\r\n expand: function() {\r\n if (Plugin.eventTrigger('beforeExpand') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideDown(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterExpand');\r\n });\r\n\r\n KTUtil.removeClass(element, 'card-collapse');\r\n KTUtil.removeClass(element, 'card-collapsed');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Remove card\r\n */\r\n the.remove = function() {\r\n return Plugin.remove(html);\r\n };\r\n\r\n /**\r\n * Init sticky card\r\n */\r\n the.initSticky = function() {\r\n return Plugin.initSticky();\r\n };\r\n\r\n /**\r\n * Rerender sticky layout\r\n */\r\n the.updateSticky = function() {\r\n return Plugin.updateSticky();\r\n };\r\n\r\n /**\r\n * Reset the sticky\r\n */\r\n the.resetSticky = function() {\r\n return Plugin.resetSticky();\r\n };\r\n\r\n\t/**\r\n\t * Destroy sticky card\r\n\t */\r\n\tthe.destroySticky = function() {\r\n\t\tPlugin.resetSticky();\r\n\t\twindow.removeEventListener('scroll', Plugin.onScrollSticky);\r\n\t};\r\n\r\n /**\r\n * Reload card\r\n */\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n /**\r\n * Set card content\r\n */\r\n the.setContent = function(html) {\r\n return Plugin.setContent(html);\r\n };\r\n\r\n /**\r\n * Toggle card\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Collapse card\r\n */\r\n the.collapse = function() {\r\n return Plugin.collapse();\r\n };\r\n\r\n /**\r\n * Expand card\r\n */\r\n the.expand = function() {\r\n return Plugin.expand();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getBody = function() {\r\n return Plugin.getBody();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getSelf = function() {\r\n return Plugin.getSelf();\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTCard;\r\n}\r\n\r\nexport default KTCard;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTToggle = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n targetToggleMode: 'class' // class|attribute\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('toggle')) {\r\n the = KTUtil.data(element).get('toggle');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('toggle', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subtoggle click toggle\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // Merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n //alert(the.options.target.tagName);\r\n the.target = KTUtil.getById(options.target);\r\n\r\n the.targetState = the.options.targetState;\r\n the.toggleState = the.options.toggleState;\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n the.state = KTUtil.hasClasses(the.target, the.targetState) ? 'on' : 'off';\r\n } else {\r\n the.state = KTUtil.hasAttr(the.target, 'data-' + the.targetState) ? KTUtil.attr(the.target, 'data-' + the.targetState) : 'off';\r\n }\r\n },\r\n\r\n /**\r\n * Setup toggle\r\n */\r\n build: function() {\r\n KTUtil.addEvent(element, 'mouseup', Plugin.toggle);\r\n },\r\n\r\n /**\r\n * Handles offcanvas click toggle\r\n */\r\n toggle: function(e) {\r\n Plugin.eventTrigger('beforeToggle');\r\n\r\n if (the.state == 'off') {\r\n Plugin.toggleOn();\r\n } else {\r\n Plugin.toggleOff();\r\n }\r\n\r\n Plugin.eventTrigger('afterToggle');\r\n\r\n e.preventDefault();\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOn: function() {\r\n Plugin.eventTrigger('beforeOn');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.addClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.attr(the.target, 'data-' + the.targetState, 'on');\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.addClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'on';\r\n\r\n Plugin.eventTrigger('afterOn');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOff: function() {\r\n Plugin.eventTrigger('beforeOff');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.removeClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.removeAttr(the.target, 'data-' + the.targetState);\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.removeClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'off';\r\n\r\n Plugin.eventTrigger('afterOff');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get toggle state\r\n */\r\n the.getState = function() {\r\n return the.state;\r\n };\r\n\r\n /**\r\n * Toggle\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Toggle on\r\n */\r\n the.toggleOn = function() {\r\n return Plugin.toggleOn();\r\n };\r\n\r\n /**\r\n * Toggle off\r\n */\r\n the.toggleOff = function() {\r\n return Plugin.toggleOff();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @returns {KTToggle}\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @returns {KTToggle}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTToggle;\r\n}\r\n\r\nexport default KTToggle;","export const ObjectStatusCssClasses = [\"success\", \"danger\"];\r\nexport const ObjectGenderTitles = [\r\n \"MODULES.BASEINFO.USERS.GENDER_MALE\",\r\n \"MODULES.BASEINFO.USERS.GENDER_FEMALE\",\r\n];\r\nexport const ObjectEmsTitles = [\r\n \"MODULES.BASEINFO.EMS.SETTING.TYPE1\",\r\n \"MODULES.BASEINFO.EMS.SETTING.TYPE2\",\r\n];\r\n\r\nexport const ObjectChangePasswordTitles = [\r\n \"MODULES.GENERAL.NEED_PASSWORD_CHANGE_FALSE\",\r\n \"MODULES.GENERAL.NEED_PASSWORD_CHANGE_TRUE\",\r\n];\r\nexport const ObjectDeletedTitles = [\r\n \"MODULES.GENERAL.STATUSNONDELETED\",\r\n \"MODULES.GENERAL.STATUSDELETED\",\r\n];\r\nexport const ObjectStatusTitles = [\r\n // \"MODULES.GENERAL.STATUSENABLE\",\r\n \"MODULES.GENERAL.STATUSNONDELETED\",\r\n \"MODULES.GENERAL.STATUSDELETED\",\r\n];\r\nexport const ObjectActiveTitles = [\r\n \"MODULES.GENERAL.STATUSENABLE\",\r\n \"MODULES.GENERAL.STATUSDISABLE\",\r\n];\r\nexport const ObjectConfirmCssClasses = [\"warning\", \"info\"];\r\nexport const ObjectConfirmTitles = [\r\n \"MODULES.GENERAL.REJECTED\",\r\n \"MODULES.GENERAL.CONFIRMED\",\r\n];\r\nexport const ObjectConditionCssClasses = [\"success\", \"danger\", \"\"];\r\nexport const ObjectConditionTitles = [\"New\", \"Used\"];\r\nexport const defaultSorted = [{ dataField: \"id\", order: \"desc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"20\", value: 20 },\r\n { text: \"30\", value: 30 },\r\n { text: \"40\", value: 40 },\r\n { text: \"50\", value: 50 },\r\n];\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialObjectsState = {\r\n //name:\"\",\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n objectForEdit: undefined,\r\n lastError: null,\r\n lastMsg: null,\r\n selectedIds: []\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\n\r\nexport const objectsSlice = ({ name = \"\" }) => {\r\n const slice = createSlice(\r\n {\r\n name: name,\r\n initialState: { name, ...initialObjectsState },\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.lastError = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getObjectById\r\n objectFetched: (state, action) => {\r\n //////////////debugger\r\n state.actionsLoading = false;\r\n state.objectForEdit = action.payload.objectForEdit;\r\n state.error = null;\r\n },\r\n // findObjects\r\n objectsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // fetchAllObjects\r\n allObjectsFetched: (state, action) => {\r\n const { entities } = action.payload;\r\n state.error = null;\r\n state.entities = entities;\r\n },\r\n // createObject\r\n objectCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n if (state.entities) {\r\n state.entities.push(action.payload.object);\r\n }\r\n state.lastMsg = \"رکورد جدید با موفقیت ایجاد شد.\";\r\n },\r\n objectsCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n if (state.entities) {\r\n state.entities.push(action.payload.objects);\r\n }\r\n state.lastMsg = \"رکوردهای جدید با موفقیت ایجاد شد.\";\r\n },\r\n // updateObject\r\n objectUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n if (state.entities) {\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.object.id) {\r\n return action.payload.object;\r\n }\r\n return entity;\r\n });\r\n }\r\n state.lastMsg = \"رکورد مورد نظر با موفقیت ویرایش شد.\";\r\n },\r\n // deleteObject\r\n objectDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n state.lastMsg = \"رکورد مورد نظر با موفقیت حذف شد.\";\r\n },\r\n // deleteObjects\r\n objectsDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n state.lastMsg = \"رکوردهای مورد نظر با موفقیت حذف شد.\";\r\n },\r\n objectsUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n ////////////////debugger;\r\n const { ids, object } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity = { entity, ...object }\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"رکوردهای مورد نظر با موفقیت به روز رسانی شدند.\";\r\n },\r\n // objectsUpdateState\r\n objectsStatusUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n ////////////////debugger;\r\n const { ids, isDeleted } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.isDeleted = isDeleted;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"وضعیت رکوردهای مورد نظر با موفقیت به روز رسانی شد.\";\r\n },\r\n // objectsUpdateAllowed\r\n objectsAllowedUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n ////////////////debugger;\r\n const { ids, allowed } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.allowed = allowed;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"اجازه دسترسی رکوردهای مورد نظر با موفقیت به روز رسانی شد.\";\r\n },\r\n // objectsUpdateAllowed\r\n objectsFullAccessUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n const { ids, isFullAccess } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.isFullAccess = isFullAccess;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"سطح دسترسی رکوردهای مورد نظر با موفقیت به روز رسانی شد.\";\r\n },\r\n // objectsUpdateHoliday\r\n objectsHolidayUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n const { ids, holiday } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.holiday = holiday;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"وضعیت رکوردهای مورد نظر با موفقیت به روز رسانی شد.\";\r\n },\r\n objectsSelectedUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n const { ids, isSelected } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.isSelected = isSelected;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"وضعیت رکوردهای مورد نظر با موفقیت به روز رسانی شد.\";\r\n },\r\n setSelectedObjects: (state, action) => {\r\n //////////////debugger\r\n state.actionsLoading = false;\r\n state.error = null;\r\n // state.selectedIds = []\r\n state.selectedIds = action.payload.ids\r\n // if (state.entities && action.payload.ids) {\r\n // state.entities = state.entities.map(entity => {\r\n // if (action.payload.ids.findIndex(id => id === entity.id) > -1) {\r\n // entity.isSelected = true;\r\n // }\r\n // else {\r\n // entity.isSelected = false;\r\n // }\r\n // return entity;\r\n // });\r\n // }\r\n // state.lastMsg = \"رکوردهای مورد نظر با موفقیت به روز رسانی شدند.\";\r\n },\r\n }\r\n });\r\n return slice;\r\n};\r\n\r\n// export const objectsSlice = createSlice(\r\n// {\r\n// name: \"objects\",\r\n// initialState: initialObjectsState,\r\n// reducers: {\r\n// catchError: (state, action) => {\r\n// state.error = `${action.type}: ${action.payload.error}`;\r\n// if (action.payload.callType === callTypes.list) {\r\n// state.listLoading = false;\r\n// } else {\r\n// state.actionsLoading = false;\r\n// }\r\n// },\r\n// startCall: (state, action) => {\r\n// state.error = null;\r\n// if (action.payload.callType === callTypes.list) {\r\n// state.listLoading = true;\r\n// } else {\r\n// state.actionsLoading = true;\r\n// }\r\n// },\r\n// // getObjectById\r\n// objectFetched: (state, action) => {\r\n// state.actionsLoading = false;\r\n// state.objectForEdit = action.payload.objectForEdit;\r\n// state.error = null;\r\n// },\r\n// // findObjects\r\n// objectsFetched: (state, action) => {\r\n// const { totalCount, entities } = action.payload;\r\n// state.listLoading = false;\r\n// state.error = null;\r\n// state.entities = entities;\r\n// state.totalCount = totalCount;\r\n// },\r\n// // createObject\r\n// objectCreated: (state, action) => {\r\n// state.actionsLoading = false;\r\n// state.error = null;\r\n// state.entities.push(action.payload.object);\r\n// },\r\n// // updateObject\r\n// objectUpdated: (state, action) => {\r\n// state.error = null;\r\n// state.actionsLoading = false;\r\n// state.entities = state.entities.map(entity => {\r\n// if (entity.id === action.payload.object.id) {\r\n// return action.payload.object;\r\n// }\r\n// return entity;\r\n// });\r\n// },\r\n// // deleteObject\r\n// objectDeleted: (state, action) => {\r\n// state.error = null;\r\n// state.actionsLoading = false;\r\n// state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n// },\r\n// // deleteObjects\r\n// objectsDeleted: (state, action) => {\r\n// state.error = null;\r\n// state.actionsLoading = false;\r\n// state.entities = state.entities.filter(\r\n// el => !action.payload.ids.includes(el.id)\r\n// );\r\n// },\r\n// // objectsUpdateState\r\n// objectsStatusUpdated: (state, action) => {\r\n// state.actionsLoading = false;\r\n// state.error = null;\r\n// const { ids, status } = action.payload;\r\n// state.entities = state.entities.map(entity => {\r\n// if (ids.findIndex(id => id === entity.id) > -1) {\r\n// entity.status = status;\r\n// }\r\n// return entity;\r\n// });\r\n// }\r\n// }\r\n// });\r\n\r\n\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialObjectsState = {\r\n //name:\"\",\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n objectForEdit: undefined,\r\n lastError: null,\r\n lastMsg: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const calendarSlice = createSlice(\r\n {\r\n name: \"calendars\",\r\n initialState: initialObjectsState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.lastError = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getObjectById\r\n objectFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.objectForEdit = action.payload.objectForEdit;\r\n state.error = null;\r\n },\r\n // findObjects\r\n objectsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // fetchAllObjects\r\n allObjectsFetched: (state, action) => {\r\n const { entities } = action.payload;\r\n state.error = null;\r\n state.entities = entities;\r\n },\r\n // createObject\r\n objectCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.object);\r\n state.lastMsg = \"رکورد جدید با موفقیت ایجاد شد.\";\r\n },\r\n // updateObject\r\n objectUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.object.id) {\r\n return action.payload.object;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"رکورد مورد نظر با موفقیت ویرایش شد.\";\r\n },\r\n // deleteObject\r\n objectDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n state.lastMsg = \"رکورد مورد نظر با موفقیت حذف شد.\";\r\n },\r\n // deleteObjects\r\n objectsDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n state.lastMsg = \"رکوردهای مورد نظر با موفقیت حذف شد.\";\r\n },\r\n objectsUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n ////////////////debugger;\r\n const { ids, object } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity = { entity, ...object }\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"رکوردهای مورد نظر با موفقیت به روز رسانی شدند.\";\r\n },\r\n // objectsUpdateState\r\n objectsStatusUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n ////////////////debugger;\r\n const { ids, isDeleted } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.isDeleted = isDeleted;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"وضعیت رکوردهای مورد نظر با موفقیت به روز رسانی شد.\";\r\n },\r\n // objectsUpdateHoliday\r\n objectsHolidayUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n const { ids, holiday } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.holiday = holiday;\r\n }\r\n return entity;\r\n });\r\n state.lastMsg = \"وضعیت رکوردهای مورد نظر با موفقیت به روز رسانی شد.\";\r\n }\r\n }\r\n });\r\n\r\n\r\n","import { combineReducers } from \"redux\";\r\nimport { calendarSlice } from \"../app/reduxSlices/BaseInfo/calendarSlice\";\r\nimport { objectsSlice } from \"../app/reduxSlices/objectsSlice\";\r\n\r\nexport const baseInfoReducer = combineReducers({\r\n\r\n dormDashboard: objectsSlice({ name: \"dormDashboard\" }).reducer,\r\n\r\n users: objectsSlice({ name: \"users\" }).reducer,\r\n profileFileDescription: objectsSlice({ name: \"profileFileDescription\" }).reducer,\r\n golestanUsers: objectsSlice({ name: \"golestanUsers\" }).reducer,\r\n detailUsers: objectsSlice({ name: \"detailUsers\" }).reducer,\r\n univercities: objectsSlice({ name: \"univercities\" }).reducer,\r\n\r\n dorms: objectsSlice({ name: \"dorms\" }).reducer,\r\n blocks: objectsSlice({ name: \"blocks\" }).reducer,\r\n dormBlocks: objectsSlice({ name: \"dormBlocks\" }).reducer,\r\n rooms: objectsSlice({ name: \"rooms\" }).reducer,\r\n blockRooms: objectsSlice({ name: \"blockRooms\" }).reducer,\r\n\r\n collages: objectsSlice({ name: \"collages\" }).reducer,\r\n workUnit: objectsSlice({ name: \"workUnit\" }).reducer,\r\n fields: objectsSlice({ name: \"fields\" }).reducer,\r\n groups: objectsSlice({ name: \"groups\" }).reducer,\r\n subGroups: objectsSlice({ name: \"subGroups\" }).reducer,\r\n devices: objectsSlice({ name: \"devices\" }).reducer,\r\n deviceTypes: objectsSlice({ name: \"deviceTypes\" }).reducer,\r\n deviceGroups: objectsSlice({ name: \"deviceGroups\" }).reducer,\r\n terms: objectsSlice({ name: \"terms\" }).reducer,\r\n years: objectsSlice({ name: \"years\" }).reducer,\r\n semesters: objectsSlice({ name: \"semesters\" }).reducer,\r\n grades: objectsSlice({ name: \"grades\" }).reducer,\r\n accounts: objectsSlice({ name: \"accounts\" }).reducer,\r\n banks: objectsSlice({ name: \"banks\" }).reducer,\r\n\r\n calendars: objectsSlice({ name: \"calendars\" }).reducer,\r\n // calendars: calendarSlice.reducer,\r\n\r\n roles: objectsSlice({ name: \"roles\" }).reducer,\r\n menus: objectsSlice({ name: \"menus\" }).reducer,\r\n tabMenus: objectsSlice({ name: \"tabMenus\" }).reducer,\r\n permissions: objectsSlice({ name: \"permissions\" }).reducer,\r\n groupPermissions: objectsSlice({ name: \"groupPermissions\" }).reducer,\r\n menuPermissions: objectsSlice({ name: \"menuPermissions\" }).reducer,\r\n tabPermissions: objectsSlice({ name: \"tabPermissions\" }).reducer,\r\n rolePermissions: objectsSlice({ name: \"rolePermissions\" }).reducer,\r\n\r\n workUnits: objectsSlice({ name: \"workUnits\" }).reducer,\r\n workUnitPermissions: objectsSlice({ name: \"workUnitPermissions\" }).reducer,\r\n\r\n blogs: objectsSlice({ name: \"blogs\" }).reducer,\r\n bankAccountSubGroups: objectsSlice({ name: \"bankAccountSubGroups\" }).reducer,\r\n provinces: objectsSlice({ name: \"provinces\" }).reducer,\r\n towns: objectsSlice({ name: \"towns\" }).reducer,\r\n logs: objectsSlice({ name: \"logs\" }).reducer,\r\n emsSettings: objectsSlice({ name: \"emsSettings\" }).reducer,\r\n});\r\n","import { combineReducers } from \"redux\";\r\nimport { objectsSlice } from \"../app/reduxSlices/objectsSlice\";\r\n\r\nexport const shiftReducer = combineReducers({\r\n workTimes: objectsSlice({ name: \"workTimes\" }).reducer,\r\n shifts: objectsSlice({ name: \"shifts\" }).reducer,\r\n shiftCategories: objectsSlice({ name: \"shiftCategories\" }).reducer,\r\n shiftPatterns: objectsSlice({ name: \"shiftPatterns\" }).reducer,\r\n attSettingSubGroups: objectsSlice({ name: \"attSettingSubGroups\" }).reducer,\r\n missions: objectsSlice({ name: \"missions\" }).reducer,\r\n myMissions: objectsSlice({ name: \"myMissions\" }).reducer,\r\n trafficTypes: objectsSlice({ name: \"trafficTypes\" }).reducer,\r\n userTrafficTypes: objectsSlice({ name: \"userTrafficTypes\" }).reducer,\r\n missionTrafficTypes: objectsSlice({ name: \"missionTrafficTypes\" }).reducer,\r\n userTraffics: objectsSlice({ name: \"userTraffics\" }).reducer,\r\n myUserTraffics: objectsSlice({ name: \"myUserTraffics\" }).reducer,\r\n trafficsReport: objectsSlice({ name: \"trafficsReport\" }).reducer,\r\n myTrafficsReport: objectsSlice({ name: \"myTrafficsReport\" }).reducer,\r\n});\r\n\r\n","import { combineReducers } from \"redux\";\r\nimport { objectsSlice } from \"../app/reduxSlices/objectsSlice\";\r\n\r\nexport const sportReducer = combineReducers({\r\n salon: objectsSlice({ name: \"salon\" }).reducer,\r\n sport: objectsSlice({ name: \"sport\" }).reducer,\r\n closet: objectsSlice({ name: \"closet\" }).reducer,\r\n contract: objectsSlice({ name: \"contract\" }).reducer,\r\n sans_category: objectsSlice({ name: \"sans_category\" }).reducer,\r\n sans_time: objectsSlice({ name: \"sans_time\" }).reducer,\r\n sans_time_selectedSport: objectsSlice({ name: \"sans_time_selectedSport\" }).reducer,\r\n sans_time_selectedWeekDay: objectsSlice({ name: \"sans_time_selectedWeekDay\" }).reducer,\r\n weekDay: objectsSlice({ name: \"weekDay\" }).reducer,\r\n subGroupSansPermissions: objectsSlice({ name: \"subGroupSansPermissions\" }).reducer,\r\n subGroupDeviceSportPermissions: objectsSlice({ name: \"subGroupDeviceSportPermissions\" }).reducer,\r\n sportSubGroupPriceSetting: objectsSlice({ name: \"sportSubGroupPriceSetting\" }).reducer,\r\n sport_payment: objectsSlice({ name: \"sport_payment\" }).reducer,\r\n bankAccountSalons: objectsSlice({ name: \"bankAccountSalons\" }).reducer,\r\n\r\n});\r\n","import { combineReducers } from \"redux\";\r\nimport { objectsSlice } from \"../app/reduxSlices/objectsSlice\";\r\n\r\nexport const dormReducer = combineReducers({\r\n\r\n facility: objectsSlice({ name: \"facility\" }).reducer,\r\n roomFacility: objectsSlice({ name: \"roomFacility\" }).reducer,\r\n roomFacility_selectedFacility: objectsSlice({ name: \"roomFacility_selectedFacility\" }).reducer,\r\n\r\n\r\n subGroupDeviceSDormPermissions: objectsSlice({ name: \"subGroupDeviceSDormPermissions\" }).reducer,\r\n dormTrafficsReport: objectsSlice({ name: \"dormTrafficsReport\" }).reducer,\r\n myDormTrafficsReport: objectsSlice({ name: \"myDormTrafficsReport\" }).reducer,\r\n dormitoryTraffics: objectsSlice({ name: \"dormitoryTraffics\" }).reducer,\r\n myDormitoryTraffics: objectsSlice({ name: \"myDormitoryTraffics\" }).reducer,\r\n trafficTypes: objectsSlice({ name: \"trafficTypes\" }).reducer,\r\n userTrafficTypes: objectsSlice({ name: \"userTrafficTypes\" }).reducer,\r\n missionTrafficTypes: objectsSlice({ name: \"missionTrafficTypes\" }).reducer,\r\n\r\n bankAccountDorms: objectsSlice({ name: \"bankAccountDorms\" }).reducer,\r\n reservationTimeSettings: objectsSlice({ name: \"reservationTimeSettings\" }).reducer,\r\n reservationTimeSubGroup: objectsSlice({ name: \"reservationTimeSubGroup\" }).reducer,\r\n reservationTimeSubGroup_selectedSubGroups: objectsSlice({ name: \"reservationTimeSubGroup_selectedSubGroups\" }).reducer,\r\n\r\n dormTerms: objectsSlice({ name: \"dormTerms\" }).reducer,\r\n dormTermRooms: objectsSlice({ name: \"dormTermRooms\" }).reducer,\r\n dormTermRooms_selectedRooms: objectsSlice({ name: \"dormTermRooms_selectedRooms\" }).reducer,\r\n\r\n roomPricings: objectsSlice({ name: \"roomPricings\" }).reducer,\r\n roomReservations: objectsSlice({ name: \"roomReservations\" }).reducer,\r\n dormManageReservations: objectsSlice({ name: \"dormManageReservations\" }).reducer,\r\n dormMyReservations: objectsSlice({ name: \"dormMyReservations\" }).reducer,\r\n\r\n roomStudents: objectsSlice({ name: \"roomStudents\" }).reducer,\r\n roomStatus: objectsSlice({ name: \"roomStatus\" }).reducer,\r\n\r\n dormPersonsReport: objectsSlice({ name: \"dormPersonsReport\" }).reducer,\r\n roomReservationsReport: objectsSlice({ name: \"roomReservationsReport\" }).reducer,\r\n\r\n});\r\n\r\n","import { all } from \"redux-saga/effects\";\r\nimport { combineReducers } from \"redux\";\r\nimport { baseInfoReducer } from \"./baseInfoReducer\"\r\nimport * as auth from \"../app/modules/Auth/_redux/authRedux\";\r\nimport { shiftReducer } from \"./shiftReducer\";\r\nimport { sportReducer } from \"./sportReducer\";\r\nimport { dormReducer } from \"./dormReducer\";\r\n\r\nexport const rootReducer = combineReducers({\r\n auth: auth.reducer,\r\n baseInfo: baseInfoReducer,\r\n shift: shiftReducer,\r\n sport: sportReducer,\r\n dorm: dormReducer\r\n\r\n});\r\n\r\nexport function* rootSaga() {\r\n yield all([auth.saga()]);\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\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\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, {\r\n useEffect,\r\n useContext,\r\n createContext,\r\n useState,\r\n useCallback,\r\n} from \"react\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\n\r\nconst MultiStepperFormUIContext = createContext();\r\n\r\nexport function useMultiStepperFormUIContext() {\r\n return useContext(MultiStepperFormUIContext);\r\n}\r\n\r\nexport function MultiStepperFormUIProvider({ initialFile, initialFields, children }) {\r\n const [fileData, setFileDataBase] = useState(initialFile);\r\n const [fieldList, setFieldListBase] = useState(initialFields);\r\n const setFileData = useCallback((nextFileData) => {\r\n setFileDataBase((prevFileData) => {\r\n if (isFunction(nextFileData)) {\r\n nextFileData = nextFileData(prevFileData);\r\n }\r\n\r\n if (isEqual(prevFileData, nextFileData)) {\r\n return prevFileData;\r\n }\r\n\r\n return nextFileData;\r\n });\r\n }, []);\r\n\r\n const setFieldList = useCallback((nextFieldList) => {\r\n setFieldListBase((prevFieldList) => {\r\n if (isFunction(nextFieldList)) {\r\n nextFieldList = nextFieldList(prevFieldList);\r\n }\r\n\r\n if (isEqual(prevFieldList, nextFieldList)) {\r\n return prevFieldList;\r\n }\r\n\r\n return nextFieldList;\r\n });\r\n }, []);\r\n\r\n const value = {\r\n fileData,\r\n setFileDataBase,\r\n setFileData,\r\n fieldList,\r\n setFieldListBase,\r\n setFieldList\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\n// export const MultiStepperFormUIConsumer = MultiStepperFormUIContext.Consumer;\r\n\r\n// export function MultiStepperFormUIProvider({ csvData, csvInfo, tableFields, children }) {//,initialFile\r\n// const [fileData, setFileData] = useState(csvData);\r\n// const [fileInfo, setFileInfo] = useState(csvInfo);\r\n// const [fields, setFields] = useState(tableFields);\r\n\r\n\r\n// useEffect(() => {\r\n// // setFileData(csvData);\r\n// // setFileInfo(csvInfo);\r\n// // setFields(tableFields);\r\n// }, [fileData]);\r\n\r\n// const value = {\r\n// fileData,\r\n// setFileData,\r\n// fileInfo,\r\n// setFileInfo,\r\n// fields,\r\n// setFields\r\n// };\r\n\r\n// return (\r\n// \r\n// {children}\r\n// \r\n// );\r\n// }\r\n","\r\nimport React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { SelectFileStep } from './SelectFileStep';\r\nimport { SelectTableFields } from './SelectTableFields';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '90%',\r\n },\r\n button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nfunction getSteps() {\r\n return [\r\n 'انتخاب فایل',\r\n 'انتخاب ستون های متناظر',\r\n 'بررسی فایل',\r\n 'نتایج انتقال'];\r\n}\r\n\r\nfunction getStepContent(step) {\r\n switch (step) {\r\n case 0:\r\n return ;\r\n case 1:\r\n return ;\r\n case 2:\r\n return 'This is the bit I really care about!';\r\n case 3:\r\n return 'This is the bit I really care about!';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nexport default function MultiStepperForm() {\r\n const classes = useStyles();\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const [skipped, setSkipped] = React.useState(new Set());\r\n const steps = getSteps();\r\n\r\n function isStepOptional(step) {\r\n // return step === 1;\r\n return null;\r\n }\r\n\r\n function isStepSkipped(step) {\r\n return skipped.has(step);\r\n }\r\n\r\n function handleNext() {\r\n let newSkipped = skipped;\r\n if (isStepSkipped(activeStep)) {\r\n newSkipped = new Set(newSkipped.values());\r\n newSkipped.delete(activeStep);\r\n }\r\n\r\n setActiveStep(prevActiveStep => prevActiveStep + 1);\r\n setSkipped(newSkipped);\r\n }\r\n\r\n function handleBack() {\r\n setActiveStep(prevActiveStep => prevActiveStep - 1);\r\n }\r\n\r\n function handleSkip() {\r\n if (!isStepOptional(activeStep)) {\r\n // You probably want to guard against something like this,\r\n // it should never occur unless someone's actively trying to break something.\r\n throw new Error(\"You can't skip a step that isn't optional.\");\r\n }\r\n\r\n setActiveStep(prevActiveStep => prevActiveStep + 1);\r\n setSkipped(prevSkipped => {\r\n const newSkipped = new Set(prevSkipped.values());\r\n newSkipped.add(activeStep);\r\n return newSkipped;\r\n });\r\n }\r\n\r\n function handleReset() {\r\n setActiveStep(0);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {steps.map((label, index) => {\r\n const stepProps = {};\r\n const labelProps = {};\r\n if (isStepOptional(index)) {\r\n labelProps.optional = اختیاری;\r\n }\r\n if (isStepSkipped(index)) {\r\n stepProps.completed = false;\r\n }\r\n return (\r\n \r\n {label}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n {activeStep === steps.length ? (\r\n
    \r\n \r\n All steps completed - you're finished\r\n \r\n \r\n
    \r\n ) : (\r\n
    \r\n {getStepContent(activeStep)}\r\n
    \r\n \r\n مرحله قبل\r\n \r\n {isStepOptional(activeStep) && (\r\n \r\n گذشتن\r\n \r\n )}\r\n\r\n \r\n {activeStep === steps.length - 1 ? 'پایان' : 'ادامه'}\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n MixedWidget4,\r\n StatsWidget11,\r\n MixedWidget6\r\n // StatsWidget12,\r\n // StatsWidget10,\r\n // ListsWidget14,\r\n} from \"../widgets\";\r\nimport { StatsWidget13 } from \"../widgets/stats/StatsWidget13\";\r\nimport * as actions from \"../../../app/actions/generalActions\";\r\n\r\n\r\nexport function DormitoryDashboard() {\r\n\r\n const [dormTitles, setDormTitles] = useState(null)\r\n const [allData, setAllData] = useState([])\r\n\r\n const [usersActiveCount, setUsersActiveCount] = useState([])\r\n const [totalActiveCount, setTotalActiveCount] = useState(0)\r\n\r\n const [usersPresentCount, setUsersPresentCount] = useState([])\r\n const [totalPresentCount, setTotalPresentCount] = useState(0)\r\n\r\n const [usersAbsentCount, setUsersAbsentCount] = useState([])\r\n const [totalAbsentCount, setTotalAbsentCount] = useState(0)\r\n\r\n const [usersAbsentjustify, setUsersAbsentjustify] = useState([])\r\n const [totalAbsentjustify, setTotalAbsentjustify] = useState(0)\r\n\r\n const [usersNotTrafficToday, setUsersNotTrafficToday] = useState([])\r\n const [totalNotTrafficToday, setTotalNotTrafficToday] = useState(0)\r\n\r\n const [usersPresentMore3Days, setUsersPresentMore3Days] = useState([])\r\n const [totalPresentMore3Days, setTotalPresentMore3Days] = useState(0)\r\n\r\n const [usersAbsentmore3Days, setUsersAbsentmore3Days] = useState([])\r\n const [totalAbsentmore3Days, setTotalAbsentmore3Days] = useState(0)\r\n\r\n const { currentState, name, entities } = useSelector(\r\n (state) => ({\r\n currentState: state.baseInfo.dormDashboard,\r\n name: state.baseInfo.dormDashboard.name,\r\n entities: state.baseInfo.dormDashboard.entities\r\n }),\r\n shallowEqual\r\n );\r\n\r\n\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n debugger\r\n const query = {\r\n whereClause: \"\",\r\n whereClauseParameters: [],\r\n orderClause: \"id asc \",\r\n skipCount: 0,\r\n takeCount: 1000,\r\n };\r\n // dispatch(actions.fetchObjects(\"forceEmpty\", name, query))\r\n dispatch(actions.fetchSpReports(\"api/user\", name, query, \"GetDormitoryDashboardReport\"))\r\n }, []);\r\n\r\n useEffect(() => {\r\n debugger\r\n if (entities) {\r\n setAllData([...entities])\r\n\r\n setTotalActiveCount(entities[0].userActive)\r\n setTotalPresentCount(entities[0].userPresent)\r\n setTotalAbsentCount(entities[0].userAbsent)\r\n setTotalAbsentjustify(entities[0].userAbsentJustify)\r\n setTotalNotTrafficToday(entities[0].userNotTrafficToday)\r\n setTotalPresentMore3Days(entities[0].userPresentMore3Day)\r\n setTotalAbsentmore3Days(entities[0].userAbsentMore3Day)\r\n\r\n setUsersActiveCount(entities.filter(q => q.id !== 1).map(a => a.userActive))\r\n setUsersPresentCount(entities.filter(q => q.id !== 1).map(a => a.userPresent))\r\n setUsersAbsentCount(entities.filter(q => q.id !== 1).map(a => a.userAbsent))\r\n setUsersAbsentjustify(entities.filter(q => q.id !== 1).map(a => a.userAbsentJustify))\r\n setUsersNotTrafficToday(entities.filter(q => q.id !== 1).map(a => a.userNotTrafficToday))\r\n setUsersPresentMore3Days(entities.filter(q => q.id !== 1).map(a => a.userPresentMore3Day))\r\n setUsersAbsentmore3Days(entities.filter(q => q.id !== 1).map(a => a.userAbsentMore3Day))\r\n\r\n setDormTitles([...entities.filter(q => q.id !== 1).map(a => a.dormTitle)])\r\n }\r\n }, [entities]);\r\n\r\n\r\n return (\r\n <>\r\n {/* begin::Dashboard */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* begin::Row */}\r\n {dormTitles && dormTitles.length > 0 &&\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n {/*
    \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::Row */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* end::Dashboard */}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {\r\n MixedWidget6,\r\n BaseTablesWidget6,\r\n StatsWidget11,\r\n StatsWidget12,\r\n StatsWidget10,\r\n ListsWidget14,\r\n} from \"../widgets\";\r\nimport { StatsWidget13 } from \"../widgets/stats/StatsWidget13\";\r\n\r\nexport function CulinanDashboard() {\r\n return (\r\n <>\r\n {/* begin::Dashboard */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \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::Row */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* begin::Row */}\r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n {/* end::Row */}\r\n\r\n {/* end::Dashboard */}\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { useHtmlClassService } from \"../../layout\";\r\nimport { CulinanDashboard } from \"./CulinanDashboard\";\r\n\r\nexport function Dashboard() {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n demo: objectPath.get(\r\n uiService.config,\r\n \"demo\"\r\n )\r\n };\r\n }, [uiService]);\r\n return <>\r\n {layoutProps.demo === 'Kherad' && }\r\n ;\r\n}\r\n","import React from \"react\";\r\nimport {\r\n Dashboard\r\n} from \"../../_themeBase/_partials\";\r\n\r\nfunction DashboardPage() {\r\n return ;\r\n}\r\n\r\nexport default DashboardPage\r\n\r\n","import React, { Suspense, lazy } from \"react\";\r\nimport { Redirect, Switch, Route } from \"react-router-dom\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../_themeBase/layout\";\r\nimport MultiStepperForm from \"../_themeBase/layout/components/basePage/multiFormStepper/MultiStepperForm\";\r\nimport MultiStepperFormPage from \"../_themeBase/layout/components/basePage/multiFormStepper/MultiStepperFormPage\";\r\nimport { MultiStepperFormUIProvider } from \"../_themeBase/layout/components/basePage/multiFormStepper/MultiStepperFormUIContext\";\r\nimport { DormitoryDashboard } from \"../_themeBase/_partials/dashboards/DormitoryDashboard\";\r\nimport DashboardPage from \"./pages/DashboardPage\";\r\n\r\n// const DashboardPage = lazy(() =>\r\n// import(\"./pages/DashboardPage\")\r\n// );\r\nconst DormBasePage = lazy(() =>\r\n import(\"./modules/BaseInfo/dorms/DormBasePage\")\r\n);\r\nconst CollageBasePage = lazy(() =>\r\n import(\"./modules/BaseInfo/collages/CollageBasePage\")\r\n);\r\nconst GroupBasePage = lazy(() =>\r\n import(\"./modules/BaseInfo/groups/GroupBasePage\")\r\n);\r\nconst DevicePage = lazy(() => import(\"./modules/BaseInfo/devices/DevicePage\"));\r\nconst TermBasePage = lazy(() =>\r\n import(\"./modules/BaseInfo/terms/TermBasePage\")\r\n);\r\nconst UniInfoPage = lazy(() =>\r\n import(\"./modules/BaseInfo/UniInfo/UniInfoPage\")\r\n);\r\nconst PermissionBasePage = lazy(() =>\r\n import(\"./modules/BaseInfo/permissions/PermissionBasePage\")\r\n);\r\nconst RolePage = lazy(() => import(\"./modules/BaseInfo/permissions/RolePage\"));\r\nconst GradePage = lazy(() => import(\"./modules/BaseInfo/grades/GradePage\"));\r\nconst AccountPage = lazy(() =>\r\n import(\"./modules/BaseInfo/accounts/AccountPage\")\r\n);\r\nconst UsersPage = lazy(() => import(\"./modules/BaseInfo/user/UsersPage\"));\r\nconst CalendarBasePage = lazy(() =>\r\n import(\"./modules/BaseInfo/yearCalendar/CalendarBasePage\")\r\n);\r\nconst WorkUnitPage = lazy(() =>\r\n import(\"./modules/BaseInfo/workUnit/WorkUnitPage\")\r\n);\r\nconst BlogPage = lazy(() => import(\"./modules/BaseInfo/blogs/BlogPage\"));\r\nconst LogPage = lazy(() => import(\"./modules/BaseInfo/logs/LogPage\"));\r\n\r\nconst EmsSettingPage = lazy(() =>\r\n import(\"./modules/BaseInfo/emsSetting/EmsSettingPage\")\r\n);\r\n\r\nconst ShiftBasePage = lazy(() =>\r\n import(\"./modules/Attendence/shifts/ShiftBasePage\")\r\n);\r\nconst DailyMissionPage = lazy(() =>\r\n import(\"./modules/Attendence/missions/DailyMissionPage\")\r\n);\r\nconst UserTrafficPage = lazy(() =>\r\n import(\"./modules/Attendence/userTraffic/UserTrafficPage\")\r\n);\r\nconst TrafficReportBasePage = lazy(() =>\r\n import(\"./modules/Attendence/trafficReport/TrafficReportBasePage\")\r\n);\r\nconst MyTrafficPage = lazy(() =>\r\n import(\"./modules/Attendence/userTraffic/MyTrafficPage\")\r\n);\r\nconst MyDailyMissionPage = lazy(() =>\r\n import(\"./modules/Attendence/missions/MyDailyMissionPage\")\r\n);\r\nconst MyTrafficReportBasePage = lazy(() =>\r\n import(\"./modules/Attendence/trafficReport/MyTrafficReportBasePage\")\r\n);\r\n\r\nconst SalonPage = lazy(() => import(\"./modules/Sport/Salon/SalonPage\"));\r\nconst SportPage = lazy(() => import(\"./modules/Sport/Sport/SportPage\"));\r\nconst ClosetPage = lazy(() => import(\"./modules/Sport/Closet/ClosetPage\"));\r\nconst ContractPage = lazy(() =>\r\n import(\"./modules/Sport/Contract/ContractPage\")\r\n);\r\nconst SansCategoryPage = lazy(() =>\r\n import(\"./modules/Sport/Sans/SansCategoryPage\")\r\n);\r\nconst PaymentPage = lazy(() => import(\"./modules/Sport/EPay/PaymentPage\"));\r\nconst PaymentResultPage = lazy(() =>\r\n import(\"./modules/Sport/EPay/PaymentResultPage\")\r\n);\r\n\r\nconst DormTrafficReportPage = lazy(() =>\r\n import(\"./modules/Dorm/dormTrafficReport/DormTrafficReportPage\")\r\n);\r\nconst MyDormTrafficReportPage = lazy(() =>\r\n import(\"./modules/Dorm/dormTrafficReport/MyDormTrafficReportPage\")\r\n);\r\nconst DormitoryTrafficPage = lazy(() =>\r\n import(\"./modules/Dorm/dormTraffic/DormitoryTrafficPage\")\r\n);\r\nconst MyDormitoryTrafficPage = lazy(() =>\r\n import(\"./modules/Dorm/dormTraffic/MyDormitoryTrafficPage\")\r\n);\r\nconst ReservationTimeSettingPage = lazy(() =>\r\n import(\"./modules/Dorm/reservationTimeSetting/ReservationTimeSettingPage\")\r\n);\r\nconst DormTermPage = lazy(() => import(\"./modules/Dorm/dormTerm/DormTermPage\"));\r\nconst RoomPricingPage = lazy(() =>\r\n import(\"./modules/Dorm/roomPricing/RoomPricingPage\")\r\n);\r\nconst RoomReservationPage = lazy(() =>\r\n import(\"./modules/Dorm/roomReservation/RoomReservationPage\")\r\n);\r\nconst ManageRoomReservationPage = lazy(() =>\r\n import(\"./modules/Dorm/roomReservation/ManageRoomReservationPage\")\r\n);\r\nconst MyRoomReservationPage = lazy(() =>\r\n import(\"./modules/Dorm/roomReservation/MyRoomReservationPage\")\r\n);\r\nconst RoomReservationReportPage = lazy(() =>\r\n import(\"./modules/Dorm/roomReseervationReport/RoomReservationReportPage\")\r\n);\r\nconst DormPersonReportPage = lazy(() =>\r\n import(\"./modules/Dorm/generalReports/personReport/DormPersonReportPage\")\r\n);\r\nconst RoomStatusPage = lazy(() =>\r\n import(\"./modules/Dorm/roomStatus/RoomStatusPage\")\r\n);\r\n\r\nexport default function BasePage() {\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\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, Suspense, lazy } from \"react\";\r\nimport {\r\n OverlayTrigger,\r\n Tooltip,\r\n Accordion,\r\n Card,\r\n Dropdown,\r\n} from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { Link, Switch, Redirect } from \"react-router-dom\";\r\nimport ReactHtmlParser from \"react-html-parser\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { useLang } from \"../../../../_themeBase/i18n\";\r\nimport {\r\n LayoutSplashScreen,\r\n ContentRoute,\r\n} from \"../../../../_themeBase/layout\";\r\nimport \"../../../../_themeBase/_assets/sass/pages/login/classic/login-1.scss\";\r\nimport { LanguageSelectorDropdown } from \"../../../../_themeBase/layout/components/extras/dropdowns/LanguageSelectorDropdown\";\r\nimport * as actions from \"../../../../app/actions/generalActions\";\r\nimport { toAbsoluteUrl } from \"../../../../_themeBase/_helpers\";\r\nimport { convertDateStringToLocal } from \"../../../../_themeBase/_helpers/DateFormaterHelpers\";\r\nimport { getInitialInfo } from \"../_redux/authCrud\";\r\n\r\nimport CardSlider from \"../../../../_themeBase/layout/components/common/cardSlider/cardSlider\";\r\n\r\nconst Login = lazy(() => import(\"./Login\"));\r\nconst Registration = lazy(() => import(\"./Registration\"));\r\nconst ForgotPassword = lazy(() => import(\"./ForgotPassword\"));\r\nconst ChangePassword = lazy(() => import(\"./ChangePassword\"));\r\n\r\nconst languages = [\"Farsi\", \"English\"];\r\nexport const appVersion = process.env.REACT_APP_APP_VERSION;\r\nexport const publishDate = process.env.REACT_APP_PUBLISH_DATE;\r\nexport const AuthPage = () => {\r\n // const optCheck = true\r\n const [activeLanguages, setActiveLanguages] = useState(languages);\r\n\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n ////////////////debugger;\r\n var query = {\r\n whereClause: \"\",\r\n whereClauseParameters: [],\r\n orderClause: \"id asc \",\r\n skipCount: 0,\r\n takeCount: 5,\r\n };\r\n\r\n getInitialInfo()\r\n .then((response) => {\r\n ////////////////debugger;\r\n setActiveLanguages(response.data.data.languages);\r\n dispatch(actions.fetchObjects(\"api/Blog\", \"blogs\", query, \"GetNews\"));\r\n })\r\n .catch((error) => {\r\n setActiveLanguages(languages);\r\n if (error.response) {\r\n //setStatus(error.response.data.Message);\r\n } else {\r\n // setStatus(\r\n // intl.formatMessage({\r\n // id: \"AUTH.VALIDATION.INVALID_LOGIN\",\r\n // })\r\n // );\r\n }\r\n });\r\n }, []);\r\n\r\n const { blogList } = useSelector(\r\n (state) => ({ blogList: state.baseInfo.blogs }),\r\n shallowEqual\r\n );\r\n const locale = useLang();\r\n\r\n return (\r\n <>\r\n {/* */}\r\n
    \r\n {/*begin::Login*/}\r\n \r\n {/*begin::Content*/}\r\n \r\n {/*
    */}\r\n \r\n \r\n \r\n {/*
    */}\r\n {/*begin::Content header*/}\r\n
    \r\n \r\n
    \r\n
    \r\n {/* Don't have an account yet? */}\r\n {/* Sign Up! */}\r\n Powered by{\" \"}\r\n \r\n {/* */}\r\n 7Diamonds\r\n {/* */}\r\n \r\n
    \r\n Last Update: {publishDate}\r\n
    \r\n Version : {appVersion} \r\n
    \r\n {/*end::Content header*/}\r\n\r\n {/* begin::Content body */}\r\n
    \r\n }>\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::Content body*/}\r\n\r\n {/* begin::Mobile footer */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* end::Mobile footer */}\r\n
    \r\n {/*end::Content*/}\r\n\r\n {/*begin::Aside*/}\r\n
    \r\n {/*begin: Aside Container*/}\r\n\r\n
    \r\n {/* start:: Aside header */}\r\n
    \r\n
    \r\n \r\n \r\n \r\n }\r\n >\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n }\r\n >\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n {/* \r\n \r\n \r\n {blogList.entities && \r\n {blogList.entities.map((item, index) =>\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n {item.title} - {convertDateStringToLocal(item.date, locale)}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {ReactHtmlParser(item.body)}\r\n \r\n
    \r\n )}\r\n
    }\r\n
    \r\n
    */}\r\n\r\n
    \r\n {/* Header */}\r\n
    \r\n

    \r\n {\" \"}\r\n {\" \"}\r\n

    \r\n
    \r\n\r\n {/* Body */}\r\n
    \r\n {blogList.entities && (\r\n \r\n {blogList.entities.map((item, index) => (\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n {convertDateStringToLocal(\r\n item.date,\r\n locale\r\n )}{\" \"}\r\n - {item.title}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {ReactHtmlParser(item.body)}\r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n {/*
    \r\n
    \r\n

    \r\n
    \r\n\r\n
    \r\n\r\n {blogList.entities && \r\n {blogList.entities.map((item, index) =>\r\n\r\n \r\n
    \r\n\r\n \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n {item.title}\r\n \r\n
    \r\n {convertDateStringToLocal(item.date, locale)}\r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n {ReactHtmlParser(item.body)}\r\n \r\n
    \r\n
    \r\n\r\n )}\r\n
    }\r\n
    \r\n\r\n
    */}\r\n\r\n {/* \r\n \r\n \r\n \r\n {blogList.entities && \r\n {blogList.entities.map((item, index) =>\r\n \r\n \r\n \r\n {item.title}\r\n \r\n \r\n \r\n {ReactHtmlParser(item.body)}\r\n \r\n \r\n )}\r\n }\r\n \r\n */}\r\n
    \r\n {/* end:: Aside header */}\r\n\r\n {/* start:: Aside content */}\r\n
    \r\n {/* */}\r\n
    \r\n {/* end:: Aside content */}\r\n\r\n {/* start:: Aside footer for desktop */}\r\n
    \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:: Aside footer for desktop */}\r\n
    \r\n {/*end: Aside Container*/}\r\n
    \r\n {/*begin::Aside*/}\r\n
    \r\n {/*end::Login*/}\r\n \r\n \r\n );\r\n};\r\n\r\nconst cards = [\r\n {\r\n image: \"/images/cardSlides/etebari.jpg\",\r\n title: \"خدمات اعتباری\",\r\n subtitle: \"Advertising\",\r\n },\r\n {\r\n image: \"/images/cardSlides/kar_daneshjooi.jpg\",\r\n title: \"کار دانشجویی\",\r\n subtitle: \"Sound & Vision\",\r\n },\r\n {\r\n image: \"/images/cardSlides/taradod.jpg\",\r\n title: \"حضور و غیاب پرسنل\",\r\n subtitle: \"Accounting\",\r\n },\r\n {\r\n image: \"/images/cardSlides/etebari.jpg\",\r\n title: \"خدمات اعتباری\",\r\n subtitle: \"Advertising\",\r\n },\r\n {\r\n image: \"/images/cardSlides/kar_daneshjooi.jpg\",\r\n title: \"کار دانشجویی\",\r\n subtitle: \"Sound & Vision\",\r\n },\r\n {\r\n image: \"/images/cardSlides/taradod.jpg\",\r\n title: \"حضور و غیاب پرسنل\",\r\n subtitle: \"Accounting\",\r\n },\r\n];\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { LayoutSplashScreen } from \"../../../../_themeBase/layout\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { logout } from \"../_redux/authCrud\";\r\n\r\n\r\nclass Logout extends Component {\r\n componentDidMount() {\r\n // ////debugger\r\n // logout()\r\n // .then((res) => {\r\n this.props.logout();\r\n // })\r\n // .catch((err) => {\r\n // // ////debugger\r\n // window.localStorage.clear();\r\n // window.location.replace(\"/auth/login\");\r\n // });\r\n }\r\n\r\n render() {\r\n const { hasAuthToken } = this.props;\r\n return hasAuthToken ? : ;\r\n }\r\n}\r\n\r\nexport default connect(\r\n ({ auth }) => ({ hasAuthToken: Boolean(auth.authToken), user: auth.user }),\r\n auth.actions\r\n)(Logout);\r\n","import React from \"react\";\r\nimport {toAbsoluteUrl} from \"../../../_themeBase/_helpers\";\r\n\r\nexport function ErrorPage1() {\r\n return (\r\n
    \r\n \r\n \r\n 404\r\n

    \r\n

    \r\n OOPS! Something went wrong here\r\n

    \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {toAbsoluteUrl} from \"../../../_themeBase/_helpers\";\r\n\r\nexport function ErrorPage2() {\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","import React from \"react\";\r\nimport {toAbsoluteUrl} from \"../../../_themeBase/_helpers\";\r\nimport \"../../../_themeBase/_assets/sass/pages/error/error-3.scss\";\r\n\r\nexport function ErrorPage3() {\r\n return (\r\n
    \r\n \r\n
    \r\n

    404

    \r\n

    \r\n How did you get here\r\n

    \r\n

    \r\n Sorry we can't seem to find the page you're looking for.\r\n

    \r\n

    \r\n There may be a misspelling in the URL entered,\r\n
    \r\n or the page you are looking for may no longer exist.\r\n

    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { toAbsoluteUrl } from \"../../../_themeBase/_helpers\";\r\nimport \"../../../_themeBase/_assets/sass/pages/error/error-4.scss\";\r\n\r\nexport function ErrorPage4() {\r\n return (\r\n
    \r\n \r\n
    \r\n

    \r\n 404\r\n

    \r\n

    \r\n ERROR\r\n

    \r\n

    \r\n Nothing left to do here.\r\n

    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { toAbsoluteUrl } from \"../../../_themeBase/_helpers\";\r\nimport \"../../../_themeBase/_assets/sass/pages/error/error-5.scss\";\r\n\r\nexport function ErrorPage5() {\r\n return (\r\n
    \r\n \r\n
    \r\n

    \r\n Oops!\r\n

    \r\n

    \r\n Something went wrong here.\r\n

    \r\n

    \r\n We're working on it and we'll get it fixed\r\n
    \r\n as soon possible.\r\n
    \r\n You can back or use our Help Center.\r\n

    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { toAbsoluteUrl } from \"../../../_themeBase/_helpers\";\r\nimport \"../../../_themeBase/_assets/sass/pages/error/error-6.scss\";\r\n\r\nexport function ErrorPage6() {\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n Oops...\r\n \r\n

    \r\n Looks like something went wrong.\r\n
    \r\n We're working on it\r\n

    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Redirect, Route, Switch } from \"react-router-dom\";\r\nimport { ErrorPage1 } from \"./ErrorPage1\";\r\nimport { ErrorPage2 } from \"./ErrorPage2\";\r\nimport { ErrorPage3 } from \"./ErrorPage3\";\r\nimport { ErrorPage4 } from \"./ErrorPage4\";\r\nimport { ErrorPage5 } from \"./ErrorPage5\";\r\nimport { ErrorPage6 } from \"./ErrorPage6\";\r\n\r\nexport default function ErrorsPage() {\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","import React from \"react\";\r\nimport { Redirect, Switch, Route } from \"react-router-dom\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Layout } from \"../_themeBase/layout\";\r\nimport BasePage from \"./BasePage\";\r\nimport { Logout, AuthPage } from \"./modules/Auth\";\r\nimport ErrorsPage from \"./modules/ErrorsExamples/ErrorsPage\";\r\n\r\nexport function Routes() {\r\n\r\n const { isAuthorized } = useSelector(\r\n ({ auth }) => ({\r\n isAuthorized: auth.user != null,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n return (\r\n <>\r\n\r\n \r\n\r\n {!isAuthorized ? (\r\n\r\n /*Render auth page when user at `/auth` and not authorized.*/\r\n \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\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\n}\r\n","import { getNewToken, logout } from \"../app/modules/Auth/_redux/authCrud\";\r\nimport * as authReducer from \"../app/modules/Auth/_redux/authRedux\";\r\n\r\n\r\n\r\nexport default function setupAxios(axios, store) {\r\n axios.interceptors.request.use(\r\n config => {\r\n const {\r\n auth: { authToken }\r\n } = store.getState();\r\n if (authToken && !config.url.includes(\"GetTokenByRefreshToken\")) {\r\n config.headers.Authorization = `Bearer ${authToken}`;\r\n }\r\n if (config.url.includes(\"ChangePassword\")) {\r\n const tempToken = JSON.parse(sessionStorage.accessToken);\r\n config.headers.Authorization = `Bearer ${tempToken}`;\r\n }\r\n\r\n config.timeout = 240000;\r\n return config;\r\n },\r\n err => Promise.reject(err)\r\n );\r\n\r\n axios.interceptors.response.use(response => {\r\n return response;\r\n }, error => {\r\n //console.log(\"setupAxios Error\");\r\n //console.log(JSON.stringify(error));\r\n // if (error.message.includes(\"timeout of \")) {\r\n // return Promise.reject(error);\r\n // }\r\n // if (error.message.includes(\"Network Error\")) {\r\n // // return Promise.reject(error);\r\n // }\r\n if (error.response.status && error.response.status === 401) {//&& tryGetNewTokenCount === 0\r\n const {\r\n auth: { refreshToken, user }\r\n } = store.getState();\r\n\r\n\r\n return getNewToken(user.username, refreshToken) // Endpoint to request new token\r\n .then((res) => {\r\n // ////debugger\r\n sessionStorage.setItem('authUser', JSON.stringify(res.data.data.user));\r\n sessionStorage.setItem('authUserMenu', JSON.stringify(res.data.data.menu));\r\n localStorage.setItem('authToken', JSON.stringify(res.data.data.accessToken));\r\n localStorage.setItem('refreshToken', JSON.stringify(res.data.data.refreshToken));\r\n\r\n store.dispatch(authReducer.actions.tokenRefreshed(\r\n res.data.data.accessToken,\r\n res.data.data.refreshToken,\r\n res.data.data.user,\r\n res.data.data.menu\r\n ));\r\n\r\n error.response.config.headers.Authorization = res.data.data.accessToken; // Attach the new token to the headers\r\n error.response.config.timeout = 240000;\r\n return axios(error.response.config);\r\n })\r\n .catch((err) => {\r\n // ////debugger\r\n // logout(user.id)\r\n // .then((res) => {\r\n // // // ////debugger\r\n window.localStorage.clear();\r\n window.location.replace(\"/auth/login\");\r\n return Promise.reject(err);\r\n // })\r\n // .catch((err2) => {\r\n // // ////debugger\r\n // // window.localStorage.clear();\r\n // // window.location.replace(\"/auth/login\");\r\n // return Promise.reject(err2);\r\n // });\r\n\r\n });\r\n\r\n // window.localStorage.clear();\r\n // window.location.replace(\"/auth/login\");\r\n // return Promise.reject(error);\r\n //////////////////debugger\r\n\r\n // return new Promise((resolve, reject) => {\r\n // refreshToken(axios, error.config)\r\n // .then((result) => {\r\n // ////////////////debugger\r\n // resolve(result);\r\n // })\r\n // .catch((err) => {\r\n // ////////////////debugger\r\n // window.localStorage.clear();\r\n // window.location.replace(\"/auth/login\");\r\n // reject(err);\r\n // });\r\n // });\r\n\r\n\r\n }\r\n // else if (error.response.status && error.response.status === 401 && tryGetNewTokenCount > 0) {\r\n // window.localStorage.clear();\r\n // window.location.replace(\"/auth/login\");\r\n // }\r\n\r\n return Promise.reject(error);\r\n\r\n });\r\n\r\n\r\n\r\n // const refreshToken = (axios, config) => {\r\n // ////////////////debugger\r\n // const {\r\n // auth: { refreshToken, user }\r\n // } = store.getState();\r\n\r\n\r\n // return new Promise((resolve, reject) => {\r\n\r\n // getNewToken(user.username, refreshToken) // Endpoint to request new token\r\n // .then((res) => {\r\n // ////////////////debugger\r\n // console.log(\"RefreshTokenRes\")\r\n // console.log(res)\r\n // sessionStorage.setItem('authUser', JSON.stringify(res.data.data.user));\r\n // sessionStorage.setItem('authUserMenu', JSON.stringify(res.data.data.menu));\r\n // localStorage.setItem('authToken', JSON.stringify(res.data.data.accessToken));\r\n // localStorage.setItem('refreshToken', JSON.stringify(res.data.data.refreshToken));\r\n\r\n // store.commit('authToken', res.data.data.accessToken)\r\n // store.commit('refreshToken', res.data.data.refreshToken);\r\n\r\n\r\n // config.headers.Authorization = res.data.data.accessToken; // Attach the new token to the headers\r\n // config.timeout = 60000;\r\n // axios\r\n // .request(config) // Repeat the initial request\r\n // .then((result) => {\r\n // return resolve(result);\r\n // })\r\n // .catch((err) => {\r\n // console.log(err);\r\n // return reject(err);\r\n // });\r\n // })\r\n // .catch((err) => {\r\n // ////////////////debugger\r\n // window.localStorage.clear();\r\n // window.location.replace(\"/auth/login\");\r\n // return reject(err);\r\n // });\r\n // });\r\n // };\r\n\r\n\r\n // function refreshToken(store) {\r\n // const {\r\n // auth: { refreshToken, user }\r\n // } = store.getState();\r\n\r\n // store.commit('auth/setRefreshingState', true);\r\n // const refreshingCall = refreshInstance.get('get token').then(({ data: { token } }) => {\r\n // store.commit('auth/setToken', token)\r\n // store.commit('auth/setRefreshingState', false);\r\n // store.commit('auth/setRefreshingCall', undefined);\r\n // return Promise.resolve(true);\r\n // });\r\n\r\n // store.commit('auth/setRefreshingCall', refreshingCall);\r\n // return refreshingCall;\r\n // }\r\n}\r\n","/**\r\n * Entry application component used to compose providers and render Routes.\r\n * */\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Provider } from \"react-redux\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport { PersistGate } from \"redux-persist/integration/react\";\r\nimport { Routes } from \"../app/Routes\";\r\nimport { I18nProvider } from \"../_themeBase/i18n\";\r\nimport { LayoutSplashScreen, MaterialThemeProvider } from \"../_themeBase/layout\";\r\nimport { SetLayout } from \"./SetLayout\";\r\nimport { useLang, setLanguage } from \"../_themeBase/i18n\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { toAbsoluteUrl } from \"../_themeBase/_helpers\";\r\nimport { ToastContainer } from 'react-toastify';\r\n\r\n\r\nconst App = ({ store, persistor, basename }) => {\r\n\r\n const lang = useLang()\r\n\r\n const setRtl = () => {\r\n if (lang === 'en') {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const linkGlobalStyle = document.querySelector(\".global_style\");\r\n // console.log(linkGlobalStyle);\r\n\r\n const divBody = document.querySelector(\"#kt_body\");\r\n // console.log(divBody);\r\n\r\n\r\n if (lang === 'en') {\r\n // console.log(\"left to right layout\");\r\n\r\n linkGlobalStyle.setAttribute(\"href\", toAbsoluteUrl(\"/css/style.react.css\"));\r\n divBody.setAttribute(\"direction\", \"\");\r\n divBody.setAttribute(\"dir\", \"\");\r\n divBody.setAttribute(\"style\", \"\");\r\n // console.log(linkGlobalStyle);\r\n }\r\n else {\r\n // console.log(\"Right to left layout\");\r\n linkGlobalStyle.setAttribute(\"href\", toAbsoluteUrl(\"/css/style.react.rtl.css\"));\r\n divBody.setAttribute(\"direction\", \"rtl\");\r\n divBody.setAttribute(\"dir\", \"rtl\");\r\n divBody.setAttribute(\"style\", \"direction: rtl\");\r\n // console.log(linkGlobalStyle);\r\n }\r\n\r\n }, [lang])\r\n\r\n\r\n return (\r\n /* Provide Redux store */\r\n\r\n \r\n {/* */}\r\n {/* Asynchronously persist redux stores and show `SplashScreen` while it's loading. */}\r\n }>\r\n {/* Add high level `Suspense` in case if was not handled inside the React tree. */}\r\n }>\r\n {/* Override `basename` (e.g: `homepage` in `package.json`) */}\r\n \r\n {/*This library only returns the location that has been active before the recent location change in the current window lifetime.*/}\r\n \r\n {/* Provide `react-intl` context synchronized with Redux state. */}\r\n\r\n \r\n \r\n\r\n {/* Render routes with provided `Layout`. */}\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 App\r\n","/**\r\n * Create React App entry point. This and `public/index.html` files can not be\r\n * changed or moved.\r\n */\r\nimport \"./_themeBase/_assets/css/FoodSoft.css\";\r\n\r\nimport \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport axios from \"axios\";\r\nimport * as _redux from \"./redux\";\r\nimport store, { persistor } from \"./redux/store\";\r\nimport App from \"./app/App\";\r\n//import \"./index.scss\"; // Standard version\r\n// import \"./sass/style.react.rtl.css\"; // RTL version\r\nimport \"./_themeBase/_assets/plugins/keenthemes-icons/font/ki.css\";\r\nimport \"socicon/css/socicon.css\";\r\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\r\nimport \"./_themeBase/_assets/plugins/flaticon/flaticon.css\";\r\nimport \"./_themeBase/_assets/plugins/flaticon2/flaticon.css\";\r\n// Datepicker\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {\r\n BaseLayoutProvider,\r\n BaseSplashScreenProvider,\r\n BaseSubheaderProvider\r\n} from \"./_themeBase/layout\";\r\nimport {BaseI18nProvider} from \"./_themeBase/i18n\";\r\n\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/**\r\n * Creates `axios-mock-adapter` instance for provided `axios` instance, add\r\n *\r\n * @see https://github.com/ctimmerm/axios-mock-adapter\r\n */\r\n// /* const mock = */ _redux.mockAxios(axios);\r\n\r\n/**\r\n *\r\n * @see https://github.com/axios/axios#interceptors\r\n */\r\n_redux.setupAxios(axios, store);\r\n\r\nReactDOM.render(\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTOffcanvas = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n attrCustom: ''\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('offcanvas')) {\r\n the = KTUtil.data(element).get('offcanvas');\r\n } else {\r\n // Reset offcanvas\r\n Plugin.init(options);\r\n\r\n // Build offcanvas\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('offcanvas', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n the.classBase = the.options.baseClass;\r\n the.attrCustom = the.options.attrCustom;\r\n the.classShown = the.classBase + '-on';\r\n the.classOverlay = the.classBase + '-overlay';\r\n the.target;\r\n\r\n the.state = KTUtil.hasClass(element, the.classShown) ? 'shown' : 'hidden';\r\n },\r\n\r\n build: function() {\r\n // offcanvas toggle\r\n if (the.options.toggleBy) {\r\n if (typeof the.options.toggleBy === 'string') {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n } else if (the.options.toggleBy && the.options.toggleBy[0]) {\r\n if (the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i].target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n } else {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i]), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n KTUtil.addEvent( KTUtil.getById(the.options.toggleBy.target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n // offcanvas close\r\n var closeBy = KTUtil.getById(the.options.closeBy);\r\n if (closeBy) {\r\n KTUtil.addEvent(closeBy, 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.hide();\r\n });\r\n }\r\n },\r\n\r\n isShown: function() {\r\n return (the.state == 'shown' ? true : false);\r\n },\r\n\r\n toggle: function() {;\r\n Plugin.eventTrigger('toggle');\r\n\r\n if (the.state == 'shown') {\r\n Plugin.hide();\r\n } else {\r\n Plugin.show();\r\n }\r\n },\r\n\r\n show: function() {\r\n if (the.state == 'shown') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeShow');\r\n\r\n Plugin.toggleClass('show');\r\n\r\n // Offcanvas panel\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classBase, 'on');\r\n KTUtil.addClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classCustom, 'on');\r\n //KTUtil.addClass(body, the.classCustom);\r\n }\r\n\r\n the.state = 'shown';\r\n\r\n if (the.options.overlay) {\r\n the.overlay = KTUtil.insertAfter(document.createElement('DIV') , element );\r\n KTUtil.addClass(the.overlay, the.classOverlay);\r\n\r\n KTUtil.addEvent(the.overlay, 'click', function(e) {\r\n //e.stopPropagation();\r\n e.preventDefault();\r\n Plugin.hide(the.target);\r\n });\r\n }\r\n\r\n Plugin.eventTrigger('afterShow');\r\n },\r\n\r\n hide: function() {\r\n if (the.state == 'hidden') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeHide');\r\n\r\n Plugin.toggleClass('hide');\r\n\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.classBase);\r\n KTUtil.removeClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.attrCustom);\r\n }\r\n\r\n the.state = 'hidden';\r\n\r\n if (the.options.overlay && the.overlay) {\r\n KTUtil.remove(the.overlay);\r\n }\r\n\r\n Plugin.eventTrigger('afterHide');\r\n },\r\n\r\n toggleClass: function(mode) {\r\n var id = KTUtil.attr(the.target, 'id');\r\n var toggleBy;\r\n\r\n if (the.options.toggleBy && the.options.toggleBy[0] && the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n if (the.options.toggleBy[i].target === id) {\r\n toggleBy = the.options.toggleBy[i];\r\n }\r\n }\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n toggleBy = the.options.toggleBy;\r\n }\r\n\r\n if (toggleBy) {\r\n var el = KTUtil.getById(toggleBy.target);\r\n\r\n if (mode === 'show') {\r\n KTUtil.addClass(el, toggleBy.state);\r\n }\r\n\r\n if (mode === 'hide') {\r\n KTUtil.removeClass(el, toggleBy.state);\r\n }\r\n }\r\n },\r\n\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n * @param options\r\n */\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Check if canvas is shown\r\n * @returns {boolean}\r\n */\r\n the.isShown = function() {\r\n return Plugin.isShown();\r\n };\r\n\r\n /**\r\n * Set to hide the canvas\r\n */\r\n the.hide = function() {\r\n return Plugin.hide();\r\n };\r\n\r\n /**\r\n * Set to show the canvas\r\n */\r\n the.show = function() {\r\n return Plugin.show();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @param name\r\n * @param handler\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @param name\r\n * @param handler\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTOffcanvas;\r\n}\r\n\r\nexport default KTOffcanvas;","import React from \"react\";\r\nimport { useLang } from \"./Basei18n\";\r\nimport { IntlProvider } from \"react-intl\";\r\nimport \"@formatjs/intl-relativetimeformat/polyfill\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/en\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/ar\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/fa\";\r\n\r\nimport arMessages from \"./messages/ar\";\r\n\r\n// Loaded SubSystems English Messages and generate Single Object as \"enMessages\"\r\nimport CommonEn from \"./messages/General/en\";\r\nimport BaseInfoEn from \"./messages/BaseInfo/en\";\r\nimport AttendanceEn from \"./messages/Attendence/en\";\r\nimport SportEn from \"./messages/Sport/en\";\r\nimport DormEn from \"./messages/Dorm/en\";\r\n\r\n// Loaded SubSystems Farsi Messages and generate Single Object as \"faMessages\"\r\nimport CommonFa from \"./messages/General/fa\";\r\nimport BaseInfoFa from \"./messages/BaseInfo/fa\";\r\nimport AttendanceFa from \"./messages/Attendence/fa\";\r\nimport SportFa from \"./messages/Sport/fa\";\r\nimport DormFa from \"./messages/Dorm/fa\";\r\n\r\nconst enMessages = { ...CommonEn, ...BaseInfoEn, ...AttendanceEn, ...SportEn, ...DormEn };\r\nconst faMessages = { ...CommonFa, ...BaseInfoFa, ...AttendanceFa, ...SportFa, ...DormFa };\r\n\r\nconst allMessages = {\r\n ar: arMessages,\r\n en: enMessages,\r\n fa: faMessages,\r\n};\r\n\r\nexport function I18nProvider({ 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","export * from \"./I18nProvider\";\r\nexport * from \"./Basei18n\";"],"sourceRoot":""}