{"version":3,"sources":["_metronic/_assets/js/components/menu.js","_metronic/_assets/js/components/scrolltop.js","_metronic/_assets/js/components/card.js","_metronic/_assets/js/components/toggle.js","constants/constants.js","_metronic/_assets/js/components/offcanvas.js","app/modules/Auth/_redux/authCrud.js","services/interceptor/axiosInterceptor.js","services/apiService.js","services/settings/settingService.js","app/modules/Auth/__mocks__/userTableMock.js","app/modules/ECommerce/__mocks__/customerTableMock.js","app/modules/ECommerce/__mocks__/mock.utils.js","app/modules/ECommerce/__mocks__/mockCustomer.js","app/modules/ECommerce/__mocks__/carTableMock.js","app/modules/ECommerce/__mocks__/mockProduct.js","app/modules/ECommerce/__mocks__/remarkTableMock.js","app/modules/ECommerce/__mocks__/mockRemark.js","app/modules/ECommerce/__mocks__/specificationTableMock.js","app/modules/ECommerce/__mocks__/mockSpecification.js","app/appcuesHOC/WithAppcuesIdentification.js","_metronic/_partials/dashboards/Demo1Dashboard.js","_metronic/_partials/dashboards/Demo2Dashboard.js","helpers/validators/UserValidator.js","services/management/roleService.js","services/management/userService.js","app/components/AddUserModal.js","helpers/validators/ChangePasswordValidator.js","app/components/ChangePasswordModal.js","services/service/projectService.js","services/management/userProjectService.js","app/components/AssignProjectModal.js","app/pages/management/user/UserListingPage.js","helpers/validators/ClientValidator.js","services/management/clientTierService.js","app/components/AddClientModal.js","app/pages/management/client/ClientListingPage.js","helpers/validators/CreateProjectValidator.js","services/service/projectTypeService.js","app/components/NewProjectModal.js","app/pages/services/project/ProjectListingPage.js","_metronic/_partials/dashboards/Demo3Dashboard.js","_metronic/_partials/dashboards/Demo4Dashboard.js","_metronic/_partials/dashboards/Demo5Dashboard.js","_metronic/_partials/dashboards/Demo6Dashboard.js","_metronic/_partials/dashboards/Demo7Dashboard.js","_metronic/_partials/dashboards/Dashboard.js","_metronic/_partials/builder/Builder.js","app/pages/BuilderPage.js","app/pages/MyPage.js","app/pages/DashboardPage.js","helpers/validators/CreateProjectTypeValidator.js","app/components/UpdateProjectTypeModal.js","app/components/NewProjectTypeModal.js","app/components/ManageProjectTypeModal.js","app/pages/services/project/ProjectTypeListingPage.js","services/service/projectPinService.js","services/settings/projectPinCommentService.js","helpers/validators/ProjectPinCommentValidator.js","app/components/ResolvePOIStatusModal.js","helpers/validators/CommentValidator.js","app/components/AddCommentModal.js","helpers/validators/ProjectPinValidator.js","app/components/UpdateProjectPinModal.js","helpers/validators/UpdateImagesValidator.js","app/components/UploadImagesModal.js","app/pages/services/project/ProjectEditPage.js","app/components/AddPaymentModal.js","app/pages/chargifyForm/ChargifyForm.js","app/pages/services/project/ProjectTypeEditPage.js","services/settings/pointCategoryService.js","services/settings/projectTypeCustomFieldService.js","helpers/validators/PointCategoryValidator.js","app/pages/settings/pointCategoryListingPage.js","helpers/validators/SettingValidator.js","app/pages/settings/SettingListingPage.js","services/settings/reportService.js","services/settings/projectPinCustomFieldService.js","app/components/UpdateCustomFieldModal.js","app/components/PropertyImprovementPlanReportHeader.js","app/components/PropertyImprovementPlanReportPropertyDetails.js","app/components/PropertyImprovementPlanReportTable.js","app/components/PropertyImprovementPlanReport.js","helpers/validators/ProjectPinAnonymousValidator.js","app/components/NewAnonymouseImageUploadModal.js","app/pages/services/project/GenerateNewReportPage.js","services/settings/projectTypeCheckBoxService.js","helpers/validators/ProjectTypeCheckBoxValidator.js","app/pages/settings/ProjectTypeCheckBoxListingPage.js","helpers/validators/ProjectTypeCustomFieldValidator.js","app/pages/settings/ProjectTypeCustomFieldListingPage.js","services/settings/POIStatusService.js","app/pages/settings/ProjectTypePOIStatusListingPage.js","app/BasePage.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/components/AlertSnackBar.js","app/components/ConfirmModal.js","app/pages/public/ProjectReportPage.js","app/Routes.js","app/App.js","index.js","redux/__mocks__/mockAxios.js","app/modules/Auth/__mocks__/mockAuth.js","helpers/helper.js","_metronic/_assets/js/components/cookie.js","_metronic/_partials/controls/code-examples/CodeBlockToolbar.js","_metronic/_partials/controls/Card.js","_metronic/_partials/controls/code-examples-kt/KTCodeBlock.js","_metronic/_partials/controls/code-examples-kt/KTCodeExample.js","_metronic/_partials/controls/forms/DatePickerField.js","_metronic/_partials/controls/forms/FieldFeedbackLabel.js","_metronic/_partials/controls/forms/Input.js","_metronic/_partials/controls/forms/Select.js","_metronic/_partials/controls/pagination/PaginationLinks.js","_metronic/_partials/controls/pagination/PaginationToolbar.js","_metronic/_partials/controls/pagination/Pagination.js","_metronic/_partials/controls/AnimateLoading.js","_metronic/_partials/controls/LoadingDialog.js","_metronic/_partials/controls/Notice.js","_metronic/_partials/controls/ModalProgressBar.js","_metronic/_partials/controls/index.js","_metronic/i18n/Metronici18n.js","_metronic/i18n/I18nProvider.js","_metronic/i18n/index.js","_metronic/_assets/js/components/util.js","redux/alertSnackBarRedux.js","_metronic/layout/_core/LayoutConfig.js","_metronic/layout/_core/HTMLClassService.js","_metronic/layout/_core/MetronicLayout.js","_metronic/layout/components/header-mobile/HeaderMobile.js","_metronic/layout/components/extras/dropdowns/LanguageSelectorDropdown.js","_metronic/layout/components/brand/Brand.js","_metronic/layout/components/aside/Aside.js","_metronic/layout/components/footer/Footer.js","_metronic/_assets/js/layout/base/aside.js","_metronic/_assets/js/layout/base/aside-menu.js","_metronic/_assets/js/layout/base/subheader.js","_metronic/_assets/js/layout/base/footer.js","_metronic/_assets/js/layout/base/content.js","_metronic/_assets/js/layout/extended/scrolltop.js","_metronic/_assets/js/layout/base/sticky-card.js","_metronic/_assets/js/layout/base/stretched-card.js","_metronic/_assets/js/layout/extended/quick-panel.js","_metronic/_assets/js/layout/extended/quick-user.js","_metronic/_assets/js/layout/base/header-mobile.js","_metronic/_assets/js/layout/base/aside-toggle.js","_metronic/_assets/js/layout/extended/quick-search.js","_metronic/_assets/js/layout/extended/quick-notifications.js","_metronic/_assets/js/layout/extended/quick-actions.js","_metronic/layout/components/LayoutInit.js","_metronic/layout/components/subheader/components/QuickActions.js","_metronic/layout/components/subheader/components/BreadCrumbs.js","_metronic/layout/_core/MetronicSubheader.js","_metronic/layout/components/subheader/SubHeader.js","_metronic/layout/components/extras/offcanvas/QuickUser.js","_metronic/layout/components/extras/offcanvas/QuickActions.js","_metronic/layout/components/extras/ScrollTop.js","_metronic/layout/components/Layout.js","_metronic/layout/components/content/Content.js","_metronic/layout/components/content/ContentRoute.js","_metronic/layout/_core/MetronicSplashScreen.js","_metronic/layout/_core/MaterialThemeProvider.js","_metronic/layout/index.js","_metronic/_helpers/AssetsHelpers.js","_metronic/_helpers/RouterHelpers.js","_metronic/_helpers/TablePaginationHelpers.js","_metronic/_helpers/TableRowSelectionHelpers.js","_metronic/_helpers/TableSortingHelpers.js","_metronic/_helpers/index.js","redux/rootReducer.js","redux/store.js","_metronic/_partials/dropdowns/DropdownMenu1.js","_metronic/_partials/dropdowns/DropdownMenu2.js","_metronic/_partials/dropdowns/DropdownMenu3.js","_metronic/_partials/dropdowns/DropdownMenu4.js","_metronic/_partials/dropdowns/DropdownCustomToggler.js","_metronic/_partials/dropdowns/DropdownTopbarItemToggler.js","_metronic/_partials/dropdowns/DropdownItemToggler.js","_metronic/_partials/dropdowns/index.js","redux/confirmModalRedux.js","app/modules/Auth/pages/Login.js","app/modules/Auth/pages/Registration.js","app/modules/Auth/pages/ForgotPassword.js","app/modules/Auth/pages/AuthPage.js","app/modules/Auth/pages/Logout.js","app/modules/Auth/index.js","_metronic/_partials/widgets/mixed/MixedWidget1.js","_metronic/_partials/widgets/mixed/MixedWidget6.js","_metronic/_partials/widgets/mixed/MixedWidget10.js","_metronic/_partials/widgets/mixed/MixedWidget11.js","_metronic/_partials/widgets/mixed/MixedWidget12.js","_metronic/_partials/widgets/mixed/MixedWidget14.js","_metronic/_partials/widgets/lists/ListsWidget1.js","_metronic/_partials/widgets/lists/ListsWidget3.js","_metronic/_partials/widgets/lists/ListsWidget4.js","_metronic/_partials/widgets/lists/ListsWidget8.js","_metronic/_partials/widgets/lists/ListsWidget9.js","_metronic/_partials/widgets/lists/ListsWidget10.js","_metronic/_partials/widgets/lists/ListsWidget11.js","_metronic/_partials/widgets/lists/ListsWidget14.js","_metronic/_partials/widgets/stats/StatsWidget11.js","_metronic/_partials/widgets/stats/StatsWidget12.js","_metronic/_partials/widgets/advance-tables/AdvanceTablesWidget1.js","_metronic/_partials/widgets/advance-tables/AdvanceTablesWidget2.js","_metronic/_partials/widgets/advance-tables/AdvanceTablesWidget4.js","_metronic/_partials/widgets/advance-tables/AdvanceTablesWidget7.js","_metronic/_partials/widgets/tiles/TilesWidget1.js","_metronic/_partials/widgets/tiles/TilesWidget3.js","_metronic/_partials/widgets/tiles/TilesWidget10.js","_metronic/_partials/widgets/tiles/TilesWidget11.js","_metronic/_partials/widgets/tiles/TilesWidget12.js","_metronic/_partials/widgets/tiles/TilesWidget13.js","_metronic/_partials/widgets/tiles/TilesWidget14.js","_metronic/_partials/widgets/index.js","services/management/clientService.js","app/modules/ECommerce/_redux/customers/customersSlice.js","app/modules/ECommerce/_redux/products/productsSlice.js","app/modules/ECommerce/_redux/remarks/remarksSlice.js","app/modules/ECommerce/_redux/specifications/specificationsSlice.js","app/modules/Auth/_redux/authRedux.js"],"names":["module","exports","document","addEventListener","e","query","KTUtil","getByTagName","querySelectorAll","i","len","length","element","closest","parentNode","the","data","get","getSubmenuMode","target","contains","hideDropdowns","KTMenu","elementId","options","this","init","getById","body","getBody","defaultOptions","scroll","rememberPosition","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","dropdown","timeout","Plugin","construct","has","reset","build","set","events","eventHandlers","deepExtend","pauseDropdownHoverTime","uid","getUniqueID","update","reload","resetSubmenuProps","on","handleSubmenuAccordion","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","height","scrollInit","off","scrollDestroy","mobileNativeScroll","windowScroll","resetHeightOnDestroy","handleWindowResize","scrollUpdate","scrollTop","el","isBreakpointUp","hasAttr","attr","isset","submenu","hasClasses","desktop","state","mode","default","isBreakpointDown","tablet","mobile","submenus","findAll","css","hasAttribute","removeClass","addClass","getAttribute","resumeDropdownHover","removeAttribute","clearTimeout","showSubmenuDropdown","item","time","setTimeout","hideSubmenuDropdown","setAttribute","eventTrigger","hasClass","preventDefault","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","child","speed","subnav","closables","children","el_","submenu_","slideUp","slideDown","scrollToItem","scrollTo","classAlso","items","j","cnt","list","find","isOffscreen","createSubmenuDropdownClickDropoff","zIndex","dropoff","createElement","appendChild","addEvent","stopPropagation","remove","pauseDropdownHover","date","Date","getTime","resetActiveItem","parents","hide","i_","len_","setActiveItem","getBreadcrumbs","breadcrumbs","link","push","text","innerHTML","title","href","submenuLink","reverse","getPageTitle","name","event","one","handler","call","fired","removeEvent","setDefaults","scrollReInit","hideDropdown","apply","addResizeHandler","KTScrolltop","offset","window","throttle","timer","handle","getScrollTop","args","KTCard","toggleSpeed","sticky","releseOnReverse","header","footer","toggle","initSticky","onScrollSticky","isNaN","st","updateSticky","resetSticky","top","left","right","position","Function","parseInt","setContent","html","getSelf","expand","collapse","destroySticky","removeEventListener","KTToggle","toggleElement","targetElement","targetToggleMode","targetState","toggleState","toggleOn","toggleOff","removeAttr","getState","constants","API_URL","process","REQUIRE_INTERCEPTORS","requestHandlerEnabled","responseHandlerEnabled","MATTERPORT_API_KEY","MATTERPORT_VERSION","fields","KTOffcanvas","attrCustom","classBase","baseClass","classShown","classOverlay","toggleBy","closeBy","isShown","show","toggleClass","classCustom","overlay","insertAfter","id","LOGIN_URL","REGISTER_URL","REQUEST_PASSWORD_URL","ME_URL","login","user","axiosInstance","post","register","fileHandler","requestPassword","email","axios","isEnabled","config","property","hasOwnProperty","requestHandler","request","store","authToken","auth","headers","params","Object","assign","errorHandler","response","message","Promise","resolve","then","res","Message","status","localStorage","removeItem","location","origin","Error","create","baseURL","interceptors","use","successHandler","err","getSettingById","ENDPOINTORIGIN","getSettingByKey","key","getSettings","saveSetting","model","deleteSetting","username","password","accessToken","refreshToken","roles","pic","toAbsoluteUrl","fullname","firstname","lastname","occupation","companyName","phone","language","timeZone","website","emailSettings","emailNotification","sendCopyToPersonalEmail","activityRelatesEmail","youHaveNewNotifications","youAreSentADirectMessage","someoneAddsYouAsAsAConnection","uponNewOrder","newMembershipApproval","memberRegistration","updatesFromKeenthemes","newsAboutKeenthemesProductsAndFeatureUpdates","tipsOnGettingMoreOutOfKeen","thingsYouMissedSindeYouLastLoggedIntoKeen","newsAboutMetronicOnPartnerProductsAndOtherServices","tipsOnMetronicBusinessProducts","communication","sms","address","addressLine","city","postCode","socialNetworks","linkedIn","facebook","twitter","instagram","firstName","lastName","userName","gender","dateOfBbirth","ipAddress","type","_userId","_createdDate","_updatedDate","MockUtils","_entities","_queryParams","_filtrationFields","entitiesResult","searchInArray","filter","sortField","sortArray","sortOrder","pageNumber","totalCount","initialPos","pageSize","queryResults","entities","slice","errorMessage","_incomingArray","_sortField","_sortOrder","sort","a","b","_queryObj","result","resultBuffer","indexes","firstIndexes","doSearch","forEach","index","keys","searchText","toString","trim","toLowerCase","some","indexOf","ex","console","log","re","mockCustomer","mock","onPost","reply","customer","JSON","parse","newCustomer","ids","customerTableMock","map","Math","max","generateUserId","mockUtils","queryParams","baseFilter","findIndex","splice","onGet","url","match","onPut","onDelete","manufacture","modelYear","mileage","description","color","price","condition","createdDate","VINCode","mockProducts","product","newProduct","carTableMock","generateProductId","carId","_isEditMode","dueDate","mockRemarks","remark","newRemark","remarkTableMock","generateRemarkId","split","productRemarks","specId","value","mockSpecifications","specification","newSpecification","specificationTableMock","generateSpecificationId","specifications","wrapSpecification","spec","newSpec","withAppcuesIdentification","WrappedComponent","React","memo","props","useEffect","Appcues","identify","loggedInUser","tier","Demo1Dashboard","className","symbolShape","baseColor","Demo2Dashboard","chartColor","widgetHeight","iconColor","Yup","shape","required","phoneNumber","nullable","clientId","roleId","getRoles","getAllUsers","registerUser","getUserById","updateUser","changeUserPassword","userId","pwd","deleteUserByIsDelete","initialState","role","isDeleted","connect","alert","showAlert","reloadTable","userToEditId","resetUserToEdit","useState","disableClientSelectField","setDisableClientSelectField","setUser","clientList","setClientList","roleList","setRoleList","clientService","roleService","fetchSavedUser","formik","resetForm","userService","roleName","useFormik","enableReinitialize","initialValues","validationSchema","UserValidator","onSubmit","values","setStatus","setSubmitting","saveUser","returnSelectedRole","selectedValue","Number","selectedRole","userModel","variant","hideUserModal","catch","finally","Modal","size","aria-labelledby","centered","onHide","Header","closeButton","Title","handleSubmit","Body","TextField","error","getErrorField","label","margin","getFieldProps","touched","errors","FormControl","style","width","marginTop","InputLabel","htmlFor","Select","disabled","native","inputProps","onChange","setFieldValue","aria-label","x","businessName","Footer","Button","onClick","isSubmitting","isValid","confirmPassword","oneOf","defaultState","setInitialState","ChangePasswordValidator","changePassword","hidePasswordModal","getProjectById","getProjectByClientId","getProjectByIdForSharable","token","getProjectIdForAnonymousUser","getProjects","isCompleted","getArchivedProjects","saveProject","udpate3dLink","updateImages","deleteProject","completeProject","deleteProjectByIsDeleteFlag","GetUserProjects","saveUserProject","BlueCheckbox","withStyles","root","blue","checked","Checkbox","projectName","userID","projectID","accessibleToUser","setUserProject","projectList","setProjectList","userProjectList","setUserProjectList","projectService","userProjectService","hideUserProjectModal","maxHeight","overflowY","proj","FormControlLabel","control","val","tempArr","tempUserProject","labelPlacement","confirmModal","showConfirmModal","hideConfirmModal","tierPlan","deleteUserModel","userModalVisible","setUserModalVisible","assignProjectModalVisible","setAssignProjectModalVisible","users","setUsers","setUserToEditId","changePasswordModalIsVisible","setChangePasswordModalIsVisible","loadUsersTable","columns","download","customBodyRenderLite","dataIndex","client","checkTierPlanAndRoleFreeTier","rightBtnText","btnAction","deleteUser","newModel","selectableRows","logoFile","clientTierId","noOfProject","getClientTierById","getClientTiers","getProductsFromChargify","logoPath","contactName","contactEmail","contactPhone","companyAddress","noOfReport","removeWaterMark","removeCobrandedReport","allowAnonymousCollaboration","clientToEditId","resetClientToEdit","setProcessing","setClient","tierList","setTierList","logo","setLogo","setToFreeTier","clientTierService","freeTier","ClientValidator","saveClient","clientModel","file","convertJsonToFormData","hideClientModal","backgroundImage","labelIdle","onupdatefiles","paymentProfileId","history","loading","setLoading","paymentProfileLinks","setPaymentProfileLinks","deleteClientModel","clientModalVisible","setClientModalVisible","clients","setClients","setClientToEditId","loadClientTable","clientTier","existingLinkInfo","expiresAt","open","loadPaymentProfileLink","refId","deleteClient","scanDate","modelLink","projectTypeId","notes","getProjectTypes","getProjectTypeById","getAllProjectTypes","saveProjectType","deleteProjectTypeIsDeletedFlag","filesToSave","filePondRef","useRef","projectToEditId","project","setProject","setClientId","projectImages","setProjectImages","filePondFiles","setFilePondFiles","filePondInstance","setFilePondInstance","setIsProjectSubmitting","projectTypeList","setProjectTypeList","formFieldValues","setFormFieldValues","nspectionTypeSelected","setNspectionTypeSelected","formJson","setFormJson","handleValueChange","prevValues","moment","format","projectType","formJSON","existingFiles","projectModelImages","image","source","imagePath","pop","projectTypeService","CreateProjectValidator","valueToPost","stringify","fillJsonFormValue","append","hideModal","tempFormJson","objectKeys","currentKey","newFilePondInstance","FilePond","backdrop","placeholder","multiline","rowsMax","selectedNspection","ref","acceptedFileTypes","files","allowMultiple","fileItems","fileItem","maxFiles","oninit","instance","bottom","backgroundColor","field","InputLabelProps","shrink","renderFormField","require","deleteProjectModel","addProjectModalVisible","setAddProjectModalVisible","activeProjects","setActiveProjects","completedProjects","setCompletedProjects","archivedProjects","setArchivedProjects","setProjectToEditId","loadActiveProjectTable","loadCompletedProjectTable","loadArchivedProjectTable","to","pathname","projectId","completed_columns","completedDateTime","archived_column","resetProjectToEdit","Demo4Dashboard","Demo5Dashboard","Demo6Dashboard","Demo7Dashboard","Dashboard","uiService","useHtmlClassService","layoutProps","useMemo","demo","objectPath","Builder","activeTab","getItem","setKey","isLoading","setIsLoading","htmlClassService","merge","getInitLayoutConfig","saveCurrentTab","_tab","setItem","svg","setLayoutConfig","onReset","handleReset","handleChange","handleBlur","data-remember-tab","data-toggle","Switch","onBlur","FormHelperText","clsx","spinner","highlightStyle","customStyle","background","BuilderPage","MyPage","useSubheader","setTitle","DashboardPage","setProjectType","CreateProjectTypeValidator","updateProjectType","newValues","alignContent","createProjectType","Col","Row","deleteProjectTypeModel","addProjectTypeModalVisible","setAddProjectTypeModalVisible","updateProjectTypeModalVisible","setUpdateProjectTypeModalVisible","manageProjectTypeModalVisible","setManageProjectTypeModalVisible","projectTypes","setProjectTypes","setTier","projectTypeData","setProjectTypeData","setProjectTypeId","loadProjectTypes","projType","fetchTierForUser","deleteProjectType","getProjectPinById","getProjectPinsByProjectId","getProjectPinsByProjectIdForReport","getProjectPinsByProjectIdAndImageId","imageId","getProjectPinsByProjectIdAndImageIdForShareable","getProjectPinsByProjectIdForSharable","getProjectPinsByProjectIdForReportSharable","saveProjectPin","saveProjectPinAnonymous","formData","projectPinCheckBoxes","projectPinCustomFields","deleteProjectPin","getProjectPinCommentByProjectPinId","saveProjectPinComment","addAnonymousComments","ProjectPinCommentValidator","comment","anonymousName","registerPlugin","FilePondPluginImageExifOrientation","FilePondPluginImagePreview","initialModel","projectPinId","projectTypePOIStatusId","poiResolutionImagePath","matterportResolutionLink","commentedOn","projectPin","projectTypePOIStatus","onModalClose","poiResolutionImagePathCondition","projectPinComments","matterportResolutionLinkCondition","projectPinComment","poiImage","setPoiImage","setPoiResolutionImagePath","poiMatterPortResolutionLink","setPoiMatterPortResolutionLink","manageOptionVisible","setManageOptionVisible","poiMatterPortResolutionLinkVisible","setPoiMatterPortResolutionLinkVisible","poiImageUploaderVisible","setPoiImageUploaderVisible","addProjectPinComment","finalModel","poiResolutionImageFile","projectPinCommentService","handleOnPressUploadImage","handleOnPressAddMatterPortResolutionLink","projectPinService","isApproved","isResolved","projectTypePoiStatusId","pOIResolutionImagePath","pin","CommentValidator","pointCategoryId","updatedBy","matterPortResolutionLink","updatedDateTime","isCritical","isOsha","RedCheckbox","red","useStyles","makeStyles","theme","formControl","minWidth","selectEmpty","spacing","classes","poiStatus","setPin","poiStatusList","setPOIStatusList","pointCategoryList","setPointCategoryList","projectPinCheckBoxList","setProjectPinCheckBoxList","setProjectPinCheckBoxes","resolvePOIStatusModalVisible","setResolvePOIStatusModalVisible","isBusinessOrProfessionalTier","setIsBusinessOrProfessionalTier","selectedProjectTypeCustomField","setSelectedProjectTypeCustomField","selectedProjectTypeCustomFields","projectTypeCustomFieldList","setProjectTypeCustomFieldList","customFieldDescription","setCustomFieldDescription","projectPinCommentList","setProjectPinCommentList","isModalOpen","setIsModalOpen","customFieldsData","setCustomFieldsData","customFields","setCustomFields","resolveStatusModalRefreshStates","editedCustomField","setEditedCustomField","selectedPointCategory","setSelectedPointCategory","commentedBy","projectPinCommentsLoading","setProjectPinCommentsLoading","isBusinessTier","setIsBusinessTier","filteredProjectPinCustomFields","setFilteredProjectPinCustomFields","projectTypeCustomFields","fetchProjectPin","assignPoiStatusListAndPointCategoryList","projectTypePOIStatuses","pointCategories","handlePointCategoryChange","projTypeCustomFields","projPinCustomFields","copyProjectTypeCustomFieldToProjectPinCustomField","tierPlan3","checkTierPlanAndRoleTier3","fetchProjectPinCommentsByPoiStatusId","typeField","clonedObj","projectTypeCustomFieldId","matchingCustomField","pinField","projPinId","isTier2","checkTierPlanAndRoleTier2","ProjectPinValidator","updateProjectPin","formikForComments","handleDescriptionChange","updatedFields","customFieldType","join","helper","updateProjectPinModel","pointCategory","selectedPointCategoryId","associatedCustomFieldIds","pointCategoryProjectTypeCustomFields","assoc","filteredFields","includes","openModalResolvePOIStatus","refreshStates","class","ExpansionPanel","ExpansionPanelSummary","expandIcon","Typography","ExpansionPanelDetails","inputComponent","validationError","validateDescription","displayEmpty","customFieldTypeOptions","option","idx","MenuItem","selectedOptions","handleCheckboxChange","multiple","renderValue","selected","undefined","curr","isChecked","Divider","aria-controls","LinearProgress","hasCustomFieldErrors","labelId","rows","editedFieldIndex","updatedCustomField","prevData","newCustomFieldData","refresh","hideButtons","setHideButtons","isProject3dUploader","setIsProject3dUploader","imageUploaderOutput","setImageUploaderOutput","project3DLinkOutput","setProject3DLinkOutput","UpdateImagesValidator","updateProject3dModel","updateProjectImages","handleFileUpload","display","flexDirection","alignItems","newModelLink","BlueCheckBox","poseCache","intersectionCache","annotationRef","useHistory","useParams","historyProjectId","currentImageIndex","setCurrentImageIndex","annotation","setAnnotation","carouselIndex","setCarouselIndex","updateImagesModalVisible","setUpdateImagesModalVisible","annotations","setAnnotations","setSelectedCustomFieldIds","projectPins","setChecked","showAllChecked","setShowAllChecked","setFormSubmit","project3d","setProject3d","myIntervalId","setMyIntervalId","setSelectedProjectTypeCustomFields","imageString","setImageString","editProjectPinId","setEditProjectPinId","poiStatusName","setPoiStatusName","selectedPoint","setSelectedPoint","updateProjectPinModalVisible","setUpdateProjectPinModalVisible","setPoiStatusList","globalSdk","setGlobalSdk","projectTypeChangeDetector","setProjectTypeChangeDetector","fetchNewAnnotation","setFetchNewAnnotation","btnPosition","setBtnPosition","useTransientTagEditor","setUseTransientTagEditor","highlightedAnnotationIndex","setHighlightedAnnotationIndex","displayBtn","setDisplayBtn","intersectionState","setIntersectionState","savedProjectPins","setSavedProjectPins","isTableLoading","setIsTableLoading","slider","setSlider","iFrameRef","buttonDisplayed","fetchProject","fetchProjectPinsForAProjectAndImageId","is3d","copyProjectTypeToProjectPinCheckBoxes","projectTypeCheckBoxes","onChangeHandler","register2DProject","tierId","isTier3","tierAndProj","fetchProjectPinsForAProject","isBusinessOrProfessional","registerMatterPort","pins","tempAnnotations","pinsFiltered","projectModelImageId","annotationCoordinates","projTypeCheckBoxes","hexToRgb","hex","exec","r","round","g","isBusiness","current","MP_SDK","sdk","checkTier3","allMatterTags","matterPointCoordinates","coordinate","poiColorCode","anchorPosition","stemVector","normal","stemVisible","Tag","add","mattertagIds","addProjectPinsToMatterPort","handleTransientTagEditor","handleIntersectionInspector","mpSdk","tag","intersection","y","z","eventListener","intersectionData","activeElement","Mattertag","navigateToTag","Transition","FLY","focus","focusDetect","Pointer","subscribe","object","newPos","newNorm","scale","editPosition","updateTagPos","isIntersectionInspectorTrueDuringToggle","Camera","pose","setInterval","nextShow","w","clientWidth","h","clientHeight","coord","Conversion","worldToScreen","clearInterval","navigateToPoint","scrollToTop","behavior","src","whiteSpace","imageIndexId","handleGotopoint","setProjectPinToEdit","tempList","deletePoint","deleteAnnotationPoints","savePoint","captureAnnotatedImage","geometry","canvas","ctx","getContext","img","Image","crossOrigin","onload","drawImage","multByX","multByY","beginPath","lineWidth","strokeStyle","rect","stroke","base64","toDataURL","postImageWithPin","takeScreenShot","mattertags","sweeps","MatterPointCoordinates","imageUrl","customFieldNames","newPointToAdd","updatedOn","addedBy","editMatterportBillboard","editMattertagColor","temp","currentImage","AnnotationCoordinates","random","removeSelectedMatterTag","foundStatus","colorCode","editColor","editBillboard","media","MediaType","PHOTO","imageSrc","fontSize","fontWeight","tabindex","aria-disabled","search","sliderDecimalFixedValue","parseFloat","toFixed","frameBorder","allowFullScreen","pointerEvents","cursor","allow","showArrows","defaultActiveIndex","selectedItem","newActiveIndex","currentImageId","RectangleSelector","TYPE","disableEditor","renderContent","handleMouseEnter","data-tooltip-content","border","onMouseEnter","onMouseLeave","anchorId","renderSelector","mixBlendMode","renderAnnotations","Slider","onChangeCommitted","removeAndChangeStemLength","valueLabelDisplay","min","step","authRedux","handleClose","form","createRef","chargify","Chargify","securityToken","setSecurityToken","clientInfo","setClientInfo","publicKey","setPublicKey","serverHost","setServerHost","fetchServerHost","fetchChargifyPublicKey","fetchClientInfoById","generateSecurityToken","load","hideCardImage","optionalLabel","requiredLabel","addressDropdowns","selector","maxlength","number","month","year","cvv","address2","country","zip","settingService","clientServices","savePaymentProfileToken","paymentToken","submit","helperText","upgradeTier","isIframeVisible","setIsIframeVisible","products","setProducts","disableAddNewCardButton","setDisableAddNewCardButton","selectedProductName","setSelectedProductName","isSubmitted","setIsSubmitted","isPageLoading","setIsPageLoading","paymentProfiles","setPaymentProfiles","selectedPaymentProfile","setSelectedPaymentProfile","isAddCardModalOpen","setIsAddCardModalOpen","setRefresh","fetchCurrentSubscription","fetchProductsFromChargify","fetchPaymentProfilesForClient","clientTierServices","savePaymentProfileTokenAndCreateSubscription","clientTierName","replace","rel","expanded","marginBottom","profile","masked_card_number","goBack","loadActiveProjectTypesTable","getPointCategoryById","getPointCategoryByProjectTypeId","getPointCategories","savePointCategory","deletePointCategoryIsDeletedFlag","getProjectTypeCustomFieldById","getProjectTypeCustomFieldByProjectTypeId","saveProjectTypeCustomField","deleteProjectTypeCustomFieldIsDeletedFlag","initialPointCategory","isDefault","setData","setProjectTypeCustomFields","selectedCustomFields","setSelectedCustomFields","loadTableData","loadProjectTypeCustomFields","projectTypeCustomFieldService","formattedFields","pointCategoryService","defaultFields","projectTypeCustomField","nonDefaultFields","deleteModel","deletePointCategory","handleModalClose","PointCategoryValidator","projectTypeCustomFieldIds","fullWidth","initialSetting","selectedSetting","setSelectedSetting","SettingValidator","getHashLinkForReport","getProjectPinCustomFieldByProjectPinId","saveProjectPinCustomField","getProjectPinCustomFieldByProjectPinIdShareableReport","saveProjectPinCustomFieldShareableReport","fetchProjectPinCustomFieldShareable","fetchProjectPinCustomField","customFieldId","projectPinCustomFieldService","savePromises","all","responses","isViewable","hasValidationError","styles","StyleSheet","container","borderBottomWidth","borderBottomColor","borderBottomStyle","detailColumn","textTransform","textAlign","textHack","opacity","logoColumn","PropertyImprovementPlanReportHeader","wrapper","tableContainer","borderCollapse","tableNameRow","tableNameTextView","flex","borderWidth","borderColor","dataRowContainer","dataCellContainer","borderLeft","borderBottom","borderRight","padding","justifyContent","dataCellAnswer","dataCellLabel","secondTableCellContainer","Font","family","PropertyImprovementPlanReportPropertyDetails","getFormValue","colSpan","tableSecondaryRow","tableSecondaryRowHeaderContainer","tableSecondaryNameTextView","tableHeaderLabel","PropertyImprovementPlanReportTable","linkMap","setLinkMap","newLinkMap","reportService","generateLinksForAllPins","completeImageUrl","requiredCompletionDate","cf","actualCompletionDate","pinLink","PropertyImprovementPlanReport","fetchHashLinkForReport","groupedPins","reduce","acc","groupByCategory","projectPinListingDtos","sortPinsAlphabetically","localeCompare","author","keywords","subject","category","toUpperCase","anonymousUser","imageDataUrl","setImageDataUrl","setImagePath","fetchProjectDataForSharable","ProjectPinAnonymousValidator","reader","FileReader","readAsDataURL","useLocation","keyFromToken","URLSearchParams","isReadOnly","isReportLoading","setIsReportLoading","toggleCode","setToggleCode","addCommentModalVisible","setAddCommentModalVisible","showCustomFieldModalVisible","setShowCustomFieldModalVisible","setProjectPins","refreshList","setRefreshList","currentPin","setCurrentPin","pinFromKey","setPinFromKey","keyFromURL","hasCompletedLoad","setHasCompletedLoad","addImageModalVisible","setAddImageModalVisible","fetchProjecPinByProjectIdSharable","fetchProjectData","fetchProjecPinByProjectId","fetchProjectPinsForAProjectForReportSharable","tokenVal","handleGoToOnclick","projPin","every","hidden","tempButton","clipboard","ClipboardJS","removeChild","destroy","click","allowCollaboration","alt","getProjectTypeCheckBoxById","getProjectTypeCheckBoxByProjectTypeId","saveProjectTypeCheckBox","deleteProjectTypeCheckBoxIsDeletedFlag","initialProjectTypeCheckBox","selectedProjectTypeCheckBox","setSelectedProjectTypeCheckBox","projectTypeCheckBoxService","deleteProjectTypeCheckBox","ProjectTypeCheckBoxValidator","newProjTypeCheckBoxes","initialProjectTypeCustomField","isEditable","fieldTypeList","setOptions","showFieldOptions","setShowFieldOptions","editProjectTypeCustomField","deleteProjectTypeCustomField","ProjectTypeCustomFieldValidator","optionsString","newProjTypeCustomFields","newOptions","handleOptionChange","_","removeOption","getPOIStatusById","getPOIStatusByProjectTypeId","getPOIStatuses","savePOIStatus","deletePOIStatusIsDeletedFlag","initialPOIStatus","iconPath","poiColor","setPoiColor","selectedPOIStatus","setSelectedPOIStatus","poiStatusService","fetchClientTier","poi","deletePOIStatus","POIStatusValidator","onChangeComplete","GoogleMaterialPage","lazy","ReactBootstrapPage","ECommercePage","UserProfilepage","ErrorPage1","ErrorPage2","ErrorPage3","ErrorPage4","ErrorPage5","ErrorPage6","ErrorsPage","from","exact","path","component","variantIcon","success","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","useStyles1","green","palette","dark","primary","main","amber","icon","iconVariant","marginRight","MySnackbarContentWrapper","onClose","other","Icon","SnackbarContent","aria-describedby","action","IconButton","alertState","reason","hideAlert","Snackbar","anchorOrigin","vertical","horizontal","marginLeft","isVisible","autoHideDuration","isProcessing","ProjectReportPage","AuthPageWithAppcuesIdentification","WithAppcuesIdentification","AuthPage","BasePageWithAppcuesIdentification","fallback","UserListingPage","ChargifyForm","ClientListingPage","ProjectEditPage","ProjectTypeEditPage","ProjectListingPage","ProjectTypeListingPage","PointCategoryListingPage","SettingListingPage","ProjectTypePOIStatusListingPage","ProjectTypeCheckBoxListingPage","ProjectTypeCustomFieldListingPage","GenerateNewReportPage","Routes","useSelector","isAuthorized","shallowEqual","clientRefId","Logout","App","persistor","basename","Suspense","FilePondPluginFileValidateType","MockAdapter","delayResponse","userTableMock","Authorization","startsWith","mockAuth","mockCustomers","_redux","ReactDOM","render","getElementById","fieldname","json","form_data","FormData","Array","isArray","test","KTCookie","getCookie","matches","cookie","RegExp","decodeURIComponent","setCookie","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","deleteCookie","CodeBlockToolbar","showViewCode","code","isCodeBlockShown","setIsCodeBlockShown","isCopySucceed","setIsCopySucceed","Tooltip","copy","CardHeaderTitle","forwardRef","CardHeaderToolbar","CardHeader","toolbar","labelRef","setTop","windowHeight","setWindowHeight","handleResize","innerWidth","headerElement","querySelector","subheaderElement","headerMobileElement","nextMarginTop","getComputedStyle","offsetHeight","classList","isFragment","CardBody","fit","fluid","Card","fluidHeight","KTCodeBlock","languages","tabs","codeShown","tabId","setTabId","lang","aria-selected","shortCode","KTCodeExample","jsCode","beforeCodeTitle","codeBlockHeight","defaultLanguages","setCustomStyle","overflowX","getFieldCSSClasses","DatePickerField","useFormikContext","useField","inputLabel","customFeedbackLabel","FieldFeedbackLabel","selectLabel","Input","withFeedbackLabel","meta","erros","PaginationLinks","paginationProps","totalSize","sizePerPage","page","paginationSize","pagesCount","getPagesCount","pages","getPages","disabledClass","onPageChange","handlePrevPage","p","pageNum","handleNextPage","PaginationToolbar","sizePerPageList","onSizePerPageChange","newSize","isSelect","Pagination","AnimateLoading","routeChanged","nextProps","animate","scrollToTopBtn","animateTimeout","setState","stopAnimate","animateInterval","stopAnimateTimeout","ProgressBar","now","Component","withRouter","initCssClasses","LoadingDialog","cssClasses","setCssClasses","timeoutId","node","Notice","iconRef","textRef","iconWrapperRef","ModalProgressBar","animated","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","selectedLang","getConfig","ls","er","setLanguage","I18nContext","createContext","useLang","useContext","Consumer","MetronicI18nProvider","Provider","allMessages","de","en","es","fr","ja","zh","I18nProvider","locale","messages","Element","prototype","msMatchesSelector","webkitMatchesSelector","s","ancestor","documentElement","parentElement","elem","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","timeToCall","Document","DocumentFragment","defineProperty","configurable","enumerable","writable","argArr","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","String","insertBefore","firstChild","getAttributeNames","attributes","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","resizeHandlers","breakpoints","sm","md","lg","xl","_windowResizeHandler","_runResizeHandlers","settings","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","substring","unescape","isMobileDevice","getViewPort","getBreakpoint","navigator","userAgent","isDesktopDevice","isInResponsiveRange","breakpoint","prefix","floor","obj","stone","shift","getHighestZindex","hasFixedPositionedParent","sleep","milliseconds","start","getRandomInt","isAngularVersion","Zone","out","extend","getByTag","getElementsByTagName","getByClass","getElementsByClassName","classesArr","classNames","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","c","string","eventTriggered","currentTarget","dataset","triggered","parent","referenceNode","nextSibling","matchesSelector","mozMatchesSelector","oMatchesSelector","childNodes","l","f","tagName","customDataTag","outerWidth","offsetWidth","win","getClientRects","getBoundingClientRect","defaultView","pageYOffset","pageXOffset","outerHeight","withMargin","visible","duration","easing","done","easings","linear","t","d","rAF","change","performance","loop","timestamp","actualCss","prop","cache","HTMLElement","cssText","actualHeight","actualWidth","getScroll","method","self","browserSupportsBoxModel","styleProp","getPropertyValue","currentStyle","str","letter","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","overflow","eventId","targets","callee","hash","charCodeAt","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","targetPos","scrollPos","ready","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","rv","edge","isRTL","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","ps","attrs","attrName","optionName","filterBoolean","mobileHeight","disableForMobile","desktopNativeScroll","PerfectScrollbar","pos","scrollUpdateAll","scrollers","resetAll","setProperty","setHTML","getHTML","getDocumentHeight","scrollHeight","scrollingElement","changeColor","col","amt","usePound","num","func","delay","debounce","btnWait","cls","disable","caption","btnRelease","direction","windowWidth","KTAppSettings","actionTypes","initialAlertState","reducer","payload","actions","js","xxl","colors","base","white","secondary","danger","light","inverse","gray","gray100","gray200","gray300","gray400","gray500","gray600","gray700","gray800","gray900","fontFamily","layout","loader","enabled","fixed","subheader","displayDesc","displayDaterangepicker","breadcrumb","clear","content","aside","minimize","menu","extras","offcanvas","notifications","cart","chat","scrolltop","HtmlClassService","layoutConfig","preInit","header_container","header_mobile","header_menu","aside_menu","subheader_container","content_container","footer_container","initLoader","initLayout","initHeader","initSubheader","initContent","initAside","initFooter","updateLayoutConfig","getLogo","selfBodyBackgroundImage","backgroundImageUrl","_selfBodyClass","cssClass","subheaderStyle","subheaderClass","asideSelfDisplay","asideMenuDropdown","asideSubmenuDHoverTimeout","LAYOUT_CONFIG_KEY","REACT_APP_LAYOUT_CONFIG_KEY","HtmlClassServiceContext","MetronicLayoutProvider","lc","hcs","service","setConfig","HeaderMobile","asideDisplay","headerMobileCssClasses","getClasses","headerMobileAttributes","getAttributes","flag","LanguageSelectorDropdown","currentLanguage","Dropdown","drop","alignRight","Toggle","as","DropdownItemToggler","OverlayTrigger","placement","Menu","active","Brand","asideClassesFromConfig","asideSecondaryDisplay","asideSelfMinimizeToggle","extrasSearchDisplay","extrasNotificationsDisplay","extrasQuickActionsDisplay","extrasQuickPanelDisplay","extrasLanguagesDisplay","extrasUserDisplay","data-placement","data-container","data-boundary","getFullYear","footerLayout","footerClasses","footerContainerClasses","KTLayoutAside","_element","_offcanvasObject","offcanvasClass","_init","asideNav","asideBrand","asideFooter","_initNav","asideTabs","asideWorkspace","asideSecondary","$","_initWorkspace","getElement","getOffcanvas","KTLayoutAsideMenu","_menuObject","getMenu","closeMobileOffcanvas","KTLayoutSubheader","isFixed","getHeight","_getHeight","KTLayoutFooter","KTLayoutContent","KTLayoutScrolltop","KTLayoutStickyCard","_object","KTLayoutHeader","isFixedForMobile","getHeightForMobile","card","cardWidth","KTLayoutStretchedCard","cardBody","cardHeader","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","KTLayoutQuickUser","KTLayoutHeaderMobile","getHeader","KTLayoutAsideToggle","_body","_toggleObject","KTLayoutHeaderMenu","getToggle","onToggle","KTLayoutQuickSearch","results","KTLayoutQuickNotifications","KTLayoutQuickActions","LayoutInit","useLayoutEffect","QuickActions","BreadCrumbs","getBreadcrumbsAndTitle","menuId","pathName","activeLinks","titleSpans","titleSpan","breadCrumbs","getTitle","SubheaderContext","MetronicSubheaderProvider","setBreadcrumbs","linkModel","showBanner","setLink","subheaderFixed","subheaderMobileToggle","subheaderCssClasses","subheaderContainerCssClasses","linkValue","tierToUpdateTo","tokenDecoded","jwt_decode","ClientId","updateClientTier","Alert","Link","QuickUser","ScrollTop","Layout","selfLayout","subheaderDisplay","contentCssClasses","contentContainerClasses","contentExtended","Content","useRouteMatch","cssClassesState","setCssClassesState","fullClasses","startAnimation","timeOutId","ContentRoute","routeProps","MetronicSplashScreenContext","MetronicSplashScreenProvider","count","setCount","splashScreen","LayoutSplashScreen","prev","createMuiTheme","typography","MuiButtonBase","disableRipple","MuiPopover","elevation","MaterialThemeProvider","ThemeProvider","checkIsActive","getCurrentUrl","ceil","shiftCount","getHandlerTableChange","setQueryParams","PleaseWaitMessage","NoRecordsFoundMessage","customersList","SelectionCheckbox","isSelected","getSelectRow","setIds","clickToSelect","hideSelectAll","selectionHeaderRenderer","allIds","groupingAllOnSelect","selectionRenderer","rowIndex","customerId","newIds","groupingItemOnSelect","sortCaret","order","column","headerSortingClasses","isLastSorting","colIndex","rootSaga","rootReducer","combineReducers","customers","customersSlice","productsSlice","remarks","remarksSlice","specificationsSlice","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","configureStore","devTools","enhancers","reduxBatch","persistStore","run","DropdownMenu1","DropdownMenu2","DropdownMenu3","DropdownMenu4","DropdownCustomToggler","displayName","data-offset","initialConfirmModalState","injectIntl","intl","LoginSchema","formatMessage","disableLoading","getInputClasses","contactFirstName","contactLastName","RegistrationSchema","flexWrap","rowGap","isRequested","setIsRequested","ForgotPasswordSchema","Login","Registration","ForgotPassword","logout","hasAuthToken","Boolean","MixedWidget1","colorsGrayGray500","colorsGrayGray200","colorsGrayGray300","colorsThemeBaseDanger","series","chart","zoom","sparkline","dropShadow","enabledOnSeries","blur","plotOptions","legend","dataLabels","fill","curve","xaxis","categories","axisBorder","axisTicks","labels","crosshairs","dashArray","yaxis","states","hover","allowMultipleDataPointsSelection","tooltip","formatter","marker","markers","strokeColor","strokeWidth","getChartOptions","ApexCharts","MixedWidget6","colorsThemeBaseColor","colorsThemeLightColor","bar","columnWidth","endingShape","grid","strokeDashArray","lines","getChartOption","data-color","MixedWidget10","MixedWidget11","MixedWidget12","MixedWidget14","colorsGrayGray100","colorsGrayGray700","colorsThemeBaseSuccess","colorsThemeLightSuccess","radialBar","hollow","showOn","offsetY","track","lineCap","ListsWidget1","ListsWidget3","ItemDropdown","ListsWidget4","ListsWidget8","ListsWidget9","ListsWidget10","ListsWidget11","ListsWidget14","StatsWidget11","StatsWidget12","colorsThemeBasePrimary","colorsThemeLightPrimary","chartnewUsers","AdvanceTablesWidget1","aria-valuenow","aria-valuemin","aria-valuemax","AdvanceTablesWidget2","Tab","Container","defaultActiveKey","Nav","onSelect","_key","Item","eventKey","AdvanceTablesWidget4","AdvanceTablesWidget7","TilesWidget1","gradient","shadeIntensity","gradientToColors","inverseColors","opacityFrom","opacityTo","stops","colorStops","TilesWidget3","TilesWidget10","TilesWidget11","TilesWidget12","TilesWidget13","backgroundPosition","backgroundSize","TilesWidget14","getClientById","getClients","getPaymentProfilesForClient","getManagementLink","chargifyCustomerId","getSubscriptionById","deleteClientByIsDeleteFlag","savePaymentProfileAndOrSubscribe","savePaymentProfile","initialCustomersState","listLoading","actionsLoading","customerForEdit","lastError","callTypes","createSlice","reducers","catchError","callType","startCall","customerFetched","customersFetched","customerCreated","ewactionsLoading","customerUpdated","entity","customerDeleted","customersDeleted","customersStatusUpdated","initialProductsState","productForEdit","productFetched","productsFetched","productCreated","productUpdated","productDeleted","productsDeleted","productsStatusUpdated","initialRemarksState","remarkForEdit","remarkFetched","remarksFetched","remarkCreated","remarkUpdated","remarkDeleted","remarksDeleted","remarksStatusUpdated","initialSpecificationsState","specificationForEdit","specificationFetched","specificationsFetched","specificationCreated","specificationUpdated","specificationDeleted","specificationsDeleted","saga","initialAuthState","persistReducer","storage","whitelist","decodedToken","RefId","updatedUser","requestUser","fulfillUser","takeLatest","loginSaga","put","registerSaga","userRequested"],"mappings":"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","file":"static/js/main.dfd884d8.chunk.js","sourcesContent":["/* 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.scrollUpdate();\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(toggleElement, targetElement, 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 = toggleElement;\r\n var target = targetElement;\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 = 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;","const constants = {\r\n API_URL: process.env.REACT_APP_ENVIRONMENT === \"production\" ? process.env.REACT_APP_LIVE_URL : process.env.REACT_APP_DEV_URL,\r\n REQUIRE_INTERCEPTORS: {\r\n requestHandlerEnabled: true,\r\n responseHandlerEnabled: true\r\n },\r\n // MATTERPORT_API_KEY: process.env.REACT_APP_ENVIRONMENT === \"development\" ? '1sz5y21iidtbqnpip4y8keayc' : '7xfyy3zpqwfcf67rg23x5bf2a',\r\n MATTERPORT_API_KEY: process.env.REACT_APP_ENVIRONMENT === \"development\" ? '1sz5y21iidtbqnpip4y8keayc' : '1yrc5xm0gwd5pzxp76yw2x6aa',\r\n MATTERPORT_VERSION: '3.5',\r\n 'Property Improvement Plan': {\r\n title: 'Property Details & Renovation Schedule',\r\n fields: [\r\n {\r\n \"key\": \"propertyName\",\r\n \"label\": \"Property Name\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"propertyLocation\",\r\n \"label\": \"Property Location\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"hyattSpiritCode\",\r\n \"label\": \"Hyatt Spirit Code\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"sellerOwnershipInformation\",\r\n \"label\": \"Owner Information (Seller)\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"buyerOwnershipInformation\",\r\n \"label\": \"Ownership Information (Buyer)\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"currentManagementInformation\",\r\n \"label\": \"Management Information (Current)\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"proposedManagementInformation\",\r\n \"label\": \"Management Information (Proposed)\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"totaNumberOfGuestRooms\",\r\n \"label\": \"Total Number Of Guestrooms\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"totalNumberOfFloors\",\r\n \"label\": \"Total Number of Floors\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"meetingSpace\",\r\n \"label\": \"Meeting Space s.f.:\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"constructionGeneration\",\r\n \"label\": \"Construction Generation\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"originalConstructionDate\",\r\n \"label\": \"Original Construction Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"hyattOpenDate\",\r\n \"label\": \"Hyatt Open Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"mostCurrentRenovation\",\r\n \"label\": \"Most Current Renovation\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"pipWalkthroughDate\",\r\n \"label\": \"PIP Walkthrough Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"pipIssueDate\",\r\n \"label\": \"PIP Issue Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"pipIsValidUntil\",\r\n \"label\": \"PIP Is Valid Until\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"followUpWalkthroughDate\",\r\n \"label\": \"Follow-up Walkthrough Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"leadCertification\",\r\n \"label\": \"Leed Certification\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"7yearCycle\",\r\n \"label\": \"7 Year Cycle\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"7yearCycleDescription\",\r\n \"label\": \"7 Year Cycle Description\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"7yearCycleDate\",\r\n \"label\": \"7 Year Cycle Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"14yearCycle\",\r\n \"label\": \"14 Year Cycle\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"14yearCycleDescription\",\r\n \"label\": \"14 Year Cycle Description\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"14yearCycleDate\",\r\n \"label\": \"14 Year Cycle Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"21yearCycle\",\r\n \"label\": \"21 Year Cycle\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"21yearCycleDescription\",\r\n \"label\": \"21 Year Cycle Description\",\r\n \"type\": \"text\",\r\n \"value\": \"\",\r\n },\r\n {\r\n \"key\": \"21yearCycleDate\",\r\n \"label\": \"21 Year Cycle Date\",\r\n \"type\": \"date\",\r\n \"value\": \"\",\r\n }\r\n ]\r\n }\r\n};\r\n\r\nexport default constants;","/* 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 axios from 'axios';\r\nimport axiosInstance from \"../../../../services/apiService\";\r\nexport const LOGIN_URL = \"Users/Authenticate\";\r\nexport const REGISTER_URL = \"Users/Register\";\r\nexport const REQUEST_PASSWORD_URL = \"api/auth/forgot-password\";\r\n\r\nexport const ME_URL = \"api/me\";\r\n\r\nexport function login(user) {\r\n return axiosInstance.post(LOGIN_URL, user, {\r\n requestHandlerEnabled: false,\r\n responseHandlerEnabled: true\r\n });\r\n}\r\n\r\nexport function register(user) {\r\n return axiosInstance.post(REGISTER_URL, user,{\r\n requestHandlerEnabled: false,\r\n responseHandlerEnabled: true,\r\n fileHandler: true\r\n });\r\n}\r\n\r\nexport function requestPassword(email) {\r\n return axios.post(REQUEST_PASSWORD_URL, { email });\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}\r\n","import store from \"../../redux/store\";\r\n\r\nconst isEnabled = (config, property) => config.hasOwnProperty(property) && config[property];\r\n\r\n//handles requests going from app to server\r\nconst requestHandler = async (request) => {\r\n if (isEnabled(request, 'requestHandlerEnabled')) {\r\n const {\r\n auth: { authToken }\r\n } = store.getState();\r\n request.headers['Authorization'] = 'Bearer ' + authToken; \r\n }\r\n\r\n if (isEnabled(request, 'params')) {\r\n request.params = request.params || {};\r\n const params = request.params || {};\r\n Object.assign(request.params, params);\r\n }\r\n\r\n request.headers['Content-Type'] = !isEnabled(request, 'fileHandler') ? 'application/json' : 'multipart/form-data';\r\n request.headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS, DELETE';\r\n return request;\r\n}\r\n\r\n//handles responses coming from server to app\r\nconst successHandler = (response) => {\r\n if (isEnabled(response.config, 'responseHandlerEnabled')) {\r\n return response.data;\r\n }\r\n\r\n return response;\r\n}\r\n\r\nconst errorHandler = async (response) => {\r\n if (isEnabled(response.config, 'responseHandlerEnabled')) {\r\n // console.log(\"I am handling error responses\");\r\n }\r\n\r\n var message = \"Something went wrong!\";\r\n\r\n await Promise.resolve(response.response).then(res => {\r\n message = res.data.Message;\r\n \r\n //if 401 redirect to login page\r\n if (res.status === 401) {\r\n localStorage.removeItem('persist:auth-token');\r\n window.location = window.origin + '/login';\r\n return;\r\n }\r\n //if not authorized redirect to dashboard\r\n if (res.status === 403) {\r\n window.location = window.origin + '/';\r\n return;\r\n }\r\n });\r\n\r\n throw Error(message);\r\n}\r\n\r\nexport {\r\n requestHandler,\r\n successHandler,\r\n errorHandler\r\n}","import axios from 'axios';\r\nimport { requestHandler, successHandler, errorHandler } from './interceptor/axiosInterceptor';\r\nimport constants from \"../constants/constants\";\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: constants.API_URL + \"api/\"\r\n})\r\n\r\naxiosInstance.interceptors.request.use(\r\n request => requestHandler(request)\r\n)\r\n\r\naxiosInstance.interceptors.response.use(\r\n response => successHandler(response),\r\n err => errorHandler(err)\r\n)\r\n\r\nexport default axiosInstance;","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"Setting/\";\r\n\r\nconst getSettingById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetSettingById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getSettingByKey = async (key) => await axiosInstance.get(ENDPOINTORIGIN + 'GetSettingByKey?key=' + key, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getSettings = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetSettings', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveSetting = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveSetting', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteSetting = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteSetting?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\n\r\n\r\nexport {\r\n getSettingById,\r\n getSettingByKey,\r\n getSettings,\r\n saveSetting,\r\n deleteSetting\r\n}","import { toAbsoluteUrl } from \"../../../../_metronic/_helpers\";\r\n\r\nexport default [\r\n {\r\n id: 1,\r\n username: \"admin\",\r\n password: \"demo\",\r\n email: \"admin@demo.com\",\r\n accessToken: \"access-token-8f3ae836da744329a6f93bf20594b5cc\",\r\n refreshToken: \"access-token-f8c137a2c98743f48b643e71161d90aa\",\r\n roles: [1], // Administrator\r\n pic: toAbsoluteUrl(\"/media/users/300_21.jpg\"),\r\n fullname: \"Sean S\",\r\n firstname: \"Sean\",\r\n lastname: \"Stark\",\r\n occupation: \"CEO\",\r\n companyName: \"Keenthemes\",\r\n phone: \"456669067890\",\r\n language: \"en\",\r\n timeZone: \"International Date Line West\",\r\n website: \"https://keenthemes.com\",\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutMetronicOnPartnerProductsAndOtherServices: true,\r\n tipsOnMetronicBusinessProducts: true,\r\n },\r\n },\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n address: {\r\n addressLine: \"L-12-20 Vertex, Cybersquare\",\r\n city: \"San Francisco\",\r\n state: \"California\",\r\n postCode: \"45000\",\r\n },\r\n socialNetworks: {\r\n linkedIn: \"https://linkedin.com/admin\",\r\n facebook: \"https://facebook.com/admin\",\r\n twitter: \"https://twitter.com/admin\",\r\n instagram: \"https://instagram.com/admin\",\r\n },\r\n },\r\n {\r\n id: 2,\r\n username: \"user\",\r\n password: \"demo\",\r\n email: \"user@demo.com\",\r\n accessToken: \"access-token-6829bba69dd3421d8762-991e9e806dbf\",\r\n refreshToken: \"access-token-f8e4c61a318e4d618b6c199ef96b9e55\",\r\n roles: [2], // Manager\r\n pic: toAbsoluteUrl(\"/media/users/100_2.jpg\"),\r\n fullname: \"Megan F\",\r\n firstname: \"Megan\",\r\n lastname: \"Fox\",\r\n occupation: \"Deputy Head of Keenthemes in New York office\",\r\n companyName: \"Keenthemes\",\r\n phone: \"456669067891\",\r\n language: \"en\",\r\n timeZone: \"International Date Line West\",\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutMetronicOnPartnerProductsAndOtherServices: true,\r\n tipsOnMetronicBusinessProducts: true,\r\n },\r\n },\r\n address: {\r\n addressLine: \"3487 Ingram Road\",\r\n city: \"Greensboro\",\r\n state: \"North Carolina\",\r\n postCode: \"27409\",\r\n },\r\n socialNetworks: {\r\n linkedIn: \"https://linkedin.com/user\",\r\n facebook: \"https://facebook.com/user\",\r\n twitter: \"https://twitter.com/user\",\r\n instagram: \"https://instagram.com/user\",\r\n },\r\n },\r\n {\r\n id: 3,\r\n username: \"guest\",\r\n password: \"demo\",\r\n email: \"guest@demo.com\",\r\n accessToken: \"access-token-d2dff7b82f784de584b60964abbe45b9\",\r\n refreshToken: \"access-token-c999ccfe74aa40d0aa1a64c5e620c1a5\",\r\n roles: [3], // Guest\r\n pic: toAbsoluteUrl(\"/media/users/default.jpg\"),\r\n fullname: \"Manu G\",\r\n firstname: \"Manu\",\r\n lastname: \"Ginobili\",\r\n occupation: \"CFO\",\r\n companyName: \"Keenthemes\",\r\n phone: \"456669067892\",\r\n language: \"en\",\r\n timeZone: \"International Date Line West\",\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutMetronicOnPartnerProductsAndOtherServices: true,\r\n tipsOnMetronicBusinessProducts: true,\r\n },\r\n },\r\n address: {\r\n addressLine: \"1467 Griffin Street\",\r\n city: \"Phoenix\",\r\n state: \"Arizona\",\r\n postCode: \"85012\",\r\n },\r\n socialNetworks: {\r\n linkedIn: \"https://linkedin.com/guest\",\r\n facebook: \"https://facebook.com/guest\",\r\n twitter: \"https://twitter.com/guest\",\r\n instagram: \"https://instagram.com/guest\",\r\n },\r\n },\r\n];\r\n","export default [\r\n {\r\n id: 1,\r\n firstName: \"Sonni\",\r\n lastName: \"Gabotti\",\r\n email: \"sgabotti0@wsj.com\",\r\n userName: \"sgabotti0\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"10/14/1950\",\r\n ipAddress: \"251.237.126.210\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"09/07/2016\",\r\n _updatedDate: \"05/31/2013\"\r\n },\r\n {\r\n id: 2,\r\n firstName: \"Abie\",\r\n lastName: \"Cowperthwaite\",\r\n email: \"acowperthwaite1@storify.com\",\r\n userName: \"acowperthwaite1\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"12/31/1998\",\r\n ipAddress: \"239.176.5.218\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"03/18/2014\",\r\n _updatedDate: \"08/17/2016\"\r\n },\r\n {\r\n id: 3,\r\n firstName: \"Melody\",\r\n lastName: \"Stodd\",\r\n email: \"mstodd2@twitpic.com\",\r\n userName: \"mstodd2\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"7/3/1957\",\r\n ipAddress: \"14.80.25.15\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"07/03/2015\",\r\n _updatedDate: \"01/28/2015\"\r\n },\r\n {\r\n id: 4,\r\n firstName: \"Naomi\",\r\n lastName: \"Galbreth\",\r\n email: \"ngalbreth3@springer.com\",\r\n userName: \"ngalbreth3\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"12/30/1976\",\r\n ipAddress: \"239.198.18.122\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"06/22/2013\",\r\n _updatedDate: \"01/31/2011\"\r\n },\r\n {\r\n id: 5,\r\n firstName: \"Ashley\",\r\n lastName: \"Jandl\",\r\n email: \"ajandl4@mapy.cz\",\r\n userName: \"ajandl4\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"11/23/1996\",\r\n ipAddress: \"11.19.64.48\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"01/30/2018\",\r\n _updatedDate: \"05/22/2014\"\r\n },\r\n {\r\n id: 6,\r\n firstName: \"Mildrid\",\r\n lastName: \"Duplan\",\r\n email: \"mduplan5@msn.com\",\r\n userName: \"mduplan5\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"4/21/1954\",\r\n ipAddress: \"104.18.128.93\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"03/27/2011\",\r\n _updatedDate: \"09/02/2015\"\r\n },\r\n {\r\n id: 7,\r\n firstName: \"Dall\",\r\n lastName: \"Stow\",\r\n email: \"dstow6@vistaprint.com\",\r\n userName: \"dstow6\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"4/14/1998\",\r\n ipAddress: \"168.199.143.20\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"09/05/2011\",\r\n _updatedDate: \"06/21/2012\"\r\n },\r\n {\r\n id: 8,\r\n firstName: \"Burton\",\r\n lastName: \"Dering\",\r\n email: \"bdering7@europa.eu\",\r\n userName: \"bdering7\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"8/15/1963\",\r\n ipAddress: \"204.7.174.42\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"09/09/2017\",\r\n _updatedDate: \"06/27/2011\"\r\n },\r\n {\r\n id: 9,\r\n firstName: \"Wolf\",\r\n lastName: \"Blackaller\",\r\n email: \"wblackaller8@biblegateway.com\",\r\n userName: \"wblackaller8\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"5/20/1997\",\r\n ipAddress: \"12.229.194.195\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"07/16/2011\",\r\n _updatedDate: \"05/24/2014\"\r\n },\r\n {\r\n id: 10,\r\n firstName: \"Adham\",\r\n lastName: \"Hurtic\",\r\n email: \"ahurtic9@friendfeed.com\",\r\n userName: \"ahurtic9\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"3/15/1971\",\r\n ipAddress: \"236.147.173.25\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"03/25/2011\",\r\n _updatedDate: \"12/13/2015\"\r\n },\r\n {\r\n id: 11,\r\n firstName: \"Carlina\",\r\n lastName: \"Scudders\",\r\n email: \"cscuddersa@shareasale.com\",\r\n userName: \"cscuddersa\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"2/18/1970\",\r\n ipAddress: \"189.61.76.155\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"11/01/2015\",\r\n _updatedDate: \"02/16/2013\"\r\n },\r\n {\r\n id: 12,\r\n firstName: \"Roderich\",\r\n lastName: \"Landsberg\",\r\n email: \"rlandsbergb@deliciousdays.com\",\r\n userName: \"rlandsbergb\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"12/7/1963\",\r\n ipAddress: \"75.200.18.136\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"12/12/2017\",\r\n _updatedDate: \"02/22/2013\"\r\n },\r\n {\r\n id: 13,\r\n firstName: \"Mychal\",\r\n lastName: \"Tremblett\",\r\n email: \"mtremblettc@printfriendly.com\",\r\n userName: \"mtremblettc\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"7/14/1996\",\r\n ipAddress: \"85.132.155.112\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"08/14/2014\",\r\n _updatedDate: \"08/03/2014\"\r\n },\r\n {\r\n id: 14,\r\n firstName: \"Corine\",\r\n lastName: \"Rajchert\",\r\n email: \"crajchertd@google.com\",\r\n userName: \"crajchertd\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"9/13/1966\",\r\n ipAddress: \"47.164.200.96\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"12/07/2010\",\r\n _updatedDate: \"09/24/2012\"\r\n },\r\n {\r\n id: 15,\r\n firstName: \"Worth\",\r\n lastName: \"McFarlane\",\r\n email: \"wmcfarlanee@cocolog-nifty.com\",\r\n userName: \"wmcfarlanee\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"10/13/1968\",\r\n ipAddress: \"56.209.4.81\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"02/23/2013\",\r\n _updatedDate: \"09/24/2016\"\r\n },\r\n {\r\n id: 16,\r\n firstName: \"Ogden\",\r\n lastName: \"Danielski\",\r\n email: \"odanielskif@goo.ne.jp\",\r\n userName: \"odanielskif\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"10/5/1984\",\r\n ipAddress: \"181.198.149.89\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"09/08/2012\",\r\n _updatedDate: \"10/29/2017\"\r\n },\r\n {\r\n id: 17,\r\n firstName: \"Laurette\",\r\n lastName: \"Tift\",\r\n email: \"ltiftg@about.me\",\r\n userName: \"ltiftg\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"7/29/1964\",\r\n ipAddress: \"218.236.252.255\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"05/03/2016\",\r\n _updatedDate: \"08/02/2011\"\r\n },\r\n {\r\n id: 18,\r\n firstName: \"Eleanora\",\r\n lastName: \"Jackson\",\r\n email: \"ejacksonh@geocities.jp\",\r\n userName: \"ejacksonh\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"1/1/1993\",\r\n ipAddress: \"166.210.135.66\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"09/25/2017\",\r\n _updatedDate: \"01/08/2012\"\r\n },\r\n {\r\n id: 19,\r\n firstName: \"Manon\",\r\n lastName: \"Perott\",\r\n email: \"mperotti@nyu.edu\",\r\n userName: \"mperotti\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"11/6/1994\",\r\n ipAddress: \"44.43.119.22\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"04/26/2013\",\r\n _updatedDate: \"02/24/2012\"\r\n },\r\n {\r\n id: 20,\r\n firstName: \"Karney\",\r\n lastName: \"Damerell\",\r\n email: \"kdamerellj@booking.com\",\r\n userName: \"kdamerellj\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"11/22/1996\",\r\n ipAddress: \"253.195.21.217\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"11/28/2014\",\r\n _updatedDate: \"10/11/2012\"\r\n },\r\n {\r\n id: 21,\r\n firstName: \"Chelsea\",\r\n lastName: \"Bruce\",\r\n email: \"cbrucek@icq.com\",\r\n userName: \"cbrucek\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"12/1/1983\",\r\n ipAddress: \"28.184.81.169\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"07/29/2013\",\r\n _updatedDate: \"12/01/2017\"\r\n },\r\n {\r\n id: 22,\r\n firstName: \"Barny\",\r\n lastName: \"Verny\",\r\n email: \"bvernyl@bing.com\",\r\n userName: \"bvernyl\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"8/13/1957\",\r\n ipAddress: \"7.26.116.49\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"06/14/2011\",\r\n _updatedDate: \"06/28/2011\"\r\n },\r\n {\r\n id: 23,\r\n firstName: \"Elita\",\r\n lastName: \"Matuszewski\",\r\n email: \"ematuszewskim@businesswire.com\",\r\n userName: \"ematuszewskim\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"6/6/1985\",\r\n ipAddress: \"82.223.2.228\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"05/19/2016\",\r\n _updatedDate: \"09/12/2011\"\r\n },\r\n {\r\n id: 24,\r\n firstName: \"Chelsey\",\r\n lastName: \"Scullard\",\r\n email: \"cscullardn@buzzfeed.com\",\r\n userName: \"cscullardn\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"11/20/1960\",\r\n ipAddress: \"68.177.196.151\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"02/09/2013\",\r\n _updatedDate: \"12/11/2011\"\r\n },\r\n {\r\n id: 25,\r\n firstName: \"Jodi\",\r\n lastName: \"Olphert\",\r\n email: \"jolpherto@elpais.com\",\r\n userName: \"jolpherto\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"4/20/2000\",\r\n ipAddress: \"32.219.74.161\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"07/28/2017\",\r\n _updatedDate: \"05/03/2017\"\r\n },\r\n {\r\n id: 26,\r\n firstName: \"Micah\",\r\n lastName: \"Searchfield\",\r\n email: \"msearchfieldp@instagram.com\",\r\n userName: \"msearchfieldp\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"8/15/1993\",\r\n ipAddress: \"99.205.47.226\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"07/05/2011\",\r\n _updatedDate: \"02/19/2013\"\r\n },\r\n {\r\n id: 27,\r\n firstName: \"Freeland\",\r\n lastName: \"O'Dougherty\",\r\n email: \"fodoughertyq@cbsnews.com\",\r\n userName: \"fodoughertyq\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"5/19/1956\",\r\n ipAddress: \"91.116.249.149\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"06/09/2012\",\r\n _updatedDate: \"03/15/2014\"\r\n },\r\n {\r\n id: 28,\r\n firstName: \"Marna\",\r\n lastName: \"Dacre\",\r\n email: \"mdacrer@tmall.com\",\r\n userName: \"mdacrer\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"10/26/1959\",\r\n ipAddress: \"127.23.103.102\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"12/30/2011\",\r\n _updatedDate: \"03/24/2016\"\r\n },\r\n {\r\n id: 29,\r\n firstName: \"Carlita\",\r\n lastName: \"Calwell\",\r\n email: \"ccalwells@1688.com\",\r\n userName: \"ccalwells\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"7/28/1961\",\r\n ipAddress: \"3.205.16.120\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"02/28/2016\",\r\n _updatedDate: \"02/25/2013\"\r\n },\r\n {\r\n id: 30,\r\n firstName: \"Deonne\",\r\n lastName: \"Castellan\",\r\n email: \"dcastellant@gizmodo.com\",\r\n userName: \"dcastellant\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"10/21/1955\",\r\n ipAddress: \"213.3.222.52\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"03/12/2011\",\r\n _updatedDate: \"03/26/2017\"\r\n },\r\n {\r\n id: 31,\r\n firstName: \"Cesare\",\r\n lastName: \"Chestnutt\",\r\n email: \"cchestnuttu@cornell.edu\",\r\n userName: \"cchestnuttu\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"4/14/1979\",\r\n ipAddress: \"218.107.75.113\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"03/06/2012\",\r\n _updatedDate: \"09/08/2012\"\r\n },\r\n {\r\n id: 32,\r\n firstName: \"Gauthier\",\r\n lastName: \"Luparto\",\r\n email: \"glupartov@wordpress.org\",\r\n userName: \"glupartov\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"11/28/1952\",\r\n ipAddress: \"148.234.79.85\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"04/28/2013\",\r\n _updatedDate: \"02/26/2016\"\r\n },\r\n {\r\n id: 33,\r\n firstName: \"Kimmi\",\r\n lastName: \"Corde\",\r\n email: \"kcordew@kickstarter.com\",\r\n userName: \"kcordew\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"8/7/1978\",\r\n ipAddress: \"94.85.235.54\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"10/21/2012\",\r\n _updatedDate: \"10/31/2017\"\r\n },\r\n {\r\n id: 34,\r\n firstName: \"Riordan\",\r\n lastName: \"Rosenbush\",\r\n email: \"rrosenbushx@wix.com\",\r\n userName: \"rrosenbushx\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"11/28/1957\",\r\n ipAddress: \"236.15.158.122\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"08/28/2011\",\r\n _updatedDate: \"08/14/2015\"\r\n },\r\n {\r\n id: 35,\r\n firstName: \"Daune\",\r\n lastName: \"Sellek\",\r\n email: \"dselleky@amazon.co.jp\",\r\n userName: \"dselleky\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"10/12/1995\",\r\n ipAddress: \"163.229.197.138\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"03/28/2018\",\r\n _updatedDate: \"03/01/2017\"\r\n },\r\n {\r\n id: 36,\r\n firstName: \"Myriam\",\r\n lastName: \"Marshland\",\r\n email: \"mmarshlandz@army.mil\",\r\n userName: \"mmarshlandz\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"8/1/1961\",\r\n ipAddress: \"153.40.246.134\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"05/15/2017\",\r\n _updatedDate: \"08/12/2016\"\r\n },\r\n {\r\n id: 37,\r\n firstName: \"Laryssa\",\r\n lastName: \"Hynard\",\r\n email: \"lhynard10@squidoo.com\",\r\n userName: \"lhynard10\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"1/6/1998\",\r\n ipAddress: \"186.155.125.145\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"01/16/2012\",\r\n _updatedDate: \"10/09/2012\"\r\n },\r\n {\r\n id: 38,\r\n firstName: \"Evelin\",\r\n lastName: \"Poate\",\r\n email: \"epoate11@cnet.com\",\r\n userName: \"epoate11\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"9/11/1957\",\r\n ipAddress: \"76.53.54.233\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"01/07/2012\",\r\n _updatedDate: \"01/18/2018\"\r\n },\r\n {\r\n id: 39,\r\n firstName: \"Cesar\",\r\n lastName: \"D'Orsay\",\r\n email: \"cdorsay12@ezinearticles.com\",\r\n userName: \"cdorsay12\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"10/20/1992\",\r\n ipAddress: \"101.137.215.28\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"10/20/2010\",\r\n _updatedDate: \"07/14/2012\"\r\n },\r\n {\r\n id: 40,\r\n firstName: \"Jareb\",\r\n lastName: \"Luberto\",\r\n email: \"jluberto13@apple.com\",\r\n userName: \"jluberto13\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"12/22/1951\",\r\n ipAddress: \"69.111.152.125\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"01/11/2012\",\r\n _updatedDate: \"01/20/2018\"\r\n },\r\n {\r\n id: 41,\r\n firstName: \"Kerry\",\r\n lastName: \"Glawsop\",\r\n email: \"kglawsop14@wp.com\",\r\n userName: \"kglawsop14\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"11/28/1953\",\r\n ipAddress: \"105.245.81.58\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"02/23/2015\",\r\n _updatedDate: \"03/14/2012\"\r\n },\r\n {\r\n id: 42,\r\n firstName: \"Brose\",\r\n lastName: \"Conti\",\r\n email: \"bconti15@smh.com.au\",\r\n userName: \"bconti15\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"8/13/1967\",\r\n ipAddress: \"109.92.204.48\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"08/04/2012\",\r\n _updatedDate: \"11/01/2011\"\r\n },\r\n {\r\n id: 43,\r\n firstName: \"Shannah\",\r\n lastName: \"Ceeley\",\r\n email: \"sceeley16@sogou.com\",\r\n userName: \"sceeley16\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"6/10/1962\",\r\n ipAddress: \"57.218.60.216\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"05/28/2014\",\r\n _updatedDate: \"03/16/2018\"\r\n },\r\n {\r\n id: 44,\r\n firstName: \"Rudolf\",\r\n lastName: \"Stallworthy\",\r\n email: \"rstallworthy17@theatlantic.com\",\r\n userName: \"rstallworthy17\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"10/15/1966\",\r\n ipAddress: \"74.223.255.220\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"06/01/2015\",\r\n _updatedDate: \"10/25/2013\"\r\n },\r\n {\r\n id: 45,\r\n firstName: \"Egor\",\r\n lastName: \"Scotson\",\r\n email: \"escotson18@weather.com\",\r\n userName: \"escotson18\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"1/17/1956\",\r\n ipAddress: \"70.189.158.38\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"03/25/2011\",\r\n _updatedDate: \"12/05/2010\"\r\n },\r\n {\r\n id: 46,\r\n firstName: \"Selie\",\r\n lastName: \"Dugue\",\r\n email: \"sdugue19@meetup.com\",\r\n userName: \"sdugue19\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"11/9/1981\",\r\n ipAddress: \"54.129.221.70\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"06/09/2013\",\r\n _updatedDate: \"08/10/2016\"\r\n },\r\n {\r\n id: 47,\r\n firstName: \"Gene\",\r\n lastName: \"Kirkbright\",\r\n email: \"gkirkbright1a@wp.com\",\r\n userName: \"gkirkbright1a\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"5/9/1972\",\r\n ipAddress: \"217.224.216.105\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"02/02/2016\",\r\n _updatedDate: \"03/30/2014\"\r\n },\r\n {\r\n id: 48,\r\n firstName: \"Reagan\",\r\n lastName: \"Colloby\",\r\n email: \"rcolloby1b@usgs.gov\",\r\n userName: \"rcolloby1b\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"9/21/1997\",\r\n ipAddress: \"32.53.20.172\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"04/08/2016\",\r\n _updatedDate: \"01/25/2014\"\r\n },\r\n {\r\n id: 49,\r\n firstName: \"Saidee\",\r\n lastName: \"Kivelle\",\r\n email: \"skivelle1c@newsvine.com\",\r\n userName: \"skivelle1c\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"10/23/1994\",\r\n ipAddress: \"79.152.227.238\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"12/26/2015\",\r\n _updatedDate: \"09/17/2011\"\r\n },\r\n {\r\n id: 50,\r\n firstName: \"Mychal\",\r\n lastName: \"Karlowicz\",\r\n email: \"mkarlowicz1d@opera.com\",\r\n userName: \"mkarlowicz1d\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"10/20/1971\",\r\n ipAddress: \"70.175.193.245\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"10/10/2011\",\r\n _updatedDate: \"03/02/2012\"\r\n },\r\n {\r\n id: 51,\r\n firstName: \"Nessie\",\r\n lastName: \"Casassa\",\r\n email: \"ncasassa1e@pinterest.com\",\r\n userName: \"ncasassa1e\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"3/9/1983\",\r\n ipAddress: \"17.128.173.230\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"01/09/2018\",\r\n _updatedDate: \"08/05/2015\"\r\n },\r\n {\r\n id: 52,\r\n firstName: \"Myrvyn\",\r\n lastName: \"Coots\",\r\n email: \"mcoots1f@sourceforge.net\",\r\n userName: \"mcoots1f\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"4/5/1972\",\r\n ipAddress: \"253.21.191.36\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"01/13/2015\",\r\n _updatedDate: \"04/30/2011\"\r\n },\r\n {\r\n id: 53,\r\n firstName: \"Liuka\",\r\n lastName: \"Monard\",\r\n email: \"lmonard1g@wikipedia.org\",\r\n userName: \"lmonard1g\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"6/6/1999\",\r\n ipAddress: \"33.46.177.2\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"11/17/2012\",\r\n _updatedDate: \"02/18/2011\"\r\n },\r\n {\r\n id: 54,\r\n firstName: \"Alis\",\r\n lastName: \"Nozzolii\",\r\n email: \"anozzolii1h@google.com.br\",\r\n userName: \"anozzolii1h\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"7/25/1953\",\r\n ipAddress: \"242.76.135.219\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"10/16/2012\",\r\n _updatedDate: \"09/17/2012\"\r\n },\r\n {\r\n id: 55,\r\n firstName: \"Gage\",\r\n lastName: \"Slamaker\",\r\n email: \"gslamaker1i@people.com.cn\",\r\n userName: \"gslamaker1i\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"3/19/1959\",\r\n ipAddress: \"179.85.197.219\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"04/20/2015\",\r\n _updatedDate: \"07/02/2014\"\r\n },\r\n {\r\n id: 56,\r\n firstName: \"Jamal\",\r\n lastName: \"Glasard\",\r\n email: \"jglasard1j@google.ru\",\r\n userName: \"jglasard1j\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"9/21/1968\",\r\n ipAddress: \"163.99.109.106\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"08/24/2017\",\r\n _updatedDate: \"12/09/2012\"\r\n },\r\n {\r\n id: 57,\r\n firstName: \"Antone\",\r\n lastName: \"Christophersen\",\r\n email: \"achristophersen1k@slashdot.org\",\r\n userName: \"achristophersen1k\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"8/5/1953\",\r\n ipAddress: \"42.207.110.255\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"12/30/2012\",\r\n _updatedDate: \"04/07/2013\"\r\n },\r\n {\r\n id: 58,\r\n firstName: \"Glenn\",\r\n lastName: \"Gentle\",\r\n email: \"ggentle1l@imdb.com\",\r\n userName: \"ggentle1l\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"8/4/1959\",\r\n ipAddress: \"82.135.105.157\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"01/16/2017\",\r\n _updatedDate: \"10/04/2017\"\r\n },\r\n {\r\n id: 59,\r\n firstName: \"Jerrilyn\",\r\n lastName: \"Prujean\",\r\n email: \"jprujean1m@csmonitor.com\",\r\n userName: \"jprujean1m\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"12/22/1961\",\r\n ipAddress: \"45.111.98.145\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"08/22/2014\",\r\n _updatedDate: \"09/01/2014\"\r\n },\r\n {\r\n id: 60,\r\n firstName: \"Becki\",\r\n lastName: \"Mucklestone\",\r\n email: \"bmucklestone1n@wiley.com\",\r\n userName: \"bmucklestone1n\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"10/15/1970\",\r\n ipAddress: \"208.63.250.181\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"03/08/2018\",\r\n _updatedDate: \"08/09/2016\"\r\n },\r\n {\r\n id: 61,\r\n firstName: \"Kingsly\",\r\n lastName: \"Sawday\",\r\n email: \"ksawday1o@patch.com\",\r\n userName: \"ksawday1o\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"1/20/1978\",\r\n ipAddress: \"196.38.7.53\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"07/15/2016\",\r\n _updatedDate: \"10/28/2012\"\r\n },\r\n {\r\n id: 62,\r\n firstName: \"Austen\",\r\n lastName: \"Possel\",\r\n email: \"apossel1p@blogtalkradio.com\",\r\n userName: \"apossel1p\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"5/8/1960\",\r\n ipAddress: \"162.0.150.104\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"12/20/2017\",\r\n _updatedDate: \"04/20/2018\"\r\n },\r\n {\r\n id: 63,\r\n firstName: \"Rudie\",\r\n lastName: \"Southouse\",\r\n email: \"rsouthouse1q@mapy.cz\",\r\n userName: \"rsouthouse1q\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"12/2/1950\",\r\n ipAddress: \"67.123.229.124\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"09/24/2012\",\r\n _updatedDate: \"07/02/2014\"\r\n },\r\n {\r\n id: 64,\r\n firstName: \"Julienne\",\r\n lastName: \"Le Noury\",\r\n email: \"jlenoury1r@cnet.com\",\r\n userName: \"jlenoury1r\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"10/30/1976\",\r\n ipAddress: \"208.192.238.241\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"06/29/2012\",\r\n _updatedDate: \"11/26/2016\"\r\n },\r\n {\r\n id: 65,\r\n firstName: \"Bernard\",\r\n lastName: \"Levicount\",\r\n email: \"blevicount1s@angelfire.com\",\r\n userName: \"blevicount1s\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"12/6/1982\",\r\n ipAddress: \"123.229.51.62\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"04/11/2013\",\r\n _updatedDate: \"05/14/2013\"\r\n },\r\n {\r\n id: 66,\r\n firstName: \"Katine\",\r\n lastName: \"Glazyer\",\r\n email: \"kglazyer1t@unblog.fr\",\r\n userName: \"kglazyer1t\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"8/20/1954\",\r\n ipAddress: \"165.87.178.12\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"03/20/2015\",\r\n _updatedDate: \"06/18/2015\"\r\n },\r\n {\r\n id: 67,\r\n firstName: \"Rem\",\r\n lastName: \"Crichten\",\r\n email: \"rcrichten1u@patch.com\",\r\n userName: \"rcrichten1u\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"6/19/1950\",\r\n ipAddress: \"184.177.108.6\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"11/12/2014\",\r\n _updatedDate: \"04/12/2011\"\r\n },\r\n {\r\n id: 68,\r\n firstName: \"Colman\",\r\n lastName: \"Simnor\",\r\n email: \"csimnor1v@reddit.com\",\r\n userName: \"csimnor1v\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"1/3/2000\",\r\n ipAddress: \"19.3.156.170\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"05/06/2013\",\r\n _updatedDate: \"05/23/2014\"\r\n },\r\n {\r\n id: 69,\r\n firstName: \"Arin\",\r\n lastName: \"Hanscombe\",\r\n email: \"ahanscombe1w@blogspot.com\",\r\n userName: \"ahanscombe1w\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"9/21/1955\",\r\n ipAddress: \"154.59.243.61\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"06/23/2013\",\r\n _updatedDate: \"11/10/2011\"\r\n },\r\n {\r\n id: 70,\r\n firstName: \"Emogene\",\r\n lastName: \"Gruszka\",\r\n email: \"egruszka1x@cmu.edu\",\r\n userName: \"egruszka1x\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"7/3/1971\",\r\n ipAddress: \"105.138.138.125\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"07/26/2016\",\r\n _updatedDate: \"10/28/2013\"\r\n },\r\n {\r\n id: 71,\r\n firstName: \"Rosina\",\r\n lastName: \"Kauffman\",\r\n email: \"rkauffman1y@google.com.hk\",\r\n userName: \"rkauffman1y\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"11/21/1953\",\r\n ipAddress: \"131.87.248.164\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"10/16/2016\",\r\n _updatedDate: \"07/24/2015\"\r\n },\r\n {\r\n id: 72,\r\n firstName: \"Fran\",\r\n lastName: \"MacGill\",\r\n email: \"fmacgill1z@pinterest.com\",\r\n userName: \"fmacgill1z\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"3/16/1991\",\r\n ipAddress: \"155.41.152.146\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"11/23/2012\",\r\n _updatedDate: \"09/03/2016\"\r\n },\r\n {\r\n id: 73,\r\n firstName: \"Marinna\",\r\n lastName: \"Allington\",\r\n email: \"mallington20@icio.us\",\r\n userName: \"mallington20\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"3/15/1964\",\r\n ipAddress: \"120.145.107.78\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"09/07/2011\",\r\n _updatedDate: \"12/26/2017\"\r\n },\r\n {\r\n id: 74,\r\n firstName: \"Irv\",\r\n lastName: \"Rishbrook\",\r\n email: \"irishbrook21@tripod.com\",\r\n userName: \"irishbrook21\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"11/25/1966\",\r\n ipAddress: \"127.115.28.247\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"08/25/2014\",\r\n _updatedDate: \"06/16/2013\"\r\n },\r\n {\r\n id: 75,\r\n firstName: \"Riordan\",\r\n lastName: \"Durran\",\r\n email: \"rdurran22@hubpages.com\",\r\n userName: \"rdurran22\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"3/3/1952\",\r\n ipAddress: \"246.102.6.88\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"04/02/2017\",\r\n _updatedDate: \"01/30/2011\"\r\n },\r\n {\r\n id: 76,\r\n firstName: \"Phillie\",\r\n lastName: \"Elward\",\r\n email: \"pelward23@parallels.com\",\r\n userName: \"pelward23\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"9/15/1965\",\r\n ipAddress: \"75.220.58.105\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"06/23/2014\",\r\n _updatedDate: \"08/20/2016\"\r\n },\r\n {\r\n id: 77,\r\n firstName: \"Hadlee\",\r\n lastName: \"Haddow\",\r\n email: \"hhaddow24@nationalgeographic.com\",\r\n userName: \"hhaddow24\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"10/2/1973\",\r\n ipAddress: \"155.40.18.171\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"03/05/2016\",\r\n _updatedDate: \"07/03/2017\"\r\n },\r\n {\r\n id: 78,\r\n firstName: \"Luciano\",\r\n lastName: \"Pittford\",\r\n email: \"lpittford25@europa.eu\",\r\n userName: \"lpittford25\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"6/14/1963\",\r\n ipAddress: \"131.175.149.47\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"05/01/2014\",\r\n _updatedDate: \"08/02/2011\"\r\n },\r\n {\r\n id: 79,\r\n firstName: \"Zelma\",\r\n lastName: \"Cumberpatch\",\r\n email: \"zcumberpatch26@multiply.com\",\r\n userName: \"zcumberpatch26\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"7/16/1956\",\r\n ipAddress: \"145.155.37.45\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"11/07/2015\",\r\n _updatedDate: \"12/03/2014\"\r\n },\r\n {\r\n id: 80,\r\n firstName: \"Thornton\",\r\n lastName: \"Smuth\",\r\n email: \"tsmuth27@go.com\",\r\n userName: \"tsmuth27\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"5/9/1989\",\r\n ipAddress: \"146.151.187.52\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"12/25/2011\",\r\n _updatedDate: \"12/31/2010\"\r\n },\r\n {\r\n id: 81,\r\n firstName: \"Bunnie\",\r\n lastName: \"Ealden\",\r\n email: \"bealden28@gravatar.com\",\r\n userName: \"bealden28\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"10/2/1999\",\r\n ipAddress: \"184.116.180.222\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"04/09/2015\",\r\n _updatedDate: \"12/07/2013\"\r\n },\r\n {\r\n id: 82,\r\n firstName: \"Pearl\",\r\n lastName: \"Robeson\",\r\n email: \"probeson29@moonfruit.com\",\r\n userName: \"probeson29\",\r\n gender: \"Female\",\r\n status: 0,\r\n dateOfBbirth: \"8/20/1980\",\r\n ipAddress: \"235.213.39.68\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"07/13/2016\",\r\n _updatedDate: \"03/07/2012\"\r\n },\r\n {\r\n id: 83,\r\n firstName: \"Charlie\",\r\n lastName: \"Marvelley\",\r\n email: \"cmarvelley2a@archive.org\",\r\n userName: \"cmarvelley2a\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"11/22/1969\",\r\n ipAddress: \"158.224.240.173\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"03/25/2012\",\r\n _updatedDate: \"11/20/2012\"\r\n },\r\n {\r\n id: 84,\r\n firstName: \"Vere\",\r\n lastName: \"McCartan\",\r\n email: \"vmccartan2b@about.me\",\r\n userName: \"vmccartan2b\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"3/24/1956\",\r\n ipAddress: \"235.57.57.54\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"06/21/2016\",\r\n _updatedDate: \"05/17/2015\"\r\n },\r\n {\r\n id: 85,\r\n firstName: \"Deni\",\r\n lastName: \"Frostdicke\",\r\n email: \"dfrostdicke2c@jigsy.com\",\r\n userName: \"dfrostdicke2c\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"7/31/1964\",\r\n ipAddress: \"108.183.237.176\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"03/13/2013\",\r\n _updatedDate: \"11/12/2017\"\r\n },\r\n {\r\n id: 86,\r\n firstName: \"Poppy\",\r\n lastName: \"Pech\",\r\n email: \"ppech2d@wsj.com\",\r\n userName: \"ppech2d\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"2/24/1976\",\r\n ipAddress: \"221.35.18.213\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"09/10/2015\",\r\n _updatedDate: \"02/13/2013\"\r\n },\r\n {\r\n id: 87,\r\n firstName: \"Dasya\",\r\n lastName: \"O'Nion\",\r\n email: \"donion2e@addthis.com\",\r\n userName: \"donion2e\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"7/5/1993\",\r\n ipAddress: \"28.25.44.40\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"04/12/2013\",\r\n _updatedDate: \"08/24/2012\"\r\n },\r\n {\r\n id: 88,\r\n firstName: \"Marco\",\r\n lastName: \"Izhakov\",\r\n email: \"mizhakov2f@si.edu\",\r\n userName: \"mizhakov2f\",\r\n gender: \"Male\",\r\n status: 1,\r\n dateOfBbirth: \"2/28/1999\",\r\n ipAddress: \"155.123.153.36\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"06/04/2012\",\r\n _updatedDate: \"03/06/2017\"\r\n },\r\n {\r\n id: 89,\r\n firstName: \"Jane\",\r\n lastName: \"Meneux\",\r\n email: \"jmeneux2g@bluehost.com\",\r\n userName: \"jmeneux2g\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"3/15/1962\",\r\n ipAddress: \"216.200.223.149\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"11/24/2015\",\r\n _updatedDate: \"02/08/2012\"\r\n },\r\n {\r\n id: 90,\r\n firstName: \"Audry\",\r\n lastName: \"Glasheen\",\r\n email: \"aglasheen2h@booking.com\",\r\n userName: \"aglasheen2h\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"10/24/1962\",\r\n ipAddress: \"186.134.95.243\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"09/13/2016\",\r\n _updatedDate: \"04/28/2014\"\r\n },\r\n {\r\n id: 91,\r\n firstName: \"Florida\",\r\n lastName: \"Lawleff\",\r\n email: \"flawleff2i@livejournal.com\",\r\n userName: \"flawleff2i\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"2/3/1960\",\r\n ipAddress: \"88.32.51.173\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"03/22/2018\",\r\n _updatedDate: \"11/28/2010\"\r\n },\r\n {\r\n id: 92,\r\n firstName: \"Christoforo\",\r\n lastName: \"Pinchon\",\r\n email: \"cpinchon2j@bloglovin.com\",\r\n userName: \"cpinchon2j\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"2/26/1995\",\r\n ipAddress: \"244.162.142.84\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"11/14/2017\",\r\n _updatedDate: \"11/19/2016\"\r\n },\r\n {\r\n id: 93,\r\n firstName: \"Bertie\",\r\n lastName: \"Antognazzi\",\r\n email: \"bantognazzi2k@ow.ly\",\r\n userName: \"bantognazzi2k\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"6/7/1955\",\r\n ipAddress: \"108.174.189.179\",\r\n type: 0,\r\n _userId: 2,\r\n _createdDate: \"08/03/2016\",\r\n _updatedDate: \"01/27/2018\"\r\n },\r\n {\r\n id: 94,\r\n firstName: \"Clevey\",\r\n lastName: \"Grima\",\r\n email: \"cgrima2l@cmu.edu\",\r\n userName: \"cgrima2l\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"7/7/1981\",\r\n ipAddress: \"255.186.178.211\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"03/23/2014\",\r\n _updatedDate: \"02/10/2011\"\r\n },\r\n {\r\n id: 95,\r\n firstName: \"Herbie\",\r\n lastName: \"Symper\",\r\n email: \"hsymper2m@ca.gov\",\r\n userName: \"hsymper2m\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"7/16/1993\",\r\n ipAddress: \"54.240.157.6\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"07/27/2011\",\r\n _updatedDate: \"05/28/2013\"\r\n },\r\n {\r\n id: 96,\r\n firstName: \"Kizzie\",\r\n lastName: \"Clapson\",\r\n email: \"kclapson2n@linkedin.com\",\r\n userName: \"kclapson2n\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"1/26/1977\",\r\n ipAddress: \"171.243.142.104\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"09/03/2011\",\r\n _updatedDate: \"10/14/2014\"\r\n },\r\n {\r\n id: 97,\r\n firstName: \"Sigvard\",\r\n lastName: \"Edwin\",\r\n email: \"sedwin2o@mlb.com\",\r\n userName: \"sedwin2o\",\r\n gender: \"Male\",\r\n status: 0,\r\n dateOfBbirth: \"4/24/1966\",\r\n ipAddress: \"78.224.218.52\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"05/20/2017\",\r\n _updatedDate: \"09/17/2013\"\r\n },\r\n {\r\n id: 98,\r\n firstName: \"Boniface\",\r\n lastName: \"Rodd\",\r\n email: \"brodd2p@123-reg.co.uk\",\r\n userName: \"brodd2p\",\r\n gender: \"Male\",\r\n status: 2,\r\n dateOfBbirth: \"10/24/1978\",\r\n ipAddress: \"250.44.55.222\",\r\n type: 1,\r\n _userId: 2,\r\n _createdDate: \"04/21/2012\",\r\n _updatedDate: \"07/30/2012\"\r\n },\r\n {\r\n id: 99,\r\n firstName: \"Dorena\",\r\n lastName: \"Oliva\",\r\n email: \"doliva2q@europa.eu\",\r\n userName: \"doliva2q\",\r\n gender: \"Female\",\r\n status: 1,\r\n dateOfBbirth: \"6/16/1987\",\r\n ipAddress: \"94.196.238.12\",\r\n type: 0,\r\n _userId: 1,\r\n _createdDate: \"10/23/2016\",\r\n _updatedDate: \"06/28/2014\"\r\n },\r\n {\r\n id: 100,\r\n firstName: \"Sibylla\",\r\n lastName: \"O'Cahey\",\r\n email: \"socahey2r@paginegialle.it\",\r\n userName: \"socahey2r\",\r\n gender: \"Female\",\r\n status: 2,\r\n dateOfBbirth: \"10/13/1958\",\r\n ipAddress: \"139.240.194.212\",\r\n type: 1,\r\n _userId: 1,\r\n _createdDate: \"11/25/2014\",\r\n _updatedDate: \"08/18/2015\"\r\n }\r\n];\r\n","export default class MockUtils {\r\n /**\r\n * Filtration with sorting\r\n * First do Sort then filter\r\n *\r\n * @param _entities: any[]\r\n * @param _queryParams: QueryParamsModel\r\n * @param _filtrationFields: string[]\r\n */\r\n baseFilter(_entities, _queryParams, _filtrationFields = []) {\r\n // Filtration\r\n let entitiesResult = this.searchInArray(\r\n _entities,\r\n _queryParams.filter,\r\n _filtrationFields\r\n );\r\n\r\n // Sorting\r\n // start\r\n if (_queryParams.sortField) {\r\n entitiesResult = this.sortArray(\r\n entitiesResult,\r\n _queryParams.sortField,\r\n _queryParams.sortOrder\r\n );\r\n }\r\n // end\r\n\r\n // Paginator\r\n // start\r\n const pageNumber = _queryParams.pageNumber - 1;\r\n const totalCount = entitiesResult.length;\r\n const initialPos = pageNumber * _queryParams.pageSize;\r\n entitiesResult = entitiesResult.slice(\r\n initialPos,\r\n initialPos + _queryParams.pageSize\r\n );\r\n // end\r\n\r\n const queryResults = {\r\n entities: entitiesResult,\r\n totalCount: totalCount,\r\n errorMessage: \"\"\r\n };\r\n return queryResults;\r\n }\r\n\r\n /**\r\n * Sort array by field name and order-type\r\n * @param _incomingArray: any[]\r\n * @param _sortField: string\r\n * @param _sortOrder: string\r\n */\r\n sortArray(_incomingArray, _sortField = \"\", _sortOrder = \"asc\") {\r\n if (!_sortField) {\r\n return _incomingArray;\r\n }\r\n\r\n let result = [];\r\n result = _incomingArray.sort((a, b) => {\r\n if (a[_sortField] < b[_sortField]) {\r\n return _sortOrder === \"asc\" ? -1 : 1;\r\n }\r\n\r\n if (a[_sortField] > b[_sortField]) {\r\n return _sortOrder === \"asc\" ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n });\r\n return result;\r\n }\r\n\r\n /**\r\n * Filter array by some fields\r\n *\r\n * @param _incomingArray: any[]\r\n * @param _queryObj: any\r\n * @param _filtrationFields: string[]\r\n */\r\n searchInArray(_incomingArray, _queryObj, _filtrationFields = []) {\r\n const result = [];\r\n let resultBuffer = [];\r\n const indexes = [];\r\n let firstIndexes = [];\r\n let doSearch = false;\r\n\r\n _filtrationFields.forEach(item => {\r\n if (item in _queryObj) {\r\n _incomingArray.forEach((element, index) => {\r\n if (element[item] === _queryObj[item]) {\r\n firstIndexes.push(index);\r\n }\r\n });\r\n firstIndexes.forEach(element => {\r\n resultBuffer.push(_incomingArray[element]);\r\n });\r\n _incomingArray = resultBuffer.slice(0);\r\n resultBuffer = [].slice(0);\r\n firstIndexes = [].slice(0);\r\n }\r\n });\r\n\r\n Object.keys(_queryObj).forEach(key => {\r\n const searchText = _queryObj[key]\r\n .toString()\r\n .trim()\r\n .toLowerCase();\r\n if (key && !_filtrationFields.some(e => e === key) && searchText) {\r\n doSearch = true;\r\n try {\r\n _incomingArray.forEach((element, index) => {\r\n if (element[key] || (element[key] === 0 && searchText === \"0\")) {\r\n const _val = element[key]\r\n .toString()\r\n .trim()\r\n .toLowerCase();\r\n if (\r\n _val.indexOf(searchText) > -1 &&\r\n indexes.indexOf(index) === -1\r\n ) {\r\n indexes.push(index);\r\n }\r\n }\r\n });\r\n } catch (ex) {\r\n console.log(ex, key, searchText);\r\n }\r\n }\r\n });\r\n\r\n if (!doSearch) {\r\n return _incomingArray;\r\n }\r\n\r\n indexes.forEach(re => {\r\n result.push(_incomingArray[re]);\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import customerTableMock from \"./customerTableMock\";\r\nimport MockUtils from \"./mock.utils\";\r\n\r\nexport default function mockCustomer(mock) {\r\n mock.onPost(\"api/customers\").reply(({ data }) => {\r\n const { customer } = JSON.parse(data);\r\n const {\r\n firstName = \"\",\r\n lastName = \"\",\r\n email = \"\",\r\n userName = \"\",\r\n gender = \"Female\",\r\n status = 0,\r\n dateOfBbirth = \"01/01/2019\",\r\n ipAddress = \"127.0.0.1\",\r\n type = 1\r\n } = customer;\r\n\r\n const id = generateUserId();\r\n const newCustomer = {\r\n id,\r\n firstName,\r\n lastName,\r\n email,\r\n userName,\r\n gender,\r\n status,\r\n dateOfBbirth,\r\n ipAddress,\r\n type\r\n };\r\n customerTableMock.push(newCustomer);\r\n return [200, { customer: newCustomer }];\r\n });\r\n\r\n mock.onPost(\"api/customers/find\").reply(config => {\r\n const mockUtils = new MockUtils();\r\n const { queryParams } = JSON.parse(config.data);\r\n const filterdCustomers = mockUtils.baseFilter(\r\n customerTableMock,\r\n queryParams\r\n );\r\n return [200, filterdCustomers];\r\n });\r\n\r\n mock.onPost(\"api/customers/deleteCustomers\").reply(config => {\r\n const { ids } = JSON.parse(config.data);\r\n ids.forEach(id => {\r\n const index = customerTableMock.findIndex(el => el.id === id);\r\n if (index > -1) {\r\n customerTableMock.splice(index, 1);\r\n }\r\n });\r\n return [200];\r\n });\r\n\r\n mock.onPost(\"api/customers/updateStatusForCustomers\").reply(config => {\r\n const { ids, status } = JSON.parse(config.data);\r\n customerTableMock.forEach(el => {\r\n if (ids.findIndex(id => id === el.id) > -1) {\r\n el.status = status;\r\n }\r\n });\r\n return [200];\r\n });\r\n\r\n mock.onGet(/api\\/customers\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/customers\\/(\\d+)/)[1];\r\n const customer = customerTableMock.find(el => el.id === +id);\r\n if (!customer) {\r\n return [400];\r\n }\r\n\r\n return [200, customer];\r\n });\r\n\r\n mock.onPut(/api\\/customers\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/customers\\/(\\d+)/)[1];\r\n const { customer } = JSON.parse(config.data);\r\n const index = customerTableMock.findIndex(el => el.id === +id);\r\n if (!index) {\r\n return [400];\r\n }\r\n\r\n customerTableMock[index] = { ...customer };\r\n return [200];\r\n });\r\n\r\n mock.onDelete(/api\\/customers\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/customers\\/(\\d+)/)[1];\r\n const index = customerTableMock.findIndex(el => el.id === +id);\r\n customerTableMock.splice(index, 1);\r\n if (!index === -1) {\r\n return [400];\r\n }\r\n\r\n return [200];\r\n });\r\n}\r\n\r\nfunction generateUserId() {\r\n const ids = customerTableMock.map(el => el.id);\r\n const maxId = Math.max(...ids);\r\n return maxId + 1;\r\n}\r\n","export default [\r\n {\r\n id: 1,\r\n model: \"Elise\",\r\n manufacture: \"Lotus\",\r\n modelYear: 2004,\r\n mileage: 116879,\r\n // eslint-disable-next-line\r\n description: `The Lotus Elise first appeared in 1996 and revolutionised small sports car design with its lightweight extruded aluminium chassis and composite body. There have been many variations, but the basic principle remain the same.`,\r\n color: \"Red\",\r\n price: 18347,\r\n condition: 1,\r\n createdDate: \"09/30/2017\",\r\n status: 0,\r\n VINCode: \"1FTWX3D52AE575540\",\r\n _userId: 1,\r\n _createdDate: \"03/31/2015\",\r\n _updatedDate: \"05/08/2015\"\r\n },\r\n {\r\n id: 2,\r\n model: \"Sunbird\",\r\n manufacture: \"Pontiac\",\r\n modelYear: 1984,\r\n mileage: 99515,\r\n // eslint-disable-next-line\r\n description: `The Pontiac Sunbird is an automobile that was produced by Pontiac, initially as a subcompact for the 1976 to 1980 model years,and later as a compact for the 1982 to 1994 model years. The Sunbird badge ran for 18 years (with a hiatus during the 1981 and 1982 model years, as the 1982 model was called J2000) and was then replaced in 1995 by the Pontiac Sunfire. Through the years the Sunbird was available in notchback coupé, sedan, hatchback, station wagon, and convertible body styles.`,\r\n color: \"Khaki\",\r\n price: 165956,\r\n condition: 0,\r\n createdDate: \"03/22/2018\",\r\n status: 1,\r\n VINCode: \"JM1NC2EF8A0293556\",\r\n _userId: 1,\r\n _createdDate: \"11/11/2016\",\r\n _updatedDate: \"09/01/2016\"\r\n },\r\n {\r\n id: 3,\r\n model: \"Amigo\",\r\n manufacture: \"Isuzu\",\r\n modelYear: 1993,\r\n mileage: 138027,\r\n // eslint-disable-next-line\r\n description: `The Isuzu MU is a mid-size SUV that was produced by the Japan-based manufacturer Isuzu. The three-door MU was introduced in 1989, followed in 1990 by the five-door version called Isuzu MU Wizard, both of which stopped production in 1998 to be replaced by a second generation. This time, the five-door version dropped the \"MU\" prefix, to become the Isuzu Wizard. The acronym \"MU\" is short for \"Mysterious Utility\". Isuzu manufactured several variations to the MU and its derivates for sale in other countries.`,\r\n color: \"Aquamarine\",\r\n price: 45684,\r\n condition: 0,\r\n createdDate: \"03/06/2018\",\r\n status: 0,\r\n VINCode: \"1G6DG8E56C0973889\",\r\n _userId: 1,\r\n _createdDate: \"08/14/2012\",\r\n _updatedDate: \"03/21/2013\"\r\n },\r\n {\r\n id: 4,\r\n model: \"LS\",\r\n manufacture: \"Lexus\",\r\n modelYear: 2004,\r\n mileage: 183068,\r\n // eslint-disable-next-line\r\n description: `The Lexus LS (Japanese: レクサス・LS, Rekusasu LS) is a full-size luxury car (F-segment in Europe) serving as the flagship model of Lexus, the luxury division of Toyota. For the first four generations, all LS models featured V8 engines and were predominantly rear-wheel-drive, with Lexus also offering all-wheel-drive, hybrid, and long-wheelbase variants. The fifth generation changed to using a V6 engine with no V8 option, and the long wheelbase variant was removed entirely.`,\r\n color: \"Mauv\",\r\n price: 95410,\r\n condition: 1,\r\n createdDate: \"02/03/2018\",\r\n status: 1,\r\n VINCode: \"2T1BU4EE6DC859114\",\r\n _userId: 2,\r\n _createdDate: \"11/25/2012\",\r\n _updatedDate: \"08/15/2013\"\r\n },\r\n {\r\n id: 5,\r\n model: \"Paseo\",\r\n manufacture: \"Toyota\",\r\n modelYear: 1997,\r\n mileage: 74884,\r\n // eslint-disable-next-line\r\n description: `The Toyota Paseo (known as the Cynos in Japan and other regions) is a sports styled compact car sold from 1991–1999 and was loosely based on the Tercel. It was available as a coupe and in later models as a convertible. Toyota stopped selling the car in the United States in 1997, however the car continued to be sold in Canada, Europe and Japan until 1999, but had no direct replacement. The Paseo, like the Tercel, shares a platform with the Starlet. Several parts are interchangeable between the three`,\r\n color: \"Pink\",\r\n price: 24796,\r\n condition: 1,\r\n createdDate: \"08/13/2017\",\r\n status: 0,\r\n VINCode: \"1D7RB1GP0AS597432\",\r\n _userId: 1,\r\n _createdDate: \"11/21/2016\",\r\n _updatedDate: \"10/09/2012\"\r\n },\r\n {\r\n id: 6,\r\n model: \"M\",\r\n manufacture: \"Infiniti\",\r\n modelYear: 2009,\r\n mileage: 194846,\r\n // eslint-disable-next-line\r\n description: `The Infiniti M is a line of mid-size luxury (executive) cars from the Infiniti luxury division of Nissan.\\r\\nThe first iteration was the M30 Coupe/Convertible, which were rebadged JDM Nissan Leopard.\\r\\nAfter a long hiatus, the M nameplate was used for Infiniti's mid-luxury sedans (executive cars). First was the short-lived M45 sedan, a rebadged version of the Japanese-spec Nissan Gloria. The next generations, the M35/45 and M37/56/35h/30d, became the flagship of the Infiniti brand and are based on the JDM Nissan Fuga.`,\r\n color: \"Puce\",\r\n price: 30521,\r\n condition: 1,\r\n createdDate: \"01/27/2018\",\r\n status: 0,\r\n VINCode: \"YV1940AS1D1542424\",\r\n _userId: 2,\r\n _createdDate: \"03/13/2016\",\r\n _updatedDate: \"12/14/2013\"\r\n },\r\n {\r\n id: 7,\r\n model: \"Phantom\",\r\n manufacture: \"Rolls-Royce\",\r\n modelYear: 2008,\r\n mileage: 164124,\r\n // eslint-disable-next-line\r\n description: `The Rolls-Royce Phantom VIII is a luxury saloon car manufactured by Rolls-Royce Motor Cars. It is the eighth and current generation of Rolls-Royce Phantom, and the second launched by Rolls-Royce under BMW ownership. It is offered in two wheelbase lengths`,\r\n color: \"Purple\",\r\n price: 196247,\r\n condition: 1,\r\n createdDate: \"09/28/2017\",\r\n status: 1,\r\n VINCode: \"3VWML7AJ1DM234625\",\r\n _userId: 2,\r\n _createdDate: \"03/31/2012\",\r\n _updatedDate: \"06/27/2014\"\r\n },\r\n {\r\n id: 8,\r\n model: \"QX\",\r\n manufacture: \"Infiniti\",\r\n modelYear: 2002,\r\n mileage: 57410,\r\n // eslint-disable-next-line\r\n description: `The Infiniti QX80 (called the Infiniti QX56 until 2013) is a full-size luxury SUV built by Nissan Motor Company's Infiniti division. The naming convention originally adhered to the current trend of using a numeric designation derived from the engine's displacement, thus QX56 since the car has a 5.6-liter engine. From the 2014 model year, the car was renamed the QX80, as part of Infiniti's model name rebranding. The new name carries no meaning beyond suggesting that the vehicle is larger than smaller models such as the QX60`,\r\n color: \"Green\",\r\n price: 185775,\r\n condition: 1,\r\n createdDate: \"11/15/2017\",\r\n status: 0,\r\n VINCode: \"WDDHF2EB9CA161524\",\r\n _userId: 1,\r\n _createdDate: \"03/17/2013\",\r\n _updatedDate: \"09/05/2014\"\r\n },\r\n {\r\n id: 9,\r\n model: \"Daytona\",\r\n manufacture: \"Dodge\",\r\n modelYear: 1993,\r\n mileage: 4444,\r\n // eslint-disable-next-line\r\n description: `The Dodge Daytona was an automobile which was produced by the Chrysler Corporation under their Dodge division from 1984 to 1993. It was a front-wheel drive hatchback based on the Chrysler G platform, which was derived from the Chrysler K platform. The Chrysler Laser was an upscale rebadged version of the Daytona. The Daytona was restyled for 1987, and again for 1992. It replaced the Mitsubishi Galant-based Challenger, and slotted between the Charger and the Conquest. The Daytona was replaced by the 1995 Dodge Avenger, which was built by Mitsubishi Motors. The Daytona derives its name mainly from the Dodge Charger Daytona, which itself was named after the Daytona 500 race in Daytona Beach, Florida.`,\r\n color: \"Maroon\",\r\n price: 171898,\r\n condition: 0,\r\n createdDate: \"12/24/2017\",\r\n status: 1,\r\n VINCode: \"WBAET37422N752051\",\r\n _userId: 2,\r\n _createdDate: \"11/17/2012\",\r\n _updatedDate: \"03/17/2018\"\r\n },\r\n {\r\n id: 10,\r\n model: \"1500 Silverado\",\r\n manufacture: \"Chevrolet\",\r\n modelYear: 1999,\r\n mileage: 195310,\r\n // eslint-disable-next-line\r\n description: `The Chevrolet Silverado, and its mechanically identical cousin, the GMC Sierra, are a series of full-size and heavy-duty pickup trucks manufactured by General Motors and introduced in 1998 as the successor to the long-running Chevrolet C/K line. The Silverado name was taken from a trim level previously used on its predecessor, the Chevrolet C/K pickup truck from 1975 through 1998. General Motors continues to offer a GMC-badged variant of the Chevrolet full-size pickup under the GMC Sierra name, first used in 1987 for its variant of the GMT400 platform trucks.`,\r\n color: \"Blue\",\r\n price: 25764,\r\n condition: 0,\r\n createdDate: \"08/30/2017\",\r\n status: 1,\r\n VINCode: \"1N6AF0LX6EN590806\",\r\n _userId: 2,\r\n _createdDate: \"10/06/2013\",\r\n _updatedDate: \"03/27/2017\"\r\n },\r\n {\r\n id: 11,\r\n model: \"CTS\",\r\n manufacture: \"Cadillac\",\r\n modelYear: 2012,\r\n mileage: 170862,\r\n // eslint-disable-next-line\r\n description: `The Cadillac CTS is a mid-size luxury car / executive car designed, engineered, manufactured and marketed by General Motors, and now in its third generation. \\r\\nInitially available only as a 4-door sedan on the GM Sigma platform, GM had offered the second generation CTS in three body styles: 4-door sedan, 2-door coupe, and 5-door sport wagon also using the Sigma platform — and the third generation in coupe and sedan configurations, using a stretched version of the GM Alpha platform.\\r\\nWayne Cherry and Kip Wasenko designed the exterior of the first generation CTS, marking the production debut of a design language (marketed as \"Art and Science\") first seen on the Evoq concept car. Bob Boniface and Robin Krieg designed the exterior of the third generation CTS`,\r\n color: \"Crimson\",\r\n price: 80588,\r\n condition: 0,\r\n createdDate: \"02/15/2018\",\r\n status: 0,\r\n VINCode: \"1G4HR54KX4U506530\",\r\n _userId: 2,\r\n _createdDate: \"09/04/2016\",\r\n _updatedDate: \"09/17/2012\"\r\n },\r\n {\r\n id: 12,\r\n model: \"Astro\",\r\n manufacture: \"Chevrolet\",\r\n modelYear: 1995,\r\n mileage: 142137,\r\n // eslint-disable-next-line\r\n description: `The Chevrolet Astro was a rear-wheel drive van/minivan manufactured and marketed by the American automaker Chevrolet from 1985 to 2005 and over two build generations. Along with its rebadged variant, the GMC Safari, the Astro was marketed in passenger as well as cargo and livery configurations—featuring a V6 engine, unibody construction with a separate front engine/suspension sub-frame, leaf-spring rear suspension, rear bi-parting doors, and a seating capacity of up to eight passengers`,\r\n color: \"Teal\",\r\n price: 72430,\r\n condition: 1,\r\n createdDate: \"07/31/2017\",\r\n status: 0,\r\n VINCode: \"KMHGH4JH2DU676107\",\r\n _userId: 1,\r\n _createdDate: \"02/12/2013\",\r\n _updatedDate: \"01/26/2017\"\r\n },\r\n {\r\n id: 13,\r\n model: \"XL7\",\r\n manufacture: \"Suzuki\",\r\n modelYear: 2009,\r\n mileage: 165165,\r\n // eslint-disable-next-line\r\n description: `The Suzuki XL-7 (styled as XL7 for the second generation) is Suzuki's mid-sized SUV that was made from 1998 to 2009, over two generations. It was slotted above the Grand Vitara in Suzuki's lineup.`,\r\n color: \"Puce\",\r\n price: 118667,\r\n condition: 0,\r\n createdDate: \"02/04/2018\",\r\n status: 0,\r\n VINCode: \"1N6AF0LX9EN733005\",\r\n _userId: 2,\r\n _createdDate: \"10/31/2015\",\r\n _updatedDate: \"08/24/2015\"\r\n },\r\n {\r\n id: 14,\r\n model: \"SJ 410\",\r\n manufacture: \"Suzuki\",\r\n modelYear: 1984,\r\n mileage: 176074,\r\n // eslint-disable-next-line\r\n description: `The SJ-Series was introduced to the United States (Puerto Rico (SJ-410) and Canada earlier) in 1985 for the 1986 model year. It was priced at $6200 and 47,000 were sold in its first year. The Samurai had a 1.3 liter, 63 hp (47 kW), 4-cylinder engine and was available as a convertible or a hardtop, and with or without a rear seat. The Suzuki Samurai became intensely popular within the serious 4WD community for its good off-road performance and reliability compared to other 4WDs of the time. This is due to the fact that while very compact and light, it is a real 4WD vehicle equipped with a transfer case, switchable 4WD and low range. Its lightness makes it a very nimble off-roader less prone to sinking in softer ground than heavier types. It is also considered a great beginner off-roader due to its simple design and ease of engine and suspension modifications.`,\r\n color: \"Orange\",\r\n price: 84325,\r\n condition: 0,\r\n createdDate: \"12/22/2017\",\r\n status: 0,\r\n VINCode: \"2C3CDYBT6DH183756\",\r\n _userId: 1,\r\n _createdDate: \"05/30/2010\",\r\n _updatedDate: \"01/02/2014\"\r\n },\r\n {\r\n id: 15,\r\n model: \"F-Series\",\r\n manufacture: \"Ford\",\r\n modelYear: 1995,\r\n mileage: 53030,\r\n // eslint-disable-next-line\r\n description: `The Ford F-Series is a series of light-duty trucks and medium-duty trucks (Class 2-7) that have been marketed and manufactured by Ford Motor Company since 1948. While most variants of the F-Series trucks are full-size pickup trucks, the F-Series also includes chassis cab trucks and commercial vehicles. The Ford F-Series has been the best-selling vehicle in the United States since 1986 and the best-selling pickup since 1977.[1][2] It is also the best selling vehicle in Canada.[3] As of the 2018 model year, the F-Series generates $41.0 billion in annual revenue for Ford, making the F-Series brand more valuable than Coca-Cola and Nike.`,\r\n color: \"Aquamarine\",\r\n price: 77108,\r\n condition: 0,\r\n createdDate: \"01/09/2018\",\r\n status: 0,\r\n VINCode: \"WBAVB33526P873481\",\r\n _userId: 1,\r\n _createdDate: \"12/29/2016\",\r\n _updatedDate: \"02/14/2012\"\r\n },\r\n {\r\n id: 16,\r\n model: \"HS\",\r\n manufacture: \"Lexus\",\r\n modelYear: 2011,\r\n mileage: 84718,\r\n // eslint-disable-next-line\r\n description: `The Lexus HS (Japanese: レクサス・HS, Rekusasu HS) is a dedicated hybrid vehicle introduced by Lexus as a new entry-level luxury compact sedan in 2009.[2] Built on the Toyota New MC platform,[3] it is classified as a compact under Japanese regulations concerning vehicle exterior dimensions and engine displacement. Unveiled at the North American International Auto Show in January 2009, the HS 250h went on sale in July 2009 in Japan, followed by the United States in August 2009 as a 2010 model. The HS 250h represented the first dedicated hybrid vehicle in the Lexus lineup, as well as the first offered with an inline-four gasoline engine.[4] Bioplastic materials are used for the vehicle interior.[5] With a total length of 184.8 inches, the Lexus HS is slightly larger than the Lexus IS, but still smaller than the mid-size Lexus ES.`,\r\n color: \"Purple\",\r\n price: 140170,\r\n condition: 0,\r\n createdDate: \"11/14/2017\",\r\n status: 1,\r\n VINCode: \"1FTWF3A56AE545514\",\r\n _userId: 1,\r\n _createdDate: \"12/19/2014\",\r\n _updatedDate: \"11/09/2014\"\r\n },\r\n {\r\n id: 17,\r\n model: \"Land Cruiser\",\r\n manufacture: \"Toyota\",\r\n modelYear: 2008,\r\n mileage: 157019,\r\n // eslint-disable-next-line\r\n description: `Production of the first generation Land Cruiser began in 1951 (90 units) as Toyota's version of a Jeep-like vehicle.[2][3] The Land Cruiser has been produced in convertible, hardtop, station wagon and cab chassis versions. The Land Cruiser's reliability and longevity has led to huge popularity, especially in Australia where it is the best-selling body-on-frame, four-wheel drive vehicle.[4] Toyota also extensively tests the Land Cruiser in the Australian outback – considered to be one of the toughest operating environments in both temperature and terrain. In Japan, the Land Cruiser is exclusive to Toyota Japanese dealerships called Toyota Store.`,\r\n color: \"Crimson\",\r\n price: 72638,\r\n condition: 1,\r\n createdDate: \"08/08/2017\",\r\n status: 1,\r\n VINCode: \"3C3CFFDR2FT957799\",\r\n _userId: 1,\r\n _createdDate: \"05/30/2010\",\r\n _updatedDate: \"11/06/2012\"\r\n },\r\n {\r\n id: 18,\r\n model: \"Wrangler\",\r\n manufacture: \"Jeep\",\r\n modelYear: 1994,\r\n mileage: 55857,\r\n // eslint-disable-next-line\r\n description: `The Jeep Wrangler is a series of compact and mid-size (Wrangler Unlimited and Wrangler 4-door JL) four-wheel drive off-road vehicle models, manufactured by Jeep since 1986, and currently migrating from its third into its fourth generation. The Wrangler JL was unveiled in late 2017 and will be produced at Jeep's Toledo Complex.`,\r\n color: \"Red\",\r\n price: 193523,\r\n condition: 0,\r\n createdDate: \"02/28/2018\",\r\n status: 1,\r\n VINCode: \"3C4PDCAB7FT652291\",\r\n _userId: 1,\r\n _createdDate: \"10/26/2011\",\r\n _updatedDate: \"10/04/2016\"\r\n },\r\n {\r\n id: 19,\r\n model: \"Sunbird\",\r\n manufacture: \"Pontiac\",\r\n modelYear: 1994,\r\n mileage: 165202,\r\n // eslint-disable-next-line\r\n description: `The Pontiac Sunbird is an automobile that was produced by Pontiac, initially as a subcompact for the 1976 to 1980 model years, and later as a compact for the 1982 to 1994 model years. The Sunbird badge ran for 18 years (with a hiatus during the 1981 and 1982 model years, as the 1982 model was called J2000) and was then replaced in 1995 by the Pontiac Sunfire. Through the years the Sunbird was available in notchback coupé, sedan, hatchback, station wagon, and convertible body styles.`,\r\n color: \"Blue\",\r\n price: 198739,\r\n condition: 0,\r\n createdDate: \"05/13/2017\",\r\n status: 1,\r\n VINCode: \"1GD22XEG9FZ103872\",\r\n _userId: 2,\r\n _createdDate: \"07/24/2013\",\r\n _updatedDate: \"10/03/2013\"\r\n },\r\n {\r\n id: 20,\r\n model: \"A4\",\r\n manufacture: \"Audi\",\r\n modelYear: 1998,\r\n mileage: 117958,\r\n // eslint-disable-next-line\r\n description: `The A4 has been built in five generations and is based on the Volkswagen Group B platform. The first generation A4 succeeded the Audi 80. The automaker's internal numbering treats the A4 as a continuation of the Audi 80 lineage, with the initial A4 designated as the B5-series, followed by the B6, B7, B8 and the B9. The B8 and B9 versions of the A4 are built on the Volkswagen Group MLB platform shared with many other Audi models and potentially one Porsche model within Volkswagen Group`,\r\n color: \"Yellow\",\r\n price: 159377,\r\n condition: 0,\r\n createdDate: \"12/15/2017\",\r\n status: 1,\r\n VINCode: \"2C3CDXCT2FH350366\",\r\n _userId: 2,\r\n _createdDate: \"12/04/2014\",\r\n _updatedDate: \"03/07/2014\"\r\n },\r\n {\r\n id: 21,\r\n model: \"Camry Solara\",\r\n manufacture: \"Toyota\",\r\n modelYear: 2006,\r\n mileage: 22436,\r\n // eslint-disable-next-line\r\n description: `The Toyota Camry Solara, popularly known as the Toyota Solara, is a mid-size coupe/convertible built by Toyota. The Camry Solara is mechanically based on the Toyota Camry and effectively replaced the discontinued Camry Coupe (XV10); however, in contrast with its predecessor's conservative design, the Camry Solara was designed with a greater emphasis on sportiness, with more rakish styling, and uprated suspension and engine tuning intended to provide a sportier feel.[5] The coupe was launched in late 1998 as a 1999 model.[1] In 2000, the convertible was introduced, effectively replacing the Celica convertible in Toyota's North American lineup`,\r\n color: \"Green\",\r\n price: 122562,\r\n condition: 0,\r\n createdDate: \"07/11/2017\",\r\n status: 0,\r\n VINCode: \"3C3CFFHH6DT874066\",\r\n _userId: 2,\r\n _createdDate: \"03/21/2018\",\r\n _updatedDate: \"02/23/2014\"\r\n },\r\n {\r\n id: 22,\r\n model: \"Tribeca\",\r\n manufacture: \"Subaru\",\r\n modelYear: 2007,\r\n mileage: 127958,\r\n // eslint-disable-next-line\r\n description: `The Subaru Tribeca is a mid-size crossover SUV made from 2005 to 2014. Released in some markets, including Canada, as the Subaru B9 Tribeca, the name \"Tribeca\" derives from the Tribeca neighborhood of New York City.[1] Built on the Subaru Legacy platform and sold in five- and seven-seat configurations, the Tribeca was intended to be sold alongside a slightly revised version known as the Saab 9-6. Saab, at the time a subsidiary of General Motors (GM), abandoned the 9-6 program just prior to its release subsequent to GM's 2005 divestiture of its 20 percent stake in FHI.`,\r\n color: \"Yellow\",\r\n price: 90221,\r\n condition: 1,\r\n createdDate: \"11/12/2017\",\r\n status: 0,\r\n VINCode: \"WVWGU7AN9AE957575\",\r\n _userId: 1,\r\n _createdDate: \"07/04/2011\",\r\n _updatedDate: \"08/25/2013\"\r\n },\r\n {\r\n id: 23,\r\n model: \"1500 Club Coupe\",\r\n manufacture: \"GMC\",\r\n modelYear: 1997,\r\n mileage: 95783,\r\n // eslint-disable-next-line\r\n description: `GMC (General Motors Truck Company), formally the GMC Division of General Motors LLC, is a division of the American automobile manufacturer General Motors (GM) that primarily focuses on trucks and utility vehicles. GMC sells pickup and commercial trucks, buses, vans, military vehicles, and sport utility vehicles marketed worldwide by General Motors.`,\r\n color: \"Teal\",\r\n price: 64376,\r\n condition: 1,\r\n createdDate: \"06/28/2017\",\r\n status: 0,\r\n VINCode: \"SCFBF04BX7G920997\",\r\n _userId: 2,\r\n _createdDate: \"02/21/2017\",\r\n _updatedDate: \"01/29/2015\"\r\n },\r\n {\r\n id: 24,\r\n model: \"Firebird\",\r\n manufacture: \"Pontiac\",\r\n modelYear: 2002,\r\n mileage: 74063,\r\n // eslint-disable-next-line\r\n description: `The Pontiac Firebird is an American automobile built by Pontiac from the 1967 to the 2002 model years. Designed as a pony car to compete with the Ford Mustang, it was introduced 23 February 1967, the same model year as GM's Chevrolet division platform-sharing Camaro.[1] This also coincided with the release of the 1967 Mercury Cougar, Ford's upscale, platform-sharing version of the Mustang. The name \"Firebird\" was also previously used by GM for the General Motors Firebird 1950s and early-1960s`,\r\n color: \"Puce\",\r\n price: 94178,\r\n condition: 1,\r\n createdDate: \"09/13/2017\",\r\n status: 0,\r\n VINCode: \"3C63D2JL5CG563879\",\r\n _userId: 2,\r\n _createdDate: \"05/11/2014\",\r\n _updatedDate: \"11/24/2012\"\r\n },\r\n {\r\n id: 25,\r\n model: \"RAV4\",\r\n manufacture: \"Toyota\",\r\n modelYear: 1996,\r\n mileage: 99461,\r\n // eslint-disable-next-line\r\n description: `The Toyota RAV4 (Japanese: トヨタ RAV4 Toyota Ravufō) is a compact crossover SUV (sport utility vehicle) produced by the Japanese automobile manufacturer Toyota. This was the first compact crossover SUV;[1] it made its debut in Japan and Europe in 1994,[2] and in North America in 1995. The vehicle was designed for consumers wanting a vehicle that had most of the benefits of SUVs, such as increased cargo room, higher visibility, and the option of full-time four-wheel drive, along with the maneuverability and fuel economy of a compact car. Although not all RAV4s are four-wheel-drive, RAV4 stands for \"Recreational Activity Vehicle: 4-wheel drive\", because the aforementioned equipment is an option in select countries`,\r\n color: \"Goldenrod\",\r\n price: 48342,\r\n condition: 0,\r\n createdDate: \"12/29/2017\",\r\n status: 0,\r\n VINCode: \"2C4RDGDG6DR836144\",\r\n _userId: 2,\r\n _createdDate: \"04/23/2011\",\r\n _updatedDate: \"07/19/2016\"\r\n },\r\n {\r\n id: 26,\r\n model: \"Rio\",\r\n manufacture: \"Kia\",\r\n modelYear: 2007,\r\n mileage: 189651,\r\n // eslint-disable-next-line\r\n description: `The Kia Opirus was an executive car manufactured and marketed by Kia Motors that was launched in April 2003 and was marketed globally under various nameplates, prominently as the Amanti. It was considered to be Kia's flagship vehicle.`,\r\n color: \"Indigo\",\r\n price: 44292,\r\n condition: 1,\r\n createdDate: \"09/01/2017\",\r\n status: 1,\r\n VINCode: \"1C4SDHCT2CC055294\",\r\n _userId: 2,\r\n _createdDate: \"04/09/2018\",\r\n _updatedDate: \"04/17/2014\"\r\n },\r\n {\r\n id: 27,\r\n model: \"S60\",\r\n manufacture: \"Volvo\",\r\n modelYear: 2001,\r\n mileage: 78963,\r\n // eslint-disable-next-line\r\n description: `First introduced in 2004, Volvo's S60 R used a Haldex all-wheel-drive system mated to a 300 PS (221 kW; 296 hp) / 400 N⋅m (300 lbf⋅ft) inline-5. The 2004–2005 models came with a 6-speed manual transmission, or an available 5-speed automatic which allowed only 258 lb⋅ft (350 N⋅m) torque in 1st and 2nd gears. The 2006–2007 models came with a 6-speed manual or 6-speed automatic transmission (which was no longer torque-restricted)`,\r\n color: \"Goldenrod\",\r\n price: 9440,\r\n condition: 0,\r\n createdDate: \"11/06/2017\",\r\n status: 0,\r\n VINCode: \"3C6TD5CT5CG316067\",\r\n _userId: 2,\r\n _createdDate: \"01/11/2016\",\r\n _updatedDate: \"04/18/2013\"\r\n },\r\n {\r\n id: 28,\r\n model: \"Grand Marquis\",\r\n manufacture: \"Mercury\",\r\n modelYear: 1984,\r\n mileage: 153027,\r\n // eslint-disable-next-line\r\n description: `The Mercury Grand Marquis is an automobile that was sold by the Mercury division of Ford Motor Company from 1975 to 2011. From 1975 to 1982, it was the premium model of the Mercury Marquis model line, becoming a standalone model line in 1983. For its entire production run, the Grand Marquis served as the flagship of the Mercury line, with the Ford (LTD) Crown Victoria serving as its Ford counterpart. In addition, from 1979 to 2011, the Grand Marquis shared the rear-wheel drive Panther platform alongside the Lincoln Town Car`,\r\n color: \"Goldenrod\",\r\n price: 76027,\r\n condition: 0,\r\n createdDate: \"12/16/2017\",\r\n status: 1,\r\n VINCode: \"3C3CFFJH2DT871398\",\r\n _userId: 1,\r\n _createdDate: \"04/04/2014\",\r\n _updatedDate: \"08/24/2017\"\r\n },\r\n {\r\n id: 29,\r\n model: \"Talon\",\r\n manufacture: \"Eagle\",\r\n modelYear: 1991,\r\n mileage: 111234,\r\n // eslint-disable-next-line\r\n description: `Cosmetically, differences between the three were found in wheels, availability of colors, tail lights, front and rear bumpers, and spoilers. The Talon featured two-tone body color with a black 'greenhouse' (roof, pillars, door-mounted mirrors) regardless of the body color. The variants featured 5-speed manual or 4-speed automatic transmissions and a hood bulge on the left-hand side of the car in order for camshaft clearance on the 4G63 engine. The base model DL did not use this engine but still had a bulge as evident in the 1992 Talon brochure. 2nd Generation cars all had such a bulge, even with the inclusion of the 420A engine`,\r\n color: \"Teal\",\r\n price: 157216,\r\n condition: 0,\r\n createdDate: \"05/08/2017\",\r\n status: 1,\r\n VINCode: \"YV1902FH1D2957659\",\r\n _userId: 1,\r\n _createdDate: \"04/16/2017\",\r\n _updatedDate: \"01/14/2011\"\r\n },\r\n {\r\n id: 30,\r\n model: \"Passport\",\r\n manufacture: \"Honda\",\r\n modelYear: 2002,\r\n mileage: 3812,\r\n // eslint-disable-next-line\r\n description: `The Passport was a part of a partnership between Isuzu and Honda in the 1990s, which saw an exchange of passenger vehicles from Honda to Isuzu, such as the Isuzu Oasis, and trucks from Isuzu to Honda, such as the Passport and Acura SLX. This arrangement was convenient for both companies, as Isuzu discontinued passenger car production in 1993 after a corporate restructuring, and Honda was in desperate need a SUV, a segment that was growing in popularity in North America as well as Japan during the 1990s. The partnership ended in 2002 with the discontinuation of the Passport in favor of the Honda-engineered Pilot`,\r\n color: \"Puce\",\r\n price: 41299,\r\n condition: 1,\r\n createdDate: \"03/08/2018\",\r\n status: 0,\r\n VINCode: \"WVWEU9AN4AE524071\",\r\n _userId: 2,\r\n _createdDate: \"07/31/2015\",\r\n _updatedDate: \"07/03/2017\"\r\n },\r\n {\r\n id: 31,\r\n model: \"H3\",\r\n manufacture: \"Hummer\",\r\n modelYear: 2006,\r\n mileage: 196321,\r\n // eslint-disable-next-line\r\n description: `The Hummer H3 is a sport utility vehicle/off-road vehicle from Hummer that was produced from 2005 to 2010. Introduced for the 2006 model year, it was based on a highly modified GMT355 underpinning the Chevrolet Colorado/GMC Canyon compact pickup trucks that were also built at GM's Shreveport Operations in Shreveport, Louisiana and the Port Elizabeth plant in South Africa. The H3 was actually the smallest among the Hummer models. It was available either as a traditional midsize SUV or as a midsize pickup known as the H3T`,\r\n color: \"Pink\",\r\n price: 186964,\r\n condition: 1,\r\n createdDate: \"06/04/2017\",\r\n status: 1,\r\n VINCode: \"4T1BF1FK4FU746230\",\r\n _userId: 2,\r\n _createdDate: \"03/09/2014\",\r\n _updatedDate: \"02/10/2017\"\r\n },\r\n {\r\n id: 32,\r\n model: \"Comanche\",\r\n manufacture: \"Jeep\",\r\n modelYear: 1992,\r\n mileage: 72285,\r\n // eslint-disable-next-line\r\n description: `The Jeep Comanche (designated MJ) is a pickup truck variant of the Cherokee compact SUV (1984–2001)[3] manufactured and marketed by Jeep for model years 1986-1992 in rear wheel (RWD) and four-wheel drive (4WD) models as well as two cargo bed lengths: six-feet (1.83 metres) and seven-feet (2.13 metres)`,\r\n color: \"Mauv\",\r\n price: 145971,\r\n condition: 1,\r\n createdDate: \"09/01/2017\",\r\n status: 0,\r\n VINCode: \"1J4PN2GK1BW745045\",\r\n _userId: 2,\r\n _createdDate: \"07/27/2013\",\r\n _updatedDate: \"09/23/2016\"\r\n },\r\n {\r\n id: 33,\r\n model: \"Blazer\",\r\n manufacture: \"Chevrolet\",\r\n modelYear: 1993,\r\n mileage: 189804,\r\n // eslint-disable-next-line\r\n description: `The 2014 – 2nd generation, MY14 Duramax 2.8L diesel engines have several new parts, namely a new water-cooled variable-geometry turbocharger, a new high-pressure common-rail fuel delivery system, a new exhaust gas recirculation (EGR) system, a new intake manifold, a new cylinder head, a new cylinder block, a new balance shaft unit and a new Engine Control Module (ECM). and now produce 197 hp and 369 Ft/Lbs of torque`,\r\n color: \"Indigo\",\r\n price: 154594,\r\n condition: 0,\r\n createdDate: \"09/13/2017\",\r\n status: 0,\r\n VINCode: \"1G6KD57Y43U482896\",\r\n _userId: 1,\r\n _createdDate: \"05/27/2017\",\r\n _updatedDate: \"05/17/2016\"\r\n },\r\n {\r\n id: 34,\r\n model: \"Envoy XUV\",\r\n manufacture: \"GMC\",\r\n modelYear: 2004,\r\n mileage: 187960,\r\n // eslint-disable-next-line\r\n description: `The GMC Envoy is a mid-size SUV that was produced by General Motors. It was introduced for the 1998 model year. After the first generation Envoy was discontinued after the 2000 model year, but the Envoy was reintroduced and redesigned for the 2002 model year, and it was available in the GMC line of vehicles from the 2002 to 2009 model years`,\r\n color: \"Turquoise\",\r\n price: 185103,\r\n condition: 1,\r\n createdDate: \"12/07/2017\",\r\n status: 0,\r\n VINCode: \"5GAER23D09J658030\",\r\n _userId: 2,\r\n _createdDate: \"12/08/2017\",\r\n _updatedDate: \"06/15/2011\"\r\n }\r\n];\r\n","import carTableMock from \"./carTableMock\";\r\nimport MockUtils from \"./mock.utils\";\r\n\r\nexport default function mockProducts(mock) {\r\n mock.onPost(\"api/products\").reply(({ data }) => {\r\n const { product } = JSON.parse(data);\r\n const {\r\n model = \"\",\r\n manufacture = \"\",\r\n modelYear = 2000,\r\n mileage = 0,\r\n description = \"\",\r\n color = \"Black\",\r\n price = 1000,\r\n condition = 0,\r\n status = 0,\r\n VINCode = \"\"\r\n } = product;\r\n\r\n const id = generateProductId();\r\n const newProduct = {\r\n id,\r\n model,\r\n manufacture,\r\n modelYear,\r\n mileage,\r\n description,\r\n color,\r\n price,\r\n condition,\r\n status,\r\n VINCode\r\n };\r\n carTableMock.push(newProduct);\r\n return [200, { product: newProduct }];\r\n });\r\n\r\n mock.onPost(\"api/products/find\").reply(config => {\r\n const mockUtils = new MockUtils();\r\n const { queryParams } = JSON.parse(config.data);\r\n const filteredProducts = mockUtils.baseFilter(carTableMock, queryParams);\r\n return [200, filteredProducts];\r\n });\r\n\r\n mock.onPost(\"api/products/deleteProducts\").reply(config => {\r\n const { ids } = JSON.parse(config.data);\r\n ids.forEach(id => {\r\n const index = carTableMock.findIndex(el => el.id === id);\r\n if (index > -1) {\r\n carTableMock.splice(index, 1);\r\n }\r\n });\r\n return [200];\r\n });\r\n\r\n mock.onPost(\"api/products/updateStatusForProducts\").reply(config => {\r\n const { ids, status } = JSON.parse(config.data);\r\n carTableMock.forEach(el => {\r\n if (ids.findIndex(id => id === el.id) > -1) {\r\n el.status = status;\r\n }\r\n });\r\n return [200];\r\n });\r\n\r\n mock.onGet(/api\\/products\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/products\\/(\\d+)/)[1];\r\n const product = carTableMock.find(el => el.id === +id);\r\n if (!product) {\r\n return [400];\r\n }\r\n\r\n return [200, product];\r\n });\r\n\r\n mock.onPut(/api\\/products\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/products\\/(\\d+)/)[1];\r\n const { product } = JSON.parse(config.data);\r\n const index = carTableMock.findIndex(el => el.id === +id);\r\n if (!index) {\r\n return [400];\r\n }\r\n\r\n carTableMock[index] = { ...product };\r\n return [200];\r\n });\r\n\r\n mock.onDelete(/api\\/products\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/products\\/(\\d+)/)[1];\r\n const index = carTableMock.findIndex(el => el.id === +id);\r\n carTableMock.splice(index, 1);\r\n if (!index === -1) {\r\n return [400];\r\n }\r\n\r\n return [200];\r\n });\r\n}\r\n\r\nfunction generateProductId() {\r\n const ids = carTableMock.map(el => el.id);\r\n const maxId = Math.max(...ids);\r\n return maxId + 1;\r\n}","export default [\r\n {\r\n id: 1,\r\n carId: 1,\r\n text: \"enim lorem ipsum dolor sit amet consectetuer adipiscing elit proin\",\r\n _userId: 2,\r\n _createdDate: \"02/20/2011\",\r\n _updatedDate: \"06/25/2013\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"11/18/2018\"\r\n },\r\n {\r\n id: 2,\r\n carId: 1,\r\n text: \"in\",\r\n _userId: 1,\r\n _createdDate: \"02/05/2014\",\r\n _updatedDate: \"09/25/2017\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"10/26/2019\"\r\n },\r\n {\r\n id: 3,\r\n carId: 1,\r\n text: \"quis tortor id nulla ultrices aliquet maecenas leo\",\r\n _userId: 2,\r\n _createdDate: \"04/10/2017\",\r\n _updatedDate: \"06/12/2012\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"05/10/2020\"\r\n },\r\n {\r\n id: 4,\r\n carId: 2,\r\n text: \"curabitur gravida nisi at nibh in hac habitasse\",\r\n _userId: 1,\r\n _createdDate: \"03/02/2015\",\r\n _updatedDate: \"03/30/2014\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"12/13/2018\"\r\n },\r\n {\r\n id: 5,\r\n carId: 2,\r\n text:\r\n \"orci luctus et ultrices posuere cubilia curae duis faucibus accumsan odio curabitur convallis\",\r\n _userId: 2,\r\n _createdDate: \"02/14/2015\",\r\n _updatedDate: \"07/11/2013\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"10/24/2019\"\r\n },\r\n {\r\n id: 6,\r\n carId: 2,\r\n text: \"integer ac\",\r\n _userId: 1,\r\n _createdDate: \"05/28/2015\",\r\n _updatedDate: \"07/29/2016\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"01/22/2019\"\r\n },\r\n {\r\n id: 7,\r\n carId: 3,\r\n text:\r\n \"lectus aliquam sit amet diam in magna bibendum imperdiet nullam orci pede\",\r\n _userId: 2,\r\n _createdDate: \"03/08/2013\",\r\n _updatedDate: \"09/24/2016\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"03/31/2020\"\r\n },\r\n {\r\n id: 8,\r\n carId: 3,\r\n text: \"morbi odio odio elementum eu interdum eu tincidunt in leo\",\r\n _userId: 2,\r\n _createdDate: \"07/09/2010\",\r\n _updatedDate: \"01/25/2015\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/20/2019\"\r\n },\r\n {\r\n id: 9,\r\n carId: 3,\r\n text: \"orci\",\r\n _userId: 1,\r\n _createdDate: \"02/02/2018\",\r\n _updatedDate: \"08/04/2015\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"04/03/2020\"\r\n },\r\n {\r\n id: 10,\r\n carId: 4,\r\n text:\r\n \"vel pede morbi porttitor lorem id ligula suspendisse ornare consequat lectus in est risus auctor sed tristique in tempus sit\",\r\n _userId: 1,\r\n _createdDate: \"09/09/2013\",\r\n _updatedDate: \"03/06/2013\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"10/28/2018\"\r\n },\r\n {\r\n id: 11,\r\n carId: 4,\r\n text: \"ligula sit amet eleifend pede libero quis orci\",\r\n _userId: 2,\r\n _createdDate: \"08/17/2010\",\r\n _updatedDate: \"03/05/2016\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"06/22/2019\"\r\n },\r\n {\r\n id: 12,\r\n carId: 4,\r\n text: \"eget eleifend luctus ultricies eu nibh quisque id justo sit amet\",\r\n _userId: 2,\r\n _createdDate: \"09/17/2014\",\r\n _updatedDate: \"04/18/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"01/01/2020\"\r\n },\r\n {\r\n id: 13,\r\n carId: 5,\r\n text: \"\",\r\n _userId: 1,\r\n _createdDate: \"03/25/2013\",\r\n _updatedDate: \"11/13/2013\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"05/25/2019\"\r\n },\r\n {\r\n id: 14,\r\n carId: 5,\r\n text: \"justo lacinia eget tincidunt eget tempus vel pede morbi porttitor\",\r\n _userId: 2,\r\n _createdDate: \"03/22/2015\",\r\n _updatedDate: \"04/22/2015\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/07/2020\"\r\n },\r\n {\r\n id: 15,\r\n carId: 5,\r\n text: \"quam pede\",\r\n _userId: 1,\r\n _createdDate: \"03/18/2018\",\r\n _updatedDate: \"06/01/2012\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"02/09/2020\"\r\n },\r\n {\r\n id: 16,\r\n carId: 6,\r\n text:\r\n \"bibendum morbi non quam nec dui luctus rutrum nulla tellus in sagittis dui vel nisl duis ac nibh fusce\",\r\n _userId: 2,\r\n _createdDate: \"01/09/2013\",\r\n _updatedDate: \"02/10/2017\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"09/21/2019\"\r\n },\r\n {\r\n id: 17,\r\n carId: 6,\r\n text: \"id consequat in consequat ut nulla sed accumsan felis ut at dolor\",\r\n _userId: 2,\r\n _createdDate: \"07/27/2012\",\r\n _updatedDate: \"04/13/2015\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"08/01/2019\"\r\n },\r\n {\r\n id: 18,\r\n carId: 6,\r\n text:\r\n \"eu magna vulputate luctus cum sociis natoque penatibus et magnis dis parturient\",\r\n _userId: 1,\r\n _createdDate: \"08/12/2011\",\r\n _updatedDate: \"04/08/2018\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"03/28/2020\"\r\n },\r\n {\r\n id: 19,\r\n carId: 7,\r\n text:\r\n \"nec nisi vulputate nonummy maecenas tincidunt lacus at velit vivamus vel nulla eget\",\r\n _userId: 1,\r\n _createdDate: \"03/03/2013\",\r\n _updatedDate: \"09/18/2017\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"08/08/2019\"\r\n },\r\n {\r\n id: 20,\r\n carId: 7,\r\n text: \"\",\r\n _userId: 1,\r\n _createdDate: \"05/06/2015\",\r\n _updatedDate: \"02/20/2016\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"02/11/2019\"\r\n },\r\n {\r\n id: 21,\r\n carId: 7,\r\n text:\r\n \"sed vestibulum sit amet cursus id turpis integer aliquet massa id lobortis convallis\",\r\n _userId: 2,\r\n _createdDate: \"08/05/2014\",\r\n _updatedDate: \"03/13/2018\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"02/03/2020\"\r\n },\r\n {\r\n id: 22,\r\n carId: 8,\r\n text: \"dolor morbi vel lectus in quam fringilla rhoncus mauris enim leo\",\r\n _userId: 2,\r\n _createdDate: \"04/25/2011\",\r\n _updatedDate: \"03/09/2013\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"12/06/2018\"\r\n },\r\n {\r\n id: 23,\r\n carId: 8,\r\n text:\r\n \"mauris lacinia sapien quis libero nullam sit amet turpis elementum ligula vehicula consequat morbi a ipsum integer a nibh\",\r\n _userId: 1,\r\n _createdDate: \"07/03/2014\",\r\n _updatedDate: \"08/23/2013\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"05/18/2019\"\r\n },\r\n {\r\n id: 24,\r\n carId: 8,\r\n text:\r\n \"ultrices posuere cubilia curae donec pharetra magna vestibulum aliquet ultrices erat tortor sollicitudin\",\r\n _userId: 2,\r\n _createdDate: \"05/21/2013\",\r\n _updatedDate: \"10/01/2016\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"04/18/2019\"\r\n },\r\n {\r\n id: 25,\r\n carId: 9,\r\n text: \"orci luctus et ultrices\",\r\n _userId: 2,\r\n _createdDate: \"05/29/2014\",\r\n _updatedDate: \"02/03/2016\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"06/23/2019\"\r\n },\r\n {\r\n id: 26,\r\n carId: 9,\r\n text: \"donec diam neque vestibulum eget vulputate ut\",\r\n _userId: 1,\r\n _createdDate: \"06/06/2012\",\r\n _updatedDate: \"02/01/2018\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"12/29/2018\"\r\n },\r\n {\r\n id: 27,\r\n carId: 9,\r\n text: \"sapien sapien non mi integer ac neque duis bibendum morbi non quam\",\r\n _userId: 1,\r\n _createdDate: \"05/12/2015\",\r\n _updatedDate: \"11/11/2011\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"04/26/2020\"\r\n },\r\n {\r\n id: 28,\r\n carId: 10,\r\n text: \"\",\r\n _userId: 1,\r\n _createdDate: \"03/17/2013\",\r\n _updatedDate: \"08/13/2013\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"05/12/2019\"\r\n },\r\n {\r\n id: 29,\r\n carId: 10,\r\n text:\r\n \"aliquam lacus morbi quis tortor id nulla ultrices aliquet maecenas leo odio condimentum id luctus nec molestie sed\",\r\n _userId: 1,\r\n _createdDate: \"07/03/2016\",\r\n _updatedDate: \"02/06/2011\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"02/24/2019\"\r\n },\r\n {\r\n id: 30,\r\n carId: 10,\r\n text: \"donec quis orci eget orci vehicula condimentum\",\r\n _userId: 2,\r\n _createdDate: \"01/27/2014\",\r\n _updatedDate: \"12/09/2016\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/27/2020\"\r\n },\r\n {\r\n id: 31,\r\n carId: 11,\r\n text: \"etiam faucibus cursus urna ut tellus nulla ut erat\",\r\n _userId: 1,\r\n _createdDate: \"07/08/2014\",\r\n _updatedDate: \"06/07/2014\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"05/26/2020\"\r\n },\r\n {\r\n id: 32,\r\n carId: 11,\r\n text:\r\n \"hac habitasse platea dictumst etiam faucibus cursus urna ut tellus nulla ut erat id mauris vulputate elementum nullam varius\",\r\n _userId: 1,\r\n _createdDate: \"05/03/2016\",\r\n _updatedDate: \"07/20/2012\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"08/11/2019\"\r\n },\r\n {\r\n id: 33,\r\n carId: 11,\r\n text: \"vel enim sit amet\",\r\n _userId: 1,\r\n _createdDate: \"06/02/2017\",\r\n _updatedDate: \"05/03/2012\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"12/18/2019\"\r\n },\r\n {\r\n id: 34,\r\n carId: 12,\r\n text:\r\n \"est congue elementum in hac habitasse platea dictumst morbi vestibulum\",\r\n _userId: 2,\r\n _createdDate: \"03/28/2017\",\r\n _updatedDate: \"07/23/2010\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/16/2019\"\r\n },\r\n {\r\n id: 35,\r\n carId: 12,\r\n text: \"tempus vel pede morbi\",\r\n _userId: 1,\r\n _createdDate: \"10/29/2013\",\r\n _updatedDate: \"01/22/2016\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"12/30/2018\"\r\n },\r\n {\r\n id: 36,\r\n carId: 12,\r\n text:\r\n \"augue vel accumsan tellus nisi eu orci mauris lacinia sapien quis libero nullam sit amet turpis\",\r\n _userId: 2,\r\n _createdDate: \"03/31/2011\",\r\n _updatedDate: \"08/20/2012\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"06/29/2019\"\r\n },\r\n {\r\n id: 37,\r\n carId: 13,\r\n text: \"faucibus\",\r\n _userId: 2,\r\n _createdDate: \"12/24/2016\",\r\n _updatedDate: \"03/01/2017\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"04/09/2020\"\r\n },\r\n {\r\n id: 38,\r\n carId: 13,\r\n text:\r\n \"vulputate luctus cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus\",\r\n _userId: 1,\r\n _createdDate: \"08/02/2015\",\r\n _updatedDate: \"10/24/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"03/03/2020\"\r\n },\r\n {\r\n id: 39,\r\n carId: 13,\r\n text:\r\n \"nulla ultrices aliquet maecenas leo odio condimentum id luctus nec molestie sed justo pellentesque viverra pede ac\",\r\n _userId: 1,\r\n _createdDate: \"03/27/2011\",\r\n _updatedDate: \"11/25/2017\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"12/22/2019\"\r\n },\r\n {\r\n id: 40,\r\n carId: 14,\r\n text:\r\n \"vel accumsan tellus nisi eu orci mauris lacinia sapien quis libero nullam sit amet turpis elementum\",\r\n _userId: 1,\r\n _createdDate: \"02/03/2017\",\r\n _updatedDate: \"03/15/2014\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"02/06/2020\"\r\n },\r\n {\r\n id: 41,\r\n carId: 14,\r\n text: \"nec dui luctus rutrum nulla tellus in sagittis dui vel\",\r\n _userId: 2,\r\n _createdDate: \"08/12/2013\",\r\n _updatedDate: \"03/26/2013\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"09/22/2019\"\r\n },\r\n {\r\n id: 42,\r\n carId: 14,\r\n text: \"integer aliquet massa id lobortis convallis\",\r\n _userId: 1,\r\n _createdDate: \"09/09/2013\",\r\n _updatedDate: \"03/06/2018\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"01/19/2019\"\r\n },\r\n {\r\n id: 43,\r\n carId: 15,\r\n text: \"proin leo odio porttitor id consequat in consequat\",\r\n _userId: 2,\r\n _createdDate: \"04/25/2015\",\r\n _updatedDate: \"09/29/2015\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"11/02/2019\"\r\n },\r\n {\r\n id: 44,\r\n carId: 15,\r\n text:\r\n \"mauris enim leo rhoncus sed vestibulum sit amet cursus id turpis integer aliquet massa id lobortis convallis tortor\",\r\n _userId: 1,\r\n _createdDate: \"11/28/2013\",\r\n _updatedDate: \"10/12/2012\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"02/28/2019\"\r\n },\r\n {\r\n id: 45,\r\n carId: 15,\r\n text:\r\n \"felis donec semper sapien a libero nam dui proin leo odio porttitor id consequat in consequat ut\",\r\n _userId: 1,\r\n _createdDate: \"12/24/2016\",\r\n _updatedDate: \"03/18/2016\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"11/13/2019\"\r\n },\r\n {\r\n id: 46,\r\n carId: 16,\r\n text:\r\n \"id lobortis convallis tortor risus dapibus augue vel accumsan tellus nisi eu orci mauris lacinia sapien quis libero\",\r\n _userId: 2,\r\n _createdDate: \"09/16/2015\",\r\n _updatedDate: \"09/20/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"11/28/2019\"\r\n },\r\n {\r\n id: 47,\r\n carId: 16,\r\n text: \"semper rutrum nulla nunc purus phasellus\",\r\n _userId: 1,\r\n _createdDate: \"04/09/2017\",\r\n _updatedDate: \"08/19/2012\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"11/05/2019\"\r\n },\r\n {\r\n id: 48,\r\n carId: 16,\r\n text: \"curabitur at ipsum ac tellus semper\",\r\n _userId: 2,\r\n _createdDate: \"10/09/2010\",\r\n _updatedDate: \"11/20/2014\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"11/27/2018\"\r\n },\r\n {\r\n id: 49,\r\n carId: 17,\r\n text: \"tellus nisi eu orci mauris lacinia sapien\",\r\n _userId: 1,\r\n _createdDate: \"11/18/2012\",\r\n _updatedDate: \"10/24/2017\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"04/10/2019\"\r\n },\r\n {\r\n id: 50,\r\n carId: 17,\r\n text: \"quisque id justo sit amet sapien dignissim vestibulum vestibulum\",\r\n _userId: 1,\r\n _createdDate: \"09/21/2015\",\r\n _updatedDate: \"11/27/2016\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"12/17/2018\"\r\n },\r\n {\r\n id: 51,\r\n carId: 17,\r\n text:\r\n \"diam id ornare imperdiet sapien urna pretium nisl ut volutpat sapien arcu sed\",\r\n _userId: 1,\r\n _createdDate: \"08/13/2012\",\r\n _updatedDate: \"06/21/2016\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"06/11/2019\"\r\n },\r\n {\r\n id: 52,\r\n carId: 18,\r\n text: \"eget nunc donec\",\r\n _userId: 1,\r\n _createdDate: \"03/30/2012\",\r\n _updatedDate: \"08/05/2012\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"11/15/2018\"\r\n },\r\n {\r\n id: 53,\r\n carId: 18,\r\n text: \"nulla ac enim in tempor\",\r\n _userId: 1,\r\n _createdDate: \"04/30/2012\",\r\n _updatedDate: \"11/12/2013\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"01/16/2020\"\r\n },\r\n {\r\n id: 54,\r\n carId: 18,\r\n text: \"in quis justo maecenas rhoncus aliquam lacus morbi quis tortor id\",\r\n _userId: 2,\r\n _createdDate: \"08/29/2012\",\r\n _updatedDate: \"12/10/2012\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"09/25/2019\"\r\n },\r\n {\r\n id: 55,\r\n carId: 19,\r\n text: \"justo in\",\r\n _userId: 2,\r\n _createdDate: \"11/27/2017\",\r\n _updatedDate: \"10/03/2010\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"10/04/2019\"\r\n },\r\n {\r\n id: 56,\r\n carId: 19,\r\n text: \"duis\",\r\n _userId: 2,\r\n _createdDate: \"07/09/2016\",\r\n _updatedDate: \"02/13/2013\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"05/07/2020\"\r\n },\r\n {\r\n id: 57,\r\n carId: 19,\r\n text:\r\n \"luctus tincidunt nulla mollis molestie lorem quisque ut erat curabitur gravida nisi at nibh in hac habitasse platea\",\r\n _userId: 1,\r\n _createdDate: \"01/10/2014\",\r\n _updatedDate: \"01/07/2014\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"04/01/2020\"\r\n },\r\n {\r\n id: 58,\r\n carId: 20,\r\n text: \"non sodales sed tincidunt\",\r\n _userId: 1,\r\n _createdDate: \"02/15/2016\",\r\n _updatedDate: \"12/12/2013\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"08/26/2019\"\r\n },\r\n {\r\n id: 59,\r\n carId: 20,\r\n text:\r\n \"dictumst aliquam augue quam sollicitudin vitae consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum\",\r\n _userId: 2,\r\n _createdDate: \"01/08/2018\",\r\n _updatedDate: \"06/20/2011\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"10/27/2019\"\r\n },\r\n {\r\n id: 60,\r\n carId: 20,\r\n text: \"adipiscing molestie hendrerit at vulputate\",\r\n _userId: 1,\r\n _createdDate: \"01/06/2013\",\r\n _updatedDate: \"09/08/2017\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"05/03/2020\"\r\n },\r\n {\r\n id: 61,\r\n carId: 21,\r\n text: \"sed tristique in tempus sit amet sem fusce consequat nulla nisl\",\r\n _userId: 1,\r\n _createdDate: \"01/05/2012\",\r\n _updatedDate: \"06/05/2014\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"04/06/2019\"\r\n },\r\n {\r\n id: 62,\r\n carId: 21,\r\n text: \"sem praesent id massa id nisl venenatis lacinia aenean sit\",\r\n _userId: 2,\r\n _createdDate: \"12/06/2014\",\r\n _updatedDate: \"12/23/2013\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"02/05/2019\"\r\n },\r\n {\r\n id: 63,\r\n carId: 21,\r\n text: \"curabitur at ipsum ac tellus semper interdum\",\r\n _userId: 2,\r\n _createdDate: \"11/23/2014\",\r\n _updatedDate: \"04/10/2013\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"04/05/2020\"\r\n },\r\n {\r\n id: 64,\r\n carId: 22,\r\n text: \"donec ut mauris eget massa tempor convallis\",\r\n _userId: 2,\r\n _createdDate: \"10/16/2011\",\r\n _updatedDate: \"11/30/2012\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"11/23/2019\"\r\n },\r\n {\r\n id: 65,\r\n carId: 22,\r\n text: \"in faucibus orci luctus et ultrices posuere\",\r\n _userId: 1,\r\n _createdDate: \"11/12/2011\",\r\n _updatedDate: \"12/16/2016\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"04/23/2019\"\r\n },\r\n {\r\n id: 66,\r\n carId: 22,\r\n text: \"ligula\",\r\n _userId: 2,\r\n _createdDate: \"12/30/2014\",\r\n _updatedDate: \"12/12/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"03/28/2019\"\r\n },\r\n {\r\n id: 67,\r\n carId: 23,\r\n text:\r\n \"congue etiam justo etiam pretium iaculis justo in hac habitasse platea dictumst etiam faucibus cursus\",\r\n _userId: 1,\r\n _createdDate: \"05/09/2014\",\r\n _updatedDate: \"05/28/2013\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"11/25/2018\"\r\n },\r\n {\r\n id: 68,\r\n carId: 23,\r\n text: \"mollis molestie lorem quisque ut erat curabitur gravida nisi\",\r\n _userId: 2,\r\n _createdDate: \"12/07/2011\",\r\n _updatedDate: \"08/07/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"06/22/2019\"\r\n },\r\n {\r\n id: 69,\r\n carId: 23,\r\n text:\r\n \"maecenas tincidunt lacus at velit vivamus vel nulla eget eros elementum pellentesque quisque porta volutpat erat quisque\",\r\n _userId: 1,\r\n _createdDate: \"11/15/2012\",\r\n _updatedDate: \"09/02/2015\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"10/30/2018\"\r\n },\r\n {\r\n id: 70,\r\n carId: 24,\r\n text: \"libero convallis\",\r\n _userId: 1,\r\n _createdDate: \"12/04/2010\",\r\n _updatedDate: \"09/25/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"11/25/2018\"\r\n },\r\n {\r\n id: 71,\r\n carId: 24,\r\n text: \"vitae nisi nam ultrices libero\",\r\n _userId: 1,\r\n _createdDate: \"02/24/2015\",\r\n _updatedDate: \"03/10/2011\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"04/17/2020\"\r\n },\r\n {\r\n id: 72,\r\n carId: 24,\r\n text: \"augue a suscipit nulla elit ac nulla sed vel enim sit amet nunc\",\r\n _userId: 1,\r\n _createdDate: \"02/21/2012\",\r\n _updatedDate: \"12/09/2011\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"07/22/2019\"\r\n },\r\n {\r\n id: 73,\r\n carId: 25,\r\n text: \"id turpis integer aliquet massa id lobortis convallis tortor\",\r\n _userId: 1,\r\n _createdDate: \"01/20/2014\",\r\n _updatedDate: \"09/03/2014\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"01/10/2020\"\r\n },\r\n {\r\n id: 74,\r\n carId: 25,\r\n text: \"felis fusce posuere felis sed lacus morbi sem mauris laoreet\",\r\n _userId: 1,\r\n _createdDate: \"10/24/2014\",\r\n _updatedDate: \"02/19/2018\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"12/19/2019\"\r\n },\r\n {\r\n id: 75,\r\n carId: 25,\r\n text:\r\n \"neque libero convallis eget eleifend luctus ultricies eu nibh quisque id justo sit amet sapien dignissim\",\r\n _userId: 2,\r\n _createdDate: \"02/19/2016\",\r\n _updatedDate: \"06/26/2013\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/23/2020\"\r\n },\r\n {\r\n id: 76,\r\n carId: 26,\r\n text:\r\n \"nulla nunc purus phasellus in felis donec semper sapien a libero nam\",\r\n _userId: 1,\r\n _createdDate: \"07/29/2011\",\r\n _updatedDate: \"12/09/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/07/2020\"\r\n },\r\n {\r\n id: 77,\r\n carId: 26,\r\n text: \"elit sodales scelerisque\",\r\n _userId: 2,\r\n _createdDate: \"10/02/2012\",\r\n _updatedDate: \"05/05/2012\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"10/05/2019\"\r\n },\r\n {\r\n id: 78,\r\n carId: 26,\r\n text:\r\n \"sed lacus morbi sem mauris laoreet ut rhoncus aliquet pulvinar sed nisl nunc rhoncus dui vel\",\r\n _userId: 1,\r\n _createdDate: \"01/27/2015\",\r\n _updatedDate: \"07/14/2013\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"01/19/2019\"\r\n },\r\n {\r\n id: 79,\r\n carId: 27,\r\n text: \"augue vestibulum\",\r\n _userId: 1,\r\n _createdDate: \"09/19/2011\",\r\n _updatedDate: \"09/11/2014\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"03/08/2020\"\r\n },\r\n {\r\n id: 80,\r\n carId: 27,\r\n text: \"turpis nec euismod scelerisque\",\r\n _userId: 2,\r\n _createdDate: \"01/17/2014\",\r\n _updatedDate: \"03/04/2018\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"11/08/2019\"\r\n },\r\n {\r\n id: 81,\r\n carId: 27,\r\n text:\r\n \"quisque id justo sit amet sapien dignissim vestibulum vestibulum ante ipsum primis in faucibus orci luctus\",\r\n _userId: 1,\r\n _createdDate: \"08/16/2015\",\r\n _updatedDate: \"02/21/2011\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/15/2019\"\r\n },\r\n {\r\n id: 82,\r\n carId: 28,\r\n text:\r\n \"ultrices posuere cubilia curae duis faucibus accumsan odio curabitur convallis duis consequat dui nec nisi volutpat eleifend\",\r\n _userId: 1,\r\n _createdDate: \"03/07/2014\",\r\n _updatedDate: \"08/21/2012\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"05/14/2019\"\r\n },\r\n {\r\n id: 83,\r\n carId: 28,\r\n text:\r\n \"curabitur gravida nisi at nibh in hac habitasse platea dictumst aliquam augue\",\r\n _userId: 2,\r\n _createdDate: \"09/20/2017\",\r\n _updatedDate: \"08/21/2014\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"07/07/2019\"\r\n },\r\n {\r\n id: 84,\r\n carId: 28,\r\n text:\r\n \"dolor quis odio consequat varius integer ac leo pellentesque ultrices mattis odio donec vitae nisi\",\r\n _userId: 2,\r\n _createdDate: \"04/08/2017\",\r\n _updatedDate: \"08/17/2016\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"03/19/2019\"\r\n },\r\n {\r\n id: 85,\r\n carId: 29,\r\n text:\r\n \"interdum in ante vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae duis faucibus\",\r\n _userId: 2,\r\n _createdDate: \"04/30/2013\",\r\n _updatedDate: \"08/22/2013\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"03/23/2020\"\r\n },\r\n {\r\n id: 86,\r\n carId: 29,\r\n text:\r\n \"faucibus orci luctus et ultrices posuere cubilia curae nulla dapibus dolor vel est donec odio justo sollicitudin ut suscipit a\",\r\n _userId: 2,\r\n _createdDate: \"04/12/2014\",\r\n _updatedDate: \"03/06/2013\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"02/17/2019\"\r\n },\r\n {\r\n id: 87,\r\n carId: 29,\r\n text:\r\n \"faucibus orci luctus et ultrices posuere cubilia curae donec pharetra magna vestibulum\",\r\n _userId: 2,\r\n _createdDate: \"11/21/2016\",\r\n _updatedDate: \"08/21/2010\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"11/06/2019\"\r\n },\r\n {\r\n id: 88,\r\n carId: 30,\r\n text: \"nibh in hac habitasse platea dictumst\",\r\n _userId: 1,\r\n _createdDate: \"10/30/2011\",\r\n _updatedDate: \"03/07/2012\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"12/02/2019\"\r\n },\r\n {\r\n id: 89,\r\n carId: 30,\r\n text: \"fusce lacus purus\",\r\n _userId: 2,\r\n _createdDate: \"09/02/2014\",\r\n _updatedDate: \"05/22/2015\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"10/13/2019\"\r\n },\r\n {\r\n id: 90,\r\n carId: 30,\r\n text: \"ultrices enim lorem ipsum dolor\",\r\n _userId: 1,\r\n _createdDate: \"12/21/2012\",\r\n _updatedDate: \"02/28/2018\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"12/08/2019\"\r\n },\r\n {\r\n id: 91,\r\n carId: 31,\r\n text: \"suspendisse accumsan tortor quis turpis\",\r\n _userId: 1,\r\n _createdDate: \"01/22/2014\",\r\n _updatedDate: \"01/26/2015\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"03/05/2019\"\r\n },\r\n {\r\n id: 92,\r\n carId: 31,\r\n text:\r\n \"sed interdum venenatis turpis enim blandit mi in porttitor pede justo eu massa\",\r\n _userId: 1,\r\n _createdDate: \"12/20/2013\",\r\n _updatedDate: \"08/13/2016\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"09/03/2019\"\r\n },\r\n {\r\n id: 93,\r\n carId: 31,\r\n text:\r\n \"quisque id justo sit amet sapien dignissim vestibulum vestibulum ante ipsum primis\",\r\n _userId: 1,\r\n _createdDate: \"07/08/2016\",\r\n _updatedDate: \"02/26/2013\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"01/22/2019\"\r\n },\r\n {\r\n id: 94,\r\n carId: 32,\r\n text: \"vitae nisi nam ultrices\",\r\n _userId: 1,\r\n _createdDate: \"02/21/2015\",\r\n _updatedDate: \"03/04/2017\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"01/05/2020\"\r\n },\r\n {\r\n id: 95,\r\n carId: 32,\r\n text: \"in tempus sit amet sem fusce consequat\",\r\n _userId: 2,\r\n _createdDate: \"09/15/2014\",\r\n _updatedDate: \"05/21/2017\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"03/31/2019\"\r\n },\r\n {\r\n id: 96,\r\n carId: 32,\r\n text:\r\n \"eros elementum pellentesque quisque porta volutpat erat quisque erat eros viverra eget congue eget semper\",\r\n _userId: 2,\r\n _createdDate: \"06/04/2014\",\r\n _updatedDate: \"08/12/2010\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"10/10/2019\"\r\n },\r\n {\r\n id: 97,\r\n carId: 33,\r\n text: \"eu pede\",\r\n _userId: 2,\r\n _createdDate: \"03/21/2011\",\r\n _updatedDate: \"07/18/2012\",\r\n type: 2,\r\n _isEditMode: false,\r\n dueDate: \"03/29/2020\"\r\n },\r\n {\r\n id: 98,\r\n carId: 33,\r\n text: \"tempus vivamus in felis eu sapien cursus vestibulum proin\",\r\n _userId: 2,\r\n _createdDate: \"09/17/2017\",\r\n _updatedDate: \"11/29/2013\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"04/01/2019\"\r\n },\r\n {\r\n id: 99,\r\n carId: 33,\r\n text:\r\n \"velit eu est congue elementum in hac habitasse platea dictumst morbi vestibulum velit id pretium iaculis diam erat fermentum\",\r\n _userId: 1,\r\n _createdDate: \"03/27/2013\",\r\n _updatedDate: \"09/26/2014\",\r\n type: 1,\r\n _isEditMode: false,\r\n dueDate: \"09/14/2019\"\r\n },\r\n {\r\n id: 100,\r\n carId: 34,\r\n text: \"luctus et ultrices posuere cubilia curae nulla dapibus dolor vel\",\r\n _userId: 2,\r\n _createdDate: \"03/07/2017\",\r\n _updatedDate: \"08/14/2012\",\r\n type: 0,\r\n _isEditMode: false,\r\n dueDate: \"08/11/2019\"\r\n }\r\n];\r\n","import remarkTableMock from \"./remarkTableMock\";\r\nimport MockUtils from \"./mock.utils\";\r\n\r\nexport default function mockRemarks(mock) {\r\n mock.onPost(\"api/remarks\").reply(({ data }) => {\r\n const { remark } = JSON.parse(data);\r\n const { carId, text = \"\", dueDate = \"01/01/2019\", type = 0 } = remark;\r\n const id = generateRemarkId();\r\n const newRemark = {\r\n id,\r\n carId: +carId,\r\n text,\r\n dueDate,\r\n type\r\n };\r\n remarkTableMock.push(newRemark);\r\n return [200, { remark: newRemark }];\r\n });\r\n\r\n mock.onPost(/api\\/remarksfind\\/\\d+/).reply(config => {\r\n const urls = config.url.split(\"/\");\r\n const id = urls[2];\r\n const mockUtils = new MockUtils();\r\n const { queryParams } = JSON.parse(config.data);\r\n const productRemarks = remarkTableMock.filter(el => el.carId === +id);\r\n const filterdRemarks = mockUtils.baseFilter(productRemarks, queryParams);\r\n return [200, filterdRemarks];\r\n });\r\n\r\n mock.onPost(\"api/remarks/deleteRemarks\").reply(config => {\r\n const { ids } = JSON.parse(config.data);\r\n ids.forEach(id => {\r\n const index = remarkTableMock.findIndex(el => el.id === id);\r\n if (index > -1) {\r\n remarkTableMock.splice(index, 1);\r\n }\r\n });\r\n return [200];\r\n });\r\n\r\n mock.onGet(/api\\/remarks\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/remarks\\/(\\d+)/)[1];\r\n const remark = remarkTableMock.find(el => el.id === +id);\r\n if (!remark) {\r\n return [400];\r\n }\r\n\r\n return [200, remark];\r\n });\r\n\r\n mock.onPut(/api\\/remarks\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/remarks\\/(\\d+)/)[1];\r\n const { remark } = JSON.parse(config.data);\r\n const index = remarkTableMock.findIndex(el => el.id === +id);\r\n if (!index) {\r\n return [400];\r\n }\r\n\r\n remarkTableMock[index] = { ...remark };\r\n return [200];\r\n });\r\n\r\n mock.onDelete(/api\\/remarks\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/remarks\\/(\\d+)/)[1];\r\n const index = remarkTableMock.findIndex(el => el.id === +id);\r\n remarkTableMock.splice(index, 1);\r\n if (!index === -1) {\r\n return [400];\r\n }\r\n\r\n return [200];\r\n });\r\n}\r\n\r\nfunction generateRemarkId() {\r\n const ids = remarkTableMock.map(el => el.id);\r\n const maxId = Math.max(...ids);\r\n return maxId + 1;\r\n}\r\n","export default [\r\n {\r\n id: 1,\r\n carId: 1,\r\n specId: 1,\r\n value: \"purus sit amet nulla\",\r\n _userId: 1,\r\n _createdDate: \"07/14/2011\",\r\n _updatedDate: \"07/27/2013\"\r\n },\r\n {\r\n id: 2,\r\n carId: 1,\r\n specId: 2,\r\n value: \"nulla sed vel enim\",\r\n _userId: 2,\r\n _createdDate: \"09/29/2012\",\r\n _updatedDate: \"09/25/2013\"\r\n },\r\n {\r\n id: 3,\r\n carId: 1,\r\n specId: 3,\r\n value: \"id ornare\",\r\n _userId: 1,\r\n _createdDate: \"01/13/2016\",\r\n _updatedDate: \"07/08/2010\"\r\n },\r\n {\r\n id: 4,\r\n carId: 1,\r\n specId: 4,\r\n value: \"orci luctus et\",\r\n _userId: 1,\r\n _createdDate: \"06/20/2013\",\r\n _updatedDate: \"05/09/2013\"\r\n },\r\n {\r\n id: 5,\r\n carId: 1,\r\n specId: 5,\r\n value: \"convallis duis consequat dui nec\",\r\n _userId: 1,\r\n _createdDate: \"02/24/2014\",\r\n _updatedDate: \"04/26/2016\"\r\n },\r\n {\r\n id: 6,\r\n carId: 2,\r\n specId: 6,\r\n value: \"augue luctus\",\r\n _userId: 1,\r\n _createdDate: \"03/16/2017\",\r\n _updatedDate: \"02/01/2018\"\r\n },\r\n {\r\n id: 7,\r\n carId: 2,\r\n specId: 7,\r\n value: \"in tempus sit amet\",\r\n _userId: 1,\r\n _createdDate: \"01/24/2012\",\r\n _updatedDate: \"03/14/2015\"\r\n },\r\n {\r\n id: 8,\r\n carId: 2,\r\n specId: 8,\r\n value: \"venenatis turpis enim blandit mi\",\r\n _userId: 1,\r\n _createdDate: \"10/02/2017\",\r\n _updatedDate: \"05/20/2011\"\r\n },\r\n {\r\n id: 9,\r\n carId: 2,\r\n specId: 9,\r\n value: \"sed magna at nunc commodo\",\r\n _userId: 2,\r\n _createdDate: \"02/29/2012\",\r\n _updatedDate: \"06/30/2015\"\r\n },\r\n {\r\n id: 10,\r\n carId: 2,\r\n specId: 0,\r\n value: \"nascetur\",\r\n _userId: 1,\r\n _createdDate: \"11/26/2013\",\r\n _updatedDate: \"12/03/2013\"\r\n },\r\n {\r\n id: 11,\r\n carId: 3,\r\n specId: 1,\r\n value: \"magna vestibulum aliquet\",\r\n _userId: 2,\r\n _createdDate: \"06/23/2014\",\r\n _updatedDate: \"07/11/2014\"\r\n },\r\n {\r\n id: 12,\r\n carId: 3,\r\n specId: 1,\r\n value: \"bibendum imperdiet nullam orci\",\r\n _userId: 2,\r\n _createdDate: \"08/14/2013\",\r\n _updatedDate: \"06/22/2017\"\r\n },\r\n {\r\n id: 13,\r\n carId: 3,\r\n specId: 2,\r\n value: \"ligula pellentesque ultrices phasellus\",\r\n _userId: 2,\r\n _createdDate: \"05/03/2016\",\r\n _updatedDate: \"06/08/2012\"\r\n },\r\n {\r\n id: 14,\r\n carId: 3,\r\n specId: 3,\r\n value: \"in faucibus orci luctus\",\r\n _userId: 2,\r\n _createdDate: \"04/10/2016\",\r\n _updatedDate: \"11/23/2011\"\r\n },\r\n {\r\n id: 15,\r\n carId: 3,\r\n specId: 4,\r\n value: \"quis turpis sed ante\",\r\n _userId: 2,\r\n _createdDate: \"12/28/2015\",\r\n _updatedDate: \"02/11/2011\"\r\n },\r\n {\r\n id: 16,\r\n carId: 4,\r\n specId: 5,\r\n value: \"proin risus praesent lectus\",\r\n _userId: 2,\r\n _createdDate: \"04/25/2011\",\r\n _updatedDate: \"08/26/2014\"\r\n },\r\n {\r\n id: 17,\r\n carId: 4,\r\n specId: 6,\r\n value: \"morbi sem mauris laoreet\",\r\n _userId: 2,\r\n _createdDate: \"09/23/2012\",\r\n _updatedDate: \"05/17/2018\"\r\n },\r\n {\r\n id: 18,\r\n carId: 4,\r\n specId: 7,\r\n value: \"erat curabitur gravida\",\r\n _userId: 2,\r\n _createdDate: \"02/26/2015\",\r\n _updatedDate: \"01/07/2014\"\r\n },\r\n {\r\n id: 19,\r\n carId: 4,\r\n specId: 8,\r\n value: \"tellus nulla ut\",\r\n _userId: 1,\r\n _createdDate: \"12/08/2016\",\r\n _updatedDate: \"10/08/2015\"\r\n },\r\n {\r\n id: 20,\r\n carId: 4,\r\n specId: 9,\r\n value: \"tempus sit amet sem fusce\",\r\n _userId: 2,\r\n _createdDate: \"05/09/2011\",\r\n _updatedDate: \"11/07/2011\"\r\n },\r\n {\r\n id: 21,\r\n carId: 5,\r\n specId: 0,\r\n value: \"pellentesque ultrices phasellus\",\r\n _userId: 1,\r\n _createdDate: \"03/22/2011\",\r\n _updatedDate: \"07/04/2010\"\r\n },\r\n {\r\n id: 22,\r\n carId: 5,\r\n specId: 1,\r\n value: \"gravida\",\r\n _userId: 1,\r\n _createdDate: \"01/09/2018\",\r\n _updatedDate: \"02/15/2011\"\r\n },\r\n {\r\n id: 23,\r\n carId: 5,\r\n specId: 1,\r\n value: \"nulla\",\r\n _userId: 1,\r\n _createdDate: \"11/13/2012\",\r\n _updatedDate: \"06/25/2017\"\r\n },\r\n {\r\n id: 24,\r\n carId: 5,\r\n specId: 2,\r\n value: \"et ultrices posuere cubilia\",\r\n _userId: 2,\r\n _createdDate: \"02/24/2014\",\r\n _updatedDate: \"12/11/2011\"\r\n },\r\n {\r\n id: 25,\r\n carId: 5,\r\n specId: 3,\r\n value: \"nulla quisque arcu\",\r\n _userId: 2,\r\n _createdDate: \"12/16/2012\",\r\n _updatedDate: \"02/08/2012\"\r\n },\r\n {\r\n id: 26,\r\n carId: 6,\r\n specId: 4,\r\n value: \"orci eget orci vehicula\",\r\n _userId: 2,\r\n _createdDate: \"09/21/2015\",\r\n _updatedDate: \"05/05/2014\"\r\n },\r\n {\r\n id: 27,\r\n carId: 6,\r\n specId: 5,\r\n value: \"lobortis convallis\",\r\n _userId: 2,\r\n _createdDate: \"08/28/2014\",\r\n _updatedDate: \"05/18/2011\"\r\n },\r\n {\r\n id: 28,\r\n carId: 6,\r\n specId: 6,\r\n value: \"ipsum praesent blandit lacinia\",\r\n _userId: 1,\r\n _createdDate: \"06/14/2015\",\r\n _updatedDate: \"12/28/2012\"\r\n },\r\n {\r\n id: 29,\r\n carId: 6,\r\n specId: 7,\r\n value: \"tempus semper est quam pharetra\",\r\n _userId: 1,\r\n _createdDate: \"08/30/2017\",\r\n _updatedDate: \"08/17/2016\"\r\n },\r\n {\r\n id: 30,\r\n carId: 6,\r\n specId: 8,\r\n value: \"in felis eu sapien\",\r\n _userId: 2,\r\n _createdDate: \"11/18/2010\",\r\n _updatedDate: \"09/20/2016\"\r\n },\r\n {\r\n id: 31,\r\n carId: 7,\r\n specId: 9,\r\n value: \"nam\",\r\n _userId: 2,\r\n _createdDate: \"06/28/2015\",\r\n _updatedDate: \"04/19/2011\"\r\n },\r\n {\r\n id: 32,\r\n carId: 7,\r\n specId: 0,\r\n value: \"metus arcu\",\r\n _userId: 1,\r\n _createdDate: \"06/15/2017\",\r\n _updatedDate: \"08/05/2012\"\r\n },\r\n {\r\n id: 33,\r\n carId: 7,\r\n specId: 1,\r\n value: \"libero nullam\",\r\n _userId: 1,\r\n _createdDate: \"12/15/2014\",\r\n _updatedDate: \"03/28/2013\"\r\n },\r\n {\r\n id: 34,\r\n carId: 7,\r\n specId: 1,\r\n value: \"diam nam\",\r\n _userId: 1,\r\n _createdDate: \"08/28/2017\",\r\n _updatedDate: \"08/24/2015\"\r\n },\r\n {\r\n id: 35,\r\n carId: 7,\r\n specId: 2,\r\n value: \"iaculis congue vivamus metus\",\r\n _userId: 1,\r\n _createdDate: \"06/26/2010\",\r\n _updatedDate: \"01/27/2012\"\r\n },\r\n {\r\n id: 36,\r\n carId: 8,\r\n specId: 3,\r\n value: \"cum sociis natoque\",\r\n _userId: 1,\r\n _createdDate: \"07/04/2016\",\r\n _updatedDate: \"12/24/2013\"\r\n },\r\n {\r\n id: 37,\r\n carId: 8,\r\n specId: 4,\r\n value: \"odio odio elementum eu\",\r\n _userId: 1,\r\n _createdDate: \"06/03/2017\",\r\n _updatedDate: \"11/21/2017\"\r\n },\r\n {\r\n id: 38,\r\n carId: 8,\r\n specId: 5,\r\n value: \"at ipsum ac tellus\",\r\n _userId: 1,\r\n _createdDate: \"06/03/2014\",\r\n _updatedDate: \"07/18/2014\"\r\n },\r\n {\r\n id: 39,\r\n carId: 8,\r\n specId: 6,\r\n value: \"quis\",\r\n _userId: 2,\r\n _createdDate: \"12/25/2015\",\r\n _updatedDate: \"10/10/2012\"\r\n },\r\n {\r\n id: 40,\r\n carId: 8,\r\n specId: 7,\r\n value: \"justo aliquam quis turpis\",\r\n _userId: 2,\r\n _createdDate: \"04/22/2017\",\r\n _updatedDate: \"01/16/2018\"\r\n },\r\n {\r\n id: 41,\r\n carId: 9,\r\n specId: 8,\r\n value: \"adipiscing elit proin risus\",\r\n _userId: 2,\r\n _createdDate: \"02/26/2012\",\r\n _updatedDate: \"03/07/2017\"\r\n },\r\n {\r\n id: 42,\r\n carId: 9,\r\n specId: 9,\r\n value: \"nibh ligula nec sem duis\",\r\n _userId: 1,\r\n _createdDate: \"09/16/2013\",\r\n _updatedDate: \"11/13/2011\"\r\n },\r\n {\r\n id: 43,\r\n carId: 9,\r\n specId: 0,\r\n value: \"purus aliquet at feugiat\",\r\n _userId: 2,\r\n _createdDate: \"05/23/2018\",\r\n _updatedDate: \"10/05/2014\"\r\n },\r\n {\r\n id: 44,\r\n carId: 9,\r\n specId: 1,\r\n value: \"eros suspendisse accumsan tortor quis\",\r\n _userId: 2,\r\n _createdDate: \"10/14/2014\",\r\n _updatedDate: \"08/02/2014\"\r\n },\r\n {\r\n id: 45,\r\n carId: 9,\r\n specId: 1,\r\n value: \"eget rutrum\",\r\n _userId: 2,\r\n _createdDate: \"01/23/2017\",\r\n _updatedDate: \"09/28/2012\"\r\n },\r\n {\r\n id: 46,\r\n carId: 10,\r\n specId: 2,\r\n value: \"hendrerit at vulputate\",\r\n _userId: 1,\r\n _createdDate: \"10/20/2011\",\r\n _updatedDate: \"10/09/2010\"\r\n },\r\n {\r\n id: 47,\r\n carId: 10,\r\n specId: 3,\r\n value: \"et\",\r\n _userId: 1,\r\n _createdDate: \"12/25/2015\",\r\n _updatedDate: \"08/26/2015\"\r\n },\r\n {\r\n id: 48,\r\n carId: 10,\r\n specId: 4,\r\n value: \"volutpat in congue etiam\",\r\n _userId: 2,\r\n _createdDate: \"09/17/2010\",\r\n _updatedDate: \"04/12/2016\"\r\n },\r\n {\r\n id: 49,\r\n carId: 10,\r\n specId: 5,\r\n value: \"odio elementum eu\",\r\n _userId: 2,\r\n _createdDate: \"10/19/2015\",\r\n _updatedDate: \"11/10/2017\"\r\n },\r\n {\r\n id: 50,\r\n carId: 10,\r\n specId: 6,\r\n value: \"donec odio justo\",\r\n _userId: 2,\r\n _createdDate: \"06/18/2016\",\r\n _updatedDate: \"01/26/2011\"\r\n },\r\n {\r\n id: 51,\r\n carId: 11,\r\n specId: 7,\r\n value: \"nulla suspendisse potenti cras in\",\r\n _userId: 2,\r\n _createdDate: \"11/18/2010\",\r\n _updatedDate: \"05/30/2017\"\r\n },\r\n {\r\n id: 52,\r\n carId: 11,\r\n specId: 8,\r\n value: \"nisl\",\r\n _userId: 2,\r\n _createdDate: \"10/26/2010\",\r\n _updatedDate: \"05/14/2015\"\r\n },\r\n {\r\n id: 53,\r\n carId: 11,\r\n specId: 9,\r\n value: \"tincidunt ante\",\r\n _userId: 2,\r\n _createdDate: \"06/29/2016\",\r\n _updatedDate: \"09/05/2010\"\r\n },\r\n {\r\n id: 54,\r\n carId: 11,\r\n specId: 0,\r\n value: \"condimentum curabitur\",\r\n _userId: 1,\r\n _createdDate: \"05/25/2011\",\r\n _updatedDate: \"09/29/2014\"\r\n },\r\n {\r\n id: 55,\r\n carId: 11,\r\n specId: 1,\r\n value: \"mi nulla\",\r\n _userId: 2,\r\n _createdDate: \"12/06/2014\",\r\n _updatedDate: \"05/20/2018\"\r\n },\r\n {\r\n id: 56,\r\n carId: 12,\r\n specId: 1,\r\n value: \"tortor risus\",\r\n _userId: 1,\r\n _createdDate: \"09/26/2016\",\r\n _updatedDate: \"08/07/2010\"\r\n },\r\n {\r\n id: 57,\r\n carId: 12,\r\n specId: 2,\r\n value: \"quisque erat eros\",\r\n _userId: 1,\r\n _createdDate: \"03/18/2012\",\r\n _updatedDate: \"03/27/2016\"\r\n },\r\n {\r\n id: 58,\r\n carId: 12,\r\n specId: 3,\r\n value: \"ultrices posuere cubilia curae nulla\",\r\n _userId: 2,\r\n _createdDate: \"08/11/2010\",\r\n _updatedDate: \"01/10/2013\"\r\n },\r\n {\r\n id: 59,\r\n carId: 12,\r\n specId: 4,\r\n value: \"dapibus\",\r\n _userId: 1,\r\n _createdDate: \"02/15/2015\",\r\n _updatedDate: \"10/19/2010\"\r\n },\r\n {\r\n id: 60,\r\n carId: 12,\r\n specId: 5,\r\n value: \"pharetra magna vestibulum\",\r\n _userId: 2,\r\n _createdDate: \"05/30/2015\",\r\n _updatedDate: \"11/13/2011\"\r\n },\r\n {\r\n id: 61,\r\n carId: 13,\r\n specId: 6,\r\n value: \"lectus\",\r\n _userId: 2,\r\n _createdDate: \"07/20/2012\",\r\n _updatedDate: \"03/10/2015\"\r\n },\r\n {\r\n id: 62,\r\n carId: 13,\r\n specId: 7,\r\n value: \"eget vulputate\",\r\n _userId: 1,\r\n _createdDate: \"04/30/2017\",\r\n _updatedDate: \"03/11/2016\"\r\n },\r\n {\r\n id: 63,\r\n carId: 13,\r\n specId: 8,\r\n value: \"feugiat et eros\",\r\n _userId: 2,\r\n _createdDate: \"04/21/2018\",\r\n _updatedDate: \"09/11/2011\"\r\n },\r\n {\r\n id: 64,\r\n carId: 13,\r\n specId: 9,\r\n value: \"dis parturient\",\r\n _userId: 1,\r\n _createdDate: \"02/09/2011\",\r\n _updatedDate: \"02/06/2011\"\r\n },\r\n {\r\n id: 65,\r\n carId: 13,\r\n specId: 0,\r\n value: \"gravida\",\r\n _userId: 1,\r\n _createdDate: \"08/22/2013\",\r\n _updatedDate: \"09/02/2012\"\r\n },\r\n {\r\n id: 66,\r\n carId: 14,\r\n specId: 1,\r\n value: \"sed\",\r\n _userId: 1,\r\n _createdDate: \"09/18/2010\",\r\n _updatedDate: \"06/10/2015\"\r\n },\r\n {\r\n id: 67,\r\n carId: 14,\r\n specId: 1,\r\n value: \"in blandit\",\r\n _userId: 2,\r\n _createdDate: \"11/21/2017\",\r\n _updatedDate: \"06/22/2016\"\r\n },\r\n {\r\n id: 68,\r\n carId: 14,\r\n specId: 2,\r\n value: \"id\",\r\n _userId: 2,\r\n _createdDate: \"04/23/2014\",\r\n _updatedDate: \"02/13/2018\"\r\n },\r\n {\r\n id: 69,\r\n carId: 14,\r\n specId: 3,\r\n value: \"sapien\",\r\n _userId: 1,\r\n _createdDate: \"09/04/2011\",\r\n _updatedDate: \"04/21/2012\"\r\n },\r\n {\r\n id: 70,\r\n carId: 14,\r\n specId: 4,\r\n value: \"nec nisi volutpat eleifend donec\",\r\n _userId: 2,\r\n _createdDate: \"05/07/2017\",\r\n _updatedDate: \"12/28/2015\"\r\n },\r\n {\r\n id: 71,\r\n carId: 15,\r\n specId: 5,\r\n value: \"non\",\r\n _userId: 2,\r\n _createdDate: \"05/29/2017\",\r\n _updatedDate: \"08/15/2014\"\r\n },\r\n {\r\n id: 72,\r\n carId: 15,\r\n specId: 6,\r\n value: \"pharetra magna ac consequat metus\",\r\n _userId: 2,\r\n _createdDate: \"06/13/2016\",\r\n _updatedDate: \"12/22/2014\"\r\n },\r\n {\r\n id: 73,\r\n carId: 15,\r\n specId: 7,\r\n value: \"erat quisque erat eros\",\r\n _userId: 2,\r\n _createdDate: \"02/27/2013\",\r\n _updatedDate: \"07/15/2012\"\r\n },\r\n {\r\n id: 74,\r\n carId: 15,\r\n specId: 8,\r\n value: \"diam nam tristique tortor eu\",\r\n _userId: 1,\r\n _createdDate: \"01/07/2017\",\r\n _updatedDate: \"09/24/2014\"\r\n },\r\n {\r\n id: 75,\r\n carId: 15,\r\n specId: 9,\r\n value: \"semper sapien a libero nam\",\r\n _userId: 1,\r\n _createdDate: \"02/03/2016\",\r\n _updatedDate: \"04/26/2015\"\r\n },\r\n {\r\n id: 76,\r\n carId: 16,\r\n specId: 0,\r\n value: \"consequat varius\",\r\n _userId: 1,\r\n _createdDate: \"04/06/2014\",\r\n _updatedDate: \"04/21/2013\"\r\n },\r\n {\r\n id: 77,\r\n carId: 16,\r\n specId: 1,\r\n value: \"mauris morbi non\",\r\n _userId: 2,\r\n _createdDate: \"11/15/2017\",\r\n _updatedDate: \"02/10/2017\"\r\n },\r\n {\r\n id: 78,\r\n carId: 16,\r\n specId: 1,\r\n value: \"iaculis justo in hac habitasse\",\r\n _userId: 1,\r\n _createdDate: \"01/11/2013\",\r\n _updatedDate: \"12/20/2010\"\r\n },\r\n {\r\n id: 79,\r\n carId: 16,\r\n specId: 2,\r\n value: \"dui\",\r\n _userId: 1,\r\n _createdDate: \"02/29/2016\",\r\n _updatedDate: \"04/20/2014\"\r\n },\r\n {\r\n id: 80,\r\n carId: 16,\r\n specId: 3,\r\n value: \"pulvinar nulla pede ullamcorper augue\",\r\n _userId: 2,\r\n _createdDate: \"10/31/2013\",\r\n _updatedDate: \"12/06/2010\"\r\n },\r\n {\r\n id: 81,\r\n carId: 17,\r\n specId: 4,\r\n value: \"congue elementum\",\r\n _userId: 1,\r\n _createdDate: \"07/17/2013\",\r\n _updatedDate: \"01/28/2014\"\r\n },\r\n {\r\n id: 82,\r\n carId: 17,\r\n specId: 5,\r\n value: \"dapibus nulla suscipit ligula\",\r\n _userId: 2,\r\n _createdDate: \"08/24/2012\",\r\n _updatedDate: \"02/04/2018\"\r\n },\r\n {\r\n id: 83,\r\n carId: 17,\r\n specId: 6,\r\n value: \"donec ut dolor\",\r\n _userId: 1,\r\n _createdDate: \"01/10/2012\",\r\n _updatedDate: \"06/07/2010\"\r\n },\r\n {\r\n id: 84,\r\n carId: 17,\r\n specId: 7,\r\n value: \"non lectus aliquam sit amet\",\r\n _userId: 2,\r\n _createdDate: \"01/26/2014\",\r\n _updatedDate: \"02/06/2016\"\r\n },\r\n {\r\n id: 85,\r\n carId: 17,\r\n specId: 8,\r\n value: \"sapien iaculis congue vivamus\",\r\n _userId: 2,\r\n _createdDate: \"01/01/2018\",\r\n _updatedDate: \"10/20/2012\"\r\n },\r\n {\r\n id: 86,\r\n carId: 18,\r\n specId: 9,\r\n value: \"dui vel sem\",\r\n _userId: 1,\r\n _createdDate: \"04/04/2016\",\r\n _updatedDate: \"01/19/2015\"\r\n },\r\n {\r\n id: 87,\r\n carId: 18,\r\n specId: 0,\r\n value: \"posuere cubilia curae\",\r\n _userId: 2,\r\n _createdDate: \"06/03/2015\",\r\n _updatedDate: \"12/22/2014\"\r\n },\r\n {\r\n id: 88,\r\n carId: 18,\r\n specId: 1,\r\n value: \"nascetur ridiculus\",\r\n _userId: 1,\r\n _createdDate: \"03/05/2018\",\r\n _updatedDate: \"08/04/2015\"\r\n },\r\n {\r\n id: 89,\r\n carId: 18,\r\n specId: 1,\r\n value: \"vestibulum sagittis sapien cum sociis\",\r\n _userId: 1,\r\n _createdDate: \"12/26/2017\",\r\n _updatedDate: \"07/08/2017\"\r\n },\r\n {\r\n id: 90,\r\n carId: 18,\r\n specId: 2,\r\n value: \"neque vestibulum eget vulputate ut\",\r\n _userId: 2,\r\n _createdDate: \"09/22/2014\",\r\n _updatedDate: \"06/08/2015\"\r\n },\r\n {\r\n id: 91,\r\n carId: 19,\r\n specId: 3,\r\n value: \"habitasse platea\",\r\n _userId: 2,\r\n _createdDate: \"10/06/2011\",\r\n _updatedDate: \"07/03/2017\"\r\n },\r\n {\r\n id: 92,\r\n carId: 19,\r\n specId: 4,\r\n value: \"tortor sollicitudin\",\r\n _userId: 2,\r\n _createdDate: \"03/20/2014\",\r\n _updatedDate: \"10/20/2015\"\r\n },\r\n {\r\n id: 93,\r\n carId: 19,\r\n specId: 5,\r\n value: \"posuere cubilia curae nulla dapibus\",\r\n _userId: 1,\r\n _createdDate: \"04/27/2012\",\r\n _updatedDate: \"08/03/2012\"\r\n },\r\n {\r\n id: 94,\r\n carId: 19,\r\n specId: 6,\r\n value: \"nulla\",\r\n _userId: 1,\r\n _createdDate: \"08/16/2016\",\r\n _updatedDate: \"11/02/2016\"\r\n },\r\n {\r\n id: 95,\r\n carId: 19,\r\n specId: 7,\r\n value: \"vel dapibus at diam nam\",\r\n _userId: 2,\r\n _createdDate: \"08/24/2013\",\r\n _updatedDate: \"03/02/2011\"\r\n },\r\n {\r\n id: 96,\r\n carId: 20,\r\n specId: 8,\r\n value: \"ultrices posuere cubilia\",\r\n _userId: 1,\r\n _createdDate: \"07/04/2010\",\r\n _updatedDate: \"06/07/2010\"\r\n },\r\n {\r\n id: 97,\r\n carId: 20,\r\n specId: 9,\r\n value: \"ut blandit non interdum\",\r\n _userId: 2,\r\n _createdDate: \"04/25/2018\",\r\n _updatedDate: \"06/24/2013\"\r\n },\r\n {\r\n id: 98,\r\n carId: 20,\r\n specId: 0,\r\n value: \"amet erat\",\r\n _userId: 2,\r\n _createdDate: \"07/13/2017\",\r\n _updatedDate: \"12/28/2014\"\r\n },\r\n {\r\n id: 99,\r\n carId: 20,\r\n specId: 1,\r\n value: \"ligula\",\r\n _userId: 1,\r\n _createdDate: \"03/18/2015\",\r\n _updatedDate: \"09/14/2012\"\r\n },\r\n {\r\n id: 100,\r\n carId: 20,\r\n specId: 1,\r\n value: \"id\",\r\n _userId: 1,\r\n _createdDate: \"04/02/2011\",\r\n _updatedDate: \"02/16/2017\"\r\n },\r\n {\r\n id: 101,\r\n carId: 26,\r\n specId: 8,\r\n value: \"ultrices posuere cubilia\",\r\n _userId: 1,\r\n _createdDate: \"07/04/2010\",\r\n _updatedDate: \"06/07/2010\"\r\n }\r\n];\r\n","import specificationTableMock from \"./specificationTableMock\";\r\nimport MockUtils from \"./mock.utils\";\r\n\r\nexport default function mockSpecifications(mock) {\r\n mock.onPost(\"api/specifications\").reply(({ data }) => {\r\n const { specification } = JSON.parse(data);\r\n const { carId, value = \"\", specId } = specification;\r\n const id = generateSpecificationId();\r\n const newSpecification = {\r\n id,\r\n carId: +carId,\r\n value,\r\n specId: +specId\r\n };\r\n specificationTableMock.push(newSpecification);\r\n return [200, { specification: newSpecification }];\r\n });\r\n\r\n mock.onPost(/api\\/specificationsfind\\/\\d+/).reply(config => {\r\n const urls = config.url.split(\"/\");\r\n const id = urls[2];\r\n const mockUtils = new MockUtils();\r\n const { queryParams } = JSON.parse(config.data);\r\n const specifications = specificationTableMock.filter(\r\n el => el.carId === +id\r\n );\r\n const result = [];\r\n specifications.forEach(el => result.push(wrapSpecification(el)));\r\n const filterdSpecifications = mockUtils.baseFilter(result, queryParams);\r\n\r\n return [200, filterdSpecifications];\r\n });\r\n\r\n mock.onPost(\"api/specifications/deleteSpecifications\").reply(config => {\r\n const { ids } = JSON.parse(config.data);\r\n ids.forEach(id => {\r\n const index = specificationTableMock.findIndex(el => el.id === id);\r\n if (index > -1) {\r\n specificationTableMock.splice(index, 1);\r\n }\r\n });\r\n return [200];\r\n });\r\n\r\n mock.onGet(/api\\/specifications\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/specifications\\/(\\d+)/)[1];\r\n const spec = specificationTableMock.find(el => el.id === +id);\r\n if (!spec) {\r\n return [400];\r\n }\r\n\r\n const specification = wrapSpecification(spec);\r\n\r\n return [200, specification];\r\n });\r\n\r\n mock.onPut(/api\\/specifications\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/specifications\\/(\\d+)/)[1];\r\n const { specification } = JSON.parse(config.data);\r\n const index = specificationTableMock.findIndex(el => el.id === +id);\r\n if (!index) {\r\n return [400];\r\n }\r\n\r\n specificationTableMock[index] = { ...specification };\r\n return [200];\r\n });\r\n\r\n mock.onDelete(/api\\/specifications\\/\\d+/).reply(config => {\r\n const id = config.url.match(/api\\/specifications\\/(\\d+)/)[1];\r\n const index = specificationTableMock.findIndex(el => el.id === +id);\r\n specificationTableMock.splice(index, 1);\r\n if (!index === -1) {\r\n return [400];\r\n }\r\n\r\n return [200];\r\n });\r\n}\r\n\r\nfunction generateSpecificationId() {\r\n const ids = specificationTableMock.map(el => el.id);\r\n const maxId = Math.max(...ids);\r\n return maxId + 1;\r\n}\r\n\r\nfunction wrapSpecification(specification) {\r\n const newSpec = { ...specification };\r\n newSpec.name = getSpecNameById(newSpec.specId);\r\n return newSpec;\r\n}\r\n\r\nfunction getSpecNameById(specId) {\r\n const specs = [\r\n \"Seats\",\r\n \"Fuel Type\",\r\n \"Stock\",\r\n \"Door count\",\r\n \"Engine\",\r\n \"Transmission\",\r\n \"Drivetrain\",\r\n \"Combined MPG\",\r\n \"Warranty\",\r\n \"Wheels\"\r\n ];\r\n return specs[specId];\r\n}\r\n","import React, { useEffect } from \"react\";\r\n\r\nfunction withAppcuesIdentification(WrappedComponent) {\r\n function AppcuesIdentification(props) {\r\n useEffect(() => {\r\n window.Appcues.identify(props.loggedInUser?.id, {\r\n firstName: props.loggedInUser?.firstName,\r\n lastName: props.loggedInUser?.lastName,\r\n username: props.loggedInUser?.username,\r\n tier:props.loggedInUser?.tier\r\n });\r\n }, [props.loggedInUser]);\r\n\r\n return ;\r\n }\r\n return React.memo(AppcuesIdentification);\r\n}\r\n\r\nexport default withAppcuesIdentification;\r\n","import React from \"react\";\r\nimport {\r\n MixedWidget1,\r\n MixedWidget14,\r\n ListsWidget9,\r\n StatsWidget11,\r\n StatsWidget12,\r\n ListsWidget1,\r\n AdvanceTablesWidget2,\r\n AdvanceTablesWidget4,\r\n ListsWidget3,\r\n ListsWidget4,\r\n ListsWidget8,\r\n} from \"../widgets\";\r\nexport function Demo1Dashboard() {\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","import React from \"react\";\r\nimport {ListsWidget10, ListsWidget11, AdvanceTablesWidget1, MixedWidget6, MixedWidget10, MixedWidget11, MixedWidget12, TilesWidget1, TilesWidget3, TilesWidget10, TilesWidget11, TilesWidget12, TilesWidget13, TilesWidget14} from \"../widgets\";\r\n\r\nexport function Demo2Dashboard() {\r\n return <>\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
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\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
\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 {/* 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","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n firstName: Yup.string().required(),\r\n lastName: Yup.string().required(),\r\n phoneNumber: Yup.string().nullable(),\r\n clientId: Yup.string().nullable(),\r\n username: Yup.string().required(),\r\n password: Yup.string().required(),\r\n roleId: Yup.string().required()\r\n});","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"Role/\";\r\n\r\nconst getRoles = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetRoles', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveRole = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveRole', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getRoles,\r\n saveRole,\r\n}","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"Users/\";\r\n\r\nconst getAllUsers = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetAllUser', constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst registerUser = async (user) => await axiosInstance.post(ENDPOINTORIGIN + 'AddUser', user, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst getUserById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetUserById/' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateUser = async (user) => await axiosInstance.post(ENDPOINTORIGIN + 'edit', user, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst changeUserPassword = async (userId, pwd) => await axiosInstance.post(ENDPOINTORIGIN + `ChangePassword/${userId}/${pwd}`, {}, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst deleteUser = async (userId) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteUser/' + userId, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst deleteUserByIsDelete = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeleteUserByIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n getAllUsers,\r\n registerUser,\r\n getUserById,\r\n changeUserPassword,\r\n deleteUser,\r\n updateUser,\r\n deleteUserByIsDelete\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport constants from \"../../constants/constants\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { useFormik } from \"formik\";\r\nimport UserValidator from \"../../helpers/validators/UserValidator\";\r\nimport { getErrorField } from \"../../helpers/helper\";\r\nimport * as clientService from \"../../services/management/clientService\";\r\nimport * as roleService from \"../../services/management/roleService\";\r\nimport * as userService from \"../../services/management/userService\";\r\nimport * as alert from \"../../redux/alertSnackBarRedux\";\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Select from '@material-ui/core/Select';\r\nimport { values } from 'lodash';\r\n\r\n// const BlueCheckBox = withStyles({\r\n// root: {\r\n// color: blue[400],\r\n// '&$checked': {\r\n// color: blue[600],\r\n// },\r\n// },\r\n// checked: {},\r\n// })((props) => );\r\n\r\nconst initialState = {\r\n id: 0,\r\n firstName: '',\r\n lastName: '',\r\n phoneNumber: '',\r\n clientId: 0,\r\n username: '',\r\n password: '',\r\n role: '',\r\n roleId: '',\r\n isDeleted: false\r\n}\r\n\r\nconst AddUserModal = (props) => {\r\n const { showAlert, show, hide, reloadTable, userToEditId, resetUserToEdit } = props;\r\n const [disableClientSelectField, setDisableClientSelectField] = useState(false);\r\n const [user, setUser] = useState(initialState);\r\n const [clientList, setClientList] = useState([]);\r\n const [roleList, setRoleList] = useState([]);\r\n\r\n useEffect(() => {\r\n clientService.getClients().then(res => {\r\n setClientList(res);\r\n });\r\n roleService.getRoles().then(res => {\r\n setRoleList(res);\r\n })\r\n\r\n }, [show]);\r\n\r\n useEffect(() => {\r\n if (userToEditId) {\r\n fetchSavedUser();\r\n } else {\r\n setUser(initialState);\r\n resetUserToEdit();\r\n formik.resetForm();\r\n }\r\n }, [userToEditId]);\r\n\r\n const fetchSavedUser = () => {\r\n userService.getUserById(userToEditId).then(res => {\r\n setUser(res);\r\n (res.role.roleName === 'SuperAdmin') && setDisableClientSelectField(true);\r\n })\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: user,\r\n validationSchema: UserValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveUser(values, setSubmitting);\r\n }\r\n });\r\n\r\n const returnSelectedRole = (value) => {\r\n const selectedValue = Number(value.roleId);\r\n return roleList.find(role => role.roleId === selectedValue)?.roleName;\r\n }\r\n\r\n const saveUser = (values, setSubmitting) => {\r\n var selectedRole = returnSelectedRole(values);\r\n let userModel = { ...values, clientId: (selectedRole === 'SuperAdmin') ? null : Number(values.clientId) };\r\n console.log('model', userModel);\r\n if (!(userModel.role === 'SuperAdmin') && userModel.clientId === 0) {\r\n showAlert({ message: \"Please select a client if a user is not a super admin\", variant: 'warning' });\r\n setSubmitting(false);\r\n return;\r\n }\r\n if (user.id > 0) {\r\n userService.updateUser(userModel).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n reloadTable();\r\n hideUserModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n } else {\r\n registerUser(userModel, setSubmitting);\r\n }\r\n }\r\n\r\n const registerUser = (userModel, setSubmitting) => {\r\n if (userModel.password === \"\") {\r\n showAlert({ message: \"Please enter password for the user\", variant: 'warning' });\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n userService.registerUser(userModel).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n reloadTable();\r\n hideUserModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n\r\n const hideUserModal = () => {\r\n setUser(initialState);\r\n resetUserToEdit();\r\n formik.resetForm();\r\n props.hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {userToEditId > 0 ? \"Edit\" : \"Add\"} User\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n {formik.touched.firstName && formik.errors.firstName ? (\r\n
\r\n {formik.errors.firstName}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n\r\n {formik.touched.lastName && formik.errors.lastName ? (\r\n
\r\n {formik.errors.lastName}\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n\r\n {formik.touched.phoneNumber && formik.errors.phoneNumber ? (\r\n
\r\n {formik.errors.phoneNumber}\r\n
\r\n ) : null}\r\n
\r\n {\r\n
\r\n \r\n Client\r\n {\r\n if (e.target.value === \"\") {\r\n formik.setFieldValue(\"clientId\", \"\");\r\n }\r\n else {\r\n formik.setFieldValue(\"clientId\", Number(e.target.value));\r\n }\r\n }}\r\n >\r\n\r\n )\r\n }\r\n \r\n {formik.touched.clientId && formik.errors.clientId ? (\r\n
\r\n {formik.errors.clientId}\r\n
\r\n ) : null}\r\n
\r\n
\r\n }\r\n\r\n\r\n
\r\n \r\n\r\n {formik.touched.username && formik.errors.username ? (\r\n
\r\n {formik.errors.username}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n {\r\n userToEditId > 0 ? <> :\r\n <>\r\n \r\n\r\n {formik.touched.password && formik.errors.password ? (\r\n
\r\n {formik.errors.password}\r\n
\r\n ) : null}\r\n \r\n }\r\n
\r\n {\r\n
\r\n \r\n Role\r\n {\r\n var selectedRole = returnSelectedRole(e.target.value);\r\n if (selectedRole === \"\") {\r\n formik.setFieldValue(\"roleId\", \"\");\r\n }\r\n else {\r\n formik.setFieldValue(\"roleId\", Number(e.target.value));\r\n if(selectedRole === \"SuperAdmin\") {\r\n formik.setFieldValue(\"clientId\", \"\");\r\n setDisableClientSelectField(true);\r\n }\r\n else{\r\n setDisableClientSelectField(false);\r\n }\r\n }\r\n }}\r\n >\r\n )\r\n }\r\n\r\n \r\n {formik.touched.roleId && formik.errors.roleId ? (\r\n
\r\n {formik.errors.roleId}\r\n
\r\n ) : null}\r\n
\r\n
\r\n }\r\n\r\n\r\n {/*
\r\n \r\n }\r\n label=\"Set as admin\"\r\n labelPlacement=\"end\"\r\n />\r\n
*/}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n );\r\n}\r\n\r\nexport default connect(null, alert.actions)(AddUserModal);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n password: Yup.string()\r\n .required('Enter a password'),\r\n confirmPassword: Yup.string()\r\n .required('Enter a Confirm Password')\r\n .oneOf([Yup.ref('password')], \"Passwords does not match\"),\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { useFormik } from \"formik\";\r\nimport ChangePasswordValidator from \"../../helpers/validators/ChangePasswordValidator\";\r\nimport { getErrorField } from \"../../helpers/helper\";\r\nimport * as userService from \"../../services/management/userService\";\r\nimport * as alert from \"../../redux/alertSnackBarRedux\";\r\n\r\nconst defaultState = {\r\n password: '',\r\n confirmPassword: '',\r\n}\r\n\r\nconst ChangePasswordModal = (props) => {\r\n const { showAlert, show, hide, userToEditId, resetUserToEdit } = props;\r\n const [initialState, setInitialState] = useState(defaultState);\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: initialState,\r\n validationSchema: ChangePasswordValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n changePassword(values, setSubmitting);\r\n }\r\n });\r\n\r\n const changePassword = (values, setSubmitting) => {\r\n userService.changeUserPassword(userToEditId, values.password).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n hidePasswordModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n\r\n const hidePasswordModal = () => {\r\n setInitialState(defaultState);\r\n formik.resetForm();\r\n resetUserToEdit();\r\n hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Update Password\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n {formik.touched.password && formik.errors.password ? (\r\n
\r\n {formik.errors.password}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n\r\n {formik.touched.confirmPassword && formik.errors.confirmPassword ? (\r\n
\r\n {formik.errors.confirmPassword}\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n );\r\n}\r\n\r\nexport default connect(null, alert.actions)(ChangePasswordModal);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"Project/\";\r\n\r\nconst getProjectById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectByClientId = async (userId) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectByClientId?userId=' + userId, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectByIdForSharable = async (token) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectByIdForSharable?token=' + token, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectIdForAnonymousUser = async (token) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectIdForAnonymousUser?token=' + token, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjects = async (isCompleted) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjects?isCompleted=' + isCompleted, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getArchivedProjects = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetArchivedProjects', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProject = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProject', model, { ...constants.REQUIRE_INTERCEPTORS, fileHandler: true });\r\nconst udpate3dLink = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'Update3dLink', model, { ...constants.REQUIRE_INTERCEPTORS});\r\n\r\nconst updateImages = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'Update2dImage', model, { ...constants.REQUIRE_INTERCEPTORS, fileHandler: true });\r\n\r\nconst deleteProject = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteProject?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst completeProject = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'completeProject?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectByIsDeleteFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeleteProjectByIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\n\r\nexport {\r\n getProjectById,\r\n getProjectByClientId,\r\n getProjectByIdForSharable,\r\n getProjectIdForAnonymousUser,\r\n getProjects,\r\n saveProject,\r\n udpate3dLink,\r\n updateImages,\r\n deleteProject,\r\n completeProject,\r\n getArchivedProjects,\r\n deleteProjectByIsDeleteFlag\r\n}","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"UserProject/\";\r\n\r\nconst GetUserProjects = async (userId) => await axiosInstance.get(ENDPOINTORIGIN + 'GetUserProjects?userId=' + userId, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getUserProjectByUserId = async (userId) => await axiosInstance.get(ENDPOINTORIGIN + 'GetUserProjectByUserId?id=' + userId, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveUserProject = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveUserProject', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n GetUserProjects,\r\n getUserProjectByUserId,\r\n saveUserProject,\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport constants from \"../../constants/constants\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { useFormik } from \"formik\";\r\nimport UserValidator from \"../../helpers/validators/UserValidator\";\r\nimport { getErrorField } from \"../../helpers/helper\";\r\nimport * as projectService from \"../../services/service/projectService\";\r\nimport * as userProjectService from \"../../services/management/userProjectService\";\r\nimport * as userService from \"../../services/management/userService\";\r\nimport * as alert from \"../../redux/alertSnackBarRedux\";\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { AirlineSeatReclineExtraOutlined, LocalConvenienceStoreOutlined } from '@material-ui/icons';\r\n\r\n\r\nconst BlueCheckbox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst initialState = {\r\n projectName: '',\r\n userID: '',\r\n projectID: 0,\r\n accessibleToUser: '',\r\n}\r\n\r\nconst AssignProjectModal = (props) => {\r\n const { showAlert, show, hide, reloadTable, userToEditId } = props;\r\n const [userProject, setUserProject] = useState(initialState);\r\n const [projectList, setProjectList] = useState([]);\r\n const [clientId, setClientId] = useState(0);\r\n const [userProjectList, setUserProjectList] = useState([]);\r\n const [userProjects, setUserProjects] = useState([]);\r\n\r\n useEffect(() => {\r\n if (userToEditId && show) {\r\n projectService.getProjectByClientId(userToEditId).then(res => {\r\n setProjectList(res);\r\n });\r\n userProjectService.GetUserProjects(userToEditId).then(res => {\r\n setUserProjectList(res);\r\n });\r\n }\r\n }, [show]);\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n validationSchema: UserValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n // saveUserProject(values, setSubmitting);\r\n }\r\n });\r\n\r\n const saveUserProject = (values) => {\r\n userProjectService.saveUserProject(values).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n console.log(ex);\r\n });\r\n }\r\n\r\n const hideUserProjectModal = () => {\r\n formik.resetForm();\r\n hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Assign Nspections\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {projectList.map((proj, i) => {\r\n return (\r\n
\r\n \r\n x.projectID === proj.id)?.accessibleToUser ?? false}\r\n onChange={(e, val) => {\r\n let tempArr = [...userProjectList];\r\n let tempUserProject = tempArr.find(x => x.projectID === proj.id);\r\n tempUserProject.accessibleToUser = val;\r\n\r\n setUserProject(tempUserProject);\r\n setUserProjectList(tempArr);\r\n saveUserProject(tempUserProject);\r\n }}\r\n />\r\n }\r\n label={proj.projectName}\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n
\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n );\r\n}\r\n\r\nexport default connect(null, alert.actions)(AssignProjectModal);","import React, { useEffect, useState } from \"react\";\r\nimport AddUserModal from '../../../components/AddUserModal';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../_metronic/_helpers\";\r\nimport * as userService from \"../../../../services/management/userService\";\r\nimport { connect } from \"react-redux\";\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport { checkTierPlanAndRoleFreeTier, F } from '../../../../helpers/helper';\r\nimport * as confirmModal from \"../../../../redux/confirmModalRedux\";\r\nimport ChangePasswordModal from \"../../../components/ChangePasswordModal\";\r\nimport AssignProjectModal from \"../../../components/AssignProjectModal\";\r\n\r\nconst UserListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, tierPlan, auth } = props;\r\n const [deleteUserModel, setDeleteUserModel] = useState(\r\n {\r\n id: 0,\r\n firstName: '',\r\n lastName: '',\r\n phoneNumber: '',\r\n clientId: 0,\r\n username: '',\r\n password: '',\r\n role: '',\r\n roleId: '',\r\n isDeleted: false\r\n }\r\n )\r\n const [userModalVisible, setUserModalVisible] = useState(false);\r\n const [assignProjectModalVisible, setAssignProjectModalVisible] = useState(false);\r\n const [users, setUsers] = useState([]);\r\n const [userToEditId, setUserToEditId] = useState(null);\r\n const [changePasswordModalIsVisible, setChangePasswordModalIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n loadUsersTable();\r\n }, []);\r\n\r\n const loadUsersTable = () => {\r\n userService.getAllUsers().then(res => {\r\n setUsers(res);\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"firstName\",\r\n label: \"First Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"lastName\",\r\n label: \"Last Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"phoneNumber\",\r\n label: \"Phone Number\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"username\",\r\n label: \"Username\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n }, {\r\n name: \"client\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{users[dataIndex].client ? users[dataIndex].client : '-'}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"role\",\r\n label: \"Role\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{users[dataIndex].role}

\r\n )\r\n }\r\n },\r\n },\r\n\r\n // {\r\n // name: \"isAdmin\",\r\n // label: \"Is Admin?\",\r\n // options: {\r\n // filter: true,\r\n // sort: true,\r\n // customBodyRenderLite: (dataIndex) => {\r\n // return (\r\n // \r\n // \r\n // )\r\n // }\r\n // }\r\n // },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {/* Edit User\r\n }\r\n >\r\n {\r\n setUserToEditId(users[dataIndex].id);\r\n setUserModalVisible(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n */}\r\n {\r\n setUserToEditId(users[dataIndex].id);\r\n setAssignProjectModalVisible(true);\r\n }}\r\n >\r\n Assign \r\n \r\n {\r\n setUserToEditId(users[dataIndex].id);\r\n setUserModalVisible(true);\r\n }}\r\n >\r\n Edit\r\n \r\n\r\n {/* Change Password\r\n }\r\n >\r\n {\r\n setUserToEditId(users[dataIndex].id);\r\n setChangePasswordModalIsVisible(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n */}\r\n\r\n {/* Delete User\r\n }\r\n >\r\n showConfirmModal({\r\n title: \"Delete User\",\r\n text: \"Are you sure you want to delete this user?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteUser(users[dataIndex].id)\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n */}\r\n {\r\n checkTierPlanAndRoleFreeTier(tierPlan, auth.role) && \r\n showConfirmModal({\r\n title: \"Delete User\",\r\n text: \"Are you sure you want to delete this user?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteUser(users[dataIndex].id, users[dataIndex].clientId, users[dataIndex].roleId)\r\n })\r\n }\r\n >\r\n Delete\r\n \r\n }\r\n\r\n {\r\n setUserToEditId(users[dataIndex].id);\r\n setChangePasswordModalIsVisible(true);\r\n }}\r\n >\r\n Update Password\r\n \r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const deleteUser = (userId, clientId, roleId) => {\r\n let newModel = { ...deleteUserModel, isDeleted: true, id: userId, roleId: roleId, clientId: clientId };\r\n userService.deleteUserByIsDelete(newModel).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n loadUsersTable();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n }).finally(() => hideConfirmModal())\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Users\r\n \r\n \r\n View and Manage Users\r\n \r\n

\r\n {\r\n (auth.role === 'SuperAdmin' || auth.role === 'Admin') &&\r\n
\r\n {\r\n setUserToEditId(null);\r\n setUserModalVisible(true)\r\n }}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add User\r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n loadUsersTable()}\r\n show={userModalVisible}\r\n resetUserToEdit={() => setUserToEditId(null)}\r\n hide={() => setUserModalVisible(false)}\r\n />\r\n loadUsersTable()}\r\n show={assignProjectModalVisible}\r\n hide={() => setAssignProjectModalVisible(false)}\r\n />\r\n setUserToEditId(null)}\r\n hide={() => setChangePasswordModalIsVisible(false)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions })(UserListingPage);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n logoFile: Yup.string().nullable(),\r\n businessName: Yup.string().required(\"Business is required\"),\r\n clientTierId: Yup.string().required(\"Client Tier is required\"),\r\n noOfProject: Yup.number().required(\"Please specify no of projects\"),\r\n noOfProject: Yup.number().nullable(),\r\n contactName: Yup.string().required(\"Contact Name is required\"),\r\n contactEmail: Yup.string().email(\"Please enter a valid email\").required(\"Contact Email is required\"),\r\n contactPhone: Yup.string().required(\"Contact Phone is required\"),\r\n companyAddress: Yup.string().required(\"Company Address is required\"),\r\n});","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ClientTier/\";\r\n\r\nconst getClientTierById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetClientTierById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getClientTiers = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetClientTiers', constants.REQUIRE_INTERCEPTORS);\r\nconst getProductsFromChargify = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetProductsFromChargify', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveClientTier = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveClientTier', model, { ...constants.REQUIRE_INTERCEPTORS, fileHandler: true });\r\n\r\nconst deleteClientTierByIsDeleteFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeleteClientTierByIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n getClientTierById,\r\n getClientTiers,\r\n saveClientTier,\r\n getProductsFromChargify,\r\n deleteClientTierByIsDeleteFlag\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport constants from \"../../constants/constants\";\r\nimport { useFormik } from \"formik\";\r\nimport { blue } from '@material-ui/core/colors';\r\nimport ClientValidator from \"../../helpers/validators/ClientValidator\";\r\nimport { getErrorField, convertJsonToFormData } from \"../../helpers/helper\";\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport * as clientService from \"../../services/management/clientService\";\r\nimport * as clientTierService from \"../../services/management/clientTierService\";\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport * as alert from \"../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../redux/confirmModalRedux\";\r\n\r\nimport { FilePond } from \"react-filepond\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n\r\nconst BlueCheckbox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst initialState = {\r\n id: 0,\r\n logoPath: null,\r\n businessName: '',\r\n contactName: '',\r\n contactEmail: '',\r\n contactPhone: '',\r\n companyAddress: '',\r\n clientTierId: '',\r\n noOfProject: '',\r\n noOfReport: '',\r\n isDeleted: false,\r\n removeWaterMark: false,\r\n removeCobrandedReport: true,\r\n allowAnonymousCollaboration: false\r\n}\r\n\r\nconst AddClientModal = (props) => {\r\n const { showAlert, reloadTable, clientToEditId, resetClientToEdit, setProcessing } = props;\r\n const [client, setClient] = useState(initialState);\r\n const [tierList, setTierList] = useState([]);\r\n const [logo, setLogo] = useState([]);\r\n\r\n useEffect(() => {\r\n if (clientToEditId) {\r\n clientService.getClientById(clientToEditId).then(res => {\r\n setClient(res);\r\n })\r\n }\r\n }, [clientToEditId]);\r\n\r\n useEffect(() => {\r\n setToFreeTier();\r\n }, []);\r\n\r\n const setToFreeTier = () => {\r\n clientTierService.getClientTiers().then(res => {\r\n setTierList(res);\r\n if (!clientToEditId) {\r\n var freeTier = res.find(x => x.name === 'Individual');\r\n if (freeTier) {\r\n formik.setFieldValue('clientTierId', freeTier.id);\r\n }\r\n }\r\n })\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: client,\r\n validationSchema: ClientValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveClient(values, setSubmitting);\r\n }\r\n });\r\n\r\n const saveClient = (values, setSubmitting) => {\r\n setProcessing(true);\r\n const clientModel = {\r\n ...values,\r\n logoFile: logo.length > 0 ? logo[0].file : null\r\n };\r\n clientService.saveClient(convertJsonToFormData(clientModel)).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n reloadTable();\r\n hideClientModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n setProcessing(false);\r\n })\r\n }\r\n\r\n const hideClientModal = () => {\r\n setClient(initialState);\r\n resetClientToEdit();\r\n formik.resetForm();\r\n setToFreeTier();\r\n props.hide();\r\n }\r\n return (\r\n hideClientModal()}\r\n >\r\n \r\n \r\n {clientToEditId > 0 ? \"Edit\" : \"Add\"} Client\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {\r\n client.logoPath ?\r\n <>\r\n \r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n \r\n\r\n {formik.touched.businessName && formik.errors.businessName ? (\r\n
\r\n {formik.errors.businessName}\r\n
\r\n ) : null}\r\n
\r\n\r\n\r\n
\r\n \r\n {formik.touched.contactName && formik.errors.contactName ? (\r\n
\r\n {formik.errors.contactName}\r\n
\r\n ) : null}\r\n
\r\n\r\n\r\n
\r\n \r\n {formik.touched.contactPhone && formik.errors.contactPhone ? (\r\n
\r\n {formik.errors.contactPhone}\r\n
\r\n ) : null}\r\n
\r\n\r\n\r\n
\r\n \r\n {formik.touched.contactEmail && formik.errors.contactEmail ? (\r\n
\r\n {formik.errors.contactEmail}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n {formik.touched.companyAddress && formik.errors.companyAddress ? (\r\n
\r\n {formik.errors.companyAddress}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n {formik.touched.noOfProject && formik.errors.noOfProject ? (\r\n
\r\n {formik.errors.noOfProject}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n {formik.touched.noOfReport && formik.errors.noOfReport ? (\r\n
\r\n {formik.errors.noOfReport}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n Tier Plan\r\n {\r\n if (e.target.value === \"\") {\r\n formik.setFieldValue(\"clientTierId\", \"\");\r\n }\r\n else {\r\n formik.setFieldValue(\"clientTierId\", Number(e.target.value));\r\n }\r\n }}\r\n >\r\n )\r\n }\r\n\r\n \r\n {formik.touched.clientTierId && formik.errors.clientTierId ? (\r\n
\r\n {formik.errors.clientTierId}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {\r\n {\r\n formik.setFieldValue(\"removeWaterMark\", val);\r\n }}\r\n />\r\n }\r\n label=\"Remove Water Mark\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {\r\n {\r\n formik.setFieldValue(\"removeCobrandedReport\", val);\r\n }}\r\n />\r\n }\r\n label=\"Remove Co-branding\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {\r\n {\r\n formik.setFieldValue(\"allowAnonymousCollaboration\", val);\r\n }}\r\n />\r\n }\r\n label=\"Allow Anonymous Collaboration\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {clientToEditId > 0 ? \"Save\" : \"Add\"} Client {formik.isSubmitting && }\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default connect(null, { ...alert.actions, ...confirmModal.actions })(AddClientModal);","import React, { useState, useEffect } from 'react';\r\nimport AddClientModal from '../../../components/AddClientModal';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport { connect } from \"react-redux\";\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../../redux/confirmModalRedux\";\r\n\r\nimport * as clientService from \"../../../../services/management/clientService\";\r\nimport * as clientTierService from \"../../../../services/management/clientTierService\";\r\n\r\nimport constants from '../../../../constants/constants';\r\n\r\nconst ClientListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, auth, history, setProcessing } = props;\r\n const [loading, setLoading] = useState(false);\r\n const [paymentProfileLinks, setPaymentProfileLinks] = useState({});\r\n const [deleteClientModel, setDeleteClientModel] = useState(\r\n {\r\n id: 0,\r\n logoPath: null,\r\n businessName: '',\r\n contactName: '',\r\n contactEmail: '',\r\n contactPhone: '',\r\n companyAddress: '',\r\n isDeleted: false\r\n }\r\n )\r\n const [clientModalVisible, setClientModalVisible] = useState(false)\r\n const [clients, setClients] = useState([]);\r\n const [clientToEditId, setClientToEditId] = useState(null);\r\n\r\n useEffect(() => {\r\n loadClientTable();\r\n }, [])\r\n\r\n const loadClientTable = () => {\r\n clientService.getClients().then(res => {\r\n setClients(res);\r\n })\r\n }\r\n\r\n const loadPaymentProfileLink = (id) => {\r\n const existingLinkInfo = paymentProfileLinks[id];\r\n\r\n if (existingLinkInfo) {\r\n const expiresAt = new Date(existingLinkInfo.expiresAt);\r\n const now = new Date();\r\n\r\n if (expiresAt > now) {\r\n window.open(existingLinkInfo.url, '_blank'); // Open URL in a new tab\r\n return;\r\n }\r\n }\r\n\r\n clientService.getManagementLink(id).then(res => {\r\n if (res && res.url && res.expiresAt) {\r\n const expiresAt = new Date(res.expiresAt);\r\n const now = new Date();\r\n\r\n if (expiresAt > now) {\r\n setPaymentProfileLinks({\r\n ...paymentProfileLinks,\r\n [id]: { url: res.url, expiresAt: res.expiresAt } // Store the URL and its expiry time\r\n });\r\n window.open(res.url, '_blank'); // Open URL in a new tab\r\n } else {\r\n showAlert({ message: \"The link has expired.\", variant: 'error' });\r\n }\r\n } else {\r\n showAlert({ message: \"Failed to get a valid URL or expiry date.\", variant: 'error' });\r\n }\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n })\r\n }\r\n\r\n // const loadClientTierLists = () => {\r\n // clientTierService.getClientTiers().then(res => {\r\n // setClientTierList(res);\r\n // })\r\n // }\r\n\r\n const deleteClient = (clientId) => {\r\n setLoading(true);\r\n setProcessing(true)\r\n let newModel = { ...deleteClientModel, isDeleted: true, id: clientId };\r\n clientService.deleteClientByIsDeleteFlag(newModel).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n loadClientTable();\r\n hideConfirmModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n }).finally(() => {\r\n setLoading(false);\r\n setProcessing(false)\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"businessName\",\r\n label: \"Business Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\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 name: \"contactName\",\r\n label: \"Contact Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n }, {\r\n name: \"contactPhone\",\r\n label: \"Contact Phone\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n }, {\r\n name: \"contactEmail\",\r\n label: \"Contact Email\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"noOfProject\",\r\n label: \"No of Nspections\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"noOfReport\",\r\n label: \"No of Reports\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{clients[dataIndex].noOfReport ? clients[dataIndex].noOfReport : 'Default'}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"clientTier\",\r\n label: \"Tier Plan\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{clients[dataIndex].clientTier}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n
\r\n {\r\n setClientToEditId(clients[dataIndex].id);\r\n setClientModalVisible(true);\r\n }}\r\n >\r\n Edit\r\n \r\n {\r\n loadPaymentProfileLink(clients[dataIndex].refId);\r\n }}\r\n >\r\n Billing\r\n \r\n {\r\n auth.role === \"SuperAdmin\" ?\r\n showConfirmModal({\r\n title: \"Delete Client\",\r\n text: \"Are you sure you want to delete this client? Note that deleting the client will delete the subscriptions associated with the client which cannot be recovered.\",\r\n rightBtnText: `Confirm`,\r\n btnAction: () => deleteClient(clients[dataIndex].id),\r\n })\r\n }\r\n >\r\n Delete\r\n \r\n : <>\r\n }\r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Clients\r\n \r\n \r\n View and Manage Clients\r\n \r\n

\r\n
\r\n {\r\n auth.role === 'SuperAdmin' ?\r\n <>\r\n {\r\n setClientToEditId(null);\r\n setClientModalVisible(true);\r\n }}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add Client\r\n \r\n \r\n :\r\n <>\r\n }\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n loadClientTable()}\r\n resetClientToEdit={() => setClientToEditId(null)}\r\n show={clientModalVisible}\r\n hide={() => setClientModalVisible(false)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions })(ClientListingPage);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n projectName: Yup.string().required(\"Nspection Name is required\"),\r\n clientId: Yup.string().required(\"Client is required\"),\r\n scanDate: Yup.string().required(\"Scan Date is required\"),\r\n modelLink: Yup.string().nullable(),\r\n projectTypeId: Yup.string().required(\"Nspection Type is required\"),\r\n notes: Yup.string().nullable(),\r\n});","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ProjectType/\";\r\n\r\nconst getProjectTypes = async (clientId) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypes?clientId=' + clientId, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectTypeById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypeById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst setDefaultProjectType = async (clientId, id) => await axiosInstance.get(ENDPOINTORIGIN + `SetDefaultProjectType?clientId=${clientId}&projectTypeId=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getAllProjectTypes = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetAllProjectTypes', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProjectType = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectType', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectType = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteProjectType?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectTypeIsDeletedFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeleteProjectTypeIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getProjectTypes,\r\n getProjectTypeById,\r\n getAllProjectTypes,\r\n saveProjectType,\r\n setDefaultProjectType,\r\n deleteProjectType,\r\n deleteProjectTypeIsDeletedFlag\r\n}","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Select from '@material-ui/core/Select';\r\nimport constants from \"../../constants/constants\";\r\nimport CreateProjectValidator from \"../../helpers/validators/CreateProjectValidator\";\r\nimport { useFormik } from \"formik\";\r\nimport { FilePond } from \"react-filepond\";\r\nimport { getErrorField, convertJsonToFormData } from '../../helpers/helper';\r\nimport * as projectService from '../../services/service/projectService';\r\nimport * as projectTypeService from '../../services/service/projectTypeService';\r\nimport * as clientService from '../../services/management/clientService';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\nimport * as confirmModal from \"../../redux/confirmModalRedux\";\r\nimport moment from 'moment';\r\n\r\nconst initialState = {\r\n id: 0,\r\n projectName: '',\r\n clientId: '',\r\n scanDate: '',\r\n modelLink: '',\r\n projectTypeId: '',\r\n notes: '',\r\n isDeleted: false,\r\n filesToSave: []\r\n}\r\nconst NewProjectModal = (props) => {\r\n const filePondRef = useRef(null); // Initialize as null\r\n const { show, hide, reloadTable, showAlert, showConfirmModal, projectToEditId, hideConfirmModal, setProcessing } = props;\r\n const [project, setProject] = useState(initialState);\r\n const [clientList, setClientList] = useState([]);\r\n const [clientId, setClientId] = useState(0);\r\n const [projectImages, setProjectImages] = useState([]);\r\n const [filePondFiles, setFilePondFiles] = useState([]);\r\n const [filePondInstance, setFilePondInstance] = useState(null);\r\n const [isProjectSubmitting, setIsProjectSubmitting] = useState(false);\r\n const [projectTypeList, setProjectTypeList] = useState([]);\r\n const [formFieldValues, setFormFieldValues] = useState({});\r\n const [nspectionTypeSelected, setNspectionTypeSelected] = useState(null);\r\n const [formJson, setFormJson] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const handleValueChange = (val, key) => {\r\n setFormFieldValues((prevValues) => ({\r\n ...formFieldValues,\r\n [key]: val,\r\n }));\r\n };\r\n\r\n useEffect(() => {\r\n if (projectToEditId) {\r\n projectService.getProjectById(projectToEditId).then(res => {\r\n const model = { ...res, scanDate: moment(res.scanDate).format('yyyy-MM-DD') };\r\n setProject(model);\r\n\r\n if (model.projectType) {\r\n setNspectionTypeSelected(model.projectType.name);\r\n if (model.formJSON) {\r\n setFormJson(JSON.parse(model.formJSON));\r\n }\r\n }\r\n\r\n // Populate FilePond with existing images\r\n const existingFiles = model.projectModelImages.map(image => ({\r\n source: `${constants.API_URL}api/${image.imagePath}`, // Make sure to correct this URL if it is different\r\n options: {\r\n type: 'local',\r\n file: {\r\n name: image.imagePath.split('/').pop(), // Extract filename from path\r\n size: 0 // Size is unknown\r\n }\r\n }\r\n }));\r\n setFilePondFiles(existingFiles);\r\n }).catch(err => {\r\n showAlert({ message: err.message, variant: 'error' });\r\n });\r\n }\r\n clientService.getClients().then(res => {\r\n setClientList(res);\r\n });\r\n if (clientId) {\r\n projectTypeService.getProjectTypes(clientId).then(res => {\r\n setProjectTypeList(res);\r\n });\r\n } else {\r\n projectTypeService.getAllProjectTypes().then(res => {\r\n setProjectTypeList(res);\r\n })\r\n }\r\n\r\n }, [show, clientId, projectToEditId]);\r\n\r\n // Function to determine initial values based on operation\r\n const getInitialValues = () => {\r\n if (projectToEditId) {\r\n // Editing an existing project, return the project values\r\n return {\r\n id: project.id,\r\n projectName: project.projectName,\r\n clientId: project.clientId,\r\n scanDate: moment(project.scanDate).format('yyyy-MM-DD'),\r\n modelLink: project.modelLink,\r\n projectTypeId: project.projectTypeId,\r\n notes: project.notes,\r\n isDeleted: project.isDeleted,\r\n filesToSave: [],\r\n };\r\n } else {\r\n return initialState;\r\n }\r\n };\r\n\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: getInitialValues(),\r\n validationSchema: CreateProjectValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveProject(values, setSubmitting)\r\n }\r\n });\r\n\r\n const handleFileUpload = (fileItems) => {\r\n setProjectImages(fileItems.map((fileItem) => (fileItem.file)));\r\n };\r\n\r\n const saveProject = (values, setSubmitting) => {\r\n setProcessing(true);\r\n setLoading(true);\r\n setIsProjectSubmitting(true);\r\n if (!values.modelLink && !projectImages.length > 0) {\r\n window.alert('Please upload images for the project or enter your model link to proceed.')\r\n }\r\n else {\r\n var valueToPost = values;\r\n\r\n if (nspectionTypeSelected && constants[nspectionTypeSelected]) {\r\n valueToPost = { ...valueToPost, formJson: JSON.stringify(fillJsonFormValue()) }\r\n }\r\n\r\n var model = convertJsonToFormData(valueToPost);\r\n projectImages.forEach(file => {\r\n model.append(\"filesToSave\", file);\r\n });\r\n projectService.saveProject(model).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n reloadTable();\r\n hideModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n setProcessing(false);\r\n hideConfirmModal();\r\n setLoading(false);\r\n })\r\n }\r\n }\r\n\r\n const fillJsonFormValue = () => {\r\n const tempFormJson = formJson;\r\n const objectKeys = Object.keys(formFieldValues);\r\n\r\n for (let i = 0; i < objectKeys.length; i += 1) {\r\n for (let j = 0; j < tempFormJson.length; j += 1) {\r\n const currentKey = objectKeys[i];\r\n\r\n if (tempFormJson[j].key === currentKey) {\r\n tempFormJson[j].value = formFieldValues[currentKey];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return tempFormJson;\r\n }\r\n\r\n const hideModal = () => {\r\n // Clear Formik form\r\n formik.resetForm();\r\n setProject(initialState);\r\n\r\n // Clear FilePond files\r\n setProjectImages([]);\r\n setFilePondFiles([]);\r\n\r\n hide();\r\n\r\n // Debug logging\r\n console.log(\"FilePond files cleared\");\r\n\r\n // Create a new instance of FilePond and replace the current instance\r\n if (filePondInstance) {\r\n const newFilePondInstance = FilePond.create(); // Create a new FilePond instance\r\n setFilePondInstance(newFilePondInstance);\r\n }\r\n\r\n setFormJson(null);\r\n setNspectionTypeSelected(null);\r\n setFormFieldValues({});\r\n };\r\n\r\n const renderFormField = (field) => {\r\n let {\r\n type,\r\n key,\r\n label,\r\n value,\r\n } = field;\r\n switch (type) {\r\n case 'text':\r\n return (\r\n
\r\n {\r\n handleValueChange(target.value, key);\r\n }}\r\n />\r\n
\r\n );\r\n case 'date':\r\n return (\r\n
\r\n handleValueChange(target.value, key)}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n
\r\n );\r\n default:\r\n return

Loading...

;\r\n }\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {projectToEditId > 0 ? \"Update\" : \"Create New\"} Nspection\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n {formik.touched.projectName && formik.errors.projectName ? (\r\n
\r\n {formik.errors.projectName}\r\n
\r\n ) : null}\r\n\r\n \r\n Client\r\n {\r\n if (e.target.value === \"\") {\r\n formik.setFieldValue(\"clientId\", \"\");\r\n setClientId(0);\r\n }\r\n else {\r\n formik.setFieldValue(\"clientId\", Number(e.target.value));\r\n setClientId(Number(e.target.value));\r\n }\r\n }}\r\n inputProps={{\r\n name: 'Client',\r\n id: 'outlined-age-native-simple',\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.clientId && formik.errors.clientId ? (\r\n
\r\n {formik.errors.clientId}\r\n
\r\n ) : null}\r\n
\r\n\r\n \r\n\r\n {formik.touched.scanDate && formik.errors.scanDate ? (\r\n
\r\n {formik.errors.scanDate}\r\n
\r\n ) : null}\r\n\r\n
\r\n
\r\n \r\n \r\n Nspection Type\r\n {\r\n if (e.target.value === \"\") {\r\n formik.setFieldValue(\"projectTypeId\", \"\");\r\n }\r\n else {\r\n const selectedNspection = projectTypeList.find((x) => x.id == e.target.value);\r\n if (selectedNspection) {\r\n setNspectionTypeSelected(selectedNspection.name);\r\n if (project.formJSON) {\r\n setFormJson(constants[selectedNspection.name].fields);\r\n }\r\n }\r\n\r\n formik.setFieldValue(\"projectTypeId\", Number(e.target.value));\r\n }\r\n }}\r\n inputProps={{\r\n name: 'ProjectType',\r\n id: 'outlined-age-native-simple',\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.projectTypeId && formik.errors.projectTypeId ? (\r\n
\r\n {formik.errors.projectTypeId}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n {formik.touched.modelLink && formik.errors.modelLink ? (\r\n
\r\n {formik.errors.modelLink}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n 2D Inspection\r\n {\r\n setFilePondInstance(instance);\r\n }}\r\n />\r\n {projectToEditId && (\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n
\r\n {\r\n nspectionTypeSelected && formJson && (\r\n <>\r\n
\r\n

{constants[nspectionTypeSelected].title}

\r\n
\r\n {\r\n formJson.map((x) => (\r\n renderFormField(x)\r\n ))\r\n }\r\n \r\n )\r\n }\r\n
\r\n
\r\n\r\n \r\n \r\n {\r\n !projectToEditId ?\r\n (\r\n \r\n ) :\r\n (\r\n \r\n )\r\n }\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default connect(null, { ...alert.actions, ...confirmModal.actions })(NewProjectModal);","import React, { useEffect, useState, useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport NewProjectModal from \"../../../components/NewProjectModal\";\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../../redux/confirmModalRedux\";\r\nimport * as projectService from '../../../../services/service/projectService';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst moment = require('moment');\r\n\r\nconst ProjectListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, auth, history, setProcessing } = props;\r\n const [deleteProjectModel, setDeleteProjectModel] = useState(\r\n {\r\n id: 0,\r\n projectName: '',\r\n clientId: '',\r\n scanDate: '',\r\n modelLink: '',\r\n projectTypeId: '',\r\n notes: '',\r\n isDeleted: false\r\n }\r\n )\r\n const [addProjectModalVisible, setAddProjectModalVisible] = useState(false);\r\n const [activeProjects, setActiveProjects] = useState([]);\r\n const [completedProjects, setCompletedProjects] = useState([]);\r\n const [archivedProjects, setArchivedProjects] = useState([]);\r\n const [projectToEditId, setProjectToEditId] = useState(null);\r\n\r\n useEffect(() => {\r\n loadActiveProjectTable();\r\n loadCompletedProjectTable();\r\n if (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') {\r\n loadArchivedProjectTable();\r\n }\r\n }, [history]);\r\n\r\n const loadActiveProjectTable = () => {\r\n projectService.getProjects(false).then(res => {\r\n setActiveProjects(res);\r\n })\r\n }\r\n\r\n const loadCompletedProjectTable = () => {\r\n projectService.getProjects(true).then(res => {\r\n setCompletedProjects(res);\r\n })\r\n }\r\n\r\n const loadArchivedProjectTable = () => {\r\n projectService.getArchivedProjects().then(res => {\r\n setArchivedProjects(res);\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"projectName\",\r\n label: \"Nspection Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"projectType\",\r\n label: \"Nspection Type\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{activeProjects[dataIndex].projectType}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"client\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{activeProjects[dataIndex].client}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"scanDate\",\r\n label: \"Scan Date\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{moment(activeProjects[dataIndex].scanDate).format('MM/DD/yyyy')}

\r\n )\r\n }\r\n },\r\n },\r\n\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n
\r\n \r\n View\r\n \r\n {\r\n (auth.role === 'SuperAdmin' || auth.role === 'Admin' || auth.role === 'Manager' || auth.role === 'User') &&\r\n (\r\n <>\r\n {\r\n setProjectToEditId(activeProjects[dataIndex].id);\r\n setAddProjectModalVisible(true);\r\n }}\r\n >\r\n Edit\r\n \r\n \r\n )\r\n }\r\n {\r\n (auth.role === 'SuperAdmin' || auth.role === 'Admin' || auth.role === 'Manager') &&\r\n showConfirmModal({\r\n title: \"Delete Nspection\",\r\n text: \"Are you sure you want to delete this project?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProject(activeProjects[dataIndex].id, activeProjects[dataIndex].clientId, activeProjects[dataIndex].projectTypeId, activeProjects[dataIndex].scanDate, false, true)\r\n })\r\n }\r\n >\r\n Delete\r\n \r\n }\r\n\r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const completed_columns = [\r\n {\r\n name: \"projectName\",\r\n label: \"Nspection Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"projectType\",\r\n label: \"Nspection Type\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{completedProjects[dataIndex].projectType}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"client\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{completedProjects[dataIndex].client}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"scanDate\",\r\n label: \"Scan Date\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{moment(completedProjects[dataIndex].scanDate).format('MM/DD/yyyy')}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"completedDateTime\",\r\n label: \"Completed Date\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{moment(completedProjects[dataIndex].completedDateTime).format('MM/DD/yyyy')}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n \r\n View\r\n \r\n {\r\n (auth.role === 'SuperAdmin' || auth.role === 'Admin' || auth.role === 'Manager' || auth.role === 'User') &&\r\n (\r\n <>\r\n {\r\n setProjectToEditId(completedProjects[dataIndex].id);\r\n setAddProjectModalVisible(true);\r\n }}\r\n >\r\n Edit\r\n \r\n showConfirmModal({\r\n title: \"Delete Nspection\",\r\n text: \"Are you sure you want to delete this project?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProject(completedProjects[dataIndex].id, completedProjects[dataIndex].clientId, completedProjects[dataIndex].projectTypeId, completedProjects[dataIndex].scanDate, false, true)\r\n })\r\n }\r\n >\r\n Delete\r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n const archived_column = [\r\n {\r\n name: \"projectName\",\r\n label: \"Nspection Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"projectType\",\r\n label: \"Nspection Type\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{archivedProjects[dataIndex].projectType}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"client\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{archivedProjects[dataIndex].client}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"scanDate\",\r\n label: \"Scan Date\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

{moment(archivedProjects[dataIndex].scanDate).format('MM/DD/yyyy')}

\r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') ?\r\n showConfirmModal({\r\n title: \"Retrieve\",\r\n text: \"Are you sure you want to retrieve this project?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProject(archivedProjects[dataIndex].id, archivedProjects[dataIndex].clientId, archivedProjects[dataIndex].projectTypeId, archivedProjects[dataIndex].scanDate, false, false)\r\n })\r\n }\r\n >\r\n Retrieve Nspection\r\n \r\n : <>\r\n }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const deleteProject = (projectId, clientId, projectTypeId, scanDate, isCompleted, isDeleted) => {\r\n setProcessing(true);\r\n let newModel = { ...deleteProjectModel, isDeleted: isDeleted, id: projectId, clientId: clientId, projectTypeId: projectTypeId, scanDate: scanDate };\r\n projectService.deleteProjectByIsDeleteFlag(newModel).then(res => {\r\n showAlert({ message: res.message, variant: 'success' })\r\n loadCompletedProjectTable();\r\n loadActiveProjectTable();\r\n loadArchivedProjectTable();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setProcessing(false);\r\n hideConfirmModal();\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 Active Nspections\r\n \r\n \r\n View and Manage Active Nspections\r\n \r\n

\r\n
\r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager' || auth.role === 'User') ?\r\n {\r\n setProjectToEditId(null);\r\n setAddProjectModalVisible(true);\r\n }}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add Nspection\r\n \r\n : <>\r\n }\r\n
\r\n
\r\n
\r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager' || auth.role === 'User') ?\r\n {\r\n setAddProjectModalVisible(false);\r\n setProjectToEditId(null);\r\n }}\r\n resetProjectToEdit={() => setProjectToEditId(null)}\r\n reloadTable={() => loadActiveProjectTable()}\r\n /> : <>\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Completed Nspections\r\n \r\n \r\n View and Manage Completed Nspections\r\n \r\n

\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {(auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') &&\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Archived Nspections\r\n \r\n \r\n View and Manage Archived Nspections\r\n \r\n

\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n }\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions })(ProjectListingPage);","import React, { useState } from \"react\";\r\n// import MatterportModelWindow from '../../../app/components/MatterportModelWindow';\r\n// import MatterportPointWindow from '../../../app/components/MatterportPointWindow';\r\n// import AddPointModal from '../../../app/components/AddPointModal';\r\n// import FullWidthTable from '../../../app/components/FullWidthTable';\r\n// import TableFullWidth from '../../../app/components/TableFullWidth';\r\nimport UserListingPage from '../../../app/pages/management/user/UserListingPage';\r\nimport ClientListingPage from '../../../app/pages/management/client/ClientListingPage';\r\nimport ProjectListingPage from '../../../app/pages/services/project/ProjectListingPage';\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\nconst Demo3Dashboard = (props) => {\r\n const { auth } = props;\r\n return (\r\n <>\r\n \r\n
\r\n {\r\n auth.role === \"SuperAdmin\" ?\r\n <>\r\n \r\n
\r\n \r\n \r\n : \r\n auth.role === 'Admin' ?\r\n <>\r\n \r\n \r\n : <>\r\n }\r\n\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
*/}\r\n {/* end::Row */}\r\n\r\n\r\n {/* begin::Row */}\r\n {/*
\r\n
\r\n \r\n
\r\n
*/}\r\n {/* end::Row */}\r\n\r\n {/*
\r\n
\r\n \r\n
\r\n
*/}\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\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, null)(Demo3Dashboard);","import React from \"react\";\r\n\r\nexport function Demo4Dashboard() {\r\n return <>;\r\n}\r\n","import React from \"react\";\r\n\r\nexport function Demo5Dashboard() {\r\n return <>;\r\n}\r\n","import React from \"react\";\r\n\r\nexport function Demo6Dashboard() {\r\n return <>;\r\n}\r\n","import React from \"react\";\r\n\r\nexport function Demo7Dashboard() {\r\n return <>;\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport {useHtmlClassService} from \"../../layout\";\r\nimport {Demo1Dashboard} from \"./Demo1Dashboard\";\r\nimport {Demo2Dashboard} from \"./Demo2Dashboard\";\r\nimport Demo3Dashboard from \"./Demo3Dashboard\";\r\nimport {Demo4Dashboard} from \"./Demo4Dashboard\";\r\nimport {Demo5Dashboard} from \"./Demo5Dashboard\";\r\nimport {Demo6Dashboard} from \"./Demo6Dashboard\";\r\nimport {Demo7Dashboard} from \"./Demo7Dashboard\";\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 }, [uiService]);\r\n return <>\r\n {layoutProps.demo === 'demo1' && }\r\n {layoutProps.demo === 'demo2' && }\r\n {layoutProps.demo === 'demo3' && }\r\n {layoutProps.demo === 'demo4' && }\r\n {layoutProps.demo === 'demo5' && }\r\n {layoutProps.demo === 'demo6' && }\r\n {layoutProps.demo === 'demo7' && }\r\n ;\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid,jsx-a11y/img-redundant-alt */\r\nimport React, { useMemo, useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { get, merge } from \"lodash\";\r\nimport { FormHelperText, Switch } from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\n// https://github.com/conorhastings/react-syntax-highlighter#prism\r\nimport { Prism as SyntaxHighlighter } from \"react-syntax-highlighter\";\r\n// See https://github.com/PrismJS/prism-themes\r\nimport { coy as highlightStyle } from \"react-syntax-highlighter/dist/esm/styles/prism\";\r\nimport {\r\n useHtmlClassService,\r\n setLayoutConfig,\r\n getInitLayoutConfig,\r\n} from \"../../layout\";\r\nimport { Card, CardBody, CardHeader, Notice } from \"../controls\";\r\n\r\nconst localStorageActiveTabKey = \"builderActiveTab\";\r\n\r\nexport function Builder() {\r\n const activeTab = localStorage.getItem(localStorageActiveTabKey);\r\n const [key, setKey] = useState(activeTab ? +activeTab : 0);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const htmlClassService = useHtmlClassService();\r\n const initialValues = useMemo(\r\n () =>\r\n merge(\r\n // Fulfill changeable fields.\r\n getInitLayoutConfig(),\r\n htmlClassService.config\r\n ),\r\n [htmlClassService.config]\r\n );\r\n\r\n const saveCurrentTab = (_tab) => {\r\n localStorage.setItem(localStorageActiveTabKey, _tab);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

\r\n The layout builder is to assist your set and configure your preferred\r\n project layout specifications and preview it in real time. The\r\n configured layout options will be saved until you change or reset\r\n them. To use the layout builder, choose the layout options and click\r\n the Preview button to preview the changes.\r\n

\r\n
\r\n {/*Formic off site: https://jaredpalmer.com/formik/docs/overview*/}\r\n {\r\n setIsLoading(true);\r\n setLayoutConfig(values);\r\n }}\r\n onReset={() => {\r\n setIsLoading(true);\r\n setLayoutConfig(getInitLayoutConfig());\r\n }}\r\n >\r\n {({ values, handleReset, handleSubmit, handleChange, handleBlur }) => (\r\n <>\r\n
\r\n {/*Header*/}\r\n
\r\n \r\n
  • \r\n {\r\n setKey(0);\r\n saveCurrentTab(0);\r\n }}\r\n >\r\n Mobile Header\r\n \r\n
  • \r\n
  • \r\n {\r\n setKey(1);\r\n saveCurrentTab(1);\r\n }}\r\n >\r\n Subheader\r\n \r\n
  • \r\n
  • \r\n {\r\n setKey(2);\r\n saveCurrentTab(2);\r\n }}\r\n >\r\n Content\r\n \r\n
  • \r\n
  • \r\n {\r\n setKey(3);\r\n saveCurrentTab(3);\r\n }}\r\n >\r\n Aside\r\n \r\n
  • \r\n
  • \r\n {\r\n setKey(4);\r\n saveCurrentTab(4);\r\n }}\r\n >\r\n Footer\r\n \r\n
  • \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n Enable fixed header for mobile mode\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Display subheader\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n Enable fixed(sticky) subheader. Requires{\" \"}\r\n Solid subheader style.\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Select layout width type\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Select subheader style\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Select layout width type\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n Display aside secondary panel\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n Allow aside minimizing\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n Set aside minimized by default\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n Set fixed footer for desktop mode only\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Select layout width type\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Preview\r\n {\" \"}\r\n \r\n Reset\r\n {\" \"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/*Config*/}\r\n \r\n \r\n Generated Config{\" \"}\r\n \r\n can be used for layout config in{\" \"}\r\n /src/_metronic/layout/LayoutConfig.js\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n {JSON.stringify(values, null, 2)}\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 {Builder} from \"../../_metronic/_partials\";\r\n\r\nexport function BuilderPage() {\r\n return ;\r\n}\r\n","import React from \"react\";\r\nimport {useSubheader} from \"../../_metronic/layout\";\r\n\r\nexport const MyPage = () => {\r\n const suhbeader = useSubheader();\r\n suhbeader.setTitle(\"My Custom title\");\r\n\r\n return (<>My Page);\r\n};\r\n","import React from \"react\";\r\nimport {\r\n Dashboard\r\n} from \"../../_metronic/_partials\";\r\n\r\nexport function DashboardPage() {\r\n return ;\r\n}\r\n","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required(\"Nspection Type name is required\"),\r\n description: Yup.string().required(\"Nspection Type description is required\"),\r\n clientId: Yup.string().required(\"Client is required\"),\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport CreateProjectTypeValidator from \"../../helpers/validators/CreateProjectTypeValidator\";\r\nimport { useFormik } from \"formik\";\r\nimport { getErrorField } from '../../helpers/helper';\r\n\r\n\r\nimport * as projectTypeService from '../../services/service/projectTypeService';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\n\r\nconst initialState = {\r\n id: 0,\r\n name: '',\r\n description: '',\r\n clientId: '',\r\n isDeleted: false,\r\n client: {}\r\n}\r\nconst UpdateProjectTypeModal = (props) => {\r\n\r\n const { show, hide, reloadTable, showAlert, data } = props;\r\n\r\n const [projectType, setProjectType] = useState(data);\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: data,\r\n validationSchema: CreateProjectTypeValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n updateProjectType(values, setSubmitting);\r\n }\r\n });\r\n\r\n const updateProjectType = (values, setSubmitting) => {\r\n let newValues = { ...values, clientId: data.clientId }\r\n projectTypeService.saveProjectType(newValues).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n reloadTable();\r\n hideModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'success' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n\r\n const hideModal = () => {\r\n setProjectType(initialState);\r\n formik.resetForm();\r\n hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Update Nspection Type\r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {formik.touched.name && formik.errors.name ? (\r\n
    \r\n {formik.errors.name}\r\n
    \r\n ) : null}\r\n\r\n \r\n\r\n {formik.touched.description && formik.errors.description ? (\r\n
    \r\n {formik.errors.description}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default connect(null, alert.actions)(UpdateProjectTypeModal);","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Select from '@material-ui/core/Select';\r\nimport CreateProjectTypeValidator from \"../../helpers/validators/CreateProjectTypeValidator\";\r\nimport { useFormik } from \"formik\";\r\nimport { getErrorField } from '../../helpers/helper';\r\n\r\nimport * as projectTypeService from '../../services/service/projectTypeService';\r\nimport * as clientService from '../../services/management/clientService';\r\n\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\nimport * as confirmModal from \"../../redux/confirmModalRedux\";\r\n\r\nconst initialState = {\r\n id: 0,\r\n name: '',\r\n description: '',\r\n clientId: '',\r\n isDeleted: false\r\n}\r\nconst NewProjectTypeModal = (props) => {\r\n const { show, hide, reloadTable, showAlert, showConfirmModal, hideConfirmModal } = props;\r\n\r\n const [projectType, setProjectType] = useState(initialState);\r\n const [clientList, setClientList] = useState([]);\r\n const [clientId, setClientId] = useState(0);\r\n\r\n useEffect(() => {\r\n clientService.getClients().then(res => {\r\n setClientList(res);\r\n });\r\n }, [show, clientId]);\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: projectType,\r\n validationSchema: CreateProjectTypeValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n \r\n createProjectType(values, setSubmitting);\r\n }\r\n });\r\n\r\n const createProjectType = (values, setSubmitting) => {\r\n projectTypeService.saveProjectType(values).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n reloadTable();\r\n hideModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'success' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n\r\n const hideModal = () => {\r\n setProjectType(initialState);\r\n formik.resetForm();\r\n hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Create New Nspection Type\r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {formik.touched.name && formik.errors.name ? (\r\n
    \r\n {formik.errors.name}\r\n
    \r\n ) : null}\r\n\r\n \r\n\r\n {formik.touched.description && formik.errors.description ? (\r\n
    \r\n {formik.errors.description}\r\n
    \r\n ) : null}\r\n\r\n\r\n \r\n Client\r\n {\r\n if (e.target.value === \"\") {\r\n formik.setFieldValue(\"clientId\", \"\");\r\n setClientId(0);\r\n }\r\n else {\r\n formik.setFieldValue(\"clientId\", Number(e.target.value));\r\n setClientId(Number(e.target.value));\r\n }\r\n }}\r\n inputProps={{\r\n name: 'Client',\r\n id: 'outlined-age-native-simple',\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.clientId && formik.errors.clientId ? (\r\n
    \r\n {formik.errors.clientId}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default connect(null, {...alert.actions, ...confirmModal.actions })(NewProjectTypeModal);","/* eslint-disable no-restricted-imports */\r\nimport React, { useState } from 'react';\r\nimport { Modal, Button, Col, Row } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport { useHistory, Link } from \"react-router-dom\";\r\nimport { checkTierPlanAndRoleTier2 } from '../../helpers/helper';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\n\r\n\r\nconst ManageProjectTypeModal = (props) => {\r\n\r\n const { show, hide, projectTypeId, tierPlan, auth } = props;\r\n\r\n const hideModal = () => {\r\n hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Manage\r\n \r\n \r\n\r\n \r\n \r\n \r\n N-Point Categories\r\n \r\n
    \r\n \r\n Checkboxes\r\n \r\n
    \r\n \r\n N-Point Statuses\r\n \r\n
    \r\n\r\n \r\n Custom Fields\r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n\r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, alert.actions)(ManageProjectTypeModal);","import React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport UpdateProjectTypeModal from \"../../../components/UpdateProjectTypeModal\";\r\nimport NewProjectTypeModal from \"../../../components/NewProjectTypeModal\";\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../../redux/confirmModalRedux\";\r\nimport * as projectTypeService from '../../../../services/service/projectTypeService';\r\nimport * as clientTierService from '../../../../services/management/clientTierService';\r\nimport ManageProjectTypeModal from \"../../../components/ManageProjectTypeModal\";\r\nimport jwt_Decode from 'jwt-decode';\r\n\r\n\r\nconst ProjectTypeListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, auth } = props;\r\n const [deleteProjectTypeModel, setDeleteProjectTypeModel] = useState({ id: 0, clientId: '', name: '', description: '', isDeleted: false })\r\n const [addProjectTypeModalVisible, setAddProjectTypeModalVisible] = useState(false);\r\n const [updateProjectTypeModalVisible, setUpdateProjectTypeModalVisible] = useState(false);\r\n const [manageProjectTypeModalVisible, setManageProjectTypeModalVisible] = useState(false);\r\n const [projectTypes, setProjectTypes] = useState([]);\r\n const [tier, setTier] = useState('');\r\n const [projectTypeData, setProjectTypeData] = useState([]);\r\n const [projectTypeId, setProjectTypeId] = useState([]);\r\n\r\n useEffect(() => {\r\n loadProjectTypes();\r\n }, []);\r\n\r\n const loadProjectTypes = () => {\r\n projectTypeService.getAllProjectTypes().then(res => {\r\n setProjectTypes(res);\r\n\r\n return res;\r\n }).then(projType => {\r\n fetchTierForUser(projType)\r\n })\r\n }\r\n\r\n const editProjectTypes = (id) => {\r\n projectTypeService.getProjectTypeById(id).then(res => {\r\n setProjectTypeData(res);\r\n setUpdateProjectTypeModalVisible(true);\r\n })\r\n }\r\n\r\n const fetchTierForUser = (projType) => {\r\n if (projType.length) {\r\n clientTierService.getClientTierById(projType[0].clientTierId).then(res => {\r\n setTier(res);\r\n });\r\n }\r\n }\r\n // const deleteProjectType = (projectTypeId) => {\r\n // projectTypeService.deleteProjectType(projectTypeId).then(res => {\r\n // showAlert({ message: res.message, variant: 'success' })\r\n // hideConfirmModal();\r\n // loadProjectTypes();\r\n // }).catch(ex => {\r\n // showAlert({ message: ex.message, variant: 'error' })\r\n // })\r\n // }\r\n const deleteProjectType = (projectTypeId, clientId, projectType) => {\r\n let newModel = { ...deleteProjectTypeModel, isDeleted: true, id: projectTypeId, clientId: clientId, projectType: projectType };\r\n projectTypeService.deleteProjectTypeIsDeletedFlag(newModel).then(res => {\r\n showAlert({ message: res.message, variant: 'success' })\r\n hideConfirmModal();\r\n loadProjectTypes();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"name\",\r\n label: \"Type\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"client\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {projectTypes[dataIndex].client}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {\r\n setManageProjectTypeModalVisible(true);\r\n setProjectTypeId(projectTypes[dataIndex].id);\r\n }\r\n }\r\n >\r\n Manage\r\n \r\n \r\n editProjectTypes(projectTypes[dataIndex].id)\r\n }\r\n >\r\n Edit\r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') ?\r\n showConfirmModal({\r\n title: \"Delete Nspection\",\r\n text: \"Are you sure you want to delete this project?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProjectType(projectTypes[dataIndex].id, projectTypes[dataIndex].clientId, projectTypes[dataIndex].projectTypes)\r\n })\r\n }\r\n >\r\n Delete\r\n \r\n : <>\r\n }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n Nspection Type\r\n \r\n \r\n View and Manage Active Nspection Types\r\n \r\n

    \r\n
    \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') ?\r\n setAddProjectTypeModalVisible(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add Nspection Type\r\n \r\n : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') &&\r\n <>\r\n setManageProjectTypeModalVisible(false)}\r\n reloadTable={() => loadProjectTypes()}\r\n />\r\n setUpdateProjectTypeModalVisible(false)}\r\n reloadTable={() => loadProjectTypes()}\r\n />\r\n setAddProjectTypeModalVisible(false)}\r\n reloadTable={() => loadProjectTypes()}\r\n />\r\n \r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions })(ProjectTypeListingPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ProjectPin/\";\r\n\r\nconst getProjectPinById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinsByProjectId = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinsByProjectId?projectId=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinsByProjectIdForReport = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinsByProjectIdForReport?projectId=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinsByProjectIdAndImageId = async (id, imageId) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinsByProjectIdAndImageId?projectId=' + id + '&imageId=' + imageId, constants.REQUIRE_INTERCEPTORS);\r\nconst getProjectPinsByProjectIdAndImageIdForShareable = async (token) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinsByProjectIdAndImageIdForShareable?token=' + token, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinsByProjectIdForSharable = async (token) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinsByProjectIdForSharable?token=' + token, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinsByProjectIdForReportSharable = async (token) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinsByProjectIdForReportSharable?token=' + token, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPins = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPins', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProjectPin = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectPin', model, { ...constants.REQUIRE_INTERCEPTORS });\r\n\r\nconst saveProjectPinAnonymous = async (formData, data) => {\r\n try {\r\n formData.append('projectPinCheckBoxes', JSON.stringify(data.projectPinCheckBoxes));\r\n formData.append('projectPinCustomFields', JSON.stringify(data.projectPinCustomFields));\r\n\r\n const response = await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectPinAnonymous', formData, {\r\n ...constants.REQUIRE_INTERCEPTORS,\r\n fileHandler: true,\r\n });\r\n console.log('RESPONSE', response)\r\n if (response) {\r\n return response;\r\n }\r\n } catch (error) {\r\n console.log('Error when posting anonymous Project Pin:', error);\r\n }\r\n};\r\n\r\nconst updateProjectPin = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'UpdateProjectPin', model, { ...constants.REQUIRE_INTERCEPTORS, fileHandler: true });\r\n\r\nconst deleteProjectPin = async (id, isDeleted) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteProjectPin?id=' + id + '&isDeleted=' + isDeleted, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getProjectPinById,\r\n getProjectPinsByProjectIdForSharable,\r\n getProjectPinsByProjectIdForReportSharable,\r\n getProjectPins,\r\n saveProjectPin,\r\n deleteProjectPin,\r\n updateProjectPin,\r\n getProjectPinsByProjectIdForReport,\r\n getProjectPinsByProjectIdAndImageId,\r\n saveProjectPinAnonymous,\r\n getProjectPinsByProjectIdAndImageIdForShareable,\r\n getProjectPinsByProjectId\r\n}","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ProjectPinComment/\";\r\n\r\nconst getProjectPinCommentById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinCommentById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinCommentByProjectPinId = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinCommentByProjectPinId?projPinId=' + id , constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinComments = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinComments', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProjectPinComment = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectPinComment', model, {...constants.REQUIRE_INTERCEPTORS, fileHandler:true});\r\nconst addAnonymousComments = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'AddAnonymousComments', model, constants.REQUIRE_INTERCEPTORS);\r\nconst deleteProjectPinComment = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteProjectPinComment?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getProjectPinCommentById,\r\n getProjectPinCommentByProjectPinId,\r\n getProjectPinComments,\r\n saveProjectPinComment,\r\n addAnonymousComments,\r\n deleteProjectPinComment\r\n}","import * as Yup from \"yup\";\r\n\r\nconst ProjectPinCommentValidator = Yup.object().shape({\r\n id: Yup.number(),\r\n comment: Yup.string(),\r\n anonymousName: Yup.string(),\r\n});\r\n\r\nexport default ProjectPinCommentValidator;","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Modal, Button, Col, Row } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport constants from \"../../constants/constants\";\r\nimport { convertJsonToFormData } from '../../helpers/helper';\r\nimport { useFormik } from \"formik\";\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\nimport ProjectPinCommentValidator from '../../helpers/validators/ProjectPinCommentValidator';\r\n\r\nimport { FilePond, registerPlugin } from \"react-filepond\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nimport \"filepond/dist/filepond.min.css\";\r\nimport FilePondPluginImageExifOrientation from \"filepond-plugin-image-exif-orientation\";\r\nimport FilePondPluginImagePreview from \"filepond-plugin-image-preview\";\r\nimport \"filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css\";\r\n\r\nimport * as projectPinService from '../../services/service/projectPinService';\r\nimport * as projectPinCommentService from '../../services/settings/projectPinCommentService';\r\n\r\nregisterPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);\r\nconst moment = require('moment');\r\n\r\nconst initialModel = {\r\n id: 0,\r\n comment: '',\r\n projectPinId: 0,\r\n projectTypePOIStatusId: 0,\r\n userId: null,\r\n poiResolutionImagePath: '',\r\n matterportResolutionLink: '',\r\n isDeleted: false,\r\n commentedOn: moment().format('MM/DD/yyyy hh:mm a'),\r\n user: null,\r\n projectPin: {},\r\n projectTypePOIStatus: null\r\n};\r\n\r\nconst ResolvePOIStatusModal = (props) => {\r\n\r\n const { show, hide, projectPin, onModalClose, showAlert, auth } = props;\r\n const poiResolutionImagePathCondition = (projectPin && projectPin.projectPinComments && projectPin.projectPinComments.length) ? projectPin.projectPinComments[0].poiResolutionImagePath\r\n : projectPin.poiResolutionImagePath;\r\n const matterportResolutionLinkCondition = (projectPin && projectPin.projectPinComments && projectPin.projectPinComments.length) ? projectPin.projectPinComments[0].matterportResolutionLink\r\n : projectPin.matterportResolutionLink;\r\n const projectPinComment = { ...initialModel, projectPin: projectPin, poiResolutionImagePath: poiResolutionImagePathCondition, matterportResolutionLink: matterportResolutionLinkCondition };\r\n const [poiImage, setPoiImage] = useState([]);\r\n const [poiResolutionImagePath, setPoiResolutionImagePath] = useState('');\r\n const [poiMatterPortResolutionLink, setPoiMatterPortResolutionLink] = useState('');\r\n const [manageOptionVisible, setManageOptionVisible] = useState(true);\r\n const [poiMatterPortResolutionLinkVisible, setPoiMatterPortResolutionLinkVisible] = useState(false);\r\n const [poiImageUploaderVisible, setPoiImageUploaderVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n if (projectPin && show) {\r\n\r\n setPoiResolutionImagePath(poiResolutionImagePathCondition);\r\n setPoiMatterPortResolutionLink(matterportResolutionLinkCondition);\r\n formik.setFieldValue(\"matterportResolutionLink\", matterportResolutionLinkCondition);\r\n\r\n\r\n if (poiResolutionImagePathCondition && !matterportResolutionLinkCondition) {\r\n setPoiImageUploaderVisible(true);\r\n setPoiMatterPortResolutionLinkVisible(false);\r\n setManageOptionVisible(false);\r\n }\r\n if (!poiResolutionImagePathCondition && matterportResolutionLinkCondition) {\r\n\r\n setPoiMatterPortResolutionLinkVisible(true);\r\n setPoiImageUploaderVisible(false);\r\n setManageOptionVisible(false);\r\n }\r\n if (!poiResolutionImagePathCondition && !matterportResolutionLinkCondition) {\r\n setPoiMatterPortResolutionLinkVisible(false);\r\n setPoiImageUploaderVisible(false);\r\n setManageOptionVisible(true);\r\n }\r\n }\r\n }, [projectPin, show]);\r\n\r\n const handleUploadImage = (e) => {\r\n setPoiImageUploaderVisible(true);\r\n setPoiMatterPortResolutionLinkVisible(false);\r\n formik.setFieldValue(\"matterportResolutionLink\", '');\r\n setPoiMatterPortResolutionLink('')\r\n setManageOptionVisible(false);\r\n }\r\n\r\n const handleMatterPortResolutionLink = (e) => {\r\n setPoiMatterPortResolutionLinkVisible(true);\r\n setPoiImageUploaderVisible(false);\r\n setPoiResolutionImagePath('');\r\n setPoiImage([]);\r\n setManageOptionVisible(false);\r\n }\r\n\r\n const handleAcceptPoiStatus = () => {\r\n projectPinService.saveProjectPin({ ...projectPin, isApproved: true, isResolved: true })\r\n .then(async res => {\r\n onModalClose();\r\n hideModal();\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n });\r\n }\r\n\r\n const handleRejectPoiStatus = () => {\r\n projectPinService.saveProjectPin({ ...projectPin, isApproved: false, isResolved: false })\r\n .then(async res => {\r\n onModalClose();\r\n hideModal();\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: projectPinComment,\r\n validationSchema: ProjectPinCommentValidator,\r\n onSubmit: async (values, { setStatus, setSubmitting }) => {\r\n addProjectPinComment(values, setSubmitting);\r\n }\r\n });\r\n\r\n const addProjectPinComment = (values, setSubmitting) => {\r\n let finalModel = {\r\n ...values,\r\n poiResolutionImageFile: poiImage.length > 0 ? poiImage[0].file : null,\r\n poiResolutionImagePath: poiResolutionImagePath,\r\n comment: '',\r\n projectPinId: projectPin.id,\r\n projectTypePOIStatusId: projectPin.projectTypePOIStatusId,\r\n projectPin: projectPin\r\n };\r\n\r\n projectPinCommentService.saveProjectPinComment(convertJsonToFormData(finalModel))\r\n .then(async res => {\r\n onModalClose();\r\n hideModal();\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n\r\n const hideModal = () => {\r\n hide();\r\n }\r\n\r\n\r\n const handleOnPressUploadImage = () => {\r\n handleUploadImage();\r\n }\r\n const handleOnPressAddMatterPortResolutionLink = () => {\r\n handleMatterPortResolutionLink();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Manage\r\n \r\n \r\n
    \r\n \r\n {\r\n poiResolutionImagePath ?\r\n <>\r\n \r\n {\r\n setPoiResolutionImagePath('');\r\n }} className=\"btn btn-info w-100 mt-lg-5 mb-lg-5\">Change N-Point Image\r\n :\r\n (poiImageUploaderVisible && !poiMatterPortResolutionLinkVisible && !manageOptionVisible) ?\r\n \r\n :\r\n <>\r\n }\r\n {\r\n (!manageOptionVisible && poiMatterPortResolutionLinkVisible && !poiImageUploaderVisible) ?\r\n \r\n \r\n \r\n :\r\n <>\r\n }\r\n\r\n {(manageOptionVisible && !poiImageUploaderVisible && !poiMatterPortResolutionLinkVisible) ?\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n :\r\n <>}\r\n\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n {\r\n poiMatterPortResolutionLinkVisible ? :\r\n poiImageUploaderVisible ?\r\n :\r\n <>\r\n }\r\n
    \r\n
    \r\n {\r\n (auth.role === 'SuperAdmin' || auth.role === 'Admin' || auth.role === 'Manager') && (poiResolutionImagePath || poiMatterPortResolutionLink) ?\r\n \r\n :\r\n \r\n }\r\n {!manageOptionVisible && (auth.role === 'SuperAdmin' || auth.role === 'Admin' || auth.role === 'Manager') && (poiResolutionImagePath || poiMatterPortResolutionLink) ?\r\n \r\n :\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, alert.actions)(ResolvePOIStatusModal);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n anonymousName: Yup.string().required(\"Full Name is required\"),\r\n comment: Yup.string().required(\"Comment is required\"),\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport { convertJsonToFormData } from '../../helpers/helper';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport CommentValidator from \"../../helpers/validators/CommentValidator\";\r\nimport { useFormik } from \"formik\";\r\nimport { getErrorField } from '../../helpers/helper';\r\n\r\nimport * as projectPinCommentService from '../../services/settings/projectPinCommentService';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\nimport moment from 'moment';\r\n\r\nconst initialState = {\r\n id: 0,\r\n projectPinId: 0,\r\n anonymousName:'',\r\n projectTypePoiStatusId: 0,\r\n comment: '',\r\n commentedOn: '',\r\n matterportResolutionLink:'',\r\n pOIResolutionImagePath: '',\r\n isDeleted: false\r\n}\r\nconst AddCommentModal = (props) => {\r\n\r\n const { show, hide, showAlert, pin, token } = props;\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: initialState,\r\n validationSchema: CommentValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveProjectPinComment(values, setSubmitting);\r\n }\r\n });\r\n\r\n const saveProjectPinComment = (values, setSubmitting) => {\r\n var model = {\r\n ...values,\r\n projectTypePoiStatusId: pin.projectTypePOIStatusId,\r\n projectPinId: pin.id,\r\n pOIResolutionImagePath: '',\r\n matterportResolutionLink: '',\r\n commentedOn: moment().format('MM/DD/yyyy hh:mm a'),\r\n userId: null,\r\n isDeleted: false,\r\n };\r\n\r\n if(token){\r\n projectPinCommentService.addAnonymousComments({...model, token })\r\n .then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n hideModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n else{\r\n projectPinCommentService.saveProjectPinComment(convertJsonToFormData(model))\r\n .then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n hideModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n const hideModal = () => {\r\n formik.resetForm();\r\n hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Add Comment\r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {formik.touched.anonymousName && formik.errors.anonymousName ? (\r\n
    \r\n {formik.errors.anonymousName}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n \r\n\r\n {formik.touched.comment && formik.errors.comment ? (\r\n
    \r\n {formik.errors.comment}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default connect(null, alert.actions)(AddCommentModal);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n projectId: Yup.number(),\r\n pointCategoryId: Yup.string().required(\"Category is required\"),\r\n projectTypePOIStatusId: Yup.string().nullable(),\r\n title: Yup.string().required('Title is required'),\r\n description: Yup.string().nullable(),\r\n updatedBy: Yup.number().nullable(),\r\n matterPortResolutionLink: Yup.string().nullable(),\r\n updatedDateTime: Yup.string().nullable(),\r\n isCritical: Yup.bool(),\r\n isOsha: Yup.bool(),\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from \"formik\";\r\nimport _, { clone, rest } from 'lodash';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { validateDescription } from '../../helpers/helper';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport { red } from '@material-ui/core/colors';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport { getErrorField } from '../../helpers/helper';\r\nimport * as projectPinService from '../../services/service/projectPinService';\r\nimport { checkTierPlanAndRoleTier2, checkTierPlanAndRoleTier3 } from '../../helpers/helper';\r\nimport * as projectPinCommentService from '../../services/settings/projectPinCommentService';\r\nimport ResolvePOIStatusModal from '../components/ResolvePOIStatusModal';\r\nimport AddCommentModal from '../components/AddCommentModal';\r\nimport ProjectPinValidator from '../../helpers/validators/ProjectPinValidator';\r\nimport ProjectPinCommentValidator from \"../../helpers/validators/ProjectPinCommentValidator\";\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Select from '@material-ui/core/Select';\r\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\r\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\r\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport * as helper from '../../helpers/helper';\r\n\r\nconst RedCheckbox = withStyles({\r\n root: {\r\n color: red[400],\r\n '&$checked': {\r\n color: red[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst moment = require('moment');\r\n\r\nconst UpdateProjectPinModal = (props) => {\r\n const classes = useStyles();\r\n const { show, hide, reloadTable, showAlert, project, projectPinId, user, auth, poiStatus, tierPlan } = props;\r\n const [pin, setPin] = useState({});\r\n const [poiStatusList, setPOIStatusList] = useState([]);\r\n const [pointCategoryList, setPointCategoryList] = useState([]);\r\n const [projectPinCheckBoxList, setProjectPinCheckBoxList] = useState([]);\r\n const [projectPinCheckBoxes, setProjectPinCheckBoxes] = useState([]);\r\n const [resolvePOIStatusModalVisible, setResolvePOIStatusModalVisible] = useState(false);\r\n const [isBusinessOrProfessionalTier, setIsBusinessOrProfessionalTier] = useState(false);\r\n const [selectedProjectTypeCustomField, setSelectedProjectTypeCustomField] = useState('');\r\n const [selectedProjectTypeCustomFields, setSelectedProjectTypeCustomFields] = useState([]);\r\n const [projectTypeCustomFieldList, setProjectTypeCustomFieldList] = useState([]);\r\n const [selectedCustomFieldIds, setSelectedCustomFieldIds] = useState([]);\r\n const [addCommentModalVisible, setAddCommentModalVisible] = useState(false);\r\n const [customFieldDescription, setCustomFieldDescription] = useState('');\r\n const [projectPinCommentList, setProjectPinCommentList] = useState([]);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [customFieldsData, setCustomFieldsData] = useState([]);\r\n const [customFields, setCustomFields] = useState([]);\r\n const [resolveStatusModalRefreshStates, setResolveStatusModalRefreshStates] = useState(false);\r\n const [editedCustomField, setEditedCustomField] = useState(null);\r\n const [selectedPointCategory, setSelectedPointCategory] = useState(null);\r\n const [projectPinComment, setProjectPinComment] = useState({\r\n id: 0,\r\n projectPinId: 0,\r\n projectTypePoiStatusId: 0,\r\n comment: '',\r\n commentedBy: {},\r\n commentedOn: '',\r\n isDeleted: false\r\n });\r\n const [projectPinCommentsLoading, setProjectPinCommentsLoading] = useState(true);\r\n const [isBusinessTier, setIsBusinessTier] = useState(false);\r\n const [filteredProjectPinCustomFields, setFilteredProjectPinCustomFields] = useState([]);\r\n\r\n useEffect(() => {\r\n if (Object.keys(project).length > 0 && project.projectType) {\r\n setProjectTypeCustomFieldList(project.projectType.projectTypeCustomFields);\r\n }\r\n if (projectPinId && show) {\r\n fetchProjectPin(project.projectType.projectTypeCustomFields);\r\n assignPoiStatusListAndPointCategoryList(project.projectType.projectTypePOIStatuses, project.projectType.pointCategories);\r\n }\r\n }, [show, projectPinId]);\r\n\r\n useEffect(() => {\r\n if (pin && pin.pointCategoryId) {\r\n handlePointCategoryChange(selectedPointCategory ?? pin.pointCategoryId);\r\n }\r\n }, [customFields, pin]);\r\n\r\n useEffect(() => {\r\n if (selectedPointCategory && project && project.projectType && project.projectType.projectTypeCustomFields && pin) {\r\n const projTypeCustomFields = project.projectType.projectTypeCustomFields;\r\n const projPinCustomFields = pin.projectPinCustomFields || [];\r\n\r\n copyProjectTypeCustomFieldToProjectPinCustomField(projTypeCustomFields, projPinCustomFields);\r\n }\r\n }, [selectedPointCategory, project, pin]);\r\n\r\n useEffect(() => {\r\n let tierPlan3 = checkTierPlanAndRoleTier3(tierPlan, auth.role);\r\n setIsBusinessTier(tierPlan3);\r\n if (projectPinId && show && tierPlan3) {\r\n fetchProjectPinCommentsByPoiStatusId(projectPinId);\r\n }\r\n }, [show])\r\n\r\n const fetchProjectPin = (projTypeCustomFields) => {\r\n projectPinService.getProjectPinById(projectPinId).then(res => {\r\n setPin(res);\r\n setProjectPinCheckBoxList(res.projectPinCheckBoxes);\r\n copyProjectTypeCustomFieldToProjectPinCustomField(projTypeCustomFields, res.projectPinCustomFields)\r\n setProjectPinCheckBoxes([...res.projectPinCheckBoxes]);\r\n });\r\n }\r\n\r\n const copyProjectTypeCustomFieldToProjectPinCustomField = (projTypeCustomFields, projPinCustomFields) => {\r\n let tempArr = projTypeCustomFields.map(typeField => {\r\n const clonedObj = { ...typeField };\r\n var projectTypeCustomFieldId = clonedObj['id'];\r\n console.log('pinField', projPinCustomFields)\r\n const matchingCustomField = projPinCustomFields.find(pinField => pinField.projectTypeCustomFieldId === projectTypeCustomFieldId);\r\n console.log('matchingCustomField', matchingCustomField);\r\n if (matchingCustomField) {\r\n delete clonedObj['projectTypeId'];\r\n clonedObj.id = matchingCustomField.id;\r\n clonedObj.description = matchingCustomField.description ?? '';\r\n }\r\n else {\r\n delete clonedObj['id'];\r\n delete clonedObj['projectTypeId'];\r\n clonedObj.description = '';\r\n }\r\n return { ...clonedObj, projectTypeCustomFieldId: projectTypeCustomFieldId };\r\n });\r\n\r\n setCustomFields(tempArr);\r\n }\r\n\r\n const fetchProjectPinCommentsByPoiStatusId = (projPinId) => {\r\n projectPinCommentService.getProjectPinCommentByProjectPinId(projPinId).then(res => {\r\n setProjectPinCommentList(res);\r\n setProjectPinCommentsLoading(false);\r\n });\r\n }\r\n\r\n const assignPoiStatusListAndPointCategoryList = (projectTypePOIStatuses, pointCategories) => {\r\n let isTier2 = checkTierPlanAndRoleTier2(tierPlan, auth.role);\r\n setIsBusinessOrProfessionalTier(isTier2);\r\n isTier2 && setPOIStatusList(projectTypePOIStatuses);\r\n setPointCategoryList(pointCategories);\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: pin,\r\n validationSchema: ProjectPinValidator,\r\n onSubmit: async (values, { setStatus, setSubmitting }) => {\r\n updateProjectPin(values, setSubmitting);\r\n }\r\n });\r\n\r\n const formikForComments = useFormik({\r\n enableReinitialize: true,\r\n initialValues: projectPinComment,\r\n validationSchema: ProjectPinCommentValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveProjectPinComment(values, setSubmitting);\r\n }\r\n });\r\n\r\n const hasCustomFieldErrors = () => {\r\n for (let index = 0; index < filteredProjectPinCustomFields.length; index++) {\r\n const field = filteredProjectPinCustomFields[index];\r\n if (validateDescription(field.description, field.customFieldType, field.options)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const handleCheckboxChange = (e, index, option) => {\r\n const updatedFields = [...filteredProjectPinCustomFields];\r\n let selectedOptions = updatedFields[index].description ? updatedFields[index].description.split(', ') : [];\r\n\r\n if (e.target.checked) {\r\n selectedOptions = [...selectedOptions, option];\r\n } else {\r\n selectedOptions = selectedOptions.filter(item => item !== option);\r\n }\r\n\r\n updatedFields[index].description = selectedOptions.join(', ');\r\n // setCustomFields(updatedFields);\r\n setFilteredProjectPinCustomFields(updatedFields);\r\n\r\n };\r\n\r\n\r\n const handleDescriptionChange = (e, index) => {\r\n const updatedFields = [...filteredProjectPinCustomFields];\r\n const field = updatedFields[index];\r\n\r\n if (field.customFieldType.toLowerCase() === 'dropdown') {\r\n field.description = e.target.value;\r\n } else if (field.customFieldType.toLowerCase() === 'multiselect') {\r\n field.description = e.target.value.join(', ');\r\n } else {\r\n field.description = e.target.value;\r\n }\r\n\r\n // setCustomFields(updatedFields);\r\n setFilteredProjectPinCustomFields(updatedFields);\r\n };\r\n\r\n const saveProjectPinComment = (values, setSubmitting) => {\r\n setProjectPinCommentsLoading(true);\r\n var model = helper.convertJsonToFormData({\r\n ...values,\r\n projectPinId: pin.id,\r\n commentedBy: auth.user.firstName + \" \" + auth.user.lastName,\r\n ...isBusinessOrProfessionalTier\r\n ? { projectTypePoiStatusId: pin.projectTypePOIStatusId }\r\n : { projectTypePoiStatusId: null },\r\n commentedOn: moment().format('MM/DD/yyyy hh:mm a'),\r\n userId: user.id,\r\n ...poiStatus ? { projectTypePOIStatus: poiStatus } : { projectTypePOIStatus: pin.poiStatus },\r\n isDeleted: false,\r\n });\r\n projectPinCommentService\r\n .saveProjectPinComment(model)\r\n .then((res) => {\r\n let tempArr = [...projectPinCommentList];\r\n tempArr.push({\r\n comment: values.comment,\r\n commentedBy: auth.user.firstName + \" \" + auth.user.lastName,\r\n commentedOn: moment().format('MM/DD/yyyy hh:mm a'),\r\n id: res.id,\r\n isDeleted: false,\r\n poiStatus: poiStatus,\r\n });\r\n setProjectPinCommentList(tempArr);\r\n formikForComments.resetForm();\r\n showAlert({ message: res.message, variant: 'success' });\r\n })\r\n .catch((ex) => {\r\n showAlert({ message: ex.message, variant: 'success' });\r\n })\r\n .finally(() => {\r\n setSubmitting(false);\r\n setProjectPinCommentsLoading(false);\r\n });\r\n };\r\n\r\n const buildProjectPinCustomFieldToUpdate = () => {\r\n // Create ProjectPinCustomField objects from selectedCustomFieldIds\r\n return selectedCustomFieldIds.map((fieldName) => {\r\n const selectedField = projectTypeCustomFieldList.find((field) => field.name === fieldName);\r\n\r\n return {\r\n name: selectedField.name,\r\n isEditable: selectedField.isEditable,\r\n };\r\n });\r\n };\r\n\r\n const updateProjectPin = (values, setSubmitting) => {\r\n let updateProjectPinModel = {\r\n ...values,\r\n user: null,\r\n projectPinCheckBoxes: projectPinCheckBoxes,\r\n pointCategory: null,\r\n projectTypePOIStatus: null,\r\n projectPinCustomFields: filteredProjectPinCustomFields\r\n };\r\n\r\n projectPinService\r\n .saveProjectPin(updateProjectPinModel)\r\n .then((res) => {\r\n reloadTable();\r\n hideModal();\r\n showAlert({ message: res.message, variant: 'success' });\r\n })\r\n .catch((ex) => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n })\r\n .finally(() => {\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n const hideModal = () => {\r\n formik.resetForm();\r\n formikForComments.resetForm();\r\n hide();\r\n };\r\n\r\n const handleSaveCustomField = () => {\r\n const selectedField = projectTypeCustomFieldList.find(field => field.name === selectedProjectTypeCustomField);\r\n\r\n const newCustomFieldData = {\r\n name: selectedField.name,\r\n description: customFieldDescription\r\n };\r\n\r\n setCustomFieldsData(prevData => [...prevData, newCustomFieldData]);\r\n setIsModalOpen(false);\r\n };\r\n\r\n const handlePointCategoryChange = (selectedPointCategoryId) => {\r\n console.log('here')\r\n const associatedCustomFieldIds = projectTypeCustomFieldList\r\n .filter(field => field.pointCategoryProjectTypeCustomFields\r\n .some(assoc => assoc.pointCategoryId === selectedPointCategoryId))\r\n .map(field => field.id);\r\n const filteredFields = customFields\r\n .filter(field => associatedCustomFieldIds.includes(field.projectTypeCustomFieldId));\r\n \r\n console.log(filteredFields)\r\n setFilteredProjectPinCustomFields(filteredFields);\r\n };\r\n\r\n const handleSaveEditedCustomField = () => {\r\n // Find the index of the edited custom field in the customFieldsData array\r\n const editedFieldIndex = customFieldsData.findIndex(field => field.id === editedCustomField.id);\r\n if (editedFieldIndex !== -1) {\r\n // Create a copy of the edited custom field with the updated description\r\n const updatedCustomField = {\r\n ...editedCustomField,\r\n description: customFieldDescription\r\n };\r\n\r\n // Update the customFieldsData array with the updated custom field\r\n setCustomFieldsData(prevData => [\r\n ...prevData.slice(0, editedFieldIndex),\r\n updatedCustomField,\r\n ...prevData.slice(editedFieldIndex + 1)\r\n ]);\r\n }\r\n\r\n setEditedCustomField(null);\r\n setIsModalOpen(false);\r\n }\r\n\r\n\r\n const handleCustomFieldDescriptionChange = (event) => {\r\n setCustomFieldDescription(event.target.value);\r\n };\r\n\r\n const handleCustomFieldSelectChange = (event) => {\r\n setSelectedProjectTypeCustomField(event.target.value);\r\n };\r\n\r\n const openModalResolvePOIStatus = () => {\r\n setResolvePOIStatusModalVisible(true);\r\n };\r\n\r\n\r\n const handleEditCustomField = (value) => {\r\n setSelectedProjectTypeCustomField(value.name);\r\n setEditedCustomField(value)\r\n setCustomFieldDescription(value.description);\r\n setIsModalOpen(true);\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n setResolvePOIStatusModalVisible(false)}\r\n refreshStates={resolveStatusModalRefreshStates}\r\n onModalClose={() => {\r\n reloadTable();\r\n hideModal();\r\n }}\r\n />\r\n
    \r\n\r\n \r\n \r\n \r\n Update Nspection Pins    \r\n {isBusinessTier &&\r\n <>{pin.isResolved ? \r\n Resolved\r\n : \r\n Not Resolved Yet\r\n }\r\n    \r\n {pin.isApproved ? \r\n Approved\r\n : \r\n Not Approved Yet\r\n }\r\n }\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n \r\n N-Point Category\r\n {\r\n formik.setFieldValue(\"pointCategoryId\", e.target.value === \"\" ? \"\" : Number(e.target.value));\r\n setSelectedPointCategory(Number(e.target.value));\r\n // handlePointCategoryChange(Number(e.target.value));\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.pointCategoryId && formik.errors.pointCategoryId ? (\r\n
    \r\n {formik.errors.pointCategoryId}\r\n
    \r\n ) : null}\r\n\r\n
    \r\n }\r\n {isBusinessOrProfessionalTier &&\r\n \r\n N-Point Status\r\n\r\n {\r\n formik.setFieldValue(\"projectTypePOIStatusId\", e.target.value === \"\" ? \"\" : Number(e.target.value));\r\n }}\r\n\r\n\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.projectTypePOIStatusId && formik.errors.projectTypePOIStatusId ? (\r\n
    \r\n {formik.errors.projectTypePOIStatusId}\r\n
    \r\n ) : null}\r\n
    \r\n\r\n }\r\n  \r\n
    \r\n \r\n }>\r\n Custom Fields\r\n \r\n \r\n
    \r\n {filteredProjectPinCustomFields && filteredProjectPinCustomFields.length > 0 && filteredProjectPinCustomFields.map((field, index) => {\r\n const validationError = validateDescription(field.description, field.customFieldType, field.options);\r\n let inputComponent;\r\n\r\n switch (field.customFieldType.toLowerCase()) {\r\n case 'dropdown':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n displayEmpty\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n );\r\n break;\r\n case 'checkbox':\r\n inputComponent = field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n
    \r\n handleCheckboxChange(e, index, option.trim())}\r\n name={field.name}\r\n />\r\n }\r\n label={option.trim()}\r\n />\r\n
    \r\n ));\r\n break;\r\n case 'multiselect':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n renderValue={(selected) => selected.join(', ')}\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n\r\n );\r\n break;\r\n default:\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n multiline={field.customFieldType.toLowerCase().includes('text')}\r\n rowsMax={field.customFieldType.toLowerCase().includes('text') ? \"4\" : \"1\"}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n className=\"large-textarea\"\r\n InputLabelProps={field.customFieldType.toLowerCase().includes('date') ? { shrink: true } : undefined}\r\n type={field.customFieldType.toLowerCase().includes('date') ? 'date' : 'text'}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    {field.name}
    \r\n {field.customFieldType &&
    ({field.customFieldType})
    }\r\n {inputComponent}\r\n {validationError &&
    {validationError}
    }\r\n
    \r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n\r\n {formik.touched.title && formik.errors.title ? (\r\n
    \r\n {formik.errors.title}\r\n
    \r\n ) : null}\r\n
    \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n {\r\n projectPinCheckBoxList.map((curr, index) =>\r\n
    \r\n {\r\n let tempArr = [...projectPinCheckBoxList];\r\n tempArr.find(x => x.name === curr.name).isChecked = val;\r\n setProjectPinCheckBoxes(tempArr);\r\n }}\r\n />\r\n }\r\n label={curr.name}\r\n labelPlacement=\"end\"\r\n />\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n {isBusinessTier &&\r\n
    \r\n \r\n \r\n \r\n\r\n {formikForComments.touched.comment && formikForComments.errors.comment ? (\r\n
    \r\n {formikForComments.errors.comment}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n

    View Comments

    \r\n \r\n {/* */}\r\n <>\r\n <>\r\n {projectPinCommentsLoading ?\r\n \r\n :\r\n projectPinCommentList.map(comment => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    \r\n {comment.commentedBy}\r\n

    \r\n\r\n

    \r\n {moment(comment.commentedOn).format('MM/DD/yyyy hh:mm a')}\r\n

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

    \r\n {comment.poiStatus}\r\n

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

    \r\n {comment.comment}\r\n

    \r\n
    \r\n
    \r\n\r\n )\r\n })\r\n }\r\n \r\n \r\n {/*
    */}\r\n
    \r\n
    \r\n }\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n isBusinessTier ?\r\n !(auth.role === 'SuperAdmin' || auth.role === 'Admin' || auth.role === 'Manager') ?\r\n pin.isResolved ?\r\n :\r\n \r\n :\r\n \r\n :\r\n <>\r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n setEditedCustomField(null);\r\n setIsModalOpen(false);\r\n }}>\r\n \r\n {editedCustomField ? 'Edit Custom Field' : 'Add Custom Field'}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Custom Field\r\n \r\n {projectTypeCustomFieldList\r\n .filter(field => !selectedProjectTypeCustomFields.includes(field.name))\r\n .map(field => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {editedCustomField && (\r\n \r\n )}\r\n {!editedCustomField && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, alert.actions)(UpdateProjectPinModal);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n modelLink: Yup.string().nullable()\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { Field, useFormik } from \"formik\";\r\n// import { TextField } from 'formik-material-ui';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport UpdateImagesValidator from \"../../helpers/validators/UpdateImagesValidator\";\r\nimport { FilePond } from \"react-filepond\";\r\nimport { getErrorField, convertJsonToFormData } from '../../helpers/helper';\r\nimport * as projectService from '../../services/service/projectService';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\nimport * as confirmModal from \"../../redux/confirmModalRedux\";\r\n\r\n\r\n\r\nconst UploadImagesModal = (props) => {\r\n const { show, hide, showAlert, showConfirmModal, hideConfirmModal, project, refresh, setProcessing } = props;\r\n const [projectImages, setProjectImages] = useState([]);\r\n const [hideButtons, setHideButtons] = useState(false);\r\n const [isProject3dUploader, setIsProject3dUploader] = useState(false);\r\n const [imageUploaderOutput, setImageUploaderOutput] = useState(null);\r\n const [project3DLinkOutput, setProject3DLinkOutput] = useState(null);\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: {\r\n modelLink: project.modelLink || ''\r\n },\r\n validationSchema: UpdateImagesValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n if (isProject3dUploader) {\r\n showConfirmModal({\r\n title: 'Replace 3D Link',\r\n text: 'Are you sure you want to replace your current 3D link? You will loose all the Nspection pins from your current 3D model if you decide to change your model link.',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => updateProject3dModel(values, setSubmitting)\r\n })\r\n }\r\n else {\r\n updateProjectImages(values, setSubmitting)\r\n }\r\n }\r\n });\r\n\r\n const handleFileUpload = (fileItems) => {\r\n setProjectImages(fileItems.map((fileItem) => (fileItem.file)));\r\n };\r\n\r\n const imageUploader = () => {\r\n setHideButtons(true);\r\n setImageUploaderOutput(
    \r\n
    \r\n \r\n 2D Nspection\r\n \r\n \r\n
    \r\n\r\n
    \r\n )\r\n }\r\n\r\n const linkUploader = () => {\r\n setHideButtons(true);\r\n setIsProject3dUploader(true);\r\n const newModelLink = project.modelLink;\r\n formik.setFieldValue(\"modelLink\", newModelLink);\r\n // setProject3DLinkOutput(\r\n //
    \r\n // \r\n // {formik.touched.modelLink && formik.errors.modelLink ? (\r\n //
    \r\n // {formik.errors.modelLink}\r\n //
    \r\n // ) : null}\r\n //
    \r\n // )\r\n }\r\n\r\n const updateProjectImages = (values, setSubmitting) => {\r\n var model = convertJsonToFormData({ ...project, ...values });\r\n projectImages.forEach(file => {\r\n model.append(\"filesToSave\", file);\r\n });\r\n projectService.updateImages(model).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n hideModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n hideConfirmModal();\r\n })\r\n }\r\n\r\n const updateProject3dModel = (values, setSubmitting) => {\r\n projectService.udpate3dLink({ ...project, ...values }).then(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n hideModal();\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n hideConfirmModal();\r\n })\r\n }\r\n\r\n const hideModal = () => {\r\n setProjectImages([]);\r\n formik.resetForm();\r\n setHideButtons(false);\r\n setIsProject3dUploader(false);\r\n setImageUploaderOutput(null);\r\n setProject3DLinkOutput(null);\r\n hide();\r\n refresh();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Choose Nspection Model to Update\r\n \r\n \r\n\r\n
    \r\n \r\n {\r\n !hideButtons &&\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n }\r\n\r\n {hideButtons && imageUploaderOutput && !project3DLinkOutput && imageUploaderOutput}\r\n\r\n {hideButtons && !imageUploaderOutput &&\r\n
    \r\n \r\n {formik.errors.modelLink ? (\r\n
    \r\n {formik.errors.modelLink}\r\n
    \r\n ) : null}\r\n
    \r\n }\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n );\r\n}\r\n\r\nexport default connect(null, { ...alert.actions, ...confirmModal.actions })(UploadImagesModal);","/* eslint-disable jsx-a11y/anchor-is-valid */\r\n/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { validateDescription } from '../../../../helpers/helper';\r\nimport { Link, useHistory, useParams } from 'react-router-dom';\r\nimport { Carousel } from \"react-responsive-carousel\";\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport { useFormik } from \"formik\";\r\nimport { Tooltip } from \"react-tooltip\";\r\nimport { Modal, Button, Form } from 'react-bootstrap';\r\nimport _ from 'lodash';\r\nimport { red, blue } from '@material-ui/core/colors';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../_metronic/_helpers\";\r\nimport Annotation from 'react-image-annotation';\r\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\r\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\r\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport {\r\n RectangleSelector\r\n} from 'react-image-annotation/lib/selectors'\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../../redux/confirmModalRedux\";\r\nimport UpdateProjectPinModal from '../../../components/UpdateProjectPinModal';\r\n\r\nimport * as projectService from '../../../../services/service/projectService';\r\nimport * as projectPinService from '../../../../services/service/projectPinService';\r\nimport * as clientTierService from '../../../../services/management/clientTierService';\r\n\r\nimport ProjectPinValidator from '../../../../helpers/validators/ProjectPinValidator';\r\nimport { getErrorField, checkTierPlanAndRoleTier2, checkTierPlanAndRoleTier3 } from '../../../../helpers/helper';\r\nimport constants from '../../../../constants/constants';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Slider from '@material-ui/core/Slider';\r\nimport UploadImagesModal from '../../../components/UploadImagesModal';\r\n\r\n\r\nconst moment = require('moment');\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n // margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst RedCheckbox = withStyles({\r\n root: {\r\n color: red[400],\r\n '&$checked': {\r\n color: red[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst BlueCheckBox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst ProjectEditPage = (props) => {\r\n const annotationRef = useRef(null);\r\n const history = useHistory();\r\n const { id } = useParams();\r\n const historyProjectId = id ?? '';\r\n const { showAlert, showConfirmModal, hideConfirmModal, auth } = props;\r\n const [currentImageIndex, setCurrentImageIndex] = useState('');\r\n const [annotation, setAnnotation] = useState({});\r\n const [carouselIndex, setCarouselIndex] = useState(0);\r\n const [customFieldDescription, setCustomFieldDescription] = useState('');\r\n const [updateImagesModalVisible, setUpdateImagesModalVisible] = useState();\r\n const [annotations, setAnnotations] = useState([]);\r\n const [selectedCustomFieldIds, setSelectedCustomFieldIds] = useState([]);\r\n const [formJson, setFormJson] = useState(null);\r\n const [project, setProject] = useState({\r\n id: 0,\r\n clientId: 0,\r\n projectName: '',\r\n scanDate: null,\r\n modelLink: '',\r\n notes: '',\r\n completedDateTime: null,\r\n client: {},\r\n projectPins: [],\r\n projectModelImages: []\r\n });\r\n const [projectPin, setProjectPin] = useState({\r\n id: 0,\r\n projectId: historyProjectId,\r\n pointCategoryId: '',\r\n projectTypePOIStatusId: '',\r\n title: '',\r\n description: '',\r\n isCritical: false,\r\n isOsha: false,\r\n isApproved: false,\r\n isResolved: false,\r\n projectPinCheckBoxes: [],\r\n pointCategory: null,\r\n projectTypePOIStatus: null,\r\n projectPinCustomFields: []\r\n });\r\n const [checked, setChecked] = useState(false);\r\n const [showAllChecked, setShowAllChecked] = useState(false);\r\n const [formSubmit, setFormSubmit] = useState(false);\r\n const [projectPinCheckBoxes, setProjectPinCheckBoxes] = useState([]);\r\n const [projectPinCustomField, setProjectPinCustomFields] = useState([]);\r\n const [projectType, setProjectType] = useState({});\r\n const [isBusinessOrProfessionalTier, setIsBusinessOrProfessionalTier] = useState(false);\r\n const [isBusinessTier, setIsBusinessTier] = useState(false);\r\n const [tier, setTier] = useState('');\r\n const [project3d, setProject3d] = useState(true);\r\n const [myIntervalId, setMyIntervalId] = useState('');\r\n const [selectedProjectTypeCustomField, setSelectedProjectTypeCustomField] = useState('');\r\n const [selectedProjectTypeCustomFields, setSelectedProjectTypeCustomFields] = useState([]);\r\n const [imageString, setImageString] = useState('');\r\n const [editProjectPinId, setEditProjectPinId] = useState(0);\r\n const [poiStatusName, setPoiStatusName] = useState('');\r\n const [selectedPoint, setSelectedPoint] = useState(null);\r\n const [customFieldsData, setCustomFieldsData] = useState([]);\r\n const [updateProjectPinModalVisible, setUpdateProjectPinModalVisible] = useState(false);\r\n const [pointCategoryList, setPointCategoryList] = useState([]);\r\n const [projectTypeCustomFieldList, setProjectTypeCustomFieldList] = useState([]);\r\n const [poiStatusList, setPoiStatusList] = useState([]);\r\n const [globalSdk, setGlobalSdk] = useState({});\r\n const [customFields, setCustomFields] = useState([]);\r\n const [filteredProjectPinCustomFields, setFilteredProjectPinCustomFields] = useState([]);\r\n const [projectTypeChangeDetector, setProjectTypeChangeDetector] = useState(false);\r\n const [fetchNewAnnotation, setFetchNewAnnotation] = useState(false);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [editedCustomField, setEditedCustomField] = useState(null);\r\n const [btnPosition, setBtnPosition] = useState({\r\n left: 0,\r\n top: 0\r\n });\r\n const [useTransientTagEditor, setUseTransientTagEditor] = useState(false);\r\n const [highlightedAnnotationIndex, setHighlightedAnnotationIndex] = useState(null);\r\n const [displayBtn, setDisplayBtn] = useState(false);\r\n const [intersectionState, setIntersectionState] = useState({});\r\n const [savedProjectPins, setSavedProjectPins] = useState([]);\r\n const [isTableLoading, setIsTableLoading] = useState(true);\r\n const [slider, setSlider] = useState(1);\r\n const iFrameRef = React.useRef();\r\n const classes = useStyles();\r\n\r\n var poseCache;\r\n var intersectionCache;\r\n var delayBeforeShow = 1000;\r\n var buttonDisplayed = true;\r\n\r\n useEffect(() => {\r\n fetchProject();\r\n }, [fetchProject, projectTypeChangeDetector]);\r\n\r\n useEffect(() => {\r\n if (!project3d) {\r\n if (showAllChecked) {\r\n fetchProjectPinsForAProjectAndImageId(project, '');\r\n }\r\n else {\r\n fetchProjectPinsForAProjectAndImageId(project, currentImageIndex);\r\n }\r\n }\r\n }, [fetchNewAnnotation])\r\n\r\n const fetchProject = async () => {\r\n let is3d = project3d;\r\n await projectService.getProjectById(historyProjectId).then(res => {\r\n if (res.projectModelImages.length && project.id == 0) {\r\n setProject3d(false);\r\n is3d = false;\r\n }\r\n setProject(res);\r\n setFormJson(res.formJSON ? JSON.parse(res.formJSON) : null);\r\n if (res.projectModelImages.length > 0 && !is3d) {\r\n fetchProjectPinsForAProjectAndImageId(res, res.projectModelImages[0].id);\r\n setCurrentImageIndex(res.projectModelImages[0].id);\r\n }\r\n setProjectType(res.projectType);\r\n setPointCategoryList(res.projectType.pointCategories);\r\n setProjectTypeCustomFieldList(res.projectType.projectTypeCustomFields);\r\n setPoiStatusList(res.projectType.projectTypePOIStatuses);\r\n fetchTierForUser(res, is3d);\r\n copyProjectTypeCustomFieldToProjectPinCustomField(res.projectType.projectTypeCustomFields);\r\n copyProjectTypeToProjectPinCheckBoxes(res.projectType.projectTypeCheckBoxes);\r\n })\r\n }\r\n\r\n const onChangeHandler = annotation => {\r\n if (auth.role !== 'Viewer') {\r\n setAnnotation(annotation);\r\n }\r\n };\r\n\r\n const fetchProjectPinsForAProjectAndImageId = async (project, id) => {\r\n await projectPinService.getProjectPinsByProjectIdAndImageId(project.id, id ? id : '').then(res => {\r\n register2DProject(res, id);\r\n });\r\n }\r\n\r\n const handleCheckboxChange = (e, index, option) => {\r\n const updatedFields = [...filteredProjectPinCustomFields];\r\n let selectedOptions = updatedFields[index].description ? updatedFields[index].description.split(', ') : [];\r\n\r\n if (e.target.checked) {\r\n selectedOptions = [...selectedOptions, option];\r\n } else {\r\n selectedOptions = selectedOptions.filter(item => item !== option);\r\n }\r\n\r\n updatedFields[index].description = selectedOptions.join(', ');\r\n // setCustomFields(updatedFields);\r\n setFilteredProjectPinCustomFields(updatedFields);\r\n };\r\n\r\n\r\n const handleDescriptionChange = (e, index) => {\r\n const updatedFields = [...filteredProjectPinCustomFields];\r\n const field = updatedFields[index];\r\n\r\n if (field.customFieldType.toLowerCase() === 'dropdown') {\r\n field.description = e.target.value;\r\n } else if (field.customFieldType.toLowerCase() === 'multiselect') {\r\n field.description = e.target.value.join(', ');\r\n } else {\r\n field.description = e.target.value;\r\n }\r\n\r\n // setCustomFields(updatedFields);\r\n setFilteredProjectPinCustomFields(updatedFields);\r\n };\r\n\r\n\r\n // const renderData = (data) => {\r\n // return (\r\n // \r\n // {data.annotation.data}\r\n // \r\n // );\r\n // };\r\n\r\n const fetchTierForUser = (proj, is3d) => {\r\n let tierId = proj.client.clientTier.id;\r\n let isTier2 = false;\r\n let isTier3 = false;\r\n if (tierId) {\r\n clientTierService.getClientTierById(tierId).then(res => {\r\n setTier(res);\r\n return { tier: res, proj: proj };\r\n }).then(tierAndProj => {\r\n isTier2 = checkTierPlanAndRoleTier2(tierAndProj.tier, auth.role);\r\n isTier3 = checkTierPlanAndRoleTier3(tierAndProj.tier, auth.role);\r\n if (isTier3) {\r\n setIsBusinessTier(isTier3);\r\n }\r\n if (isTier2) {\r\n setIsBusinessOrProfessionalTier(isTier2);\r\n }\r\n }).finally(() => {\r\n if (is3d) {\r\n fetchProjectPinsForAProject(proj, isTier3);\r\n }\r\n }\r\n );\r\n }\r\n else {\r\n if (auth.role === 'SuperAdmin')\r\n if (is3d) {\r\n fetchProjectPinsForAProject(proj, true); //superadmin\r\n }\r\n }\r\n }\r\n\r\n const fetchProjectPinsForAProject = (proj, isBusinessOrProfessional) => {\r\n projectPinService.getProjectPinsByProjectId(proj.id).then(res => {\r\n registerMatterPort(res, isBusinessOrProfessional);\r\n })\r\n }\r\n\r\n const register2DProject = (pins, id) => {\r\n let tempAnnotations = [];\r\n let pinsFiltered = [];\r\n if (!id) {\r\n pinsFiltered = pins.filter(x => x.projectModelImageId == currentImageIndex);\r\n }\r\n else {\r\n pinsFiltered = pins;\r\n }\r\n for (const pin of pinsFiltered) {\r\n tempAnnotations.push(JSON.parse(pin.annotationCoordinates));\r\n }\r\n setAnnotations(tempAnnotations);\r\n setSavedProjectPins(pins);\r\n setIsTableLoading(false);\r\n }\r\n\r\n const setProjectPinToEdit = (id) => {\r\n setEditProjectPinId(id);\r\n setUpdateProjectPinModalVisible(true);\r\n }\r\n\r\n const copyProjectTypeToProjectPinCheckBoxes = (projTypeCheckBoxes) => {\r\n let tempArr = [...projTypeCheckBoxes];\r\n tempArr = tempArr.map(x => {\r\n delete x['id'];\r\n delete x['projectTypeId'];\r\n return { ...x, isChecked: false }\r\n });\r\n\r\n setProjectPinCheckBoxes(tempArr);\r\n }\r\n\r\n const copyProjectTypeCustomFieldToProjectPinCustomField = (projTypeCustomFields) => {\r\n let tempArr = projTypeCustomFields.map(x => {\r\n const clonedObj = JSON.parse(JSON.stringify(x));\r\n var projectTypeCustomFieldId = clonedObj['id'];\r\n delete clonedObj['id'];\r\n delete clonedObj['projectTypeId'];\r\n return { ...clonedObj, projectTypeCustomFieldId: projectTypeCustomFieldId };\r\n });\r\n setCustomFields(tempArr);\r\n }\r\n\r\n // const handleDeleteCustomField = (id) => {\r\n // setCustomFieldsData(prevData => prevData.filter(field => field.id !== id));\r\n // };\r\n\r\n const handleCustomFieldSelectChange = (event) => {\r\n setSelectedProjectTypeCustomField(event.target.value);\r\n };\r\n\r\n const handleCustomFieldDescriptionChange = (event) => {\r\n setCustomFieldDescription(event.target.value);\r\n };\r\n\r\n // const handleEditCustomField = (value) => {\r\n // setSelectedProjectTypeCustomField(value.id);\r\n // setEditedCustomField(value)\r\n // setCustomFieldDescription(value.description);\r\n // setIsModalOpen(true);\r\n // };\r\n\r\n\r\n const renderAnnotations = (image, index) => {\r\n if (currentImageIndex !== index) return null;\r\n if (annotations.length > 0) {\r\n const renderSelector = ({ annotation }) => {\r\n if (!annotation.geometry) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n };\r\n return (\r\n <>\r\n {\r\n return (\r\n
    \r\n {\r\n if (highlightedAnnotationIndex) {\r\n removeSelectedMatterTag()\r\n }\r\n }}\r\n >\r\n Hover for details\r\n
    \r\n \r\n \r\n )\r\n }}\r\n renderSelector={renderSelector}\r\n />\r\n \r\n\r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n\r\n };\r\n\r\n const hexToRgb = (hex) => {\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: Math.round(parseInt(result[1], 16) / 255 * 10) / 10,\r\n g: Math.round(parseInt(result[2], 16) / 255 * 10) / 10,\r\n b: Math.round(parseInt(result[3], 16) / 255 * 10) / 10\r\n } : null;\r\n }\r\n\r\n const handleGotopoint = (annotationCoordinates, imageIndexId) => {\r\n const { id } = annotationCoordinates.data;\r\n const index = project.projectModelImages.findIndex(x => x.id == imageIndexId);\r\n setCurrentImageIndex(imageIndexId);\r\n setHighlightedAnnotationIndex(id);\r\n setCarouselIndex(index);\r\n setAnnotation(annotationCoordinates);\r\n scrollToTop();\r\n };\r\n\r\n const addProjectPinsToMatterPort = (sdk, pins, checkTier3) => {\r\n console.log('here are my pins', pins);\r\n pins = pins.filter(x => x.matterPointCoordinates !== null);\r\n let allMatterTags = pins.map(pin => {\r\n let coordinate = JSON.parse(pin.matterPointCoordinates);\r\n if (coordinate) {\r\n return {\r\n label: pin.title,\r\n description: pin.description,\r\n ...(checkTier3 && pin.poiColorCode && {\r\n color: hexToRgb(pin.poiColorCode)\r\n }),\r\n anchorPosition: coordinate.position,\r\n stemVector: coordinate.normal,\r\n stemVisible: true\r\n }\r\n }\r\n })\r\n\r\n console.log(\"Loading matter tags \", allMatterTags)\r\n // sdk.Mattertag.add(allMatterTags).then(function (mattertagIds) {\r\n // console.log('ids', mattertagIds)\r\n // for (let i = 0; i < mattertagIds.length; i++) {\r\n // pins[i].key = mattertagIds[i];\r\n // }\r\n // setSavedProjectPins(pins);\r\n // setIsTableLoading(false);\r\n // })\r\n // .catch(ex => console.log(\"Exception is \", ex))\r\n // .finally(x => {\r\n // setIsTableLoading(false);\r\n // })\r\n // console.log(sdk.Tag);\r\n for (let i = 0; i < allMatterTags.length; i++) {\r\n sdk.Tag.add(allMatterTags[i]).then(function (mattertagIds) {\r\n pins[i].key = mattertagIds;\r\n }\r\n )\r\n .catch(ex => console.log(\"Exception is:\", ex))\r\n }\r\n setSavedProjectPins(pins);\r\n setIsTableLoading(false);\r\n }\r\n\r\n const registerMatterPort = (pins, isBusiness) => {\r\n console.log('matterport', iFrameRef.current)\r\n window.MP_SDK.connect(iFrameRef.current, constants.MATTERPORT_API_KEY, constants.MATTERPORT_VERSION).then((sdk) => {\r\n console.log('here is sdk', sdk);\r\n console.log('Matterport connected!');\r\n setGlobalSdk(sdk);\r\n\r\n addProjectPinsToMatterPort(sdk, pins, isBusiness);\r\n\r\n //toggle between Intersection Inspector and TransientTagEditor mode\r\n !useTransientTagEditor ?\r\n handleIntersectionInspector(sdk, !useTransientTagEditor) : handleTransientTagEditor(sdk, useTransientTagEditor);\r\n\r\n });\r\n }\r\n\r\n const handleTransientTagEditor = (mpSdk, condition) => {\r\n if (!condition) {\r\n let tag;\r\n let intersection;\r\n const addTag = () => {\r\n if (!tag) {\r\n mpSdk.Tag.add({\r\n anchorPosition: { x: 0, y: 0, z: 0 },\r\n stemVector: { x: 0, y: 0, z: 0 }\r\n }).then(key => {\r\n tag = key;\r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n })\r\n }\r\n }\r\n\r\n addTag()\r\n\r\n const placeTag = (intersectionData) => {\r\n if (tag) {\r\n mpSdk.Mattertag.navigateToTag(tag[0], mpSdk.Mattertag.Transition.FLY);\r\n setSelectedPoint({ ...intersectionData, stemVisible: true, key: tag });\r\n }\r\n tag = null;\r\n }\r\n\r\n const focusDetect = () => {\r\n const eventListener = window.addEventListener('blur', () => {\r\n if (document.activeElement === iFrameRef.current) {\r\n placeTag(intersection); //function you want to call on click\r\n setTimeout(function () { window.focus(); }, 0);\r\n }\r\n window.removeEventListener('blur', eventListener);\r\n });\r\n }\r\n\r\n focusDetect();\r\n\r\n\r\n const updateTagPos = (newPos, newNorm = undefined, scale = undefined) => {\r\n\r\n if (!newPos) return;\r\n if (!scale) scale = .33;\r\n if (!newNorm) newNorm = { x: 0, y: 1, z: 0 };\r\n\r\n mpSdk.Mattertag.editPosition(tag[0], {\r\n anchorPosition: newPos,\r\n stemVector: {\r\n x: scale * newNorm.x,\r\n y: scale * newNorm.y,\r\n z: scale * newNorm.z,\r\n }\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n tag = null;\r\n setSelectedPoint(null);\r\n });\r\n }\r\n\r\n mpSdk.Pointer.intersection.subscribe(intersectionData => {\r\n if (tag) {\r\n if (intersectionData.object === 'intersectedobject.model' || intersectionData.object === 'intersectedobject.sweep') {\r\n intersection = intersectionData;\r\n updateTagPos(intersectionData.position, intersectionData.normal);\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n const handleInspectorConditions = (condition) => {\r\n handleTransientTagEditor(globalSdk, condition);\r\n }\r\n\r\n const handleToggleInspectionModel = () => {\r\n setUseTransientTagEditor(!useTransientTagEditor);\r\n\r\n if (useTransientTagEditor) {\r\n\r\n handleIntersectionInspector(globalSdk, true);\r\n handleTransientTagEditor(globalSdk, useTransientTagEditor);\r\n }\r\n else {\r\n\r\n setDisplayBtn(false);\r\n handleIntersectionInspector(globalSdk, false);\r\n handleTransientTagEditor(globalSdk, !useTransientTagEditor);\r\n }\r\n }\r\n\r\n const stopCalculationAndSetPoint = () => {\r\n setDisplayBtn(false);\r\n buttonDisplayed = false;\r\n let sliderDecimalFixedValue = parseFloat(intersectionState.normal.y.toFixed(6));\r\n setSlider(sliderDecimalFixedValue);\r\n globalSdk.Tag.add({\r\n label: '',\r\n anchorPosition: intersectionState.position,\r\n stemVector: { ...intersectionState.normal, y: sliderDecimalFixedValue },\r\n stemVisible: true\r\n }).then((key) => {\r\n setSelectedPoint({ ...intersectionState, normal: { ...intersectionState.normal, y: sliderDecimalFixedValue }, key: key, stemVisible: true });\r\n })\r\n }\r\n\r\n const handleIntersectionInspector = (sdk, isIntersectionInspectorTrueDuringToggle) => {\r\n if (auth.role !== 'Viewer') {\r\n if (isIntersectionInspectorTrueDuringToggle) {\r\n sdk.Camera.pose.subscribe(function (pose) {\r\n poseCache = pose;\r\n });\r\n\r\n sdk.Pointer.intersection.subscribe(function (intersection) {\r\n intersectionCache = intersection;\r\n intersectionCache.time = new Date().getTime();\r\n setDisplayBtn(false);\r\n buttonDisplayed = false;\r\n });\r\n\r\n buttonDisplayed = false;\r\n\r\n let myIntervalId = setInterval(() => {\r\n\r\n if (!intersectionCache || !poseCache) {\r\n return;\r\n }\r\n const nextShow = intersectionCache.time + delayBeforeShow;\r\n if (new Date().getTime() > nextShow) {\r\n if (buttonDisplayed)\r\n return;\r\n\r\n var size = {\r\n w: iFrameRef.current ? iFrameRef.current.clientWidth : 0,\r\n h: iFrameRef.current ? iFrameRef.current.clientHeight : 0\r\n }\r\n var coord = sdk.Conversion.worldToScreen(intersectionCache.position, poseCache, size);\r\n setDisplayBtn(true);\r\n buttonDisplayed = true;\r\n setBtnPosition({ left: `${coord.x - 30}px`, top: `${coord.y + 100}px` });\r\n setIntersectionState(intersectionCache);\r\n }\r\n }, 100);\r\n setMyIntervalId(myIntervalId);\r\n }\r\n else {\r\n clearInterval(myIntervalId);\r\n }\r\n }\r\n }\r\n\r\n const navigateToPoint = (id) => {\r\n return globalSdk.Mattertag.navigateToTag(id, globalSdk.Mattertag.Transition.FLY);\r\n }\r\n\r\n const scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"auto\"\r\n })\r\n }\r\n\r\n const deletePoint = (id, key) => {\r\n projectPinService.deleteProjectPin(id, true).then(res => {\r\n if (globalSdk.Tag) {\r\n globalSdk.Tag.remove(key[0]);\r\n }\r\n let tempList = [...savedProjectPins];\r\n setSavedProjectPins(tempList.filter(x => x.id !== id));\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n }).finally(() => hideConfirmModal())\r\n }\r\n\r\n const deleteAnnotationPoints = (id) => {\r\n projectPinService.deleteProjectPin(id, true).then(res => {\r\n if (Object.keys(annotations).length > 0) {\r\n setAnnotations(annotations.filter(x => x.data.id == id));\r\n setFetchNewAnnotation(!fetchNewAnnotation);\r\n }\r\n let tempList = [...savedProjectPins];\r\n setSavedProjectPins(tempList.filter(x => x.id !== id));\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\r\n }).finally(() => hideConfirmModal())\r\n }\r\n\r\n const handlePointCategoryChange = (selectedPointCategoryId) => {\r\n // Get associated ProjectTypeCustomField IDs for the selected PointCategory\r\n const associatedCustomFieldIds = projectTypeCustomFieldList\r\n .filter(field => field.pointCategoryProjectTypeCustomFields\r\n .some(assoc => assoc.pointCategoryId === selectedPointCategoryId))\r\n .map(field => field.id);\r\n\r\n console.log(filteredProjectPinCustomFields)\r\n // Filter ProjectPinCustomFields based on the associated ProjectTypeCustomFields\r\n const filteredFields = customFields\r\n .filter(field => associatedCustomFieldIds.includes(field.projectTypeCustomFieldId));\r\n\r\n setFilteredProjectPinCustomFields(filteredFields);\r\n };\r\n\r\n\r\n const columns = [\r\n {\r\n name: \"title\",\r\n label: \"Title\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"pointCategory\",\r\n label: \"N-Point Category\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {savedProjectPins[dataIndex].pointCategory}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"projectTypePOIStatus\",\r\n label: \"N-Point Status\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {savedProjectPins[dataIndex].projectTypePOIStatus ? savedProjectPins[dataIndex].projectTypePOIStatus : '-'}

    \r\n )\r\n }\r\n },\r\n },\r\n ...(isBusinessTier ?\r\n [{\r\n name: \"isResolved\",\r\n label: \"Resolved\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n \r\n );\r\n }\r\n },\r\n }] : []),\r\n ...(isBusinessTier ?\r\n [{\r\n name: \"isApproved\",\r\n label: \"Approved\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n \r\n );\r\n }\r\n },\r\n }]\r\n :\r\n []),\r\n {\r\n name: \"addedBy\",\r\n label: \"Added By\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"updatedOn\",\r\n label: \"Updated On\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"projectPinCheckBoxes\",\r\n label: \"CheckBoxes\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {savedProjectPins[dataIndex].projectPinCheckBoxes?.length > 0 ? savedProjectPins[dataIndex].projectPinCheckBoxes?.map((x, i) =>\r\n \r\n {x}\r\n \r\n ) : \"-\"}\r\n \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"projectPinCustomFields\",\r\n label: \"Custom Fields\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {savedProjectPins[dataIndex].projectPinCustomFields?.length > 0 ? savedProjectPins[dataIndex].projectPinCustomFields?.map((x, i) => (\r\n x.description && (\r\n \r\n {x.name}\r\n \r\n )\r\n )) : \"\"}\r\n\r\n \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {\r\n project3d &&\r\n {\r\n navigateToPoint(savedProjectPins[dataIndex].key[0]);\r\n scrollToTop();\r\n }}\r\n >\r\n Go To Point\r\n \r\n }\r\n\r\n {\r\n !project3d && project.projectModelImages && project.projectModelImages.length > 0 &&\r\n {\r\n handleGotopoint(JSON.parse(savedProjectPins[dataIndex].annotationCoordinates), savedProjectPins[dataIndex].projectModelImageId);\r\n }}\r\n >\r\n Go To Point\r\n \r\n\r\n }\r\n {\r\n setProjectPinToEdit(savedProjectPins[dataIndex].id);\r\n setPoiStatusName(savedProjectPins[dataIndex].projectTypePOIStatus);\r\n }\r\n }\r\n >\r\n Edit\r\n \r\n {\r\n\r\n project.completedDateTime ? <> :\r\n (auth.role === 'Admin' || auth.role === 'SuperAdmin' || auth.role === 'Manager') &&\r\n showConfirmModal({\r\n title: \"Delete Pin\",\r\n text: \"Are you sure you want to delete this pin?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => {\r\n if (project3d) {\r\n return deletePoint(savedProjectPins[dataIndex].id, savedProjectPins[dataIndex].key);\r\n }\r\n return deleteAnnotationPoints(savedProjectPins[dataIndex].id);\r\n }\r\n })}\r\n >\r\n Delete Point\r\n \r\n }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: projectPin,\r\n validationSchema: ProjectPinValidator,\r\n onSubmit: async (values, { setStatus, setSubmitting }) => {\r\n setFormSubmit(true);\r\n setChecked(false);\r\n await savePoint(values, setSubmitting);\r\n }\r\n });\r\n\r\n const captureAnnotatedImage = (src, geometry, values, setSubmitting) => {\r\n // src = 'http://192.168.1.197:45455/Attachments/Projects/93d81b37-f5db-4c5a-86c7-179453c8bde2.jpg';\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n const img = new Image();\r\n img.crossOrigin = 'anonymous'; // allow CORS headers\r\n img.src = src;\r\n\r\n canvas.style.position = 'absolute';\r\n canvas.style.top = '0';\r\n canvas.style.left = '0';\r\n\r\n img.onload = () => {\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n ctx.drawImage(img, 0, 0);\r\n const multByX = img.width / 100;\r\n const multByY = img.height / 100;\r\n\r\n const { x, y, width, height } = geometry;\r\n // draw the rectangle\r\n ctx.beginPath();\r\n ctx.lineWidth = '10';\r\n ctx.strokeStyle = 'red';\r\n ctx.rect(x * multByX, y * multByY, width * multByX, height * multByY);\r\n ctx.stroke();\r\n\r\n const base64 = canvas.toDataURL('image/jpeg', 0.3);\r\n\r\n postImageWithPin(values, base64, setSubmitting);\r\n };\r\n };\r\n\r\n const savePoint = async (values, setSubmitting) => {\r\n setIsTableLoading(true);\r\n var imageString = \"\";\r\n if (selectedPoint) {\r\n await navigateToPoint(selectedPoint.key[0]);\r\n await globalSdk.Camera.takeScreenShot({ width: 632, height: 374 }, {\r\n mattertags: true,\r\n sweeps: true,\r\n }).then(res => {\r\n imageString = res.split(',').length > 0 ? res.split(',')[1] : '';\r\n setImageString(imageString);\r\n });\r\n\r\n await projectPinService.saveProjectPin({\r\n ...values,\r\n MatterPointCoordinates: JSON.stringify(selectedPoint),\r\n imageUrl: imageString,\r\n projectPinCheckBoxes: projectPinCheckBoxes,\r\n projectPinCustomFields: filteredProjectPinCustomFields\r\n })\r\n .then(async res => {\r\n // Create an array of custom field names\r\n const customFieldNames = filteredProjectPinCustomFields\r\n .filter(field => projectTypeCustomFieldList.some(data => data.name === field.name));\r\n let newPointToAdd = {\r\n ...res.projectPin,\r\n key: selectedPoint.key,\r\n projectPinCheckBoxes: projectPinCheckBoxes && projectPinCheckBoxes.length\r\n ? projectPinCheckBoxes.filter(x => x.isChecked === true).map(x => x.name)\r\n : [],\r\n updatedOn: moment().format('MM/DD/yyyy hh:mm a'),\r\n pointCategory: pointCategoryList && pointCategoryList.length && pointCategoryList.find(x => x.id === values.pointCategoryId)\r\n ? pointCategoryList.find(x => x.id === values.pointCategoryId).name\r\n : null,\r\n projectTypePOIStatus: poiStatusList && poiStatusList.length && poiStatusList.find(x => x.id === values.projectTypePOIStatusId)\r\n ? poiStatusList.find(x => x.id === values.projectTypePOIStatusId).name\r\n : null,\r\n addedBy: `${auth.user.firstName} ${auth.user.lastName}`,\r\n projectPinCustomFields: customFieldNames && customFieldNames.length ? customFieldNames : []\r\n };\r\n\r\n let tempList = [...savedProjectPins]\r\n tempList.push(newPointToAdd);\r\n //Edit Mattertags\r\n editMatterportBillboard(values);\r\n editMattertagColor(values);\r\n setSavedProjectPins(tempList);\r\n showAlert({ message: res.message, variant: 'success' });\r\n setIsTableLoading(false);\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n setSelectedPoint(null);\r\n formik.resetForm();\r\n setSelectedCustomFieldIds([]);\r\n let temp = [...projectPinCheckBoxes];\r\n setProjectPinCheckBoxes(temp.map(x => { return { ...x, isChecked: false } }));\r\n setSubmitting(false);\r\n setSlider(1);\r\n // setCustomFieldsData([]);\r\n copyProjectTypeCustomFieldToProjectPinCustomField(projectTypeCustomFieldList)\r\n });\r\n }\r\n else {\r\n var currentImage = project.projectModelImages.find(x => x.id == currentImageIndex);\r\n var imageUrl = captureAnnotatedImage(constants.API_URL + 'api/' + currentImage.imagePath, annotation.geometry, values, setSubmitting);\r\n }\r\n }\r\n\r\n const postImageWithPin = async (values, imageUrl, setSubmitting) => {\r\n await projectPinService.saveProjectPin({\r\n ...values,\r\n AnnotationCoordinates: JSON.stringify({ ...annotation, data: { ...annotation.data, id: Math.random(), text: `${values.title} : ${values.description}` } }),\r\n projectModelImageId: currentImageIndex,\r\n // imageUrl: currentImage && currentImage.imagePath,\r\n imageUrl,\r\n projectPinCheckBoxes: projectPinCheckBoxes,\r\n projectPinCustomFields: filteredProjectPinCustomFields\r\n })\r\n .then(async res => {\r\n // Create an array of custom field names\r\n const customFieldNames = filteredProjectPinCustomFields\r\n .filter(field => projectTypeCustomFieldList.some(data => data.name === field.name));\r\n console.log('customFieldNames', customFieldNames);\r\n let newPointToAdd = {\r\n ...res.projectPin,\r\n key: res.projectPin.annotationCoordinates ? JSON.parse(res.projectPin.annotationCoordinates).data?.id : null,\r\n projectPinCheckBoxes: projectPinCheckBoxes && projectPinCheckBoxes.length\r\n ? projectPinCheckBoxes.filter(x => x.isChecked === true).map(x => x.name)\r\n : [],\r\n updatedOn: moment().format('MM/DD/yyyy hh:mm a'),\r\n pointCategory: pointCategoryList && pointCategoryList.length && pointCategoryList.find(x => x.id === values.pointCategoryId)\r\n ? pointCategoryList.find(x => x.id === values.pointCategoryId).name\r\n : null,\r\n projectTypePOIStatus: poiStatusList && poiStatusList.length && poiStatusList.find(x => x.id === values.projectTypePOIStatusId)\r\n ? poiStatusList.find(x => x.id === values.projectTypePOIStatusId).name\r\n : null,\r\n addedBy: `${auth.user.firstName} ${auth.user.lastName}`,\r\n projectPinCustomFields: customFieldNames && customFieldNames.length ? customFieldNames : []\r\n };\r\n let tempList = [...savedProjectPins]\r\n tempList.push(newPointToAdd);\r\n setSavedProjectPins(tempList);\r\n setAnnotations([...annotations, JSON.parse(res.projectPin.annotationCoordinates)])\r\n showAlert({ message: res.message, variant: 'success' });\r\n setIsTableLoading(false);\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n formik.resetForm();\r\n setSelectedCustomFieldIds([]);\r\n let temp = [...projectPinCheckBoxes];\r\n setProjectPinCheckBoxes(temp.map(x => { return { ...x, isChecked: false } }));\r\n setSubmitting(false);\r\n setAnnotation({});\r\n // setCustomFieldsData([]);\r\n copyProjectTypeCustomFieldToProjectPinCustomField(projectTypeCustomFieldList)\r\n });\r\n }\r\n\r\n // const handleSaveCustomField = () => {\r\n // const selectedField = projectTypeCustomFieldList.find(field => field.id === selectedProjectTypeCustomField);\r\n\r\n // const newCustomFieldData = {\r\n // id: selectedField.id,\r\n // name: selectedField.name,\r\n // isViewable: selectedField.isViewable,\r\n // isEditable: selectedField.isEditable,\r\n // description: customFieldDescription,\r\n // customFieldTypeOptions: selectedField.customFieldTypeOptions\r\n // };\r\n\r\n // setCustomFieldsData(prevData => [...prevData, newCustomFieldData]);\r\n // setIsModalOpen(false);\r\n // };\r\n\r\n\r\n // const handleSaveEditedCustomField = () => {\r\n // const editedFieldIndex = customFieldsData.findIndex(field => field.id === editedCustomField.id);\r\n // if (editedFieldIndex !== -1) {\r\n // const updatedCustomField = {\r\n // ...editedCustomField,\r\n // description: customFieldDescription\r\n // };\r\n\r\n // setCustomFieldsData(prevData => [\r\n // ...prevData.slice(0, editedFieldIndex),\r\n // updatedCustomField,\r\n // ...prevData.slice(editedFieldIndex + 1)\r\n // ]);\r\n\r\n // }\r\n\r\n // setEditedCustomField(null);\r\n // setIsModalOpen(false);\r\n // };\r\n\r\n\r\n\r\n const removeSelectedMatterTag = () => {\r\n formik.resetForm();\r\n setSelectedCustomFieldIds([]);\r\n if (selectedPoint) {\r\n globalSdk.Tag.remove(selectedPoint.key[0]).then(res => {\r\n setSelectedPoint(null);\r\n setSlider(1);\r\n })\r\n }\r\n setAnnotation({});\r\n setHighlightedAnnotationIndex(null);\r\n setSelectedProjectTypeCustomField('');\r\n setSelectedProjectTypeCustomFields([]);\r\n let temp = [...projectPinCheckBoxes];\r\n setProjectPinCheckBoxes(temp.map(x => { return { ...x, isChecked: false } }));\r\n setCustomFieldDescription('');\r\n setCustomFieldsData([]);\r\n copyProjectTypeCustomFieldToProjectPinCustomField(projectTypeCustomFieldList)\r\n }\r\n\r\n const editMattertagColor = async (value) => {\r\n let colorCode;\r\n if (isBusinessTier && poiStatusList && poiStatusList.length) {\r\n const foundStatus = poiStatusList.find(x => x.id === value.projectTypePOIStatusId);\r\n colorCode = foundStatus ? foundStatus.poiColorCode : null;\r\n }\r\n\r\n try {\r\n await globalSdk.Tag.editColor(selectedPoint.key[0], {\r\n ...(isBusinessTier && colorCode && { ...hexToRgb(colorCode) }),\r\n });\r\n } catch (ex) {\r\n console.log(\"Ex is \", ex);\r\n }\r\n }\r\n\r\n const editMatterportBillboard = async (value) => {\r\n // await globalSdk.Mattertag.editBillboard(selectedPoint.key[0], {\r\n // description: value.description,\r\n // label: value.title\r\n // }).catch(ex => console.log(\"Ex is \", ex));\r\n await globalSdk.Tag.editBillboard(selectedPoint.key[0], {\r\n media: {\r\n type: globalSdk.Mattertag.MediaType.PHOTO,\r\n src: value.imageSrc\r\n },\r\n description: value.description,\r\n label: value.title\r\n }).catch(ex => console.log(\"Ex is \", ex));\r\n }\r\n\r\n const hasCustomFieldErrors = () => {\r\n for (let index = 0; index < filteredProjectPinCustomFields.length; index++) {\r\n const field = filteredProjectPinCustomFields[index];\r\n if (validateDescription(field.description, field.customFieldType, field.options)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const removeAndChangeStemLength = (val) => {\r\n globalSdk.Tag.remove(selectedPoint.key[0]).then(res => {\r\n setSelectedPoint(null);\r\n globalSdk.Tag.add({\r\n label: '',\r\n anchorPosition: intersectionState.position,\r\n stemVector: { ...intersectionState.normal, y: val },\r\n stemVisible: true\r\n }).then((key) => {\r\n setSelectedPoint({ ...intersectionState, normal: { ...intersectionState.normal, y: val }, key: key, stemVisible: true });\r\n })\r\n })\r\n }\r\n\r\n const removeAndChangeStemLengthTransientEditor = (val) => {\r\n globalSdk.Tag.remove(selectedPoint.key[0]).then(res => {\r\n setSelectedPoint(null);\r\n globalSdk.Tag.add({\r\n label: '',\r\n anchorPosition: selectedPoint.position,\r\n stemVector: { ...selectedPoint.normal, y: val },\r\n stemVisible: true\r\n }).then((key) => {\r\n setSelectedPoint({ ...selectedPoint, normal: { ...selectedPoint.normal, y: val }, key: key, stemVisible: true });\r\n })\r\n })\r\n }\r\n\r\n const markProjectAsComplete = () => {\r\n projectService.completeProject(project.id).then(res => {\r\n setProject({ ...project, completedDateTime: new Date() })\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => hideConfirmModal())\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n {projectType.name}\r\n
    \r\n {project.projectName}\r\n
    \r\n
    \r\n
    \r\n \r\n Scan Date: {moment(project.scanDate).format('MMMM Do, YYYY')}\r\n \r\n {\r\n project.completedDateTime ?\r\n \r\n Completed On: {moment(project.completedDateTime).format('MMMM Do, YYYY')}\r\n : <>\r\n }\r\n
    \r\n

    \r\n {\r\n isTableLoading &&\r\n
    \r\n

    \r\n Loading Table...\r\n

    \r\n
    \r\n }\r\n \r\n
    \r\n {\r\n (project && !project.completedDateTime && (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager' || auth.role === 'User')) ?\r\n setUpdateImagesModalVisible(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Update Model\r\n \r\n : <>\r\n }\r\n \r\n \r\n \r\n Total Issues: {savedProjectPins.length}\r\n {\r\n project.completedDateTime ?\r\n \r\n \r\n \r\n Generate Report\r\n : <>\r\n }\r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n\r\n project3d && project.modelLink &&\r\n
    \r\n\r\n <>\r\n \r\n \r\n \r\n \r\n {/* Add Marker */}\r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n {\r\n !project3d && project.projectModelImages && project.projectModelImages.length > 0 &&\r\n
    \r\n
    \r\n {\r\n const currentImageId = project.projectModelImages[newActiveIndex].id;\r\n setCurrentImageIndex(currentImageId);\r\n setCarouselIndex(newActiveIndex)\r\n setFetchNewAnnotation(!fetchNewAnnotation)\r\n }}\r\n >\r\n {project.projectModelImages.map((image, index) => (\r\n
    \r\n {renderAnnotations(\r\n constants.API_URL + 'api/' + image.imagePath,\r\n project.projectModelImages[index].id\r\n )}\r\n
    \r\n ))}\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {\r\n project3d && (auth.role !== 'Viewer') &&\r\n
    \r\n
    \r\n handleToggleInspectionModel()}\r\n className=\"btn btn-success btn-fixed-height font-weight-bold px-2 px-lg-5 d-flex justify-content-lg-start\"\r\n >Toggle Inspection Mode\r\n\r\n handleInspectorConditions(false)}\r\n className=\"btn btn-success btn-fixed-height font-weight-bold px-2 px-lg-5 d-flex justify-content-lg-start\"\r\n >Add pointer\r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n Add N-Point {'  '}\r\n \r\n {(selectedPoint || (Object.keys(annotation).length !== 0 && !highlightedAnnotationIndex)) ? 'Active' : 'Inactive'}\r\n \r\n \r\n

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n N-Point Category\r\n {\r\n formik.setFieldValue(\"pointCategoryId\", e.target.value === \"\" ? \"\" : Number(e.target.value));\r\n handlePointCategoryChange(Number(e.target.value));\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.pointCategoryId && formik.errors.pointCategoryId ? (\r\n
    \r\n {formik.errors.pointCategoryId}\r\n
    \r\n ) : null}\r\n
    \r\n {console.log(formik.errors)}\r\n\r\n\r\n  \r\n \r\n N-Point Status\r\n {\r\n formik.setFieldValue(\"projectTypePOIStatusId\", e.target.value === \"\" ? \"\" : Number(e.target.value));\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.projectTypePOIStatusId && formik.errors.projectTypePOIStatusId ? (\r\n
    \r\n {formik.errors.projectTypePOIStatusId}\r\n
    \r\n ) : null}\r\n
    \r\n\r\n \r\n \r\n\r\n {formik.touched.title && formik.errors.title ? (\r\n
    \r\n {formik.errors.title}\r\n
    \r\n ) : null}\r\n
    \r\n\r\n\r\n \r\n \r\n \r\n\r\n {\r\n selectedPoint &&\r\n <>\r\n

    Stem Length

    \r\n {\r\n setSlider(value);\r\n useTransientTagEditor ?\r\n removeAndChangeStemLengthTransientEditor(value)\r\n :\r\n removeAndChangeStemLength(value);\r\n }}\r\n aria-labelledby=\"discrete-slider\"\r\n valueLabelDisplay=\"auto\"\r\n min={0}\r\n step={0.000001}\r\n max={3}\r\n />\r\n \r\n }\r\n \r\n {/*
    \r\n {customFieldsData.map((field) => (\r\n handleEditCustomField(field)}\r\n onDelete={() => handleDeleteCustomField(field.id)}\r\n className=\"selected-chip\"\r\n />\r\n ))}\r\n
    */}\r\n\r\n\r\n
    \r\n \r\n }>\r\n Custom Fields\r\n \r\n \r\n
    \r\n {filteredProjectPinCustomFields && filteredProjectPinCustomFields.length > 0 && filteredProjectPinCustomFields.map((field, index) => {\r\n const validationError = validateDescription(field.description, field.customFieldType, field.options);\r\n let inputComponent;\r\n\r\n switch (field.customFieldType.toLowerCase()) {\r\n case 'dropdown':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n displayEmpty\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n );\r\n break;\r\n case 'checkbox':\r\n inputComponent = field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n
    \r\n handleCheckboxChange(e, index, option.trim())}\r\n name={field.name}\r\n />\r\n }\r\n label={option.trim()}\r\n />\r\n
    \r\n ));\r\n break;\r\n case 'multiselect':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n renderValue={(selected) => selected.join(', ')}\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n\r\n );\r\n break;\r\n default:\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n multiline={field.customFieldType.toLowerCase().includes('text')}\r\n rowsMax={field.customFieldType.toLowerCase().includes('text') ? \"4\" : \"1\"}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n className=\"large-textarea\"\r\n InputLabelProps={field.customFieldType.toLowerCase().includes('date') ? { shrink: true } : undefined}\r\n type={field.customFieldType.toLowerCase().includes('date') ? 'date' : 'text'}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    {field.name}
    \r\n {field.customFieldType &&
    ({field.customFieldType})
    }\r\n {inputComponent}\r\n {validationError &&
    {validationError}
    }\r\n
    \r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {/* selected.map(value => projectTypeCustomFieldList.find(item => item.id === value)?.name).join(', ')}\r\n >\r\n {projectTypeCustomFieldList?.filter(field => !selectedCustomFieldIds.includes(field.id)).map((field) => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n */}\r\n
    \r\n\r\n \r\n
    \r\n {\r\n projectPinCheckBoxes.map((curr, index) =>\r\n
    \r\n {\r\n let tempArr = [...projectPinCheckBoxes];\r\n tempArr.find(x => x.name === curr.name).isChecked = val;\r\n\r\n setProjectPinCheckBoxes(tempArr);\r\n }}\r\n />\r\n }\r\n label={curr.name}\r\n labelPlacement=\"end\"\r\n />\r\n
    \r\n )\r\n }\r\n
    \r\n\r\n
    \r\n Cancel\r\n Save Point\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n !isTableLoading &&\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') &&\r\n
    \r\n showConfirmModal({\r\n title: \"Complete Nspection\",\r\n text: \"Are you sure you want to complete this project?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => markProjectAsComplete()\r\n })}\r\n className=\"btn btn-block btn-white btn-hover-success text-center py-10 px-5 mt-0 mr-3 pin-action-btn\"\r\n >\r\n \r\n \r\n Mark Inspection Complete\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Generate
    New Report
    \r\n \r\n
    \r\n }\r\n
    \r\n {\r\n isTableLoading &&\r\n
    \r\n \r\n
    \r\n }\r\n\r\n\r\n
    \r\n {\r\n !project3d && project && project.projectModelImages && project.projectModelImages.length > 0 &&\r\n {\r\n if (val) {\r\n fetchProjectPinsForAProjectAndImageId(project, '');\r\n }\r\n else {\r\n setFetchNewAnnotation(!fetchNewAnnotation);\r\n }\r\n setShowAllChecked(val);\r\n }}\r\n />\r\n }\r\n label={`Show All Points`}\r\n labelPlacement=\"end\"\r\n />\r\n\r\n }\r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager' || auth.role === 'User') ?\r\n setUpdateImagesModalVisible(false)}\r\n refresh={() => { setProjectTypeChangeDetector(!projectTypeChangeDetector) }}\r\n project={project}\r\n /> : <>\r\n }\r\n setUpdateProjectPinModalVisible(false)}\r\n reloadTable={() => {\r\n setIsTableLoading(true);\r\n if (project3d) {\r\n fetchProjectPinsForAProject(project);\r\n }\r\n else {\r\n setFetchNewAnnotation(!fetchNewAnnotation);\r\n }\r\n }}\r\n />\r\n {/* {\r\n setEditedCustomField(null);\r\n setIsModalOpen(false);\r\n }}>\r\n \r\n {editedCustomField ? 'Edit Custom Field' : 'Add Custom Field'}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Custom Field\r\n \r\n {projectTypeCustomFieldList\r\n .filter(field => !selectedProjectTypeCustomFields.includes(field.id))\r\n .map(field => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {editedCustomField && (\r\n \r\n )}\r\n {!editedCustomField && (\r\n \r\n )}\r\n \r\n \r\n
    */}\r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions })(ProjectEditPage);","import React, { useEffect, useState, createRef, useRef } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport '../../_metronic/_assets/css/Chargify.css';\r\nimport * as alert from \"../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../redux/confirmModalRedux\";\r\nimport * as authRedux from \"../../app/modules/Auth/_redux/authRedux\";\r\nimport * as settingService from '../../services/settings/settingService';\r\nimport * as clientServices from '../../services/management/clientService';\r\nimport * as clientTierServices from '../../services/management/clientTierService';\r\n\r\nconst AddPaymentModal = (props) => {\r\n const { open, handleClose, clientId, showAlert } = props;\r\n const form = createRef();\r\n var chargify = useRef(new window.Chargify());\r\n const [securityToken, setSecurityToken] = useState(null);\r\n const [clientInfo, setClientInfo] = useState({});\r\n const [publicKey, setPublicKey] = useState('');\r\n const [serverHost, setServerHost] = useState('');\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n fetchServerHost();\r\n fetchChargifyPublicKey();\r\n if (clientId) {\r\n fetchClientInfoById(clientId);\r\n }\r\n generateSecurityToken();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (open && securityToken) {\r\n chargify.current.load({\r\n publicKey: publicKey,\r\n securityToken: securityToken,\r\n type: 'card',\r\n serverHost: serverHost,\r\n hideCardImage: false,\r\n optionalLabel: '(optional field)',\r\n requiredLabel: '*',\r\n addressDropdowns: true,\r\n fields: {\r\n firstName: {\r\n selector: '#chargify1',\r\n label: 'First Name on Account',\r\n required: false,\r\n value: clientInfo.contactName.split(' ')[0] ? clientInfo.contactName.split(' ')[0] : '',\r\n message: 'First name is not valid. Please update it.',\r\n maxlength: '30',\r\n },\r\n lastName: {\r\n selector: '#chargify2',\r\n label: 'Last Name on Account',\r\n required: false,\r\n value: clientInfo.contactName.split(' ')[1] ? clientInfo.contactName.split(' ')[1] : '',\r\n message: 'This field is not valid. Please update it.',\r\n maxlength: '30',\r\n },\r\n number: {\r\n selector: '#chargify3',\r\n label: 'Number',\r\n placeholder: 'xxxx xxxx xxxx xxxx',\r\n message: 'This field is not valid. Please update it.',\r\n },\r\n month: {\r\n selector: '#chargify4',\r\n label: 'Mon',\r\n placeholder: 'mm',\r\n message: 'This field is not valid. Please update it.',\r\n },\r\n year: {\r\n selector: '#chargify5',\r\n label: 'Year',\r\n placeholder: 'yyyy',\r\n message: 'This field is not valid. Please update it.',\r\n },\r\n cvv: {\r\n selector: '#chargify6',\r\n label: 'CVV code',\r\n placeholder: '123',\r\n required: false,\r\n message: 'This field is not valid. Please update it.',\r\n },\r\n address: {\r\n selector: '#chargify7',\r\n label: 'Address',\r\n placeholder: '1234 Hill St',\r\n required: false,\r\n message: 'This field is not valid. Please update it.',\r\n maxlength: '70',\r\n },\r\n address2: {\r\n selector: '#chargify8',\r\n label: 'Address 2',\r\n placeholder: '1234 Hill St',\r\n required: false,\r\n message: 'This field is not valid. Please update it.',\r\n maxlength: '70',\r\n },\r\n city: {\r\n selector: '#chargify9',\r\n label: 'City',\r\n placeholder: 'Austin',\r\n required: false,\r\n message: 'This field is not valid. Please update it.',\r\n maxlength: '30',\r\n },\r\n country: {\r\n selector: '#chargify10',\r\n label: 'Country',\r\n placeholder: 'Select...',\r\n required: false,\r\n message: 'This field is not valid. Please update it.',\r\n maxlength: '2',\r\n },\r\n state: {\r\n selector: '#chargify11',\r\n label: 'State',\r\n placeholder: 'Select...',\r\n required: false,\r\n message: 'This field is not valid. Please update it.',\r\n maxlength: '2',\r\n },\r\n zip: {\r\n selector: '#chargify12',\r\n label: 'Zip Code',\r\n placeholder: '10001',\r\n required: false,\r\n message: 'This field is not valid. Please update it.',\r\n maxlength: '5',\r\n },\r\n },\r\n });\r\n }\r\n\r\n }, [open, securityToken]);\r\n\r\n const fetchChargifyPublicKey = () => {\r\n settingService.getSettingByKey(\"ChargifyPublicKey\").then(res => {\r\n setPublicKey(res);\r\n }).catch(err => {\r\n console.log(\"unable to fetch public key for chargify\", err);\r\n })\r\n }\r\n\r\n const fetchServerHost = () => {\r\n settingService.getSettingByKey(\"ChargifyURL\").then(res => {\r\n setServerHost(res);\r\n }).catch(err => {\r\n console.log(\"unable to fetch server host for chargify\", err);\r\n })\r\n }\r\n\r\n const fetchClientInfoById = (id) => {\r\n clientServices.getClientById(id).then(res => {\r\n setClientInfo(res);\r\n }).catch(err => {\r\n console.log(err);\r\n })\r\n }\r\n\r\n const generateSecurityToken = () => {\r\n clientServices.generateSecurityToken().then(res => {\r\n setSecurityToken(res);\r\n }).catch(err => {\r\n console.log(err);\r\n })\r\n }\r\n\r\n const handleFormSubmit = (e) => {\r\n e.preventDefault();\r\n chargify.current.token(\r\n form.current,\r\n function success(token) {\r\n setLoading(true);\r\n savePaymentProfileToken(token);\r\n form.submit();\r\n },\r\n function error(err) {\r\n showAlert({ message: err.message, variant: 'error' });\r\n console.log('token ERROR - err: ', err);\r\n }\r\n );\r\n }\r\n\r\n const savePaymentProfileToken = (token) => {\r\n if (token) {\r\n clientServices.savePaymentProfile({ paymentToken: token }).then(res => {\r\n handleClose();\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(err => {\r\n showAlert({ message: err, variant: 'error' });\r\n }).finally(() => {\r\n setLoading(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Add new Payment Profile\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions, ...authRedux.actions })(AddPaymentModal);\r\n","import React, { useEffect, useState, createRef, useRef } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport '../../../_metronic/_assets/css/Chargify.css';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport AddPaymentModal from '../../components/AddPaymentModal';\r\nimport * as alert from \"../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../redux/confirmModalRedux\";\r\nimport * as authRedux from \"../../../app/modules/Auth/_redux/authRedux\";\r\nimport * as clientServices from '../../../services/management/clientService';\r\nimport * as clientTierServices from '../../../services/management/clientTierService';\r\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\r\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\r\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n helperText: {\r\n color: 'red',\r\n fontSize: '1.2em'\r\n }\r\n}));\r\n\r\nconst ChargifyForm = (props) => {\r\n const classes = useStyles();\r\n const { clientId } = useParams();\r\n const history = useHistory();\r\n\r\n const { auth, showAlert, upgradeTier } = props;\r\n const [isIframeVisible, setIsIframeVisible] = useState(false);\r\n const [products, setProducts] = useState([]);\r\n const [disableAddNewCardButton, setDisableAddNewCardButton] = useState(false);\r\n const [selectedProductName, setSelectedProductName] = useState('');\r\n const [isSubmitted, setIsSubmitted] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [isPageLoading, setIsPageLoading] = useState(true);\r\n const [paymentProfiles, setPaymentProfiles] = useState([]);\r\n const [selectedPaymentProfile, setSelectedPaymentProfile] = useState(null);\r\n const [isAddCardModalOpen, setIsAddCardModalOpen] = useState(false);\r\n const [refresh, setRefresh] = useState(false);\r\n\r\n useEffect(() => {\r\n setIsPageLoading(true);\r\n if (auth.role === \"SuperAdmin\" || auth.role === \"Admin\") {\r\n fetchCurrentSubscription();\r\n fetchProductsFromChargify();\r\n if (auth && auth.user && auth.user.id) {\r\n fetchPaymentProfilesForClient();\r\n }\r\n }\r\n setIsPageLoading(false);\r\n }, [refresh]);\r\n\r\n const fetchPaymentProfilesForClient = () => {\r\n clientServices.getPaymentProfilesForClient().then(res => {\r\n setPaymentProfiles(res.data);\r\n }).catch(err => {\r\n setDisableAddNewCardButton(true);\r\n console.log(err);\r\n })\r\n }\r\n\r\n const fetchCurrentSubscription = () => {\r\n clientServices.getSubscriptionById().then(res => {\r\n if (res.result) {\r\n setSelectedProductName(res.data.product.name);\r\n }\r\n }).catch(err => {\r\n setDisableAddNewCardButton(true);\r\n showAlert({ message: err.message, variant: 'error' });\r\n })\r\n }\r\n\r\n const handleSelectPaymentProfile = (event) => {\r\n setSelectedPaymentProfile(event.target.value);\r\n };\r\n\r\n const fetchProductsFromChargify = () => {\r\n clientTierServices.getProductsFromChargify().then(res => {\r\n setProducts(res);\r\n }).catch(err => {\r\n setDisableAddNewCardButton(true);\r\n showAlert({ message: err.message, variant: 'error' });\r\n })\r\n }\r\n\r\n const handleProductSelectChange = (event) => {\r\n setSelectedProductName(event.target.value);\r\n if (isSubmitted) setIsSubmitted(false);\r\n }\r\n\r\n const handleFormSubmit = (e) => {\r\n e.preventDefault();\r\n setIsSubmitted(true);\r\n\r\n if (selectedProductName && selectedPaymentProfile && selectedProductName !== 'Enterprise') {\r\n setLoading(true);\r\n savePaymentProfileTokenAndCreateSubscription();\r\n }\r\n }\r\n\r\n const handleModalClose = () => {\r\n setIsAddCardModalOpen(false);\r\n setRefresh(!refresh);\r\n }\r\n\r\n const savePaymentProfileTokenAndCreateSubscription = () => {\r\n clientServices.savePaymentProfileAndOrSubscribe({ clientTierName: selectedProductName, paymentProfileId: selectedPaymentProfile }).then(res => {\r\n if (res.result) {\r\n upgradeTier(selectedProductName);\r\n history.replace('/dashboard');\r\n showAlert({ message: res.message, variant: 'success' });\r\n }\r\n }).catch(err => {\r\n showAlert({ message: err.message, variant: 'error' });\r\n }).finally(() => {\r\n setIsSubmitted(false);\r\n setLoading(false);\r\n setSelectedProductName('');\r\n setSelectedPaymentProfile(null);\r\n })\r\n }\r\n\r\n const handleNewCardModalAllowance = () => {\r\n if(!disableAddNewCardButton) {\r\n setIsAddCardModalOpen(true)\r\n } else {\r\n showAlert({ message: 'Unable to pull your payment profile information.', variant: 'error' });\r\n }\r\n }\r\n\r\n return (\r\n isPageLoading ? (\r\n
    Loading...
    \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n

    Update Subscription

    \r\n  \r\n

    To vist our page for detailed information. Click here.

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

    \r\n \r\n Choose the tier plan\r\n \r\n

    \r\n
    \r\n
    \r\n setIsIframeVisible(!isIframeVisible)}>\r\n \r\n

    Compare Tier plans

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n  \r\n  \r\n
    \r\n \r\n Tier Plan\r\n  \r\n \r\n {products\r\n .map(field => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n {isSubmitted && !selectedProductName && You must select an option.}\r\n {(selectedProductName === 'Enterprise') && Please schedule a call with us to buy this payment plan. Click here to continue.}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n Choose the payment method\r\n \r\n

    \r\n
    \r\n
    \r\n \r\n Payment Profile\r\n  \r\n\r\n \r\n {paymentProfiles.length > 0 ?\r\n paymentProfiles.map((profile, index) => (\r\n \r\n {`Card ending in ${profile.masked_card_number}`}\r\n \r\n ))\r\n : No payment profiles available\r\n }\r\n \r\n {isSubmitted && !selectedPaymentProfile && You must select a payment profile.}\r\n \r\n {!paymentProfiles.length && Please add a payment profile to proceed.}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n  \r\n  \r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions, ...authRedux.actions })(ChargifyForm);","import React, { useEffect, useState, useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport NewProjectModal from \"../../../components/NewProjectModal\";\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../../redux/confirmModalRedux\";\r\nimport * as projectService from '../../../../services/service/projectService';\r\nimport * as projectTypeService from '../../../../services/service/projectTypeService';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst moment = require('moment');\r\n\r\nconst ProjectTypeEditPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, auth, history } = props;\r\n const [addProjectModalVisible, setAddProjectModalVisible] = useState(false);\r\n const [activeProjects, setActiveProjects] = useState([]);\r\n const [completedProjects, setCompletedProjects] = useState([]);\r\n const [projectTypes, setProjectTypes] = useState([]);\r\n\r\n useEffect(() => {\r\n loadActiveProjectTypesTable();\r\n loadActiveProjectTable();\r\n loadCompletedProjectTable();\r\n }, [history]);\r\n\r\n const loadActiveProjectTable = () => {\r\n projectService.getProjects(false).then(res => {\r\n setActiveProjects(res);\r\n })\r\n }\r\n\r\n const loadCompletedProjectTable = () => {\r\n projectService.getProjects(true).then(res => {\r\n setCompletedProjects(res);\r\n })\r\n }\r\n\r\n const loadActiveProjectTypesTable = () => {\r\n projectTypeService.getAllProjectTypes().then(res=> {\r\n setProjectTypes(res);\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"projectName\",\r\n label: \"Nspection Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"projectTypes\",\r\n label: \"Nspection Type\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {projectTypes[dataIndex].name}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"clientId\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {activeProjects[dataIndex].client.businessName}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"scanDate\",\r\n label: \"Scan Date\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {moment(activeProjects[dataIndex].scanDate).format('MM/DD/yyyy')}

    \r\n )\r\n }\r\n },\r\n },\r\n \r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n \r\n View Nspection\r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') ?\r\n showConfirmModal({\r\n title: \"Delete Nspection\",\r\n text: \"Are you sure you want to delete this project?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProject(activeProjects[dataIndex].id, false)\r\n })\r\n }\r\n >\r\n Delete Nspection\r\n \r\n : <>\r\n }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const completed_columns = [\r\n {\r\n name: \"projectName\",\r\n label: \"Nspection Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n },\r\n },\r\n {\r\n name: \"projectTypes\",\r\n label: \"Nspection Type\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {projectTypes[dataIndex].name}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"clientId\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {completedProjects[dataIndex].client.businessName}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"scanDate\",\r\n label: \"Scan Date\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {moment(completedProjects[dataIndex].scanDate).format('MM/DD/yyyy')}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"completedDateTime\",\r\n label: \"Completed Date\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {moment(completedProjects[dataIndex].completedDateTime).format('MM/DD/yyyy')}

    \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n \r\n View Nspection\r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') ?\r\n showConfirmModal({\r\n title: \"Delete Nspection\",\r\n text: \"Are you sure you want to delete this project?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProject(completedProjects[dataIndex].id, true)\r\n })\r\n }\r\n >\r\n Delete Nspection\r\n \r\n : <>\r\n }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const deleteProject = (projectId, isCompleted) => {\r\n projectService.deleteProject(projectId).then(res => {\r\n showAlert({ message: res.message, variant: 'success' })\r\n hideConfirmModal();\r\n if (isCompleted) {\r\n loadCompletedProjectTable();\r\n } else {\r\n loadActiveProjectTable();\r\n }\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' })\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 Active Nspections \r\n \r\n \r\n View and Manage Active Nspections\r\n \r\n

    \r\n
    \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') ?\r\n setAddProjectModalVisible(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add Nspection\r\n \r\n : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager') ?\r\n setAddProjectModalVisible(false)}\r\n reloadTable={() => loadActiveProjectTable()}\r\n /> : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n Completed Nspections\r\n \r\n \r\n View and Manage Completed Nspections\r\n \r\n

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions })(ProjectTypeEditPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"PointCategory/\";\r\n\r\nconst getPointCategoryById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetPointCategoryById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getPointCategoryByProjectTypeId = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetPointCategoryByProjectTypeId?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getPointCategories = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetPointCategories', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst savePointCategory = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SavePointCategory', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deletePointCategory = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeletePointCategory?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deletePointCategoryIsDeletedFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeletePointCategoryIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getPointCategoryById,\r\n getPointCategoryByProjectTypeId,\r\n getPointCategories,\r\n savePointCategory,\r\n deletePointCategory,\r\n deletePointCategoryIsDeletedFlag\r\n}","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ProjectTypeCustomField/\";\r\n\r\nconst getProjectTypeCustomFieldById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypeCustomFieldById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectTypeCustomFieldByProjectTypeId = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypeCustomFieldByProjectTypeId?projTypeId=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectTypeCustomFields = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypeCustomFields', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProjectTypeCustomField = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectTypeCustomField', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectTypeCustomField = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteProjectTypeCustomField?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectTypeCustomFieldIsDeletedFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeleteProjectTypeCustomFieldIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getProjectTypeCustomFieldById,\r\n getProjectTypeCustomFieldByProjectTypeId,\r\n getProjectTypeCustomFields,\r\n saveProjectTypeCustomField,\r\n deleteProjectTypeCustomField,\r\n deleteProjectTypeCustomFieldIsDeletedFlag\r\n}","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required(\"Name is required\"),\r\n description: Yup.string(),\r\n poiColorCode: Yup.string().nullable(),\r\n isResolved: Yup.boolean()\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport { connect } from \"react-redux\";\r\nimport * as pointCategoryService from \"../../../services/settings/pointCategoryService\";\r\nimport * as projectTypeCustomFieldService from \"../../../services/settings/projectTypeCustomFieldService\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport { blue } from '@material-ui/core/colors';\r\nimport { useFormik } from \"formik\";\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport PointCategoryValidator from \"../../../helpers/validators/PointCategoryValidator\";\r\nimport { getErrorField } from \"../../../helpers/helper\";\r\nimport * as alert from \"../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../redux/confirmModalRedux\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nconst BlueCheckbox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nvar initialPointCategory = {\r\n id: 0,\r\n name: '',\r\n description: '',\r\n projectTypeId: '',\r\n projectTypeCustomFieldId: 0,\r\n isDeleted: false,\r\n isDefault: false\r\n}\r\n\r\nconst PointCategorysListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, history } = props;\r\n const [data, setData] = useState([]);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [selectedPointCategory, setSelectedPointCategory] = useState(initialPointCategory);\r\n const [projectTypeCustomFields, setProjectTypeCustomFields] = useState([]);\r\n const [selectedCustomFields, setSelectedCustomFields] = useState([]);\r\n\r\n useEffect(() => {\r\n loadTableData();\r\n loadProjectTypeCustomFields();\r\n }, [])\r\n\r\n const loadProjectTypeCustomFields = () => {\r\n if (history.location.state.projectTypeId) {\r\n projectTypeCustomFieldService.getProjectTypeCustomFieldByProjectTypeId(history.location.state.projectTypeId).then(res => {\r\n const formattedFields = res.map(field => ({\r\n value: field.id,\r\n label: field.name,\r\n isDefault: field.isDefault\r\n }));\r\n setProjectTypeCustomFields(formattedFields);\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n };\r\n\r\n const loadTableData = () => {\r\n\r\n if (history.location.state.projectTypeId) {\r\n pointCategoryService.getPointCategoryByProjectTypeId(history.location.state.projectTypeId).then(res => {\r\n setData(res);\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n else {\r\n pointCategoryService.getPointCategories().then(res => {\r\n setData(res);\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n\r\n }\r\n\r\n const editPointCategory = (id) => {\r\n pointCategoryService.getPointCategoryById(id).then(res => {\r\n setSelectedPointCategory(res);\r\n console.log(res.pointCategoryProjectTypeCustomFields)\r\n if (res.isDefault) {\r\n console.log('hererer', res.pointCategoryProjectTypeCustomFields.filter(field => field.projectTypeCustomField.isDefault).map(x => x.projectTypeCustomFieldId))\r\n setSelectedCustomFields(res.pointCategoryProjectTypeCustomFields.filter(field => field.projectTypeCustomField.isDefault).map(x => x.projectTypeCustomFieldId))\r\n } else {\r\n setSelectedCustomFields(res.pointCategoryProjectTypeCustomFields.filter(field => !field.projectTypeCustomField.isDefault).map(x => x.projectTypeCustomFieldId));\r\n }\r\n setIsModalOpen(true);\r\n })\r\n }\r\n\r\n // const deletePointCategory = (id) => {\r\n // pointCategoryService.deletePointCategory(id).then(res => {\r\n // showAlert({ message: res.message, variant: \"success\" });\r\n // loadTableData();\r\n // hideConfirmModal();\r\n // })\r\n // }\r\n\r\n const deletePointCategory = (id, projectTypeId) => {\r\n let deleteModel = { ...selectedPointCategory, isDeleted: true, projectTypeId: projectTypeId, id: id }\r\n pointCategoryService.deletePointCategoryIsDeletedFlag(deleteModel).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n hideConfirmModal();\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n }\r\n },\r\n {\r\n name: \"description\",\r\n label: \"Description\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].description ? data[dataIndex].description : \"-\"}\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"pointCategoryProjectTypeCustomFields\",\r\n label: \"Custom Fields\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n var defaultFields = data[dataIndex].pointCategoryProjectTypeCustomFields.filter(field => field.projectTypeCustomField.isDefault).map(x => x.projectTypeCustomField.name).join(', ');\r\n var nonDefaultFields = data[dataIndex].pointCategoryProjectTypeCustomFields.filter(field => !field.projectTypeCustomField.isDefault).map(x => x.projectTypeCustomField.name).join(', ');\r\n console.log(defaultFields);\r\n const customFields = data[dataIndex].pointCategoryProjectTypeCustomFields.length > 0 ? (data[dataIndex].isDefault ? defaultFields : nonDefaultFields) : '-';\r\n\r\n return <>{customFields};\r\n }\r\n }\r\n },\r\n {\r\n name: \"isDefault\",\r\n label: \"Is Default\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return data[dataIndex].isDefault &&\r\n \r\n {'Default'}\r\n \r\n }\r\n\r\n }\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n width: 1,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n editPointCategory(data[dataIndex].id)}\r\n >\r\n Edit\r\n  \r\n showConfirmModal({\r\n title: \"Delete N-Point Category\",\r\n text: \"Are you sure you want to delete this n-point category?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deletePointCategory(data[dataIndex].id, data[dataIndex].projectTypeId)\r\n })}\r\n className=\"btn btn-sm btn-danger font-weight-bold py-2 px-3 px-xxl-5 my-1\"\r\n >\r\n Delete\r\n \r\n \r\n );\r\n }\r\n },\r\n\r\n },\r\n ];\r\n\r\n const handleModalClose = () => {\r\n setIsModalOpen(false);\r\n setSelectedPointCategory(initialPointCategory);\r\n setSelectedCustomFields([]);\r\n formik.resetForm();\r\n }\r\n\r\n const savePointCategory = (values, setStatus, setSubmitting) => {\r\n let newValues = { ...values, projectTypeId: history.location.state.projectTypeId, projectTypeCustomFieldIds: selectedCustomFields };\r\n pointCategoryService.savePointCategory(newValues).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n handleModalClose();\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n })\r\n }\r\n\r\n const handleCustomFieldChange = (event) => {\r\n setSelectedCustomFields(event.target.value);\r\n };\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: selectedPointCategory,\r\n validationSchema: PointCategoryValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n savePointCategory(values, setStatus, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n N-Point Category\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.name && formik.errors.name ? (\r\n
    \r\n {formik.errors.name}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.description && formik.errors.description ? (\r\n
    \r\n {formik.errors.description}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n {\r\n formik.setFieldValue(\"isDefault\", val);\r\n }}\r\n />\r\n }\r\n label=\"Is Default\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n Project Type Custom Fields\r\n \r\n\r\n {\r\n formik.values.isDefault ?\r\n projectTypeCustomFields.filter(field => field.isDefault).map((field) => (\r\n \r\n {field.label}\r\n \r\n )) :\r\n projectTypeCustomFields.filter(field => !field.isDefault).map((field) => (\r\n \r\n {field.label}\r\n \r\n ))\r\n }\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n Save\r\n {formik.isSubmitting}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n N-Point Category\r\n \r\n \r\n View and Manage N-Point Categories\r\n \r\n

    \r\n
    \r\n setIsModalOpen(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add N-Point Category\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default connect(null, { ...alert.actions, ...confirmModal.actions })(PointCategorysListingPage);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n key: Yup.string().required(),\r\n value: Yup.string().required()\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport { connect } from \"react-redux\";\r\nimport * as settingService from \"../../../services/settings/settingService\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport { useFormik } from \"formik\";\r\nimport SettingValidator from \"../../../helpers/validators/SettingValidator\";\r\nimport { getErrorField } from \"../../../helpers/helper\";\r\nimport * as alert from \"../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../redux/confirmModalRedux\";\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nvar initialSetting = {\r\n id: 0,\r\n key: '',\r\n value: '',\r\n}\r\n\r\nconst SettingListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, history } = props;\r\n const [data, setData] = useState([]);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [selectedSetting, setSelectedSetting] = useState(initialSetting);\r\n\r\n useEffect(() => {\r\n loadTableData();\r\n }, [])\r\n\r\n const loadTableData = () => {\r\n settingService.getSettings().then(res => {\r\n setData(res);\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n\r\n const editSetting = (id) => {\r\n settingService.getSettingById(id).then(res => {\r\n setSelectedSetting(res);\r\n setIsModalOpen(true);\r\n })\r\n }\r\n\r\n const deleteSetting = (id) => {\r\n settingService.deleteSetting(id).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n hideConfirmModal();\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"key\",\r\n label: \"Key\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n }\r\n },\r\n {\r\n name: \"value\",\r\n label: \"Value\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].value ? data[dataIndex].value : \"-\"}\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n width: 1,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n editSetting(data[dataIndex].id)}\r\n >\r\n Edit\r\n  \r\n showConfirmModal({\r\n title: \"Delete Setting\",\r\n text: \"Are you sure you want to delete this setting?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteSetting(data[dataIndex].id)\r\n })}\r\n className=\"btn btn-sm btn-danger font-weight-bold py-2 px-3 px-xxl-5 my-1\"\r\n >\r\n Delete\r\n \r\n \r\n );\r\n }\r\n },\r\n\r\n },\r\n ];\r\n\r\n const handleModalClose = () => {\r\n setIsModalOpen(false);\r\n setSelectedSetting(initialSetting);\r\n formik.resetForm();\r\n }\r\n\r\n const saveSetting = (values, setStatus, setSubmitting) => {\r\n settingService.saveSetting({ ...values }).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n handleModalClose();\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n })\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: selectedSetting,\r\n validationSchema: SettingValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveSetting(values, setStatus, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n Setting\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.key && formik.errors.key ? (\r\n
    \r\n {formik.errors.key}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.value && formik.errors.value ? (\r\n
    \r\n {formik.errors.value}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Save\r\n {formik.isSubmitting}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n Setting\r\n \r\n \r\n View and Manage Settings\r\n \r\n

    \r\n
    \r\n setIsModalOpen(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add Setting\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default connect(null, { ...alert.actions, ...confirmModal.actions })(SettingListingPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"Report/\";\r\n\r\nconst getHashLinkForReport = async (projectId, userId) => await axiosInstance.get(ENDPOINTORIGIN + 'GetHashLinkForReport?projectId=' + projectId + '&userId=' + userId, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getHashLinkForReport,\r\n}","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ProjectPinCustomField/\";\r\n\r\nconst getProjectPinCustomFieldById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinCustomFieldById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinCustomFieldByProjectPinId = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinCustomFieldByProjectPinId?projPinId=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinCustomFields = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectPinCustomFields', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProjectPinCustomField = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectPinCustomField', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectPinCustomFieldByProjectPinIdShareableReport = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'GetProjectPinCustomFieldByProjectPinIdShareableReport', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProjectPinCustomFieldShareableReport = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectPinCustomFieldShareableReport', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectPinCustomField = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteProjectPinCustomField?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getProjectPinCustomFieldById,\r\n getProjectPinCustomFieldByProjectPinId,\r\n getProjectPinCustomFields,\r\n saveProjectPinCustomField,\r\n saveProjectPinCustomFieldShareableReport,\r\n getProjectPinCustomFieldByProjectPinIdShareableReport,\r\n deleteProjectPinCustomField\r\n}","/* eslint-disable no-restricted-imports */\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport { validateDescription } from '../../helpers/helper';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport * as Yup from \"yup\";\r\nimport { getErrorField } from '../../helpers/helper';\r\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\r\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\r\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport * as projectPinCustomFieldService from '../../services/settings/projectPinCustomFieldService';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\n\r\nconst UpdateCustomFieldModal = (props) => {\r\n const classes = useStyles();\r\n const { show, hide, showAlert, token, pin } = props;\r\n const [projectPinCustomField, setProjectPinCustomField] = useState(null);\r\n const [customFields, setCustomFields] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n if (pin && pin.id) {\r\n if (token) {\r\n fetchProjectPinCustomFieldShareable({ token, id: pin.id });\r\n }\r\n else {\r\n fetchProjectPinCustomField(pin.id);\r\n }\r\n }\r\n }, [pin.id]);\r\n\r\n const fetchProjectPinCustomField = (customFieldId) => {\r\n projectPinCustomFieldService.getProjectPinCustomFieldByProjectPinId(customFieldId).then(res => {\r\n setCustomFields(res);\r\n }).catch(err => {\r\n console.log(err);\r\n })\r\n }\r\n const handleCheckboxChange = (e, index, option) => {\r\n const updatedFields = [...customFields];\r\n let selectedOptions = updatedFields[index].description ? updatedFields[index].description.split(', ') : [];\r\n\r\n if (e.target.checked) {\r\n selectedOptions = [...selectedOptions, option];\r\n } else {\r\n selectedOptions = selectedOptions.filter(item => item !== option);\r\n }\r\n\r\n updatedFields[index].description = selectedOptions.join(', ');\r\n setCustomFields(updatedFields);\r\n };\r\n\r\n\r\n const handleDescriptionChange = (e, index) => {\r\n const updatedFields = [...customFields];\r\n const field = updatedFields[index];\r\n\r\n if (field.customFieldType.toLowerCase() === 'dropdown') {\r\n field.description = e.target.value;\r\n } else if (field.customFieldType.toLowerCase() === 'multiselect') {\r\n field.description = e.target.value.join(', ');\r\n } else {\r\n field.description = e.target.value;\r\n }\r\n\r\n setCustomFields(updatedFields);\r\n };\r\n\r\n const fetchProjectPinCustomFieldShareable = (model) => {\r\n projectPinCustomFieldService.getProjectPinCustomFieldByProjectPinIdShareableReport(model).then(res => {\r\n setCustomFields(res);\r\n }).catch(err => {\r\n console.log(err);\r\n })\r\n }\r\n\r\n const hasValidationError = () => {\r\n for (let index = 0; index < customFields.length; index++) {\r\n const field = customFields[index];\r\n if (validateDescription(field.description, field.customFieldType)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const saveCustomFieldName = (event) => {\r\n event.preventDefault(); // Prevent the default form submission behavior\r\n\r\n // if (hasValidationError) {\r\n // showAlert({ message: \"Please correct the errors before submitting.\", variant: 'error' });\r\n // return;\r\n // }\r\n if (token) {\r\n const savePromises = customFields.map(field =>\r\n projectPinCustomFieldService.saveProjectPinCustomFieldShareableReport({ ...field, token })\r\n );\r\n\r\n Promise.all(savePromises)\r\n .then(responses => {\r\n responses.forEach(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n });\r\n hideModal();\r\n })\r\n .catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n });\r\n } else {\r\n const savePromises = customFields.map(field =>\r\n projectPinCustomFieldService.saveProjectPinCustomField({ ...field })\r\n );\r\n\r\n Promise.all(savePromises)\r\n .then(responses => {\r\n responses.forEach(res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n });\r\n hideModal();\r\n })\r\n .catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n });\r\n }\r\n };\r\n\r\n\r\n const hideModal = () => {\r\n hide();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Update Custom Field\r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {customFields.map((field, index) => {\r\n const validationError = validateDescription(field.description, field.customFieldType, field.options);\r\n let inputComponent;\r\n\r\n switch (field.customFieldType.toLowerCase()) {\r\n case 'dropdown':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n displayEmpty\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n );\r\n break;\r\n case 'checkbox':\r\n inputComponent = field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n
    \r\n handleCheckboxChange(e, index, option.trim())}\r\n name={field.name}\r\n />\r\n }\r\n label={option.trim()}\r\n />\r\n
    \r\n ));\r\n break;\r\n case 'multiselect':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n renderValue={(selected) => selected.join(', ')}\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n\r\n );\r\n break;\r\n default:\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n multiline={field.customFieldType.toLowerCase().includes('text')}\r\n rowsMax={field.customFieldType.toLowerCase().includes('text') ? \"4\" : \"1\"}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n className=\"large-textarea\"\r\n InputLabelProps={field.customFieldType.toLowerCase().includes('date') ? { shrink: true } : undefined}\r\n type={field.customFieldType.toLowerCase().includes('date') ? 'date' : 'text'}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n customFields[index]?.isViewable && (\r\n
    \r\n
    \r\n \r\n
    {field.name}
    \r\n {field.customFieldType &&
    ({field.customFieldType})
    }\r\n {inputComponent}\r\n {validationError &&
    {validationError}
    }\r\n
    \r\n
    \r\n
    \r\n ))\r\n })}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default connect(null, alert.actions)(UpdateCustomFieldModal);","import React from 'react';\r\nimport {\r\n Text,\r\n View,\r\n Image,\r\n StyleSheet,\r\n Font\r\n} from \"@react-pdf/renderer\";\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flexDirection: \"row\",\r\n borderBottomWidth: 2,\r\n borderBottomColor: \"#112131\",\r\n borderBottomStyle: \"solid\",\r\n alignItems: \"stretch\",\r\n },\r\n detailColumn: {\r\n flexDirection: \"column\",\r\n textTransform: \"uppercase\",\r\n },\r\n text: {\r\n fontSize: 16,\r\n width: 440,\r\n fontWeight: 'bold',\r\n textAlign: 'center'\r\n },\r\n textHack: {\r\n position: 'absolute',\r\n opacity: 0.5,\r\n textAlign: 'center',\r\n fontSize: 16,\r\n width: 440,\r\n },\r\n image: {\r\n width: 55,\r\n height: 55,\r\n marginTop: 7\r\n },\r\n logoColumn: {\r\n width: 50\r\n }\r\n});\r\n\r\nconst PropertyImprovementPlanReportHeader = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n Hyatt Place/Hyatt House Property Improvement Plan\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default PropertyImprovementPlanReportHeader;","import React from 'react';\r\nimport {\r\n Text,\r\n View,\r\n Image,\r\n StyleSheet,\r\n Font\r\n} from \"@react-pdf/renderer\";\r\n\r\nconst styles = StyleSheet.create({\r\n text: {\r\n fontSize: 10,\r\n // fontFamily: 'Lato Bold'\r\n },\r\n wrapper: {\r\n height: 60, // Adjust based on the height needed for your introductory text\r\n },\r\n textHack: {\r\n position: 'absolute',\r\n opacity: 0.5,\r\n fontSize: 10,\r\n top: 0,\r\n left: 0,\r\n },\r\n container: {\r\n marginTop: 4,\r\n },\r\n tableContainer: {\r\n width: '100%',\r\n borderCollapse: 'collapse',\r\n marginBottom: 10,\r\n },\r\n tableNameRow: {\r\n flexDirection: 'row',\r\n backgroundColor: '#e2eaf5',\r\n color: 'black',\r\n border: 1\r\n },\r\n tableNameTextView: {\r\n flex: 1,\r\n borderWidth: 1,\r\n borderColor: '#fff',\r\n textAlign: 'center',\r\n fontSize: 14,\r\n // fontFamily: 'Lato Bold' \r\n },\r\n dataRowContainer: {\r\n flexDirection: 'row',\r\n },\r\n dataCellContainer: {\r\n flex: 1,\r\n borderLeft: 0.55,\r\n borderBottom: 0.55,\r\n borderRight: 0.55,\r\n padding: 2,\r\n display: 'flex',\r\n justifyContent: 'center'\r\n },\r\n dataCellAnswer: {\r\n padding: 2,\r\n fontSize: 8,\r\n // fontFamily: 'Lato Bold',\r\n },\r\n dataCellLabel: {\r\n padding: 2,\r\n fontSize: 8,\r\n },\r\n secondTableCellContainer: {\r\n borderLeft: 0.55,\r\n borderBottom: 0.55,\r\n borderRight: 0.55,\r\n padding: 2,\r\n display: 'flex',\r\n alignContent: 'center',\r\n justifyContent: 'center'\r\n }\r\n});\r\n\r\nFont.register({\r\n family: \"Lato Bold\",\r\n src: \"https://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh6UVSwiPHA.ttf\",\r\n});\r\n\r\nconst PropertyImprovementPlanReportPropertyDetails = (props) => {\r\n const { formJson } = props;\r\n\r\n const getFormValue = (key) => {\r\n const field = formJson.find((x) => x.key === key);\r\n if (field) {\r\n return field.value;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n return (\r\n <>\r\n\r\n\r\n \r\n \r\n The improvements in this report are related to visual and FF&E items based on conditions noted during the walkthrough of\r\n the property. This Property Improvement Plan is valid until 08/01/2024, and at such time is subject to an updated PIP plan as\r\n needed and determined by the Brand. All improvements listed below are in addition to compliance with the required Brand\r\n Renovation Cycle.\r\n \r\n \r\n The improvements in this report are related to visual and FF&E items based on conditions noted during the walkthrough of\r\n the property. This Property Improvement Plan is valid until 08/01/2024, and at such time is subject to an updated PIP plan as\r\n needed and determined by the Brand. All improvements listed below are in addition to compliance with the required Brand\r\n Renovation Cycle.\r\n \r\n \r\n The improvements in this report are related to visual and FF&E items based on conditions noted during the walkthrough of\r\n the property. This Property Improvement Plan is valid until 08/01/2024, and at such time is subject to an updated PIP plan as\r\n needed and determined by the Brand. All improvements listed below are in addition to compliance with the required Brand\r\n Renovation Cycle.\r\n \r\n \r\n The improvements in this report are related to visual and FF&E items based on conditions noted during the walkthrough of\r\n the property. This Property Improvement Plan is valid until 08/01/2024, and at such time is subject to an updated PIP plan as\r\n needed and determined by the Brand. All improvements listed below are in addition to compliance with the required Brand\r\n Renovation Cycle.\r\n \r\n \r\n\r\n \r\n \r\n {/* Header row with colspan */}\r\n \r\n \r\n PROPERTY DETAILS\r\n \r\n \r\n \r\n \r\n Property Name:\r\n \r\n \r\n {getFormValue('propertyName')}\r\n \r\n \r\n Construction Generation:\r\n \r\n \r\n {getFormValue('constructionGeneration')}\r\n \r\n \r\n\r\n \r\n \r\n Property Location:\r\n \r\n \r\n {getFormValue('propertyLocation')}\r\n \r\n \r\n Original Construction Date:\r\n \r\n \r\n {getFormValue('originalConstructionDate')}\r\n \r\n \r\n\r\n \r\n \r\n Hyatt Spirit Code:\r\n \r\n \r\n {getFormValue('hyattSpiritCode')}\r\n \r\n \r\n Hyatt Open Date:\r\n \r\n \r\n {getFormValue('hyattOpenDate')}\r\n \r\n \r\n\r\n \r\n \r\n Ownership Information (Seller):\r\n \r\n \r\n {getFormValue('sellerOwnershipInformation')}\r\n \r\n \r\n Most Current Renovation:\r\n \r\n \r\n {getFormValue('mostCurrentRenovation')}\r\n \r\n \r\n\r\n \r\n \r\n Ownership Information (Buyer):\r\n \r\n \r\n {getFormValue('buyerOwnershipInformation')}\r\n \r\n \r\n PIP Walkthrough Date:\r\n \r\n \r\n {getFormValue('pipWalkthroughDate')}\r\n \r\n \r\n\r\n \r\n \r\n Management Information (Current):\r\n \r\n \r\n {getFormValue('currentManagementInformation')}\r\n \r\n \r\n PIP Issue Date:\r\n \r\n \r\n {getFormValue('pipIssueDate')}\r\n \r\n \r\n\r\n \r\n \r\n Management Information (Proposed):\r\n \r\n \r\n {getFormValue('proposedManagementInformation')}\r\n \r\n \r\n PIP is Valid until:\r\n \r\n \r\n {getFormValue('pipIsValidUntil')}\r\n \r\n \r\n\r\n \r\n \r\n Total Number of Guestrooms:\r\n \r\n \r\n {getFormValue('totaNumberOfGuestRooms')}\r\n \r\n \r\n Follow-up Walkthrough Date:\r\n \r\n \r\n {getFormValue('followUpWalkthroughDate')}\r\n \r\n \r\n\r\n \r\n \r\n Total Number of Floors:\r\n \r\n \r\n {getFormValue('totalNumberOfFloors')}\r\n \r\n \r\n Leed Certification:\r\n \r\n \r\n {getFormValue('leadCertification')}\r\n \r\n \r\n\r\n \r\n \r\n Meeting Space s.f.:\r\n \r\n \r\n {getFormValue('meetingSpace')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {/* Header row with colspan */}\r\n \r\n \r\n RENOVATION SCHEDULE\r\n \r\n \r\n\r\n \r\n \r\n 7 Year Cycle:\r\n \r\n \r\n {getFormValue('7yearCycle')}\r\n \r\n \r\n {getFormValue('7yearCycleDescription')}\r\n \r\n Renovation Cycle to be completed by:\r\n \r\n {getFormValue('7yearCycleDate')}\r\n \r\n \r\n\r\n \r\n \r\n 14 Year Cycle:\r\n \r\n \r\n {getFormValue('14yearCycle')}\r\n \r\n \r\n {getFormValue('14yearCycleDescription')}\r\n \r\n Renovation Cycle to be completed by:\r\n \r\n {getFormValue('14yearCycleDate')}\r\n \r\n \r\n\r\n \r\n \r\n 21 Year Cycle:\r\n \r\n \r\n {getFormValue('21yearCycle')}\r\n \r\n \r\n {getFormValue('21yearCycleDescription')}\r\n \r\n Renovation Cycle to be completed by:\r\n \r\n {getFormValue('21yearCycleDate')}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default PropertyImprovementPlanReportPropertyDetails;","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Text,\r\n View,\r\n Image,\r\n StyleSheet,\r\n Link,\r\n Font\r\n} from \"@react-pdf/renderer\";\r\nimport constants from '../../constants/constants';\r\nimport * as reportService from '../../services/settings/reportService';\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n marginTop: 4,\r\n },\r\n tableContainer: {\r\n width: '100%',\r\n borderCollapse: 'collapse',\r\n marginBottom: 10,\r\n },\r\n tableNameRow: {\r\n flexDirection: 'row',\r\n backgroundColor: '#e2eaf5',\r\n color: 'black',\r\n border: 1\r\n },\r\n tableSecondaryRow: {\r\n flexDirection: 'row',\r\n color: 'black',\r\n borderRight: 0.55,\r\n borderLeft: 0.55,\r\n borderBottom: 0.55\r\n },\r\n tableSecondaryRowHeaderContainer: {\r\n borderLeft: 0.55,\r\n borderBottom: 0.55,\r\n borderRight: 0.55,\r\n padding: 2,\r\n display: 'flex',\r\n justifyContent: 'center'\r\n },\r\n tableNameTextView: {\r\n flex: 1,\r\n borderWidth: 1,\r\n borderColor: '#fff',\r\n textAlign: 'center',\r\n fontSize: 14,\r\n // fontFamily: 'Lato Bold'\r\n },\r\n tableSecondaryNameTextView: {\r\n flex: 1,\r\n borderWidth: 1,\r\n padding: 3,\r\n borderColor: '#fff',\r\n fontSize: 8,\r\n // fontFamily: 'Lato Bold'\r\n },\r\n dataRowContainer: {\r\n flexDirection: 'row',\r\n },\r\n dataCellContainer: {\r\n flex: 1,\r\n borderLeft: 0.55,\r\n borderBottom: 0.55,\r\n borderRight: 0.55,\r\n padding: 2,\r\n display: 'flex',\r\n justifyContent: 'center'\r\n },\r\n dataCellAnswer: {\r\n padding: 2,\r\n fontSize: 8,\r\n // fontFamily: 'Lato Bold',\r\n },\r\n dataCellLabel: {\r\n padding: 2,\r\n fontSize: 8,\r\n },\r\n tableHeaderLabel: {\r\n padding: 2,\r\n fontSize: 8,\r\n textAlign: 'center',\r\n // fontFamily: 'Lato Bold',\r\n },\r\n secondTableCellContainer: {\r\n borderLeft: 0.55,\r\n borderBottom: 0.55,\r\n borderRight: 0.55,\r\n padding: 2,\r\n display: 'flex',\r\n alignContent: 'center',\r\n justifyContent: 'center'\r\n }\r\n});\r\n\r\nFont.register({\r\n family: \"Lato Bold\",\r\n src: \"https://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh6UVSwiPHA.ttf\",\r\n});\r\n\r\nconst PropertyImprovementPlanReportTable = (props) => {\r\n const { title, pins, modelLink, userId, project } = props;\r\n const [linkMap, setLinkMap] = useState({});\r\n\r\n useEffect(() => {\r\n // Generate the links for all pins and store them in the linkMap\r\n const generateLinksForAllPins = async () => {\r\n const newLinkMap = {};\r\n const link = await reportService.getHashLinkForReport(project.id, userId); \r\n for(let pin of pins) {\r\n const key = pin.id;\r\n newLinkMap[key] = `${link}&key=${key}`;\r\n }\r\n setLinkMap(newLinkMap);\r\n };\r\n\r\n generateLinksForAllPins();\r\n }, []);\r\n \r\n return (\r\n \r\n \r\n {/* Header row with colspan */}\r\n \r\n \r\n {title}\r\n \r\n \r\n\r\n {title !== 'EXTERIOR/SITE' && (\r\n \r\n \r\n The below items are only interim solutions/repairs and are not part of the complete cycle renovations.For additional\r\n information, see the 14 (fourteen) year renovation cycles that include the entire Public Area, per the current renovation\r\n package.\r\n \r\n \r\n )}\r\n\r\n {/* Fixed Headers */}\r\n \r\n \r\n Item #:\r\n \r\n \r\n THUMBNAIL\r\n \r\n \r\n SCOPE OF WORK\r\n \r\n \r\n Required Completion Date\r\n \r\n \r\n Actual Completion Date\r\n \r\n \r\n\r\n {pins.map((pin, index) => {\r\n const completeImageUrl = `${constants.API_URL}api/${pin.imageUrl}`;\r\n const requiredCompletionDate = pin.projectPinCustomFields.find(cf => cf.name === 'Required Completion Date')?.description;\r\n const actualCompletionDate = pin.projectPinCustomFields.find(cf => cf.name === 'Actual Completion Date')?.description;\r\n const key = pin.id;\r\n const pinLink = linkMap[key];\r\n \r\n return (\r\n \r\n \r\n {index + 1}\r\n \r\n \r\n \r\n {\r\n modelLink ?\r\n (\r\n \r\n {pin.title}\r\n \r\n )\r\n :\r\n {pin.title}\r\n }\r\n \r\n \r\n {pin.description}\r\n \r\n \r\n {requiredCompletionDate}\r\n \r\n \r\n {actualCompletionDate}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PropertyImprovementPlanReportTable;","import React from 'react';\r\nimport {\r\n Page,\r\n View,\r\n Text,\r\n Document,\r\n StyleSheet,\r\n PDFViewer,\r\n} from \"@react-pdf/renderer\";\r\nimport PropertyImprovementPlanReportHeader from './PropertyImprovementPlanReportHeader';\r\nimport PropertyImprovementPlanReportPropertyDetails from './PropertyImprovementPlanReportPropertyDetails';\r\nimport PropertyImprovementPlanReportTable from './PropertyImprovementPlanReportTable';\r\n\r\nconst styles = StyleSheet.create({\r\n container: { marginTop: 18 }\r\n}\r\n);\r\n\r\nconst PropertyImprovementPlanReport = (props) => {\r\n const { formJson, pins, project, fetchHashLinkForReport, userId } = props;\r\n \r\n const groupedPins = groupByCategory(pins.projectPinListingDtos);\r\n\r\n function groupByCategory(pins) {\r\n if(pins && pins.length > 0) {\r\n return pins.reduce((acc, pin) => {\r\n if (!acc[pin.pointCategory]) {\r\n acc[pin.pointCategory] = [];\r\n }\r\n acc[pin.pointCategory].push(pin);\r\n return acc;\r\n }, {});\r\n }\r\n }\r\n\r\n function sortPinsAlphabetically(pins) {\r\n return pins.sort((a, b) => a.title.localeCompare(b.title));\r\n }\r\n\r\n return (\r\n \r\n {\r\n (formJson && pins) &&\r\n \r\n \r\n \r\n \r\n \r\n {\r\n groupedPins && Object.keys(groupedPins).map(category => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n }\r\n\r\n \r\n );\r\n};\r\n\r\nexport default PropertyImprovementPlanReport;","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n projectId: Yup.number(),\r\n anonymousUser: Yup.string().required(\"Full name is required\"),\r\n pointCategoryId: Yup.string().required(\"Category is required\"),\r\n projectTypePOIStatusId: Yup.string().nullable(),\r\n title: Yup.string().required('Title is required'),\r\n description: Yup.string().nullable(),\r\n updatedBy: Yup.number().nullable(),\r\n matterPortResolutionLink: Yup.string().nullable(),\r\n updatedDateTime: Yup.string().nullable(),\r\n isCritical: Yup.bool(),\r\n isOsha: Yup.bool(),\r\n});","import React, { useState, useEffect } from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport constants from '../../constants/constants';\r\nimport { useFormik } from \"formik\";\r\nimport { FilePond } from 'react-filepond';\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport 'filepond/dist/filepond.min.css';\r\nimport { red, blue } from '@material-ui/core/colors';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\nimport ProjectPinAnonymousValidator from '../../helpers/validators/ProjectPinAnonymousValidator';\r\nimport * as projectService from '../../services/service/projectService';\r\nimport * as projectPinService from '../../services/service/projectPinService';\r\nimport { getErrorField, validateDescription, convertJsonToFormData } from '../../helpers/helper';\r\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\r\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\r\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n // margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst RedCheckbox = withStyles({\r\n root: {\r\n color: red[400],\r\n '&$checked': {\r\n color: red[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst BlueCheckBox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst NewAnonymouseImageUploadModal = (props) => {\r\n const { show, hide, showAlert, token } = props;\r\n const [imageDataUrl, setImageDataUrl] = useState('');\r\n const [project, setProject] = useState({\r\n id: 0,\r\n clientId: 0,\r\n projectName: '',\r\n scanDate: null,\r\n modelLink: '',\r\n notes: '',\r\n completedDateTime: null,\r\n client: {},\r\n projectPins: [],\r\n projectModelImages: []\r\n });\r\n const [projectPin, setProjectPin] = useState({\r\n id: 0,\r\n projectId: '',\r\n pointCategoryId: '',\r\n projectTypePOIStatusId: '',\r\n anonymousUser: '',\r\n title: '',\r\n description: '',\r\n isCritical: false,\r\n isOsha: false,\r\n isApproved: false,\r\n isResolved: false,\r\n projectPinCheckBoxes: [],\r\n pointCategory: null,\r\n projectTypePOIStatus: null,\r\n projectPinCustomFields: []\r\n });\r\n const [imagePath, setImagePath] = useState('');\r\n const [projectTypeCustomFieldList, setProjectTypeCustomFieldList] = useState([]);\r\n const [filteredProjectPinCustomFields, setFilteredProjectPinCustomFields] = useState([]);\r\n const [customFields, setCustomFields] = useState([]);\r\n const [formSubmit, setFormSubmit] = useState(false);\r\n const [projectType, setProjectType] = useState({});\r\n const [pointCategoryList, setPointCategoryList] = useState([]);\r\n const [poiStatusList, setPoiStatusList] = useState([]);\r\n const [projectPinCheckBoxes, setProjectPinCheckBoxes] = useState([]);\r\n const classes = useStyles();\r\n\r\n\r\n useEffect(() => {\r\n if (token) {\r\n fetchProjectDataForSharable(token);\r\n }\r\n }, []);\r\n\r\n const handleFilePondUpdate = (files) => {\r\n setImagePath(files);\r\n if (files.length > 0) {\r\n const file = files[0].file;\r\n const reader = new FileReader();\r\n reader.onload = function(e) {\r\n setImageDataUrl(e.target.result);\r\n };\r\n reader.readAsDataURL(file);\r\n } else {\r\n setImageDataUrl('');\r\n }\r\n };\r\n\r\n const fetchProjectDataForSharable = (token) => {\r\n projectService.getProjectIdForAnonymousUser(token).then(res => {\r\n setProject(res);\r\n setProjectType(res.projectType);\r\n setPointCategoryList(res.projectType.pointCategories);\r\n setProjectTypeCustomFieldList(res.projectType.projectTypeCustomFields);\r\n setPoiStatusList(res.projectType.projectTypePOIStatuses);\r\n copyProjectTypeCustomFieldToProjectPinCustomField(res.projectType.projectTypeCustomFields);\r\n copyProjectTypeToProjectPinCheckBoxes(res.projectType.projectTypeCheckBoxes);\r\n return res;\r\n }).catch(err => console.log(err))\r\n }\r\n\r\n const hideModal = () => {\r\n formik.resetForm();\r\n hide();\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: projectPin,\r\n validationSchema: ProjectPinAnonymousValidator,\r\n onSubmit: async (values, { setStatus, setSubmitting }) => {\r\n setFormSubmit(true);\r\n await savePoint(values, setSubmitting);\r\n }\r\n });\r\n\r\n const handlePointCategoryChange = (selectedPointCategoryId) => {\r\n // Get associated ProjectTypeCustomField IDs for the selected PointCategory\r\n const associatedCustomFieldIds = projectTypeCustomFieldList\r\n .filter(field => field.pointCategoryProjectTypeCustomFields\r\n .some(assoc => assoc.pointCategoryId === selectedPointCategoryId))\r\n .map(field => field.id);\r\n\r\n console.log(filteredProjectPinCustomFields)\r\n // Filter ProjectPinCustomFields based on the associated ProjectTypeCustomFields\r\n const filteredFields = customFields\r\n .filter(field => associatedCustomFieldIds.includes(field.projectTypeCustomFieldId));\r\n\r\n setFilteredProjectPinCustomFields(filteredFields);\r\n };\r\n\r\n const handleDescriptionChange = (e, index) => {\r\n const updatedFields = [...filteredProjectPinCustomFields];\r\n const field = updatedFields[index];\r\n\r\n if (field.customFieldType.toLowerCase() === 'dropdown') {\r\n field.description = e.target.value;\r\n } else if (field.customFieldType.toLowerCase() === 'multiselect') {\r\n field.description = e.target.value.join(', ');\r\n } else {\r\n field.description = e.target.value;\r\n }\r\n\r\n // setCustomFields(updatedFields);\r\n setFilteredProjectPinCustomFields(updatedFields);\r\n };\r\n\r\n const copyProjectTypeCustomFieldToProjectPinCustomField = (projTypeCustomFields) => {\r\n let tempArr = projTypeCustomFields.map(x => {\r\n const clonedObj = JSON.parse(JSON.stringify(x));\r\n var projectTypeCustomFieldId = clonedObj['id'];\r\n delete clonedObj['id'];\r\n delete clonedObj['projectTypeId'];\r\n return { ...clonedObj, projectTypeCustomFieldId: projectTypeCustomFieldId };\r\n });\r\n setCustomFields(tempArr);\r\n }\r\n\r\n const copyProjectTypeToProjectPinCheckBoxes = (projTypeCheckBoxes) => {\r\n let tempArr = [...projTypeCheckBoxes];\r\n tempArr = tempArr.map(x => {\r\n delete x['id'];\r\n delete x['projectTypeId'];\r\n return { ...x, isChecked: false }\r\n });\r\n\r\n setProjectPinCheckBoxes(tempArr);\r\n }\r\n\r\n const hasCustomFieldErrors = () => {\r\n for (let index = 0; index < filteredProjectPinCustomFields.length; index++) {\r\n const field = filteredProjectPinCustomFields[index];\r\n if (validateDescription(field.description, field.customFieldType, field.options)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const handleCheckboxChange = (e, index, option) => {\r\n const updatedFields = [...filteredProjectPinCustomFields];\r\n let selectedOptions = updatedFields[index].description ? updatedFields[index].description.split(', ') : [];\r\n\r\n if (e.target.checked) {\r\n selectedOptions = [...selectedOptions, option];\r\n } else {\r\n selectedOptions = selectedOptions.filter(item => item !== option);\r\n }\r\n\r\n updatedFields[index].description = selectedOptions.join(', ');\r\n // setCustomFields(updatedFields);\r\n setFilteredProjectPinCustomFields(updatedFields);\r\n };\r\n\r\n const savePoint = async (values, setSubmitting) => {\r\n var model = convertJsonToFormData({\r\n ...values,\r\n MatterPointCoordinates: '',\r\n imageUrl: '',\r\n // projectPinCheckBoxes: projectPinCheckBoxes,\r\n // projectPinCustomFields: filteredProjectPinCustomFields,\r\n token: token\r\n });\r\n model.append('uploadedImage', imagePath && imagePath.length > 0 ? imagePath[0].file : null);\r\n var data = {\r\n projectPinCheckBoxes: projectPinCheckBoxes,\r\n projectPinCustomFields: filteredProjectPinCustomFields\r\n };\r\n await projectPinService.saveProjectPinAnonymous(model, data)\r\n .then(async res => {\r\n showAlert({ message: res.message, variant: 'success' });\r\n }).catch(ex => {\r\n showAlert({ message: ex.message, variant: 'error' });\r\n }).finally(() => {\r\n \r\n let temp = [...projectPinCheckBoxes];\r\n setProjectPinCheckBoxes(temp.map(x => { return { ...x, isChecked: false } }));\r\n setSubmitting(false);\r\n copyProjectTypeCustomFieldToProjectPinCustomField(projectTypeCustomFieldList);\r\n hideModal();\r\n });\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n New Project Pin\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.touched.anonymousUser && formik.errors.anonymousUser ? (\r\n
    \r\n {formik.errors.anonymousUser}\r\n
    \r\n ) : null}\r\n
    \r\n  \r\n \r\n N-Point Category\r\n {\r\n formik.setFieldValue(\"pointCategoryId\", e.target.value === \"\" ? \"\" : Number(e.target.value));\r\n handlePointCategoryChange(Number(e.target.value));\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.pointCategoryId && formik.errors.pointCategoryId ? (\r\n
    \r\n {formik.errors.pointCategoryId}\r\n
    \r\n ) : null}\r\n
    \r\n  \r\n  \r\n\r\n \r\n N-Point Status\r\n {\r\n formik.setFieldValue(\"projectTypePOIStatusId\", e.target.value === \"\" ? \"\" : Number(e.target.value));\r\n }}\r\n >\r\n )\r\n }\r\n \r\n {formik.touched.projectTypePOIStatusId && formik.errors.projectTypePOIStatusId ? (\r\n
    \r\n {formik.errors.projectTypePOIStatusId}\r\n
    \r\n ) : null}\r\n
    \r\n\r\n \r\n \r\n\r\n {formik.touched.title && formik.errors.title ? (\r\n
    \r\n {formik.errors.title}\r\n
    \r\n ) : null}\r\n
    \r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n {/*
    \r\n {customFieldsData.map((field) => (\r\n handleEditCustomField(field)}\r\n onDelete={() => handleDeleteCustomField(field.id)}\r\n className=\"selected-chip\"\r\n />\r\n ))}\r\n
    */}\r\n\r\n\r\n
    \r\n \r\n }>\r\n Custom Fields\r\n \r\n \r\n
    \r\n {filteredProjectPinCustomFields && filteredProjectPinCustomFields.length > 0 && filteredProjectPinCustomFields.map((field, index) => {\r\n const validationError = validateDescription(field.description, field.customFieldType, field.options);\r\n let inputComponent;\r\n\r\n switch (field.customFieldType.toLowerCase()) {\r\n case 'dropdown':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n displayEmpty\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n );\r\n break;\r\n case 'checkbox':\r\n inputComponent = field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n
    \r\n handleCheckboxChange(e, index, option.trim())}\r\n name={field.name}\r\n />\r\n }\r\n label={option.trim()}\r\n />\r\n
    \r\n ));\r\n break;\r\n case 'multiselect':\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n renderValue={(selected) => selected.join(', ')}\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n >\r\n {field.customFieldTypeOptions.split(',').map((option, idx) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n\r\n );\r\n break;\r\n default:\r\n inputComponent = (\r\n handleDescriptionChange(e, index)}\r\n multiline={field.customFieldType.toLowerCase().includes('text')}\r\n rowsMax={field.customFieldType.toLowerCase().includes('text') ? \"4\" : \"1\"}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n className=\"large-textarea\"\r\n InputLabelProps={field.customFieldType.toLowerCase().includes('date') ? { shrink: true } : undefined}\r\n type={field.customFieldType.toLowerCase().includes('date') ? 'date' : 'text'}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    {field.name}
    \r\n {field.customFieldType &&
    ({field.customFieldType})
    }\r\n {inputComponent}\r\n {validationError &&
    {validationError}
    }\r\n
    \r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {/* selected.map(value => projectTypeCustomFieldList.find(item => item.id === value)?.name).join(', ')}\r\n >\r\n {projectTypeCustomFieldList?.filter(field => !selectedCustomFieldIds.includes(field.id)).map((field) => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n */}\r\n
    \r\n\r\n \r\n
    \r\n {\r\n projectPinCheckBoxes.map((curr, index) =>\r\n
    \r\n {\r\n let tempArr = [...projectPinCheckBoxes];\r\n tempArr.find(x => x.name === curr.name).isChecked = val;\r\n\r\n setProjectPinCheckBoxes(tempArr);\r\n }}\r\n />\r\n }\r\n label={curr.name}\r\n labelPlacement=\"end\"\r\n />\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {imagePath ?\r\n <>\r\n \r\n setImagePath('')}\r\n className=\"btn btn-info w-100 mt-lg-5 mb-lg-5\"\r\n >\r\n Change Image\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n {/* Add your form fields here */}\r\n
    \r\n \r\n \r\n Save Changes\r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default connect(null, alert.actions)(NewAnonymouseImageUploadModal);\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport constants from '../../../../constants/constants';\r\nimport { connect } from 'react-redux';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport * as projectService from \"../../../../services/service/projectService\";\r\nimport * as projectPinService from \"../../../../services/service/projectPinService\";\r\nimport * as reportService from '../../../../services/settings/reportService';\r\nimport * as clientTierService from '../../../../services/management/clientTierService';\r\nimport { Carousel } from \"react-responsive-carousel\";\r\nimport ClipboardJS from 'clipboard';\r\nimport AddCommentModal from '../../../components/AddCommentModal';\r\nimport SVG from \"react-inlinesvg\";\r\nimport Annotation from 'react-image-annotation';\r\nimport { toAbsoluteUrl } from \"../../../../_metronic/_helpers\";\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport {\r\n RectangleSelector\r\n} from 'react-image-annotation/lib/selectors';\r\nimport { Tooltip } from \"react-tooltip\";\r\nimport { getErrorField, checkTierPlanAndRoleTier2, checkTierPlanAndRoleTier3 } from '../../../../helpers/helper';\r\nimport UpdateCustomFieldModal from '../../../components/UpdateCustomFieldModal';\r\nimport PropertyImprovementPlanReport from '../../../components/PropertyImprovementPlanReport';\r\nimport NewAnonymouseImageUploadModal from '../../../components/NewAnonymouseImageUploadModal';\r\n\r\nconst moment = require('moment');\r\n\r\nconst GenerateNewReportPage = (props) => {\r\n const location = useLocation();\r\n const searchParams = new URLSearchParams(location.search);\r\n const keyFromToken = searchParams.get('key');\r\n const iFrameRef = useRef();\r\n const annotationRef = useRef(null);\r\n const useQueryString = () => new URLSearchParams(useLocation().search);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const { auth, isReadOnly, token, showAlert } = props;\r\n const [annotation, setAnnotation] = useState({});\r\n const [annotations, setAnnotations] = useState([]);\r\n const [project, setProject] = useState({});\r\n const [isReportLoading, setIsReportLoading] = useState(true);\r\n const [tier, setTier] = useState('');\r\n const [projectType, setProjectType] = useState({});\r\n const [selectedPoint, setSelectedPoint] = useState(null);\r\n const [isBusinessTier, setIsBusinessTier] = useState(false);\r\n const [btnPosition, setBtnPosition] = useState({\r\n left: 0,\r\n top: 0\r\n });\r\n const [toggleCode, setToggleCode] = useState(0);\r\n const [displayBtn, setDisplayBtn] = useState(false);\r\n const [currentImageIndex, setCurrentImageIndex] = useState('');\r\n const [addCommentModalVisible, setAddCommentModalVisible] = useState(false);\r\n const [showCustomFieldModalVisible, setShowCustomFieldModalVisible] = useState(false);\r\n const [projectPins, setProjectPins] = useState({});\r\n const [highlightedAnnotationIndex, setHighlightedAnnotationIndex] = useState(null);\r\n const [refreshList, setRefreshList] = useState(false);\r\n const [currentPin, setCurrentPin] = useState({});\r\n const [pinFromKey, setPinFromKey] = useState({});\r\n const [currentCustomField, setCurrentCustomField] = useState({});\r\n const [globalSdk, setGlobalSdk] = useState({});\r\n const [carouselIndex, setCarouselIndex] = useState(0);\r\n const [fetchNewAnnotation, setFetchNewAnnotation] = useState(false);\r\n const [savedProjectPins, setSavedProjectPins] = useState([]);\r\n const [isBusinessOrProfessionalTier, setIsBusinessOrProfessionalTier] = useState(false);\r\n const [projectId, setProjectId] = useState(useQueryString().get('id'));\r\n const [keyFromURL, setKeyFromURL] = useState(keyFromToken);\r\n const [hasCompletedLoad, setHasCompletedLoad] = useState(false);\r\n const [addImageModalVisible, setAddImageModalVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n if (token) {\r\n fetchProjectDataForSharable(token);\r\n fetchProjecPinByProjectIdSharable(token);\r\n return;\r\n }\r\n if (projectId) {\r\n fetchProjectData(projectId);\r\n fetchProjecPinByProjectId(projectId);\r\n }\r\n }, [projectId, refreshList, token]);\r\n\r\n const fetchTierForUser = (proj) => {\r\n let tierId = proj.client.clientTierId;\r\n let isTier2 = false;\r\n let isTier3 = false;\r\n if (tierId) {\r\n clientTierService.getClientTierById(tierId).then(res => {\r\n setTier(res);\r\n return { tier: res, proj: proj };\r\n }).then(tierAndProj => {\r\n isTier2 = checkTierPlanAndRoleTier2(tierAndProj.tier, auth.role);\r\n isTier3 = checkTierPlanAndRoleTier3(tierAndProj.tier, auth.role);\r\n if (isTier3) {\r\n setIsBusinessTier(isTier3);\r\n }\r\n if (isTier2) {\r\n setIsBusinessOrProfessionalTier(isTier2);\r\n }\r\n }).finally(() => {\r\n if (keyFromURL || token) {\r\n fetchProjectPinsForAProjectForReportSharable(token, isTier3);\r\n }\r\n else {\r\n fetchProjectPinsForAProject(proj, isTier3)\r\n }\r\n }\r\n );\r\n }\r\n else {\r\n if (auth.role === 'SuperAdmin') {\r\n fetchProjectPinsForAProject(proj, true); //superadmin\r\n }\r\n }\r\n }\r\n\r\n const scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"auto\"\r\n })\r\n }\r\n\r\n const handleGotopoint = (annotationCoordinates, imageIndexId) => {\r\n const { id } = annotationCoordinates.data;\r\n const index = project.projectModelImages.findIndex(x => x.id == imageIndexId);\r\n setCurrentImageIndex(imageIndexId);\r\n setHighlightedAnnotationIndex(id);\r\n setCarouselIndex(index);\r\n setAnnotation(annotationCoordinates);\r\n scrollToTop();\r\n };\r\n\r\n const navigateToPoint = (id) => {\r\n return globalSdk.Mattertag.navigateToTag(id, globalSdk.Mattertag.Transition.FLY);\r\n }\r\n\r\n const removeSelectedMatterTag = () => {\r\n setAnnotation({});\r\n setHighlightedAnnotationIndex(null)\r\n }\r\n\r\n const fetchProjectPinsForAProjectForReportSharable = (tokenVal, isBusinessOrProfessional) => {\r\n projectPinService.getProjectPinsByProjectIdForReportSharable(tokenVal).then(res => {\r\n if (Object.keys(res)) {\r\n registerMatterPort(res, isBusinessOrProfessional);\r\n }\r\n })\r\n }\r\n\r\n const fetchProjectPinsForAProject = (proj, isBusinessOrProfessional) => {\r\n projectPinService.getProjectPinsByProjectId(proj.id).then(res => {\r\n if (Object.keys(res)) {\r\n registerMatterPort(res, isBusinessOrProfessional);\r\n }\r\n })\r\n }\r\n\r\n const fetchProjectPinsForAProjectAndImageId = async (id, tokenVal) => {\r\n await projectPinService.getProjectPinsByProjectIdAndImageIdForShareable(tokenVal).then(res => {\r\n register2DProject(res, id);\r\n });\r\n }\r\n\r\n const register2DProject = (pins, id) => {\r\n let tempAnnotations = [];\r\n let pinsFiltered = [];\r\n if (!id) {\r\n pinsFiltered = pins.filter(x => x.projectModelImageId == currentImageIndex);\r\n }\r\n else {\r\n pinsFiltered = pins;\r\n }\r\n for (const pin of pinsFiltered) {\r\n tempAnnotations.push(JSON.parse(pin.annotationCoordinates));\r\n }\r\n setAnnotations(tempAnnotations);\r\n setSavedProjectPins(pins);\r\n }\r\n\r\n const registerMatterPort = (pins, isBusiness) => {\r\n console.log('matterport', iFrameRef.current);\r\n window.MP_SDK.connect(iFrameRef.current, constants.MATTERPORT_API_KEY, constants.MATTERPORT_VERSION).then((sdk) => {\r\n console.log('here is sdk', sdk);\r\n console.log('Matterport connected!');\r\n setGlobalSdk(sdk);\r\n\r\n addProjectPinsToMatterPort(sdk, pins, isBusiness);\r\n });\r\n }\r\n\r\n const renderAnnotations = (image, index) => {\r\n if (currentImageIndex !== index) return null;\r\n if (annotations.length > 0) {\r\n const renderSelector = ({ annotation }) => {\r\n if (!annotation.geometry) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n };\r\n return (\r\n <>\r\n {\r\n return (\r\n
    \r\n {\r\n if (highlightedAnnotationIndex) {\r\n removeSelectedMatterTag()\r\n }\r\n }}\r\n >\r\n Hover for details\r\n
    \r\n \r\n \r\n )\r\n }}\r\n renderSelector={renderSelector}\r\n />\r\n \r\n\r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n\r\n };\r\n\r\n const onChangeHandler = annotation => {\r\n setAnnotation(annotation);\r\n };\r\n\r\n const hexToRgb = (hex) => {\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: Math.round(parseInt(result[1], 16) / 255 * 10) / 10,\r\n g: Math.round(parseInt(result[2], 16) / 255 * 10) / 10,\r\n b: Math.round(parseInt(result[3], 16) / 255 * 10) / 10\r\n } : null;\r\n }\r\n\r\n const addProjectPinsToMatterPort = (sdk, pins, checkTier3) => {\r\n console.log('here are pins', pins);\r\n pins = pins.filter(x => x.matterPointCoordinates !== null);\r\n let allMatterTags = pins.map(pin => {\r\n let coordinate = JSON.parse(pin.matterPointCoordinates);\r\n if (coordinate) {\r\n return {\r\n label: pin.title,\r\n description: pin.description,\r\n ...(checkTier3 && pin.poiColorCode && {\r\n color: hexToRgb(pin.poiColorCode)\r\n }),\r\n anchorPosition: coordinate.position,\r\n stemVector: coordinate.normal,\r\n stemVisible: true\r\n }\r\n }\r\n })\r\n\r\n for (let i = 0; i < allMatterTags.length; i++) {\r\n sdk.Tag.add(allMatterTags[i]).then(function (mattertagIds) {\r\n pins[i].key = mattertagIds;\r\n }\r\n )\r\n .catch(ex => console.log(\"Exception is:\", ex))\r\n .finally(() => {\r\n if ((i === allMatterTags.length - 1) && keyFromURL) {\r\n var dataIndex = pins.findIndex(x => x.id == keyFromURL);\r\n if (sdk && sdk.Mattertag && sdk.Mattertag.navigateToTag && sdk.Mattertag.Transition) {\r\n sdk.Mattertag.navigateToTag(pins[dataIndex].key[0], sdk.Mattertag.Transition.FLY);\r\n }\r\n }\r\n })\r\n\r\n if ((i === allMatterTags.length - 1) && keyFromURL) {\r\n setHasCompletedLoad(true);\r\n }\r\n }\r\n setSavedProjectPins(pins);\r\n setIsLoading(false);\r\n }\r\n\r\n useEffect(() => {\r\n if (hasCompletedLoad) {\r\n setToggleCode(1);\r\n scrollToTop();\r\n }\r\n }, [hasCompletedLoad]);\r\n\r\n const fetchProjectDataForSharable = (token) => {\r\n projectService.getProjectByIdForSharable(token).then(res => {\r\n setProject(res);\r\n if (res.projectModelImages.length > 0) {\r\n fetchProjectPinsForAProjectAndImageId(res.projectModelImages[0].id, token);\r\n setCurrentImageIndex(res.projectModelImages[0].id);\r\n }\r\n setProjectType(res.projectType);\r\n return res;\r\n }).then(proj => fetchTierForUser(proj)\r\n ).catch(err => console.log(err)\r\n ).finally(() => setIsReportLoading(false))\r\n }\r\n\r\n const fetchProjecPinByProjectIdSharable = (token) => {\r\n if (keyFromURL) {\r\n projectPinService.getProjectPinsByProjectIdForReportSharable(token).then(res => {\r\n setProjectPins(res);\r\n var pin = res.find(x => x.id == keyFromURL);\r\n setPinFromKey(pin);\r\n })\r\n }\r\n projectPinService.getProjectPinsByProjectIdForSharable(token).then(res => {\r\n setProjectPins(res);\r\n })\r\n }\r\n\r\n const fetchProjectData = (id) => {\r\n projectService.getProjectById(id).then(res => {\r\n setProject(res);\r\n setProjectType(res.projectType);\r\n return res;\r\n }).then(proj => fetchTierForUser(proj)\r\n ).catch(err => console.log(err)\r\n ).finally(() => setIsReportLoading(false))\r\n }\r\n\r\n const handleGoToOnclick = (projPin) => {\r\n if (projPin.annotationCoordinates) {\r\n setToggleCode(2);\r\n handleGotopoint(JSON.parse(projPin.annotationCoordinates), projPin.projectModelImageId);\r\n }\r\n else {\r\n var dataIndex = savedProjectPins.findIndex(x => x.id == projPin.id);\r\n navigateToPoint(savedProjectPins[dataIndex].key[0]);\r\n setToggleCode(1);\r\n scrollToTop();\r\n }\r\n }\r\n\r\n const fetchProjecPinByProjectId = (id) => {\r\n projectPinService.getProjectPinsByProjectIdForReport(id).then(res => {\r\n setProjectPins(res);\r\n }).catch(err => {\r\n showAlert({ message: err, variant: 'error' });\r\n }).then(() => {\r\n if (auth && auth.user && (auth.user.tier === 'Starter' || auth.user.tier === 'Individual')) {\r\n showAlert({ message: 'Please upgrade your subscription plan to higher tier to generate all project pins in the report.', variant: 'error', top: true });\r\n }\r\n })\r\n }\r\n\r\n const fetchHashLinkForReport = () => {\r\n if (isBusinessOrProfessionalTier) {\r\n reportService.getHashLinkForReport(projectId, auth.user.id).then(res => {\r\n // Create a temporary button element for ClipboardJS\r\n const tempButton = document.createElement('button');\r\n tempButton.setAttribute('data-clipboard-text', res);\r\n document.body.appendChild(tempButton);\r\n\r\n const clipboard = new ClipboardJS(tempButton);\r\n\r\n clipboard.on('success', () => {\r\n setTimeout(() => {\r\n showAlert({\r\n message: \"Link has been generated and copied to clipboard.\",\r\n variant: 'success',\r\n });\r\n }, 50);\r\n document.body.removeChild(tempButton);\r\n clipboard.destroy();\r\n });\r\n\r\n clipboard.on('error', () => {\r\n setTimeout(() => {\r\n showAlert({ message: \"Failed to copy link to clipboard\", variant: 'error' });\r\n }, 50);\r\n document.body.removeChild(tempButton);\r\n clipboard.destroy();\r\n });\r\n\r\n // Trigger a click event on the temporary button element\r\n tempButton.click();\r\n });\r\n } else {\r\n showAlert({ message: \"This feature not available to you. Please upgrade to Enterprise or Business plan to access this feature.\", variant: 'warning' });\r\n }\r\n };\r\n\r\n return (\r\n isReportLoading ? (
    \r\n \r\n
    )\r\n :\r\n (project && project.formJSON ?\r\n <>\r\n
    \r\n {\r\n !keyFromURL ?\r\n (\r\n Back to Nspection\r\n )\r\n :\r\n (\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n

    \r\n {`${projectType.name} Report`}\r\n

    \r\n

    {project.projectName}

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

    \r\n Scanned on:{moment(project.scanDate).format('MMMM Do, YYYY')}\r\n

    \r\n {\r\n project.completedDateTime ?\r\n

    \r\n Completed on:{moment(project.completedDateTime).format('MMMM Do, YYYY')}\r\n

    : <>\r\n }\r\n\r\n
    \r\n

    \r\n Nspection Description: {project.notes ? project.notes : \"No project notes available.\"}\r\n

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

    \r\n Inspection Status:\r\n

    \r\n \r\n {project.completedDateTime ? 'Completed' : 'Active'}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n keyFromURL ?\r\n (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {pinFromKey.title}\r\n

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

    \r\n Reported By: {pinFromKey.addedBy ?? pinFromKey.anonymousUser ?? 'N/A'}\r\n

    \r\n

    \r\n Reported On: {moment(pinFromKey.updatedOn).format(\"Do, MMMM, YYYY\")}\r\n

    \r\n

    \r\n Category: {pinFromKey.pointCategory ?? 'N/A'}\r\n

    \r\n\r\n

    \r\n Resolved: {pinFromKey.isResolved ? `Resolved` : `Not Resolved`}\r\n

    \r\n

    \r\n Approved: {pinFromKey.isApproved ? `Approved` : `Not Approved`}\r\n

    \r\n

    \r\n Status: {pinFromKey.projectTypePOIStatus ?? 'N/A'}\r\n

    \r\n {\r\n pinFromKey.matterportResolutionLink &&\r\n

    \r\n Resolution Link: {pinFromKey.matterportResolutionLink}\r\n

    \r\n }\r\n

    \r\n {\r\n pinFromKey.projectPinCustomFields?.length > 0 && !pinFromKey.projectPinCustomFields.every(x => !x.isViewable) &&\r\n <>\r\n Custom Fields:\r\n
    \r\n \r\n }\r\n {pinFromKey.projectPinCustomFields?.length > 0 ? pinFromKey.projectPinCustomFields?.map((x, i) =>\r\n <>\r\n {\r\n x.isViewable &&\r\n <>\r\n \r\n {x.name} : {x.description ? x.description : '-'}\r\n \r\n
    \r\n \r\n }\r\n \r\n ) : \"-\"}\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n project.modelLink &&\r\n \r\n }\r\n
    \r\n
    \r\n\r\n )\r\n :\r\n }\r\n\r\n \r\n :\r\n <>\r\n {\r\n !isReadOnly ?\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === \"Manager\") ?\r\n \r\n :\r\n
    \r\n \r\n Back to Nspection\r\n \r\n
    \r\n : <>\r\n }\r\n
    \r\n\r\n {\r\n token &&\r\n <>\r\n\r\n \r\n
    \r\n {\r\n\r\n project.modelLink &&\r\n \r\n }\r\n {\r\n token && project.projectModelImages && project.projectModelImages.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 {`${projectType.name} Report`}\r\n

    \r\n

    {project.projectName}

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

    \r\n Scanned on:{moment(project.scanDate).format('MMMM Do, YYYY')}\r\n

    \r\n {\r\n project.completedDateTime ?\r\n

    \r\n Completed on:{moment(project.completedDateTime).format('MMMM Do, YYYY')}\r\n

    : <>\r\n }\r\n\r\n
    \r\n

    \r\n Nspection Description: {project.notes ? project.notes : \"No project notes available.\"}\r\n

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

    \r\n Inspection Status:\r\n

    \r\n \r\n {project.completedDateTime ? 'Completed' : 'Active'}\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n projectPins && projectPins.projectPinListingDtos && projectPins.projectPinListingDtos.map((pin, index) =>\r\n
    \r\n
    \r\n
    \r\n

    \r\n {pin.title}\r\n

    \r\n {\r\n pin.projectPinCheckBoxes.map(x =>\r\n \r\n {x}\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n

    \r\n Reported By: {pin.addedBy ?? pin.anonymousUser ?? 'N/A'}\r\n

    \r\n

    \r\n Reported On: {moment(pin.updatedOn).format(\"Do, MMMM, YYYY\")}\r\n

    \r\n

    \r\n Category: {pin.pointCategory ?? 'N/A'}\r\n

    \r\n\r\n

    \r\n Resolved: {pin.isResolved ? `Resolved` : `Not Resolved`}\r\n

    \r\n

    \r\n Approved: {pin.isApproved ? `Approved` : `Not Approved`}\r\n

    \r\n

    \r\n Status: {pin.projectTypePOIStatus ?? 'N/A'}\r\n

    \r\n {\r\n pin.matterportResolutionLink &&\r\n

    \r\n Resolution Link: {pin.matterportResolutionLink}\r\n

    \r\n }\r\n

    \r\n {\r\n pin.projectPinCustomFields?.length > 0 && !pin.projectPinCustomFields.every(x => !x.isViewable) &&\r\n <>\r\n Custom Fields:\r\n
    \r\n \r\n }\r\n {pin.projectPinCustomFields?.length > 0 ? pin.projectPinCustomFields?.map((x, i) =>\r\n <>\r\n {\r\n x.isViewable &&\r\n <>\r\n \r\n {x.name} : {x.description ? x.description : '-'}\r\n \r\n
    \r\n \r\n }\r\n \r\n ) : \"-\"}\r\n

    \r\n

    \r\n Comment: {pin.comment ?? 'N/A'}\r\n

    \r\n

    \r\n Commented By: {pin.commentedBy ? pin.commentedBy : pin.anonymousName}\r\n

    \r\n

    \r\n Notes: {pin.description ?? 'N/A'}\r\n

    \r\n
    \r\n {\r\n token && projectPins.allowCollaboration &&\r\n
    \r\n \r\n
    \r\n }\r\n {\r\n !token && (project && project.client && project.client.allowAnonymousCollaboration &&\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n {\r\n token && pin && pin.projectPinCustomFields.length > 0 &&\r\n
    \r\n \r\n
    \r\n }\r\n {\r\n pin.poiResolutionImagePath &&\r\n

    \r\n Resolution Image:
    \r\n \"Report\"\r\n
    \r\n

    \r\n }\r\n {\r\n token &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {/*
    \r\n
    */}\r\n
    \r\n \"Report\"\r\n
    \r\n\r\n {/*
    \r\n \r\n
    */}\r\n\r\n
    \r\n\r\n )\r\n }\r\n {\r\n setAddCommentModalVisible(false);\r\n setCurrentPin({});\r\n setRefreshList(!refreshList);\r\n }}\r\n token={token}\r\n pin={currentPin}\r\n /> : <>\r\n {\r\n setShowCustomFieldModalVisible(false);\r\n setCurrentPin({});\r\n setRefreshList(!refreshList);\r\n }}\r\n token={token}\r\n pin={currentPin}\r\n /> : <>\r\n {\r\n setAddImageModalVisible(false);\r\n setRefreshList(!refreshList);\r\n }}\r\n token={token}\r\n />\r\n\r\n
    \r\n \r\n )\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions })(GenerateNewReportPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ProjectTypeCheckBox/\";\r\n\r\nconst getProjectTypeCheckBoxById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypeCheckBoxById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectTypeCheckBoxByProjectTypeId = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypeCheckBoxByProjectTypeId?projTypeId=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getProjectTypeCheckBoxes = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetProjectTypeCheckBoxes', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveProjectTypeCheckBox = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveProjectTypeCheckBox', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectTypeCheckBox = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeleteProjectTypeCheckBox?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteProjectTypeCheckBoxIsDeletedFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeleteProjectTypeCheckBoxIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getProjectTypeCheckBoxById,\r\n getProjectTypeCheckBoxByProjectTypeId,\r\n getProjectTypeCheckBoxes,\r\n saveProjectTypeCheckBox,\r\n deleteProjectTypeCheckBox,\r\n deleteProjectTypeCheckBoxIsDeletedFlag\r\n}","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required(\"CheckBox Name is required\"),\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport { connect } from \"react-redux\";\r\nimport * as projectTypeCheckBoxService from \"../../../services/settings/projectTypeCheckBoxService\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport { useFormik } from \"formik\";\r\nimport ProjectTypeCheckBoxValidator from \"../../../helpers/validators/ProjectTypeCheckBoxValidator\";\r\nimport { getErrorField } from \"../../../helpers/helper\";\r\nimport * as alert from \"../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../redux/confirmModalRedux\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nconst BlueCheckbox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nvar initialProjectTypeCheckBox = {\r\n id: 0,\r\n name: '',\r\n projectTypeId: '',\r\n isDeleted: false\r\n}\r\n\r\nconst ProjectTypeCheckBoxListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, history } = props;\r\n const [data, setData] = useState([]);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [selectedProjectTypeCheckBox, setSelectedProjectTypeCheckBox] = useState(initialProjectTypeCheckBox);\r\n\r\n useEffect(() => {\r\n loadTableData();\r\n }, [])\r\n\r\n const loadTableData = () => {\r\n projectTypeCheckBoxService.getProjectTypeCheckBoxByProjectTypeId(history.location.state.projectTypeId).then(res => {\r\n setData(res);\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n\r\n const editProjectTypeCheckBox = (id) => {\r\n projectTypeCheckBoxService.getProjectTypeCheckBoxById(id).then(res => {\r\n setSelectedProjectTypeCheckBox(res);\r\n setIsModalOpen(true);\r\n })\r\n }\r\n\r\n // const deleteProjectTypeCheckBox = (id) => {\r\n // projectTypeCheckBoxService.deleteProjectTypeCheckBox(id).then(res => {\r\n // showAlert({ message: res.message, variant: \"success\" });\r\n // loadTableData();\r\n // hideConfirmModal();\r\n // })\r\n // }\r\n\r\n const deleteProjectTypeCheckBox = (id, projectTypeId) => {\r\n let newModel = { ...selectedProjectTypeCheckBox, id: id, projectTypeId: projectTypeId, isDeleted: true }\r\n projectTypeCheckBoxService.deleteProjectTypeCheckBoxIsDeletedFlag(newModel).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n hideConfirmModal();\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n }\r\n },\r\n {\r\n name: \"isDefault\",\r\n label: \"Is Default\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return data[dataIndex].isDefault &&\r\n \r\n {'Default'}\r\n \r\n }\r\n\r\n }\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n width: 1,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {\r\n editProjectTypeCheckBox(data[dataIndex].id);\r\n }}\r\n >\r\n Edit\r\n  \r\n showConfirmModal({\r\n title: \"Delete N-Point Category\",\r\n text: \"Are you sure you want to delete this n-point category?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProjectTypeCheckBox(data[dataIndex].id, data[dataIndex].projectTypeId)\r\n })}\r\n className=\"btn btn-sm btn-danger font-weight-bold py-2 px-3 px-xxl-5 my-1\"\r\n >\r\n Delete\r\n \r\n \r\n );\r\n }\r\n },\r\n },\r\n ];\r\n\r\n const handleModalClose = () => {\r\n setIsModalOpen(false);\r\n setSelectedProjectTypeCheckBox(initialProjectTypeCheckBox);\r\n formik.resetForm();\r\n }\r\n\r\n const saveProjectTypeCheckBox = (values, setStatus, setSubmitting) => {\r\n let newProjTypeCheckBoxes = { ...values, projectTypeId: history.location.state.projectTypeId };\r\n projectTypeCheckBoxService.saveProjectTypeCheckBox(newProjTypeCheckBoxes).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n handleModalClose();\r\n\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n })\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: selectedProjectTypeCheckBox,\r\n validationSchema: ProjectTypeCheckBoxValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveProjectTypeCheckBox(values, setStatus, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n Check Box\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.name && formik.errors.name ? (\r\n
    \r\n {formik.errors.name}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n {\r\n formik.setFieldValue(\"isDefault\", val);\r\n }}\r\n />\r\n }\r\n label=\"Is Default\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Save\r\n {formik.isSubmitting}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n CheckBox\r\n \r\n \r\n View and Manage CheckBoxListingPage\r\n \r\n

    \r\n
    \r\n setIsModalOpen(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add CheckBox\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default connect(null, { ...alert.actions, ...confirmModal.actions })(ProjectTypeCheckBoxListingPage);","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n name: Yup.string().required(\"Name is required\"),\r\n});","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport { makeStyles, withStyles } from '@material-ui/core';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { connect } from \"react-redux\";\r\nimport { useParams } from 'react-router-dom';\r\nimport Select from '@material-ui/core/Select';\r\nimport * as projectTypeCustomFieldService from \"../../../services/settings/projectTypeCustomFieldService\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport * as Yup from \"yup\";\r\nimport { red, blue } from '@material-ui/core/colors';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { useFormik } from \"formik\";\r\nimport ProjectTypeCustomFieldValidator from \"../../../helpers/validators/ProjectTypeCustomFieldValidator\";\r\nimport { getErrorField } from \"../../../helpers/helper\";\r\nimport * as alert from \"../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../redux/confirmModalRedux\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\nvar initialProjectTypeCustomField = {\r\n id: 0,\r\n name: '',\r\n isEditable: false,\r\n isViewable: false,\r\n projectTypeId: '',\r\n customFieldType: '',\r\n isDeleted: false\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n // margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst BlueCheckBox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nconst fieldTypeList = [\r\n { value: 'fractional', label: 'Text (Fractional)' },\r\n { value: 'decimal', label: 'Text (Decimal)' },\r\n { value: 'fractionalWithUnit', label: 'Text (Fractional with Unit on Inches)' },\r\n { value: 'date', label: 'Text (Date)' },\r\n { value: 'textual', label: 'Text (Plain)' },\r\n { value: 'checkbox', label: 'Checkbox' },\r\n { value: 'dropdown', label: 'Dropdown' },\r\n { value: 'multiselect', label: 'Multiselect' }\r\n];\r\n\r\nconst ProjectTypeCustomFieldListingPage = (props) => {\r\n const { id } = useParams();\r\n const { showAlert, showConfirmModal, hideConfirmModal, history } = props;\r\n const [data, setData] = useState([]);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [selectedProjectTypeCustomField, setSelectedProjectTypeCustomField] = useState(initialProjectTypeCustomField);\r\n const [options, setOptions] = useState([]);\r\n const [showFieldOptions, setShowFieldOptions] = useState(false);\r\n\r\n useEffect(() => {\r\n loadTableData();\r\n }, []);\r\n\r\n const addOption = () => {\r\n setOptions([...options, \"\"]);\r\n };\r\n\r\n const removeOption = index => {\r\n const newOptions = options.filter((_, i) => i !== index);\r\n setOptions(newOptions);\r\n };\r\n\r\n const handleOptionChange = (value, index) => {\r\n const newOptions = options.map((option, i) => {\r\n if (i === index) {\r\n return value;\r\n }\r\n return option;\r\n });\r\n setOptions(newOptions);\r\n };\r\n\r\n const loadTableData = () => {\r\n projectTypeCustomFieldService.getProjectTypeCustomFieldByProjectTypeId(id).then(res => {\r\n setData(res);\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n\r\n const editProjectTypeCustomField = (id) => {\r\n projectTypeCustomFieldService.getProjectTypeCustomFieldById(id).then(res => {\r\n setSelectedProjectTypeCustomField(res);\r\n if (res.customFieldTypeOptions) {\r\n setOptions(res.customFieldTypeOptions.split(\",\"));\r\n setShowFieldOptions(true);\r\n }\r\n setIsModalOpen(true);\r\n })\r\n }\r\n\r\n const deleteProjectTypeCustomField = (id, projectTypeId) => {\r\n let newModel = { ...selectedProjectTypeCustomField, id: id, projectTypeId: projectTypeId, isDeleted: true }\r\n projectTypeCustomFieldService.deleteProjectTypeCustomFieldIsDeletedFlag(newModel).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n hideConfirmModal();\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n }\r\n },\r\n {\r\n name: \"isEditable\",\r\n label: \"Is Editable In Report\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isEditable ?\r\n \r\n {'true'}\r\n \r\n : \"-\"}\r\n \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"isViewable\",\r\n label: \"Is Viewable In Report\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isViewable ?\r\n \r\n {'true'}\r\n \r\n : \"-\"}\r\n \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"customFieldType\",\r\n label: \"Custom Field Data Type\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].customFieldType ?\r\n data[dataIndex].customFieldType\r\n : \"-\"}\r\n \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"customFieldTypeOptions\",\r\n label: \"Custom Field Data Type Options\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n width: 1,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].customFieldTypeOptions ?\r\n data[dataIndex].customFieldTypeOptions\r\n : \"-\"}\r\n \r\n )\r\n }\r\n },\r\n },\r\n {\r\n name: \"isDefault\",\r\n label: \"Is Default\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return data[dataIndex].isDefault &&\r\n \r\n {'Default'}\r\n \r\n }\r\n\r\n }\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n width: 1,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {\r\n editProjectTypeCustomField(data[dataIndex].id);\r\n }}\r\n >\r\n Edit\r\n  \r\n showConfirmModal({\r\n title: \"Delete N-Point Custom Field\",\r\n text: \"Are you sure you want to delete this n-point field? This will delete all the data related to custom fields in the Nspections.\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deleteProjectTypeCustomField(data[dataIndex].id, data[dataIndex].projectTypeId)\r\n })}\r\n className=\"btn btn-sm btn-danger font-weight-bold py-2 px-3 px-xxl-5 my-1\"\r\n >\r\n Delete\r\n \r\n \r\n );\r\n }\r\n },\r\n },\r\n ];\r\n\r\n const handleModalClose = () => {\r\n setIsModalOpen(false);\r\n setSelectedProjectTypeCustomField(initialProjectTypeCustomField);\r\n setOptions([]);\r\n setShowFieldOptions(false);\r\n formik.resetForm();\r\n }\r\n\r\n const handleCustomFieldTypeChange = (e) => {\r\n const selectedType = e.target.value;\r\n formik.setFieldValue(\"customFieldType\", selectedType);\r\n\r\n if (selectedType !== 'dropdown' && selectedType !== 'multiselect') {\r\n formik.setFieldValue(\"customFieldTypeOptions\", \"\");\r\n }\r\n };\r\n\r\n const saveProjectTypeCustomField = (values, setStatus, setSubmitting) => {\r\n const optionsString = options.join(\",\");\r\n let newProjTypeCustomFields = { ...values, projectTypeId: id, customFieldTypeOptions: optionsString };\r\n projectTypeCustomFieldService.saveProjectTypeCustomField(newProjTypeCustomFields).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n handleModalClose();\r\n\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n })\r\n }\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: selectedProjectTypeCustomField,\r\n validationSchema: ProjectTypeCustomFieldValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveProjectTypeCustomField(values, setStatus, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n Custom Field\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.name && formik.errors.name ? (\r\n
    \r\n {formik.errors.name}\r\n
    \r\n ) : null}\r\n
    \r\n  \r\n
    \r\n \r\n Custom Field Type\r\n {\r\n if (e.target.value === \"\") {\r\n formik.setFieldValue(\"customFieldType\", \"\");\r\n }\r\n else {\r\n formik.setFieldValue(\"customFieldType\", e.target.value);\r\n if (e.target.value === 'checkbox' || e.target.value === 'multiselect' || e.target.value === 'dropdown') {\r\n setShowFieldOptions(true);\r\n } else {\r\n setShowFieldOptions(false);\r\n setOptions([]);\r\n }\r\n }\r\n }}\r\n value={formik.values.customFieldType ? formik.values.customFieldType : ''}\r\n // {...formik.getFieldProps(\"customFieldType\")}\r\n inputProps={{\r\n name: 'customFieldType',\r\n id: 'outlined-age-native-simple',\r\n }}\r\n >\r\n )\r\n }\r\n\r\n \r\n {formik.touched.customFieldType && formik.errors.customFieldType ? (\r\n
    \r\n {formik.errors.customFieldType}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n  \r\n
    \r\n \r\n {formik.touched.name && formik.errors.name ? (\r\n
    \r\n {formik.errors.name}\r\n
    \r\n ) : null}\r\n
    \r\n  \r\n\r\n {\r\n showFieldOptions &&\r\n (\r\n <>\r\n
    \r\n \r\n Manage your custom field options\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n {options.map((option, index) => (\r\n
    \r\n \r\n handleOptionChange(e.target.value, 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 )\r\n }\r\n  \r\n
    \r\n
    \r\n {\r\n {\r\n formik.setFieldValue(\"isEditable\", val);\r\n }}\r\n />\r\n }\r\n label=\"Is Editable in Report\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n {\r\n formik.setFieldValue(\"isViewable\", val);\r\n }}\r\n />\r\n }\r\n label=\"Is Viewable in Report\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n {\r\n formik.setFieldValue(\"isDefault\", val);\r\n }}\r\n />\r\n }\r\n label=\"Is Default\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Save\r\n {formik.isSubmitting}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n Custom Fields\r\n \r\n \r\n View and Manage Custom Fields\r\n \r\n

    \r\n
    \r\n setIsModalOpen(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add Custom Field\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default connect(null, { ...alert.actions, ...confirmModal.actions })(ProjectTypeCustomFieldListingPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"ProjectTypePOIStatus/\";\r\n\r\nconst getPOIStatusById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetPOIStatusById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getPOIStatusByProjectTypeId = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetPOIStatusByProjectTypeId?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getPOIStatuses = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetPOIStatuses', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst savePOIStatus = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SavePOIStatus', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deletePOIStatus = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'DeletePOIStatus?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deletePOIStatusIsDeletedFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeletePOIStatusByIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getPOIStatusById,\r\n getPOIStatusByProjectTypeId,\r\n getPOIStatuses,\r\n savePOIStatus,\r\n deletePOIStatus,\r\n deletePOIStatusIsDeletedFlag\r\n}","/* eslint-disable no-restricted-imports */\r\nimport React, { useState, useEffect } from 'react';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport { connect } from \"react-redux\";\r\nimport * as poiStatusService from \"../../../services/settings/POIStatusService\";\r\nimport * as clientTierService from '../../../services/management/clientTierService';\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport { useFormik } from \"formik\";\r\nimport POIStatusValidator from \"../../../helpers/validators/PointCategoryValidator\";\r\nimport { getErrorField, checkTierPlanAndRoleTier3 } from '../../../helpers/helper';\r\nimport * as alert from \"../../../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../../../redux/confirmModalRedux\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { SketchPicker } from 'react-color';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\n\r\nconst BlueCheckBox = withStyles({\r\n root: {\r\n color: blue[400],\r\n '&$checked': {\r\n color: blue[600],\r\n },\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nvar initialPOIStatus = {\r\n id: 0,\r\n name: '',\r\n description: '',\r\n projectTypeId: '',\r\n iconPath: '',\r\n poiColorCode: '',\r\n isDeleted: false\r\n}\r\n\r\nconst ProjectTypePOIStatusListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal, history, auth } = props;\r\n const [poiColor, setPoiColor] = useState('');\r\n const [isBusinessTier, setIsBusinessTier] = useState(false);\r\n const [tier, setTier] = useState('');\r\n const [data, setData] = useState([]);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [selectedPOIStatus, setSelectedPOIStatus] = useState(initialPOIStatus);\r\n\r\n useEffect(() => {\r\n loadTableData();\r\n }, [])\r\n\r\n const loadTableData = () => {\r\n\r\n if (history.location.state.projectTypeId) {\r\n poiStatusService.getPOIStatusByProjectTypeId(history.location.state.projectTypeId).then(res => {\r\n setData(res);\r\n\r\n return res[0];\r\n }).then(projectType => {\r\n if (projectType) {\r\n fetchClientTier(projectType);\r\n }\r\n\r\n })\r\n .catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n else {\r\n poiStatusService.getPOIStatuses().then(res => {\r\n setData(res);\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n });\r\n }\r\n }\r\n\r\n const fetchClientTier = (poi) => {\r\n let tierId = poi.projectType.client.clientTier.id;\r\n let isTier3 = false;\r\n if (tierId) {\r\n clientTierService.getClientTierById(tierId).then(res => {\r\n setTier(res);\r\n return res;\r\n }).then(tier => {\r\n isTier3 = checkTierPlanAndRoleTier3(tier, auth.role);\r\n if (isTier3) {\r\n setIsBusinessTier(isTier3);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const editPOIStatus = (id) => {\r\n poiStatusService.getPOIStatusById(id).then(res => {\r\n setSelectedPOIStatus(res);\r\n setIsModalOpen(true);\r\n setPoiColor('');\r\n })\r\n }\r\n\r\n // const deletePointCategory = (id) => {\r\n // pointCategoryService.deletePointCategory(id).then(res => {\r\n // showAlert({ message: res.message, variant: \"success\" });\r\n // loadTableData();\r\n // hideConfirmModal();\r\n // })\r\n // }\r\n\r\n const deletePOIStatus = (id, projectTypeId) => {\r\n let deleteModel = { ...selectedPOIStatus, isDeleted: true, projectTypeId: projectTypeId, id: id }\r\n poiStatusService.deletePOIStatusIsDeletedFlag(deleteModel).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n hideConfirmModal();\r\n })\r\n }\r\n\r\n const columns = [\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n }\r\n },\r\n {\r\n name: \"description\",\r\n label: \"Description\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].description ? data[dataIndex].description : \"-\"}\r\n \r\n );\r\n }\r\n }\r\n },\r\n ...(isBusinessTier ?\r\n [{\r\n name: \"poiColorCode\",\r\n label: \"poiColorCode\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].poiColorCode ? data[dataIndex].poiColorCode : \"-\"}\r\n \r\n );\r\n }\r\n }\r\n }] : []),\r\n {\r\n name: \"isDefault\",\r\n label: \"Is Default\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return data[dataIndex].isDefault &&\r\n \r\n {'Default'}\r\n \r\n }\r\n\r\n }\r\n },\r\n {\r\n name: \"id\",\r\n label: \"Actions\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n width: 1,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n editPOIStatus(data[dataIndex].id)}\r\n >\r\n Edit\r\n  \r\n showConfirmModal({\r\n title: \"Delete N-Point Category\",\r\n text: \"Are you sure you want to delete this n-point category?\",\r\n rightBtnText: \"Confirm\",\r\n btnAction: () => deletePOIStatus(data[dataIndex].id, data[dataIndex].projectTypeId)\r\n })}\r\n className=\"btn btn-sm btn-danger font-weight-bold py-2 px-3 px-xxl-5 my-1\"\r\n >\r\n Delete\r\n \r\n \r\n );\r\n }\r\n },\r\n\r\n },\r\n ];\r\n\r\n const handleModalClose = () => {\r\n setIsModalOpen(false);\r\n setSelectedPOIStatus(initialPOIStatus);\r\n formik.resetForm();\r\n }\r\n\r\n const handleColorChange = (color) => {\r\n setPoiColor(color.hex);\r\n formik.setFieldValue(\"poiColorCode\", color.hex);\r\n }\r\n\r\n const savePOIStatus = (values, setStatus, setSubmitting) => {\r\n\r\n let newValues = { ...values, projectTypeId: history.location.state.projectTypeId, poiColor: poiColor };\r\n poiStatusService.savePOIStatus(newValues).then(res => {\r\n showAlert({ message: res.message, variant: \"success\" });\r\n loadTableData();\r\n handleModalClose();\r\n }).catch((ex) => {\r\n showAlert({ message: ex.message, variant: \"error\" });\r\n })\r\n }\r\n\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: selectedPOIStatus,\r\n validationSchema: POIStatusValidator,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n savePOIStatus(values, setStatus, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n N-Point Status\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.name && formik.errors.name ? (\r\n
    \r\n {formik.errors.name}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {formik.touched.description && formik.errors.description ? (\r\n
    \r\n {formik.errors.description}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n {isBusinessTier &&\r\n <>\r\n
    \r\n
    \r\n \r\n {formik.touched.poiColorCode && formik.errors.poiColorCode ? (\r\n
    \r\n {formik.errors.poiColorCode}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n \r\n
    \r\n {\r\n {\r\n formik.setFieldValue(\"isDefault\", val);\r\n }}\r\n />\r\n }\r\n label=\"Is Default\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n  \r\n \r\n Save\r\n {formik.isSubmitting}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n N-Point Status\r\n \r\n \r\n View and Manage N-Point Status\r\n \r\n

    \r\n
    \r\n setIsModalOpen(true)}\r\n className=\"btn btn-success font-weight-bolder font-size-sm mr-3\"\r\n >\r\n Add POI Status\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, { ...alert.actions, ...confirmModal.actions })(ProjectTypePOIStatusListingPage);","import React, { Suspense, lazy } from \"react\";\r\nimport { Redirect, Switch, Route } from \"react-router-dom\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../_metronic/layout\";\r\nimport { BuilderPage } from \"./pages/BuilderPage\";\r\nimport { MyPage } from \"./pages/MyPage\";\r\nimport { DashboardPage } from \"./pages/DashboardPage\";\r\nimport UserListingPage from \"./pages/management/user/UserListingPage\";\r\nimport ClientListingPage from './pages/management/client/ClientListingPage';\r\nimport ProjectListingPage from './pages/services/project/ProjectListingPage';\r\nimport ProjectTypeListingPage from './pages/services/project/ProjectTypeListingPage';\r\nimport ProjectEditPage from './pages/services/project/ProjectEditPage';\r\nimport ChargifyForm from \"./pages/chargifyForm/ChargifyForm\";\r\nimport ProjectTypeEditPage from './pages/services/project/ProjectTypeEditPage';\r\nimport PointCategoryListingPage from './pages/settings/pointCategoryListingPage';\r\nimport SettingListingPage from './pages/settings/SettingListingPage';\r\nimport GenerateNewReportPage from './pages/services/project/GenerateNewReportPage';\r\nimport ProjectTypeCheckBoxListingPage from \"./pages/settings/ProjectTypeCheckBoxListingPage\";\r\nimport ProjectTypeCustomFieldListingPage from \"./pages/settings/ProjectTypeCustomFieldListingPage\";\r\nimport ProjectTypePOIStatusListingPage from \"./pages/settings/ProjectTypePOIStatusListingPage\";\r\nimport PropertyImprovementPlanReport from \"./components/PropertyImprovementPlanReport\";\r\n\r\nconst GoogleMaterialPage = lazy(() =>\r\n import(\"./modules/GoogleMaterialExamples/GoogleMaterialPage\")\r\n);\r\nconst ReactBootstrapPage = lazy(() =>\r\n import(\"./modules/ReactBootstrapExamples/ReactBootstrapPage\")\r\n);\r\nconst ECommercePage = lazy(() =>\r\n import(\"./modules/ECommerce/pages/eCommercePage\")\r\n);\r\nconst UserProfilepage = lazy(() =>\r\n import(\"./modules/UserProfile/UserProfilePage\")\r\n);\r\n\r\nexport default function BasePage() {\r\n // useEffect(() => {\r\n // console.log('Base page');\r\n // }, []) // [] - is required if you need only one call\r\n // https://reactjs.org/docs/hooks-reference.html#useeffect\r\n\r\n return (\r\n }>\r\n \r\n {\r\n /* Redirect from root URL to /dashboard. */\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 \"../../../_metronic/_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 \"../../../_metronic/_helpers\";\r\n\r\nexport function ErrorPage2() {\r\n return (\r\n
    \r\n \r\n
    \r\n

    OOPS!

    \r\n \r\n Something went wrong here\r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {toAbsoluteUrl} from \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_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 \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_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 \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_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 \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_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","/* eslint-disable no-restricted-imports */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from \"react-redux\";\r\nimport clsx from 'clsx';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { amber, green } from '@material-ui/core/colors';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport * as alert from '../../redux/alertSnackBarRedux';\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon,\r\n};\r\n\r\nconst useStyles1 = makeStyles(theme => ({\r\n success: {\r\n backgroundColor: green[600],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n warning: {\r\n backgroundColor: amber[700],\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing(1),\r\n },\r\n message: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n}));\r\n \r\n\r\nfunction MySnackbarContentWrapper(props) {\r\n const classes = useStyles1();\r\n const { className, message, onClose, variant, ...other } = props;\r\n const Icon = variantIcon[variant];\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n {...other}\r\n />\r\n );\r\n}\r\n\r\nMySnackbarContentWrapper.propTypes = {\r\n className: PropTypes.string,\r\n message: PropTypes.node,\r\n onClose: PropTypes.func,\r\n variant: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired,\r\n};\r\n\r\nconst AlertSnackBar = (props) => {\r\n const { alertState } = props;\r\n\r\n function handleClose(event, reason) {\r\n props.hideAlert();\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n alertState: state.alert\r\n});\r\n\r\n\r\nexport default connect(mapStateToProps, alert.actions)(AlertSnackBar);","import React from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport * as confirmModal from \"../../redux/confirmModalRedux\";\r\n\r\nconst ConfirmModal = (props) => {\r\n const { showConfirmModal, hideConfirmModal, confirmModal, setProcessing } = props;\r\n return (\r\n \r\n \r\n {confirmModal.title}\r\n \r\n \r\n {confirmModal.text}\r\n \r\n \r\n \r\n \r\n {confirmModal.rightBtnText}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateFromProps = (state) => ({\r\n confirmModal: state.confirmModal\r\n})\r\n\r\nexport default connect(mapStateFromProps, confirmModal.actions)(ConfirmModal)","import React, {useState} from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport GenerateNewReportPage from '../services/project/GenerateNewReportPage';\r\n\r\nconst ProjectReportPage = (props) => {\r\n const useQueryString = () => new URLSearchParams(useLocation().search);\r\n const [token, setToken] = useState(useQueryString().get('token'));\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default ProjectReportPage;","/**\r\n * High level router.\r\n *\r\n * Note: It's recommended to compose related routes in internal router\r\n * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).\r\n */\r\nimport React from \"react\";\r\nimport WithAppcuesIdentification from \"./appcuesHOC/WithAppcuesIdentification\";\r\nimport { Redirect, Switch, Route, useLocation } from \"react-router-dom\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Layout } from \"../_metronic/layout\";\r\nimport BasePage from \"./BasePage\";\r\nimport { Logout, AuthPage } from \"./modules/Auth\";\r\nimport ErrorsPage from \"./modules/ErrorsExamples/ErrorsPage\";\r\nimport AlertSnackBar from \"./components/AlertSnackBar\";\r\nimport ConfirmModal from \"./components/ConfirmModal\";\r\nimport ProjectReportPage from \"./pages/public/ProjectReportPage\";\r\n\r\nconst AuthPageWithAppcuesIdentification = WithAppcuesIdentification(AuthPage);\r\nconst BasePageWithAppcuesIdentification = WithAppcuesIdentification(BasePage);\r\n\r\nfunction Routes() {\r\n const { isAuthorized, user } = useSelector(\r\n ({ auth }) => ({\r\n isAuthorized: auth.user != null,\r\n user: auth.user,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const { role } = useSelector(\r\n ({ auth }) => ({\r\n role: auth.role ?? null,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const { clientRefId } = useSelector(\r\n ({ auth }) => ({\r\n clientRefId: auth.clientRefId ?? null,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n {!isAuthorized ? (\r\n /*Render auth page when user at `/auth` and not authorized.*/\r\n \r\n \r\n \r\n ) : (\r\n /*Otherwise redirect to root page (`/`)*/\r\n \r\n )}\r\n\r\n \r\n \r\n\r\n {!isAuthorized ? (\r\n /*Redirect to `/auth` when user is not authorized*/\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Routes;\r\n\r\n\r\n","// /**\r\n// * Entry application component used to compose providers and render Routes.\r\n// * */\r\n\r\n// import React from \"react\";\r\n// import { Provider } from \"react-redux\";\r\n// import { BrowserRouter } from \"react-router-dom\";\r\n// import { PersistGate } from \"redux-persist/integration/react\";\r\n// import { Routes } from \"../app/Routes\";\r\n// import { I18nProvider } from \"../_metronic/i18n\";\r\n// import { LayoutSplashScreen, MaterialThemeProvider } from \"../_metronic/layout\";\r\n\r\n// export default function App({ store, persistor, basename }) {\r\n// return (\r\n// /* Provide Redux store */\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// {/* 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\nimport React from \"react\";\r\nimport { Provider, useSelector, shallowEqual } from \"react-redux\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport { PersistGate } from \"redux-persist/integration/react\";\r\nimport Routes from \"./Routes\";\r\nimport { I18nProvider } from \"../_metronic/i18n\";\r\nimport { LayoutSplashScreen, MaterialThemeProvider } from \"../_metronic/layout\";\r\n\r\nfunction App({ store, persistor, basename }) {\r\n\r\n return (\r\n /* Provide Redux store */\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 {/* Wrap the Routes component with the withAppcuesIdentification HOC */}\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","/**\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 \"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 { registerPlugin } from \"react-filepond\";\r\nimport App from \"./app/App\";\r\nimport \"./index.scss\"; // Standard version\r\n// import \"./sass/style.react.rtl.css\"; // RTL version\r\nimport \"./_metronic/_assets/plugins/keenthemes-icons/font/ki.css\";\r\nimport \"socicon/css/socicon.css\";\r\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\r\nimport \"./_metronic/_assets/plugins/flaticon/flaticon.css\";\r\nimport \"./_metronic/_assets/plugins/flaticon2/flaticon.css\";\r\nimport \"./app/assets/styles/custom.css\";\r\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\";\r\nimport 'react-tooltip/dist/react-tooltip.css';\r\n// Datepicker\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {\r\n MetronicLayoutProvider,\r\n MetronicSplashScreenProvider,\r\n MetronicSubheaderProvider\r\n} from \"./_metronic/layout\";\r\nimport { MetronicI18nProvider } from \"./_metronic/i18n\";\r\nimport \"filepond/dist/filepond.min.css\";\r\nimport FilePondPluginImageExifOrientation from \"filepond-plugin-image-exif-orientation\";\r\nimport FilePondPluginImagePreview from \"filepond-plugin-image-preview\";\r\nimport FilePondPluginFileValidateType from 'filepond-plugin-file-validate-type';\r\nimport \"filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css\";\r\nimport HttpsRedirect from 'react-https-redirect';\r\n\r\nregisterPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview, FilePondPluginFileValidateType);\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 * basic Metronic mocks and returns it.\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 * Inject metronic interceptors for axios.\r\n *\r\n * @see https://github.com/axios/axios#interceptors\r\n */\r\n// _redux.setupAxios(axios, store);\r\n\r\nReactDOM.render(\r\n \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","import MockAdapter from \"axios-mock-adapter\";\r\nimport mockAuth from \"../../app/modules/Auth/__mocks__/mockAuth\";\r\nimport mockCustomers from \"../../app/modules/ECommerce/__mocks__/mockCustomer\";\r\nimport mockProducts from \"../../app/modules/ECommerce/__mocks__/mockProduct\";\r\nimport mockRemarks from \"../../app/modules/ECommerce/__mocks__/mockRemark\";\r\nimport mockSpecifications from \"../../app/modules/ECommerce/__mocks__/mockSpecification\";\r\n\r\nexport default function mockAxios(axios) {\r\n const mock = new MockAdapter(axios, { delayResponse: 300 });\r\n\r\n mockAuth(mock);\r\n mockCustomers(mock);\r\n mockProducts(mock);\r\n mockRemarks(mock);\r\n mockSpecifications(mock);\r\n\r\n return mock;\r\n}\r\n","import {\r\n LOGIN_URL,\r\n ME_URL,\r\n REGISTER_URL,\r\n REQUEST_PASSWORD_URL\r\n} from \"../_redux/authCrud\";\r\nimport userTableMock from \"./userTableMock\";\r\n\r\nexport default function mockAuth(mock) {\r\n mock.onPost(LOGIN_URL).reply(({ data }) => {\r\n const { email, password } = JSON.parse(data);\r\n\r\n if (email && password) {\r\n const user = userTableMock.find(\r\n x =>\r\n x.email.toLowerCase() === email.toLowerCase() &&\r\n x.password === password\r\n );\r\n\r\n if (user) {\r\n return [200, { ...user, password: undefined }];\r\n }\r\n }\r\n\r\n return [400];\r\n });\r\n\r\n mock.onPost(REGISTER_URL).reply(({ data }) => {\r\n const { email, fullname, username, password } = JSON.parse(data);\r\n\r\n if (email && fullname && username && password) {\r\n const user = {\r\n id: generateUserId(),\r\n email,\r\n fullname,\r\n username,\r\n password,\r\n roles: [2], // Manager\r\n accessToken: \"access-token-\" + Math.random(),\r\n refreshToken: \"access-token-\" + Math.random(),\r\n pic: process.env.PUBLIC_URL + \"/media/users/default.jpg\"\r\n };\r\n\r\n userTableMock.push(user);\r\n\r\n return [200, { ...user, password: undefined }];\r\n }\r\n\r\n return [400];\r\n });\r\n\r\n mock.onPost(REQUEST_PASSWORD_URL).reply(({ data }) => {\r\n const { email } = JSON.parse(data);\r\n\r\n if (email) {\r\n const user = userTableMock.find(\r\n x => x.email.toLowerCase() === email.toLowerCase()\r\n );\r\n\r\n if (user) {\r\n user.password = undefined;\r\n\r\n return [200, { ...user, password: undefined }];\r\n }\r\n }\r\n\r\n return [400];\r\n });\r\n\r\n mock.onGet(ME_URL).reply(({ headers: { Authorization } }) => {\r\n const accessToken =\r\n Authorization &&\r\n Authorization.startsWith(\"Bearer \") &&\r\n Authorization.slice(\"Bearer \".length);\r\n\r\n if (accessToken) {\r\n const user = userTableMock.find(x => x.accessToken === accessToken);\r\n\r\n if (user) {\r\n return [200, { ...user, password: undefined }];\r\n }\r\n }\r\n\r\n return [401];\r\n });\r\n\r\n function generateUserId() {\r\n const ids = userTableMock.map(el => el.id);\r\n const maxId = Math.max(...ids);\r\n return maxId + 1;\r\n }\r\n \r\n}\r\n","export function getErrorField(formik, fieldname) {\r\n return (formik.touched[fieldname] && formik.errors[fieldname]);\r\n};\r\n\r\nexport function convertJsonToFormData(json) {\r\n const form_data = new FormData();\r\n for (const key in json) {\r\n if (Array.isArray(json[key])) { json[key].forEach((item) => {\r\n console.log(key, item)\r\n return form_data.append(key, item);\r\n }); } else { form_data.append(key, (json[key] === null) ? '' : json[key]); }\r\n }\r\n \r\n return form_data;\r\n};\r\n\r\nexport function validateDescription(description, customFieldType, customFieldTypeOptions) {\r\n if (!customFieldType || !description || description.trim().length === 0) return null;\r\n switch (customFieldType) {\r\n case 'fractional':\r\n const fractionalRegex = /^\\d+\\s*\\d*\\/\\d*$/;\r\n return !fractionalRegex.test(description) ? \"Invalid fractional value.\" : null;\r\n case 'decimal':\r\n const decimalRegex = /^\\d*(\\.\\d+)?$/;\r\n return !decimalRegex.test(description) ? \"Invalid decimal value.\" : null;\r\n case 'fractionalWithUnit':\r\n const fractionalWithUnitRegex = /^\\d+\\s*\\d*\\/\\d*\\s*\"?$/;\r\n return !fractionalWithUnitRegex.test(description) ? \"Invalid fractional with unit value.\" : null;\r\n case 'textual':\r\n return null;\r\n case 'email':\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return !emailRegex.test(description) ? \"Invalid email address.\" : null;\r\n\r\n case 'phone':\r\n const phoneRegex = /^\\+?(\\d{1,3})?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: *x(\\d+))?$/;\r\n return !phoneRegex.test(description) ? \"Invalid phone number.\" : null;\r\n case 'select':\r\n const validOptions = customFieldTypeOptions.split(',').map(option => option.trim());\r\n return !validOptions.includes(description.trim()) ? \"Invalid selection.\" : null;\r\n case 'date':\r\n // Using the format YYYY-MM-DD for validation\r\n const dateRegex = /^(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[1,3-9]|1[0-2])-(?:29|30)|(?:0[1,3-9]|1[0-2])-31)$/;\r\n return !dateRegex.test(description) ? \"Invalid date format. Expected YYYY-MM-DD.\" : null;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport function pointToString(point) {\r\n var { x, y, z } = point;\r\n\r\n return `{ x: ${x.toFixed(3)}, y: ${y.toFixed(3)}, z: ${z.toFixed(3)} }`;\r\n}\r\n\r\nexport function checkTierPlanAndRoleTier2(tier, role) {\r\n if (tier === \"Enterprise\" || tier === \"Business\" || role === \"SuperAdmin\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nexport function checkTierPlanAndRoleFreeTier(tier, role) {\r\n if (tier === \"Individual\" || role === \"SuperAdmin\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nexport function checkTierPlanAndRoleTier3(tier, role) {\r\n if (tier === \"Enterprise\" || role === \"SuperAdmin\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}","/* 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 React, {useState} from \"react\";\r\nimport clsx from \"clsx\";\r\nimport copy from \"clipboard-copy\";\r\nimport {Tooltip} from \"@material-ui/core\";\r\n\r\nexport function CodeBlockToolbar({\r\n showViewCode = false,\r\n code,\r\n isCodeBlockShown,\r\n setIsCodeBlockShown\r\n}) {\r\n const [isCopySucceed, setIsCopySucceed] = useState(false);\r\n const copyCode = () => {\r\n copy(code).then(() => {\r\n setIsCopySucceed(true);\r\n setTimeout(() => {\r\n setIsCopySucceed(false);\r\n }, 2000);\r\n });\r\n };\r\n\r\n const toggleShowCode = () => {\r\n setIsCodeBlockShown(!isCodeBlockShown);\r\n };\r\n\r\n return (\r\n <>\r\n {showViewCode && (\r\n \r\n \r\n \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","/* eslint-disable jsx-a11y/aria-proptypes */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport clsx from \"clsx\";\r\n// https://github.com/conorhastings/react-syntax-highlighter#prism\r\nimport {Prism as SyntaxHighlighter} from \"react-syntax-highlighter\";\r\n// See https://github.com/PrismJS/prism-themes\r\nimport {coy as highlightStyle} from \"react-syntax-highlighter/dist/esm/styles/prism\";\r\n\r\nexport const KTCodeBlock = ({ languages, tabs, codeShown, customStyle }) => {\r\n const { isCodeBlockShown } = codeShown;\r\n const { tabId, setTabId } = tabs;\r\n return (\r\n <>\r\n {languages.length === 0 && <>}\r\n {languages.length === 1 && (\r\n \r\n
    \r\n \r\n {languages[0].code}\r\n \r\n
    \r\n
    \r\n )}\r\n {languages.length > 1 && (\r\n <>\r\n \r\n \r\n {languages.map((lang, index) => (\r\n
  • \r\n setTabId(index)}\r\n >\r\n {lang.shortCode}\r\n \r\n
  • \r\n ))}\r\n \r\n
    \r\n {languages.map((lang, index) => (\r\n \r\n \r\n \r\n {lang.code}\r\n \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, {useState, useEffect} from \"react\";\r\nimport {KTCodeBlock} from \"./KTCodeBlock\";\r\nimport {Card, CardBody, CardHeader} from \"../Card\";\r\nimport {CodeBlockToolbar} from \"../code-examples/CodeBlockToolbar\";\r\n\r\nexport function KTCodeExample({\r\n jsCode,\r\n children,\r\n beforeCodeTitle,\r\n languages,\r\n codeBlockHeight\r\n}) {\r\n const defaultLanguages = !languages\r\n ? [\r\n {\r\n code: jsCode,\r\n language: \"javascript\",\r\n shortCode: \"JS\"\r\n }\r\n ]\r\n : languages;\r\n const [isCodeBlockShown, setIsCodeBlockShown] = useState(false);\r\n const [tabId, setTabId] = useState(0);\r\n const [customStyle, setCustomStyle] = useState({});\r\n useEffect(() => {\r\n const styles = {};\r\n\r\n if (codeBlockHeight) {\r\n styles.height = codeBlockHeight;\r\n styles.overflowX = \"auto\";\r\n }\r\n\r\n if (defaultLanguages.length > 1) {\r\n styles.background = `none transparent !important`;\r\n }\r\n\r\n setCustomStyle(styles);\r\n }, [codeBlockHeight, defaultLanguages.length]);\r\n\r\n const toolbar = (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n <>{children}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {useField, useFormikContext} from \"formik\";\r\nimport 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\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 DatePickerField({ ...props }) {\r\n const { setFieldValue, errors, touched } = useFormikContext();\r\n const [field] = useField(props);\r\n return (\r\n <>\r\n {props.label && }\r\n {\r\n setFieldValue(field.name, val);\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","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} 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\nconst 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\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","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, setXXXX, handleXXXX, dirty, isValid, status, etc.\r\n label,\r\n withFeedbackLabel = true,\r\n customFeedbackLabel,\r\n type = \"text\",\r\n ...props\r\n}) {\r\n return (\r\n <>\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\nconst getFieldCSSClasses = (touched, errors) => {\r\n const classes = [\"form-control\", \"form-control-solid\"];\r\n if (touched && errors) {\r\n classes.push(\"is-invalid-select\");\r\n }\r\n\r\n if (touched && !errors) {\r\n classes.push(\"is-valid-select\");\r\n }\r\n\r\n return classes.join(\" \");\r\n};\r\n\r\nexport function Select({\r\n label,\r\n withFeedbackLabel = true,\r\n type = \"text\",\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 return (\r\n <>\r\n {label && }\r\n \r\n {children}\r\n \r\n {withFeedbackLabel && (\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 {PaginationTotalStandalone} from \"react-bootstrap-table2-paginator\";\r\n\r\nexport function PaginationToolbar(props) {\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
    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 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 // eslint-disable-next-line react-hooks/exhaustive-deps\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","// CodeExamples\r\nexport {CodeBlock} from \"./code-examples/CodeBlock\";\r\nexport {CodeBlockToolbar} from \"./code-examples/CodeBlockToolbar\";\r\nexport {CodeExample} from \"./code-examples/CodeExample\";\r\nexport {CodeExampleSimple} from \"./code-examples/CodeExampleSimple\";\r\n\r\n// KTCodeExamples\r\nexport {KTCodeBlock} from \"./code-examples-kt/KTCodeBlock\";\r\nexport {KTCodeExample} from \"./code-examples-kt/KTCodeExample\";\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\";","import React, {createContext} from \"react\";\r\nimport {useMemo} from \"react\";\r\nimport {useContext} from \"react\";\r\n\r\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || \"i18nConfig\";\r\nconst initialState = {\r\n selectedLang: \"en\"\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\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 MetronicI18nProvider({ children }) {\r\n const lang = useMemo(getConfig, []);\r\n\r\n return {children};\r\n}\r\n","import React from \"react\";\r\nimport {useLang} from \"./Metronici18n\";\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/de\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/es\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/fr\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/ja\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/zh\";\r\n\r\nimport deMessages from \"./messages/de\";\r\nimport enMessages from \"./messages/en\";\r\nimport esMessages from \"./messages/es\";\r\nimport frMessages from \"./messages/fr\";\r\nimport jaMessages from \"./messages/ja\";\r\nimport zhMessages from \"./messages/zh\";\r\n\r\nconst allMessages = {\r\n de: deMessages,\r\n en: enMessages,\r\n es: esMessages,\r\n fr: frMessages,\r\n ja: jaMessages,\r\n zh: zhMessages\r\n};\r\n\r\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 \"./Metronici18n\";","/* 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 // 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 if (!obj) continue;\r\n\r\n for (var key in obj) {\r\n if (!obj.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n\r\n // based on https://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/\r\n if ( Object.prototype.toString.call(obj[key]) === '[object Object]' ) {\r\n out[key] = KTUtil.deepExtend(out[key], obj[key]);\r\n continue;\r\n }\r\n\r\n out[key] = obj[key];\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, withMargin) {\r\n var height = el.offsetHeight;\r\n var style;\r\n\r\n if (typeof withMargin !== 'undefined' && withMargin === true) {\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 if (options.height) {\r\n height = parseInt(options.height);\r\n } else {\r\n height = parseInt(KTUtil.css(element, '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\r\n // Todo:Consider using Localstorage\r\n if (options.rememberPosition === true && KTCookie && 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 changeColor: function(col, amt) {\r\n\r\n var usePound = false;\r\n\r\n if (col[0] == \"#\") {\r\n col = col.slice(1);\r\n usePound = true;\r\n }\r\n\r\n var num = parseInt(col,16);\r\n\r\n var r = (num >> 16) + amt;\r\n\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n\r\n var b = ((num >> 8) & 0x00FF) + amt;\r\n\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n var g = (num & 0x0000FF) + amt;\r\n\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n\r\n return (usePound?\"#\":\"\") + (g | (b << 8) | (r << 16)).toString(16);\r\n\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) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (typeof disable !== 'undefined' && disable === true) {\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) {\r\n offset = offset || 0;\r\n\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","export const actionTypes = {\r\n ShowAlert: \"SHOW_ALERT\",\r\n HideAlert: \"HIDE_ALERT\",\r\n};\r\n\r\nconst initialAlertState = {\r\n isVisible: false,\r\n message: \"\",\r\n variant: \"success\",\r\n};\r\n\r\nexport const reducer = (state = initialAlertState, action) => {\r\n\r\n switch (action.type) {\r\n case actionTypes.ShowAlert: {\r\n return {\r\n isVisible: true,\r\n message: action.payload.message,\r\n variant: action.payload.variant,\r\n top: action.payload.top\r\n };\r\n }\r\n\r\n case actionTypes.HideAlert: {\r\n return initialAlertState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const actions = {\r\n showAlert: (model) => ({ type: actionTypes.ShowAlert, payload: model }),\r\n hideAlert: () => ({ type: actionTypes.HideAlert }),\r\n};\r\n","import { toAbsoluteUrl } from \"../../_helpers\";\r\nexport function getInitLayoutConfig() {\r\n return {\r\n demo: \"demo3\",\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 info: \"#3699FF\",\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: \"Open 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 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(\"/media/logos/logo-dark.png\");\r\n } else {\r\n return toAbsoluteUrl(\"/media/logos/logo-light.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 MetronicLayoutProvider({ 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 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/MetronicLayout\";\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","/* 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\n\r\nconst languages = [\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: \"zh\",\r\n name: \"Mandarin\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/015-china.svg\"),\r\n },\r\n {\r\n lang: \"es\",\r\n name: \"Spanish\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/128-spain.svg\"),\r\n },\r\n {\r\n lang: \"ja\",\r\n name: \"Japanese\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/063-japan.svg\"),\r\n },\r\n {\r\n lang: \"de\",\r\n name: \"German\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/162-germany.svg\"),\r\n },\r\n {\r\n lang: \"fr\",\r\n name: \"French\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/195-france.svg\"),\r\n },\r\n];\r\n\r\nexport function LanguageSelectorDropdown() {\r\n const lang = useLang();\r\n const currentLanguage = languages.find((x) => x.lang === lang);\r\n return (\r\n \r\n \r\n Select Language\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","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 { connect } from 'react-redux';\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\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 { Brand } from \"../brand/Brand\";\r\nimport { KTUtil } from \"./../../../_assets/js/components/util\";\r\n\r\nconst Aside = (props) => {\r\n const { auth } = props;\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 const tabs = {\r\n tabId1: \"kt_aside_tab_1\",\r\n tabId2: \"kt_aside_tab_2\",\r\n };\r\n const [activeTab, setActiveTab] = useState(tabs.tabId1);\r\n const handleTabChange = (id) => {\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 };\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 {/* begin::Item */}\r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager')?\r\n \r\n {/* Latest Project\r\n }\r\n >\r\n handleTabChange(tabs.tabId1)}\r\n >\r\n \r\n \r\n \r\n \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 {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n {/* \r\n Metronic Features\r\n }\r\n >\r\n handleTabChange(tabs.tabId2)}\r\n role=\"tab\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n {/* \r\n Latest Reports\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n {/* \r\n \r\n Project Management\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n {/* \r\n User Management\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n {/* \r\n \r\n Finance & Accounting\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* end::Item */}\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 {/* Toggle Aside}\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 Quick Search}\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 Notifications\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 Quick Actions\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 Quick Panel}\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 {/* 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
    \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\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, null)(Aside)","import React, { useMemo } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\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 {/* \r\n \r\n
    \r\n \r\n {today} ©\r\n \r\n {` `}\r\n \r\n Keenthemes\r\n \r\n
    \r\n {` `}\r\n\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 \r\n */}\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, _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 from \"react\";\r\nimport { Link } from 'react-router-dom';\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\n\r\nexport function QuickActions() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n View Users\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\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 Dashboard\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(\r\n menu.getElementsByClassName(\"active\") || []\r\n );\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(\r\n (t) => t.innerHTML && t.innerHTML.trim().length > 0\r\n );\r\n if (titleSpan) {\r\n result.breadcrumbs.push({\r\n pathname: link.pathname.replace(process.env.PUBLIC_URL, \"\"),\r\n title: titleSpan.innerHTML,\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 MetronicSubheaderProvider({ children }) {\r\n const [title, setTitle] = useState(\"\");\r\n const [breadcrumbs, setBreadcrumbs] = useState([]);\r\n const value = { title, setTitle, breadcrumbs, setBreadcrumbs };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useLayoutEffect, useEffect, useState } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport Banner from './../../../../_metronic/_assets/js/components/banner';\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { QuickActions } from \"./components/QuickActions\";\r\nimport * as settingService from '../../../../services/settings/settingService';\r\nimport { useHistory, Link } from \"react-router-dom\";\r\nimport { BreadCrumbs } from \"./components/BreadCrumbs\";\r\nimport jwt_decode from 'jwt-decode';\r\nimport * as clientService from '../../../../services/management/clientService'\r\nimport {\r\n getBreadcrumbsAndTitle,\r\n useSubheader,\r\n} from \"../../_core/MetronicSubheader\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport * as authRedux from \"../../../../app/modules/Auth/_redux/authRedux\";\r\nimport * as customCSS from \"../../../../app/assets/styles/custom.css\";\r\nimport Alert from 'react-bootstrap/Alert';\r\n\r\nconst linkModel = {\r\n url: '',\r\n text: 'link'\r\n}\r\n\r\nconst customBannerStyling = {\r\n 'background': 'black',\r\n};\r\n\r\nconst SubHeader = (props) => {\r\n const { auth, upgradeTier } = props;\r\n const [showBanner, setShowBanner] = useState(true);\r\n const [link, setLink] = useState({ ...linkModel })\r\n const uiService = useHtmlClassService();\r\n const location = useLocation();\r\n const subheader = useSubheader();\r\n const history = useHistory();\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 =\r\n aside && aside.breadcrumbs.length > 0\r\n ? aside.breadcrumbs\r\n : header.breadcrumbs;\r\n subheader.setBreadcrumbs(breadcrumbs);\r\n subheader.setTitle(\r\n aside && aside.title && aside.title.length > 0\r\n ? aside.title\r\n : header.title\r\n );\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 useEffect(() => {\r\n if (auth && auth.user && auth.user.tier === 'Individual') {\r\n settingService.getSettingByKey('StarterSignUpLink').then(res => {\r\n setLink({ ...linkModel, url: res, text: 'link' });\r\n }).catch(err => {\r\n console.log('err')\r\n })\r\n }\r\n if (auth && auth.user && auth.user.tier === 'Starter') {\r\n settingService.getSettingByKey('ProfessionalSignUpLink').then(res => {\r\n setLink({ ...linkModel, url: res, text: 'link' });\r\n }).catch(err => {\r\n console.log('err')\r\n })\r\n }\r\n }, [auth])\r\n\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 setLink({ ...linkModel })\r\n };\r\n\r\n const updateClientTier = (tierToUpdateTo) => {\r\n let tokenDecoded = jwt_decode(auth.authToken);\r\n if (Object.keys(tokenDecoded).length) {\r\n history.push(`/chargify/${tokenDecoded.ClientId}`, {\r\n clientTier: tierToUpdateTo\r\n });\r\n // clientService.upgradeClientTier(tokenDecoded.ClientId, tierToUpdateTo).then(res => {\r\n // if (res.result) {\r\n // upgradeTier(tierToUpdateTo);\r\n // }\r\n // }).catch(err => {\r\n // console.log('tier upgrade err', err);\r\n // })\r\n }\r\n }\r\n\r\n const handleLinkClick = (linkValue, val) => {\r\n // window.open(linkValue.url, '_blank');\r\n updateClientTier(val);\r\n }\r\n\r\n return (\r\n <>\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 {/* Toolbar */}\r\n
    \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\" || auth.role === 'Manager' || auth.role === 'User') ?\r\n <>\r\n \r\n \r\n \r\n \r\n View Nspections\r\n \r\n {\r\n (auth.role === \"SuperAdmin\" || auth.role === \"Admin\") &&\r\n \r\n }\r\n : <>\r\n }\r\n Logout\r\n }\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n
    \r\n {\r\n auth && auth.user.tier === 'Individual' && auth.role === 'Admin' && (\r\n
    \r\n \r\n You are currently using individual tier account. To access the full features, click handleLinkClick(link, 'Starter')}\r\n >here to upgrade\r\n \r\n
    \r\n )\r\n }\r\n {\r\n auth && auth.user.tier === 'Individual' && auth.role !== 'Admin' && (\r\n
    \r\n \r\n You are currently using individual tier account. To access the full features, please contact your administrator.\r\n \r\n
    \r\n )\r\n }\r\n\r\n {\r\n auth && auth.user.tier === 'Starter' && auth.role === 'Admin' && (\r\n
    \r\n \r\n You are currently using starter tier account. To access the full features, click handleLinkClick(link, 'Business')}\r\n >here to upgrade\r\n \r\n
    \r\n )\r\n }\r\n\r\n {\r\n auth && auth.user.tier === 'Starter' && auth.role !== 'Admin' && (\r\n
    \r\n \r\n You are currently using starter tier account. To access the full features, please contact your administrator.\r\n \r\n
    \r\n )\r\n }\r\n
    \r\n \r\n\r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n});\r\n\r\nexport default connect(mapStateToProps, authRedux.actions)(SubHeader);","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport SVG from \"react-inlinesvg\";\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 user = useSelector((state) => state.auth.user, shallowEqual);\r\n\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 return (\r\n
    \r\n
    \r\n

    \r\n User Profile\r\n 12 messages\r\n

    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n {user.firstname} {user.lastname}\r\n \r\n
    {user.occupation}
    \r\n \r\n {/* \r\n Sign Out\r\n */}\r\n \r\n Sign out\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    My Profile
    \r\n
    \r\n Account settings and more{\" \"}\r\n \r\n update\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    My Messages
    \r\n
    Inbox and tasks
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    My Activities
    \r\n
    Logs and notifications
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    My Tasks
    \r\n
    latest tasks and projects
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    Recent Notifications
    \r\n\r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n Another purpose persuade\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n +28%\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n Would be to people\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n +50%\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n Purpose would be to persuade\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n -27%\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n The best product\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n +8%\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState } from \"react\";\r\nimport { Link } from 'react-router-dom';\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport * as clientService from \"../../../../../services/management/clientService\";\r\n\r\nexport function QuickActions({ role, clientRefId }) {\r\n const [paymentProfileLinks, setPaymentProfileLinks] = useState({});\r\n\r\n const loadPaymentProfileLink = (id) => {\r\n const existingLinkInfo = paymentProfileLinks[id];\r\n\r\n if (existingLinkInfo) {\r\n const expiresAt = new Date(existingLinkInfo.expiresAt);\r\n const now = new Date();\r\n\r\n if (expiresAt > now) {\r\n window.open(existingLinkInfo.url, '_blank'); // Open URL in a new tab\r\n return;\r\n }\r\n }\r\n\r\n clientService.getManagementLink(id).then(res => {\r\n if (res && res.url && res.expiresAt) {\r\n const expiresAt = new Date(res.expiresAt);\r\n const now = new Date();\r\n\r\n if (expiresAt > now) {\r\n setPaymentProfileLinks({\r\n ...paymentProfileLinks,\r\n [id]: { url: res.url, expiresAt: res.expiresAt } // Store the URL and its expiry time\r\n });\r\n window.open(res.url, '_blank'); // Open URL in a new tab\r\n } else {\r\n console.log(\"Link has expired\");\r\n }\r\n } else {\r\n console.log(\"Failed to get a valid URL or expiry date.\");\r\n }\r\n }).catch(ex => {\r\n console.log(ex);\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {/* begin::Quick Actions Panel */}\r\n
    \r\n {/* begin::Header */}\r\n
    \r\n

    \r\n Quick Actions\r\n \r\n {/* finance & reports */}\r\n \r\n

    \r\n \r\n \r\n \r\n
    \r\n {/* end::Header */}\r\n\r\n {/* begin::Content */}\r\n
    \r\n {\r\n role !== 'Viewer' && role !== 'User' &&\r\n (\r\n
    \r\n {/* begin::Item */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Nspections\r\n \r\n \r\n
    \r\n {/* end::Item */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Nspection Types\r\n \r\n \r\n
    \r\n {/* begin::Item */}\r\n\r\n\r\n {/* end::Item */}\r\n
    \r\n )\r\n }\r\n
    \r\n\r\n {/* begin::Item */}\r\n {\r\n (role === 'SuperAdmin' || role === 'Admin') &&\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Users\r\n \r\n \r\n \r\n
    \r\n }\r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n {\r\n (role !== 'Viewer') &&\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Clients\r\n \r\n \r\n \r\n
    \r\n }\r\n\r\n
    \r\n {\r\n role === 'SuperAdmin' &&\r\n
    \r\n {/* begin::Item */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Settings\r\n \r\n \r\n
    \r\n
    \r\n }\r\n\r\n {\r\n role === 'Admin' &&\r\n
    \r\n {/* begin::Item */}\r\n
    \r\n loadPaymentProfileLink(clientRefId)}\r\n className=\"btn btn-block btn-light btn-hover-primary text-dark-50 text-center py-10 px-5\"\r\n >\r\n \r\n \r\n \r\n \r\n Billing Profile\r\n \r\n \r\n
    \r\n
    \r\n }\r\n\r\n\r\n
    \r\n {/* begin::Item */}\r\n {/*
    \r\n \r\n \r\n \r\n \r\n \r\n Settings\r\n \r\n \r\n
    */}\r\n\r\n {/*
    \r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n
    */}\r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n {/*
    \r\n \r\n \r\n \r\n \r\n \r\n Clients\r\n \r\n \r\n
    */}\r\n {/* end::Item */}\r\n
    \r\n
    \r\n {/* begin::Item */}\r\n {/*
    \r\n \r\n \r\n \r\n \r\n \r\n Orders\r\n \r\n \r\n
    */}\r\n {/* end::Item */}\r\n
    \r\n
    \r\n {/* end::Content */}\r\n
    \r\n {/* end::Quick Actions Panel */}\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/MetronicLayout\";\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\n\r\nexport function Layout({ children, role, clientRefId }) {\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 {/*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 {/*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 // eslint-disable-next-line react-hooks/exhaustive-deps\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 MetronicSplashScreenContext = createContext();\r\n\r\nexport function MetronicSplashScreenProvider({ 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(MetronicSplashScreenContext);\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: [\"Open 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/MetronicLayout\";\r\nexport * from \"./_core/MetronicSplashScreen\";\r\nexport * from \"./_core/MaterialThemeProvider\";\r\nexport * from \"./_core/MetronicSubheader\";\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 * as utils from \"./LocalStorageHelpers\";\r\n\r\nconst localStorageLastLocationKey = \"metronic-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 const defaultLocation = { pathname: \"/\", title: \"Dashboard\"};\r\n const localStorateLocations = utils.getStorage(localStorageLastLocationKey);\r\n if (!localStorateLocations) {\r\n return { pathname: \"/\", title: \"Dashboard\"};\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\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) {\r\n return (type, { page, sizePerPage, sortField, sortOrder, data }) => {\r\n const pageNumber = page || 1;\r\n setQueryParams((prev) =>\r\n type === \"sort\"\r\n ? { ...prev, sortOrder, sortField }\r\n : type === \"pagination\"\r\n ? { ...prev, pageNumber, pageSize: sizePerPage }\r\n : prev\r\n );\r\n };\r\n}\r\n\r\nexport function PleaseWaitMessage({ entities }) {\r\n return <>{entities === null &&
    Please wait...
    };\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
    No records found
    \r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nfunction SelectionCheckbox({ isSelected, onChange }) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction groupingItemOnSelect(props) {\r\n const { ids, setIds, customerId } = props;\r\n if (ids.some((id) => id === customerId)) {\r\n setIds(ids.filter((id) => id !== customerId));\r\n } else {\r\n const newIds = [...ids];\r\n newIds.push(customerId);\r\n setIds(newIds);\r\n }\r\n}\r\n\r\nfunction groupingAllOnSelect(props) {\r\n const { isSelected, setIds, entities } = props;\r\n if (!isSelected) {\r\n const allIds = [];\r\n entities.forEach((el) => 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 function getSelectRow(props) {\r\n const { entities, ids, setIds } = props;\r\n return {\r\n mode: \"checkbox\",\r\n clickToSelect: true,\r\n hideSelectAll: false,\r\n selectionHeaderRenderer: () => {\r\n const isSelected =\r\n entities && entities.length > 0 && entities.length === ids.length;\r\n const props = { isSelected, entities, setIds };\r\n return (\r\n groupingAllOnSelect(props)}\r\n />\r\n );\r\n },\r\n selectionRenderer: ({ rowIndex }) => {\r\n const isSelected = ids.some((el) => el === entities[rowIndex].id);\r\n const props = { ids, setIds, customerId: entities[rowIndex].id };\r\n return (\r\n groupingItemOnSelect(props)}\r\n />\r\n );\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\";","import {all} from \"redux-saga/effects\";\r\nimport {combineReducers} from \"redux\";\r\n\r\nimport * as auth from \"../app/modules/Auth/_redux/authRedux\";\r\nimport * as alert from \"../redux/alertSnackBarRedux\";\r\nimport * as confirmModal from \"../redux/confirmModalRedux\"; \r\nimport {customersSlice} from \"../app/modules/ECommerce/_redux/customers/customersSlice\";\r\nimport {productsSlice} from \"../app/modules/ECommerce/_redux/products/productsSlice\";\r\nimport {remarksSlice} from \"../app/modules/ECommerce/_redux/remarks/remarksSlice\";\r\nimport {specificationsSlice} from \"../app/modules/ECommerce/_redux/specifications/specificationsSlice\";\r\n\r\nexport const rootReducer = combineReducers({\r\n auth: auth.reducer,\r\n alert: alert.reducer,\r\n confirmModal: confirmModal.reducer,\r\n customers: customersSlice.reducer,\r\n products: productsSlice.reducer,\r\n remarks: remarksSlice.reducer,\r\n specifications: specificationsSlice.reducer\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\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","/* 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","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport const DropdownCustomToggler = 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","import React from \"react\";\r\n\r\nexport const DropdownTopbarItemToggler = 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\nDropdownTopbarItemToggler.displayName = 'DropdownTopbarItemToggler';\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 {DropdownTopbarItemToggler} from \"./DropdownTopbarItemToggler\";\r\nexport {DropdownItemToggler} from \"./DropdownItemToggler\";","export const actionTypes = {\r\n ShowConfirmModal: \"SHOW_CONFIRM_MODAL\",\r\n HideConfirmModal: \"HIDE_CONFIRM_MODAL\",\r\n SetProcessing: \"SET_PROCESSING\"\r\n};\r\n\r\nconst initialConfirmModalState = {\r\n isVisible: false,\r\n title: \"\",\r\n text: \"\",\r\n btnAction: () => console.log(\"Action not defined\"),\r\n rightBtnText: \"\",\r\n isProcessing: false\r\n};\r\n\r\nexport const reducer = (state = initialConfirmModalState, action) => {\r\n\r\n switch (action.type) {\r\n case actionTypes.ShowConfirmModal: {\r\n return {\r\n isVisible: true,\r\n title: action.payload.title,\r\n text: action.payload.text,\r\n rightBtnText: action.payload.rightBtnText,\r\n btnAction: action.payload.btnAction,\r\n isProcessing: false\r\n };\r\n }\r\n\r\n case actionTypes.SetProcessing: {\r\n return {\r\n ...state,\r\n isProcessing: true\r\n };\r\n }\r\n\r\n case actionTypes.HideConfirmModal: {\r\n return initialConfirmModalState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const actions = {\r\n showConfirmModal: (model) => ({ type: actionTypes.ShowConfirmModal, payload: model }),\r\n hideConfirmModal: () => ({ type: actionTypes.HideConfirmModal }),\r\n setProcessing: () => ({ type: actionTypes.SetProcessing})\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { connect } from \"react-redux\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { login } from \"../_redux/authCrud\";\r\n\r\n/*\r\n INTL (i18n) docs:\r\n https://github.com/formatjs/react-intl/blob/master/docs/Components.md#formattedmessage\r\n*/\r\n\r\n/*\r\n Formik+YUP:\r\n https://jaredpalmer.com/formik/docs/tutorial#getfieldprops\r\n*/\r\n\r\nfunction Login(props) {\r\n const { intl, showAlert } = props;\r\n const [loading, setLoading] = useState(false);\r\n const LoginSchema = Yup.object().shape({\r\n username: Yup.string()\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n password: Yup.string()\r\n .min(3, \"Minimum 3 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n });\r\n\r\n const enableLoading = () => {\r\n setLoading(true);\r\n };\r\n\r\n const disableLoading = () => {\r\n setLoading(false);\r\n };\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n username: \"\",\r\n password: \"\",\r\n },\r\n validationSchema: LoginSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n enableLoading();\r\n login(values).then(res => {\r\n disableLoading();\r\n props.login(res);\r\n }).catch((ex) => {\r\n disableLoading();\r\n setSubmitting(false);\r\n showAlert({ message: ex.message, variant: 'error' });\r\n });\r\n },\r\n });\r\n\r\n return (\r\n
    \r\n {/* begin::Head */}\r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n Please enter your username and password to login\r\n

    \r\n
    \r\n {/* end::Head */}\r\n\r\n {/*begin::Form*/}\r\n \r\n {/* {formik.status ? (\r\n
    \r\n
    {formik.status}
    \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n Use account admin@demo.com and password{\" \"}\r\n demo to continue.\r\n
    \r\n
    \r\n )} */}\r\n\r\n
    \r\n \r\n {formik.touched.username && formik.errors.username ? (\r\n
    \r\n
    {formik.errors.username}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
    \r\n
    {formik.errors.password}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Sign In\r\n {loading && }\r\n \r\n
    \r\n \r\n {/*end::Form*/}\r\n
    \r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, { ...auth.actions, ...alert.actions })(Login));\r\n","import React, { useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { connect } from \"react-redux\";\r\nimport * as Yup from \"yup\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { FilePond } from \"react-filepond\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { register } from \"../_redux/authCrud\";\r\nimport { getErrorField, convertJsonToFormData } from \"../../../../helpers/helper\";\r\nimport * as alert from \"../../../../redux/alertSnackBarRedux\";\r\n\r\nconst initialValues = {\r\n id: 0,\r\n firstName: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n roleId: 0,\r\n clientId: null,\r\n username: \"\",\r\n password: \"\",\r\n logoPath: '',\r\n businessName: '',\r\n confirmPassword: '',\r\n contactFirstName: '',\r\n contactLastName: '',\r\n contactEmail: '',\r\n contactPhone: '',\r\n companyAddress: '',\r\n isDeleted: false,\r\n noOfProject: 1,\r\n removeWaterMark: false,\r\n removeCobrandedReport: true,\r\n clientTierId: 0,\r\n logoFile: '',\r\n};\r\n\r\nfunction Registration(props) {\r\n const { intl, showAlert } = props;\r\n const history = useHistory();\r\n const [loading, setLoading] = useState(false);\r\n const [logo, setLogo] = useState([]);\r\n const RegistrationSchema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .min(3, \"Minimum 3 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n lastName: Yup.string()\r\n .min(3, \"Minimum 3 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n phoneNumber: Yup.string()\r\n .min(10, \"Minimum 10 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n contactEmail: Yup.string()\r\n .email(\"Wrong email format\")\r\n .min(3, \"Minimum 3 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n logoPath: Yup.string(),\r\n logoFile: Yup.string()\r\n .nullable(),\r\n username: Yup.string()\r\n .email(\"Wrong email format\")\r\n .min(3, \"Minimum 3 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n password: Yup.string()\r\n .min(3, \"Minimum 3 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n confirmPassword: Yup.string()\r\n .oneOf([Yup.ref('password'), null], 'Passwords must match')\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n businessName: Yup.string()\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n contactFirstName: Yup.string()\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n contactLastName: Yup.string()\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n contactPhone: Yup.string()\r\n .min(10, \"Minimum 10 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n companyAddress: Yup.string()\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n )\r\n });\r\n\r\n const enableLoading = () => {\r\n setLoading(true);\r\n };\r\n\r\n const disableLoading = () => {\r\n setLoading(false);\r\n };\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: RegistrationSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n setSubmitting(true);\r\n enableLoading();\r\n register(convertJsonToFormData({\r\n ...values,\r\n logoFile: logo.length > 0 ? logo[0].file : null\r\n }))\r\n .then((res) => {\r\n disableLoading();\r\n showAlert({ message: res.message, variant: 'success' });\r\n setSubmitting(false);\r\n history.push('/login');\r\n })\r\n .catch((ex) => {\r\n setSubmitting(false);\r\n showAlert({ message: ex.message, variant: 'error' });\r\n setStatus(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.INVALID_LOGIN\",\r\n })\r\n );\r\n disableLoading();\r\n });\r\n },\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n Enter your details to create your account\r\n

    \r\n
    \r\n\r\n \r\n {/* begin: Alert */}\r\n {formik.status && (\r\n
    \r\n
    {formik.status}
    \r\n
    \r\n )}\r\n {/* end: Alert */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    User Information

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n First Name\r\n\r\n \r\n {formik.touched.firstName && formik.errors.firstName ? (\r\n
    \r\n
    {formik.errors.firstName}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Last Name\r\n \r\n {formik.touched.lastName && formik.errors.lastName ? (\r\n
    \r\n
    {formik.errors.lastName}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n Phone Number\r\n \r\n {formik.touched.phoneNumber && formik.errors.phoneNumber ? (\r\n
    \r\n
    {formik.errors.phoneNumber}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Email\r\n \r\n {formik.touched.username && formik.errors.username ? (\r\n
    \r\n
    {formik.errors.username}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Password\r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
    \r\n
    {formik.errors.password}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Confirm Password\r\n \r\n {formik.touched.confirmPassword && formik.errors.confirmPassword ? (\r\n
    \r\n
    \r\n {formik.errors.confirmPassword}\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n

    Client Information

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n Business Name\r\n \r\n {formik.touched.businessName && formik.errors.businessName ? (\r\n
    \r\n
    {formik.errors.businessName}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Contact First Name\r\n \r\n {formik.touched.contactFirstName && formik.errors.contactFirstName ? (\r\n
    \r\n
    {formik.errors.contactFirstName}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Contact Last Name\r\n\r\n \r\n {formik.touched.contactLastName && formik.errors.contactLastName ? (\r\n
    \r\n
    {formik.errors.contactLastName}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n Contact Phone\r\n
    \r\n \r\n {formik.touched.contactPhone && formik.errors.contactPhone ? (\r\n
    \r\n
    {formik.errors.contactPhone}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Contact Email\r\n\r\n \r\n {formik.touched.contactEmail && formik.errors.contactEmail ? (\r\n
    \r\n
    {formik.errors.contactEmail}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Company Address\r\n\r\n \r\n {formik.touched.companyAddress && formik.errors.companyAddress ? (\r\n
    \r\n
    {formik.errors.companyAddress}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Company Logo\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Submit\r\n {loading && }\r\n \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, { ...auth.actions, ...alert.actions })(Registration));\r\n","import React, { useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport * as Yup from \"yup\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { requestPassword } from \"../_redux/authCrud\";\r\n\r\nconst initialValues = {\r\n email: \"\",\r\n};\r\n\r\nfunction ForgotPassword(props) {\r\n const { intl } = props;\r\n const [isRequested, setIsRequested] = useState(false);\r\n const ForgotPasswordSchema = Yup.object().shape({\r\n email: Yup.string()\r\n .email(\"Wrong email format\")\r\n .min(3, \"Minimum 3 symbols\")\r\n .max(50, \"Maximum 50 symbols\")\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n });\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: ForgotPasswordSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n requestPassword(values.email)\r\n .then(() => setIsRequested(true))\r\n .catch(() => {\r\n setIsRequested(false);\r\n setSubmitting(false);\r\n setStatus(\r\n intl.formatMessage(\r\n { id: \"AUTH.VALIDATION.NOT_FOUND\" },\r\n { name: values.email }\r\n )\r\n );\r\n });\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n {isRequested && }\r\n {!isRequested && (\r\n
    \r\n
    \r\n

    Forgot Password?

    \r\n
    \r\n Enter your email to reset your password\r\n
    \r\n
    \r\n \r\n {formik.status && (\r\n
    \r\n
    \r\n {formik.status}\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n {formik.touched.email && formik.errors.email ? (\r\n
    \r\n
    {formik.errors.email}
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n \r\n Submit\r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n
    \r\n \r\n
    \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, auth.actions)(ForgotPassword));\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { Link, Switch, Redirect } from \"react-router-dom\";\r\nimport { toAbsoluteUrl } from \"../../../../_metronic/_helpers\";\r\nimport { ContentRoute } from \"../../../../_metronic/layout\";\r\nimport Login from \"./Login\";\r\nimport Registration from \"./Registration\";\r\nimport ForgotPassword from \"./ForgotPassword\";\r\nimport \"../../../../_metronic/_assets/sass/pages/login/classic/login-1.scss\";\r\n\r\nexport function AuthPage() {\r\n return (\r\n <>\r\n
    \r\n {/*begin::Login*/}\r\n \r\n {/*begin::Aside*/}\r\n \r\n {/*begin: Aside Container*/}\r\n
    \r\n {/* start:: Aside header */}\r\n \r\n \r\n \r\n {/* end:: Aside header */}\r\n \r\n {/* start:: Aside content */}\r\n
    \r\n

    \r\n NSPECT Web Portal\r\n

    \r\n
    \r\n

    \r\n NSPECT is a virtual inspection tool utilizing 3D models to record inspections, communicate actions and document compliance.\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 © 2021 Matterport Web Portal\r\n
    */}\r\n {/*
    \r\n \r\n Privacy\r\n \r\n \r\n Legal\r\n \r\n \r\n Contact\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 {/*begin::Content*/}\r\n
    \r\n {/*begin::Content header*/}\r\n {/*
    \r\n \r\n Don't have an account yet?\r\n \r\n \r\n Sign Up!\r\n \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 {/*end::Content body*/}\r\n\r\n {/* begin::Mobile footer */}\r\n
    \r\n {/*
    \r\n © 2021 Matterport Web Portal\r\n
    */}\r\n {/*
    \r\n \r\n Privacy\r\n \r\n \r\n Legal\r\n \r\n \r\n Contact\r\n \r\n
    */}\r\n
    \r\n {/* end::Mobile footer */}\r\n
    \r\n {/*end::Content*/}\r\n \r\n {/*end::Login*/}\r\n \r\n \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 \"../../../../_metronic/layout\";\r\nimport * as auth from \"../_redux/authRedux\";\r\n\r\nclass Logout extends Component {\r\n componentDidMount() {\r\n this.props.logout();\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) }),\r\n auth.actions\r\n)(Logout);\r\n","export {AuthPage} from \"./pages/AuthPage\";\r\nexport {default as Logout} from \"./pages/Logout\";\r\nexport * from \"./_redux/authRedux\";","/* eslint-disable react/jsx-no-undef */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {useMemo, useEffect} from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport {Dropdown} from \"react-bootstrap\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\nimport {useHtmlClassService} from \"../../../layout\";\r\nimport {DropdownMenu2} from \"../../dropdowns\";\r\n\r\nexport function MixedWidget1({ className }) {\r\n const uiService = useHtmlClassService();\r\n\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 colorsGrayGray300: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray300\"\r\n ),\r\n colorsThemeBaseDanger: objectPath.get(\r\n uiService.config,\r\n \"js.colors.theme.base.danger\"\r\n ),\r\n fontFamily: objectPath.get(uiService.config, \"js.fontFamily\")\r\n };\r\n }, [uiService]);\r\n\r\n useEffect(() => {\r\n const element = document.getElementById(\"kt_mixed_widget_1_chart\");\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const options = getChartOptions(layoutProps);\r\n\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 {/* Header */}\r\n
    \r\n

    Sales Stat

    \r\n
    \r\n \r\n \r\n Export\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* Body */}\r\n
    \r\n {/* Chart */}\r\n
    \r\n\r\n {/* Stat */}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Weekly Sales\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n New Users\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Item Orders\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Bug Reports\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {/* Resize */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction getChartOptions(layoutProps) {\r\n const strokeColor = \"#D13647\";\r\n\r\n const options = {\r\n series: [\r\n {\r\n name: \"Net Profit\",\r\n data: [30, 45, 32, 70, 40, 40, 40]\r\n }\r\n ],\r\n chart: {\r\n type: \"area\",\r\n height: 200,\r\n toolbar: {\r\n show: false\r\n },\r\n zoom: {\r\n enabled: false\r\n },\r\n sparkline: {\r\n enabled: true\r\n },\r\n dropShadow: {\r\n enabled: true,\r\n enabledOnSeries: undefined,\r\n top: 5,\r\n left: 0,\r\n blur: 3,\r\n color: strokeColor,\r\n opacity: 0.5\r\n }\r\n },\r\n plotOptions: {},\r\n legend: {\r\n show: false\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n fill: {\r\n type: \"solid\",\r\n opacity: 0\r\n },\r\n stroke: {\r\n curve: \"smooth\",\r\n show: true,\r\n width: 3,\r\n colors: [strokeColor]\r\n },\r\n xaxis: {\r\n categories: [\"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\"],\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n },\r\n labels: {\r\n show: false,\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily\r\n }\r\n },\r\n crosshairs: {\r\n show: false,\r\n position: \"front\",\r\n stroke: {\r\n color: layoutProps.colorsGrayGray300,\r\n width: 1,\r\n dashArray: 3\r\n }\r\n }\r\n },\r\n yaxis: {\r\n min: 0,\r\n max: 80,\r\n labels: {\r\n show: false,\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 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 + \" thousands\";\r\n }\r\n },\r\n marker: {\r\n show: false\r\n }\r\n },\r\n colors: [\"transparent\"],\r\n markers: {\r\n colors: layoutProps.colorsThemeBaseDanger,\r\n strokeColor: [strokeColor],\r\n strokeWidth: 3\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 objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport { DropdownCustomToggler, DropdownMenu2 } from \"../../dropdowns\";\r\nimport { useHtmlClassService } from \"../../../layout\";\r\n\r\nexport function MixedWidget6({ className, chartColor = \"danger\" }) {\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 const element = document.getElementById(\"kt_mixed_widget_6_chart\");\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const options = getChartOption(layoutProps);\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 Sales Progress\r\n

    \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 {/* begin::Row */}\r\n
    \r\n
    \r\n
    \r\n Average Sale\r\n
    \r\n
    $650
    \r\n
    \r\n
    \r\n
    \r\n Commission\r\n
    \r\n
    $233,600
    \r\n
    \r\n
    \r\n {/* end::Row */}\r\n {/* begin::Row */}\r\n
    \r\n
    \r\n
    \r\n Annual Taxes\r\n
    \r\n
    $29,004
    \r\n
    \r\n
    \r\n
    \r\n Annual Income\r\n
    \r\n
    $1,480,00
    \r\n
    \r\n
    \r\n {/* end::Row */}\r\n
    \r\n {/* end::Stats */}\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) {\r\n const options = {\r\n series: [\r\n {\r\n name: \"Net Profit\",\r\n data: [35, 65, 75, 55, 45, 60, 55],\r\n },\r\n {\r\n name: \"Revenue\",\r\n data: [40, 70, 80, 60, 50, 65, 60],\r\n },\r\n ],\r\n chart: {\r\n type: \"bar\",\r\n height: \"200px\",\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: [\"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\"],\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: 100,\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\"],\r\n opacity: [0.25, 1],\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 + \" thousands\";\r\n },\r\n },\r\n marker: {\r\n show: false,\r\n },\r\n },\r\n colors: [\"#ffffff\", \"#ffffff\"],\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 from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function MixedWidget10({ className }) {\r\n return (\r\n
    \r\n {/* begin::Body */}\r\n
    \r\n
    \r\n {/* begin::Info */}\r\n
    \r\n \r\n 7 Hours Ago\r\n \r\n
    \r\n \r\n {\" \"}\r\n \r\n
    \r\n
    \r\n {/* end::Info */}\r\n\r\n {/* begin::Link */}\r\n \r\n PitStop - Multiple Email\r\n
    \r\n Generator\r\n \r\n {/* end::Link */}\r\n\r\n {/* begin::Desc */}\r\n

    \r\n Pitstop creates quick email campaigns.\r\n
    \r\n We help to strengthen your brand\r\n
    \r\n for your every purpose.\r\n

    \r\n {/* end::Desc */}\r\n
    \r\n {/* begin::Team */}\r\n
    \r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n\r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n\r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n
    \r\n {/* end::Team */}\r\n
    \r\n {/* end::Body */}\r\n
    \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function MixedWidget11({ className }) {\r\n return (\r\n
    \r\n {/* begin::Body */}\r\n
    \r\n
    \r\n {/* begin::Info */}\r\n
    \r\n \r\n 2 Hours Ago\r\n \r\n
    \r\n \r\n {\" \"}\r\n \r\n
    \r\n
    \r\n {/* end::Info */}\r\n\r\n {/* begin::Link */}\r\n \r\n Craft - ReactJS Admin\r\n
    \r\n Theme\r\n \r\n {/* end::Link */}\r\n\r\n {/* begin::Desc */}\r\n

    \r\n Craft uses the latest and greatest frameworks\r\n
    \r\n with ReactJS for complete modernization and\r\n
    \r\n future proofing your business operations\r\n
    \r\n and sales opportunities\r\n

    \r\n {/* end::Desc */}\r\n
    \r\n {/* begin::Team */}\r\n
    \r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n\r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n\r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n\r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n
    \r\n {/* end::Team */}\r\n
    \r\n {/* end::Body */}\r\n
    \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function MixedWidget12({ className }) {\r\n return (\r\n
    \r\n {/* begin::Body */}\r\n
    \r\n
    \r\n {/* begin::Info */}\r\n
    \r\n \r\n 5 Weeks Ago\r\n \r\n
    \r\n \r\n {\" \"}\r\n \r\n
    \r\n
    \r\n {/* end::Info */}\r\n\r\n {/* begin::Link */}\r\n \r\n KT.com - High Quality\r\n
    \r\n Templates\r\n \r\n {/* end::Link */}\r\n\r\n {/* begin::Desc */}\r\n

    \r\n Easy to use, incredibly flexible and secure\r\n
    \r\n with in-depth documentation that outlines\r\n
    \r\n everything for you\r\n

    \r\n {/* end::Desc */}\r\n
    \r\n {/* begin::Team */}\r\n
    \r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n\r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n\r\n {/* begin::Pic */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {/* end::Pic */}\r\n
    \r\n {/* end::Team */}\r\n
    \r\n {/* end::Body */}\r\n
    \r\n );\r\n}\r\n","/* eslint-disable react/jsx-no-undef */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {useMemo, useEffect} from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport {Dropdown} from \"react-bootstrap\";\r\nimport {useHtmlClassService} from \"../../../layout\";\r\nimport {DropdownMenu4, DropdownCustomToggler} from \"../../dropdowns\";\r\nimport {KTUtil} from \"../../../_assets/js/components/util\";\r\n\r\nexport function MixedWidget14({ className }) {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n colorsGrayGray100: objectPath.get(uiService.config, \"js.colors.gray.gray100\"),\r\n colorsGrayGray700: objectPath.get(uiService.config, \"js.colors.gray.gray700\"),\r\n colorsThemeBaseSuccess: objectPath.get(\r\n uiService.config,\r\n \"js.colors.theme.base.success\"\r\n ),\r\n colorsThemeLightSuccess: objectPath.get(\r\n uiService.config,\r\n \"js.colors.theme.light.success\"\r\n ),\r\n fontFamily: objectPath.get(uiService.config, \"js.fontFamily\")\r\n };\r\n }, [uiService]);\r\n\r\n useEffect(() => {\r\n const element = document.getElementById(\"kt_mixed_widget_14_chart\");\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const height = parseInt(KTUtil.css(element, 'height'));\r\n const options = getChartOptions(layoutProps, height);\r\n\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 {/* Header */}\r\n
    \r\n

    Action Needed

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* Body */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Notes: Current sprint requires stakeholders
    \r\n to approve newly amended policies\r\n

    \r\n Generate Report\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n\r\n\r\nfunction getChartOptions(layoutProps, height) {\r\n const options = {\r\n series: [74],\r\n chart: {\r\n height: height,\r\n type: 'radialBar',\r\n },\r\n plotOptions: {\r\n radialBar: {\r\n hollow: {\r\n margin: 0,\r\n size: \"65%\"\r\n },\r\n dataLabels: {\r\n showOn: \"always\",\r\n name: {\r\n show: false,\r\n fontWeight: \"700\",\r\n },\r\n value: {\r\n color: layoutProps.colorsGrayGray700,\r\n fontSize: \"30px\",\r\n fontWeight: \"700\",\r\n offsetY: 12,\r\n show: true\r\n },\r\n },\r\n track: {\r\n background: layoutProps.colorsThemeLightSuccess,\r\n strokeWidth: '100%'\r\n }\r\n }\r\n },\r\n colors: [layoutProps.colorsThemeBaseSuccess],\r\n stroke: {\r\n lineCap: \"round\",\r\n },\r\n labels: [\"Progress\"]\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 SVG from \"react-inlinesvg\";\r\nimport {Dropdown} from \"react-bootstrap\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\nimport {DropdownCustomToggler, DropdownMenu4} from \"../../dropdowns\";\r\n\r\nexport function ListsWidget1({ className }) {\r\n return (\r\n <>\r\n
    \r\n {/* Header */}\r\n
    \r\n

    \r\n Tasks Overview\r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {/* 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 Nspection Briefing\r\n \r\n Nspection Manager\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Concept Design\r\n \r\n Art Director\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Functional Logics\r\n \r\n Lead Developer\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Development\r\n \r\n DevOps\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Testing\r\n \r\n QA Managers\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 SVG from \"react-inlinesvg\";\r\nimport {Dropdown} from \"react-bootstrap\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\nimport {DropdownCustomToggler, DropdownMenu1, DropdownMenu2} from \"../../dropdowns\";\r\n\r\nexport function ListsWidget3({ className }) {\r\n return (\r\n <>\r\n
    \r\n {/* Head */}\r\n
    \r\n

    Authors

    \r\n
    \r\n \r\n \r\n Create\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* Body */}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Ricky Hunt\r\n \r\n PHP, SQLite, Artisan CLI\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Anne Clarc\r\n \r\n PHP, SQLite, Artisan CLI\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Kristaps Zumman\r\n \r\n PHP, SQLite, Artisan CLI\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Ricky Hunt\r\n \r\n PHP, SQLite, Artisan CLI\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Carles Puyol\r\n \r\n PHP, SQLite, Artisan CLI\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nconst ItemDropdown = ({item}) => {\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","/* 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, DropdownMenu2} from \"../../dropdowns\";\r\n\r\nexport function ListsWidget4({ className }) {\r\n return (\r\n <>\r\n
    \r\n {/* Head */}\r\n
    \r\n

    Todo

    \r\n
    \r\n \r\n \r\n Create\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* Body */}\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n Create FireStone Logo\r\n \r\n Due in 2 Days\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n Stakeholder Meeting\r\n \r\n Due in 3 Days\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n Scoping & Estimations\r\n \r\n Due in 5 Days\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n Sprint Showcase\r\n \r\n Due in 1 Day\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n
    \r\n \r\n Nspection Retro\r\n \r\n \r\n Due in 12 Days\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nconst ItemDropdown = ({item}) => {\r\n return (<>\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 SVG from \"react-inlinesvg\";\r\nimport {Dropdown} from \"react-bootstrap\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\nimport {DropdownCustomToggler, DropdownMenu2} from \"../../dropdowns\";\r\n\r\nexport function ListsWidget8({ className }) {\r\n return (\r\n <>\r\n
    \r\n {/* Header */}\r\n
    \r\n

    Trends

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* 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 Top Authors\r\n \r\n 5 day ago\r\n
    \r\n
    \r\n\r\n

    \r\n A brief write up about the top Authors that fits within this\r\n section\r\n

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Popular Authors\r\n \r\n 5 day ago\r\n
    \r\n
    \r\n\r\n

    \r\n A brief write up about the Popular Authors that fits within this\r\n section\r\n

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n New Users\r\n \r\n 5 day ago\r\n
    \r\n
    \r\n\r\n

    \r\n A brief write up about the New Users that fits within this section\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 { Dropdown } from \"react-bootstrap\";\r\nimport { DropdownCustomToggler, DropdownMenu1 } from \"../../dropdowns\";\r\n\r\nexport function ListsWidget9({ className }) {\r\n return (\r\n <>\r\n
    \r\n {/* Header */}\r\n
    \r\n

    \r\n My Activity\r\n \r\n 890,344 Sales\r\n \r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* Body */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n 08:42\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n Outlines keep you honest. And keep structure\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 10:00\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n AEOL meeting\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 14:37\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n Make deposit\r\n \r\n USD 700\r\n \r\n . to ESL\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 16:50\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n Indulging in poorly driving and keep structure keep great\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 21:03\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n New order placed\r\n \r\n #XF-2356\r\n \r\n .\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 23:07\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n Outlines keep and you honest. Indulging in poorly driving\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 16:50\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n Indulging in poorly driving and keep structure keep great\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 21:03\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n New order placed\r\n \r\n #XF-2356\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 { Dropdown } from \"react-bootstrap\";\r\nimport { DropdownCustomToggler, DropdownMenu3 } from \"../../dropdowns\";\r\n\r\nexport function ListsWidget10({ className }) {\r\n return (\r\n <>\r\n
    \r\n {/* Header */}\r\n
    \r\n

    \r\n Notifications\r\n

    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {/* Body */}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n Daily Standup Meeting\r\n \r\n\r\n \r\n Due in 2 Days\r\n \r\n
    \r\n\r\n \r\n Approved\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n {/* begin::Section */}\r\n
    \r\n {/* begin::Info */}\r\n
    \r\n {/* begin::Title */}\r\n \r\n Group Town Hall Meet-up with showcase\r\n \r\n {/* end::Title */}\r\n\r\n {/* begin::Data */}\r\n \r\n Due in 2 Days\r\n \r\n {/* end::Data */}\r\n
    \r\n {/* end::Info */}\r\n\r\n {/* begin::Label */}\r\n \r\n In Progress\r\n \r\n {/* end::Label */}\r\n
    \r\n {/* end::Section */}\r\n
    \r\n {/* end::Content */}\r\n
    \r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n
    \r\n {/* begin::Content */}\r\n
    \r\n {/* begin::Checkbox */}\r\n \r\n {/* end::Checkbox */}\r\n\r\n {/* begin::Section */}\r\n
    \r\n {/* begin::Info */}\r\n
    \r\n {/* begin::Title */}\r\n \r\n Next sprint planning and estimations\r\n \r\n {/* end::Title */}\r\n\r\n {/* begin::Data */}\r\n \r\n Due in 2 Days\r\n \r\n {/* end::Data */}\r\n
    \r\n {/* end::Info */}\r\n\r\n {/* begin::Label */}\r\n \r\n Success\r\n \r\n {/* end::Label */}\r\n
    \r\n {/* end::Section */}\r\n
    \r\n {/* end::Content */}\r\n
    \r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n
    \r\n {/* begin::Content */}\r\n
    \r\n {/* begin::Checkbox */}\r\n \r\n {/* end::Checkbox */}\r\n\r\n {/* begin::Section */}\r\n
    \r\n {/* begin::Info */}\r\n
    \r\n {/* begin::Title */}\r\n \r\n Sprint delivery and project deployment\r\n \r\n {/* end::Title */}\r\n\r\n {/* begin::Data */}\r\n \r\n Due in 2 Days\r\n \r\n {/* end::Data */}\r\n
    \r\n {/* end::Info */}\r\n\r\n {/* begin::Label */}\r\n \r\n Rejected\r\n \r\n {/* end::Label */}\r\n
    \r\n {/* end::Section */}\r\n
    \r\n {/* end::Content */}\r\n
    \r\n {/* end: Item */}\r\n\r\n {/* begin: Item */}\r\n
    \r\n {/* begin::Content */}\r\n
    \r\n {/* begin::Checkbox */}\r\n \r\n {/* end::Checkbox */}\r\n\r\n {/* begin::Section */}\r\n
    \r\n {/* begin::Info */}\r\n
    \r\n {/* begin::Title */}\r\n \r\n Data analytics research showcase\r\n \r\n {/* end::Title */}\r\n\r\n {/* begin::Data */}\r\n \r\n Due in 2 Days\r\n \r\n {/* end::Data */}\r\n
    \r\n {/* end::Info */}\r\n\r\n {/* begin::Label */}\r\n \r\n In Progress\r\n \r\n {/* end::Label */}\r\n
    \r\n {/* end::Section */}\r\n
    \r\n {/* end::Content */}\r\n
    \r\n {/* end: Item */}\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 SVG from \"react-inlinesvg\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { DropdownCustomToggler, DropdownMenu4 } from \"../../dropdowns\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function ListsWidget11({ className }) {\r\n return (\r\n <>\r\n
    \r\n {/* Header */}\r\n
    \r\n

    Trends

    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {/* Body */}\r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n Group lunch celebration\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n +28%\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n Home navigation optimization\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n +50%\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n Rebrand strategy planning\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n -27%\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n Product goals strategy meet-up\r\n \r\n Due in 2 Days\r\n
    \r\n\r\n \r\n +8%\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 { 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","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useEffect } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { useHtmlClassService } from \"../../../layout\";\r\n\r\nexport function StatsWidget11({ className, symbolShape, baseColor }) {\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 colorsGrayGray300: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray300\"\r\n ),\r\n colorsThemeBaseSuccess: objectPath.get(\r\n uiService.config,\r\n `js.colors.theme.base.${baseColor}`\r\n ),\r\n colorsThemeLightSuccess: objectPath.get(\r\n uiService.config,\r\n `js.colors.theme.light.${baseColor}`\r\n ),\r\n fontFamily: objectPath.get(uiService.config, \"js.fontFamily\"),\r\n };\r\n }, [uiService, baseColor]);\r\n\r\n useEffect(() => {\r\n const element = document.getElementById(\"kt_stats_widget_11_chart\");\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const options = getChartOption(layoutProps);\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
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n 750$\r\n \r\n \r\n Weekly Income\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nfunction getChartOption(layoutProps) {\r\n const options = {\r\n series: [\r\n {\r\n name: \"Net Profit\",\r\n data: [40, 40, 30, 30, 35, 35, 50],\r\n },\r\n ],\r\n chart: {\r\n type: \"area\",\r\n height: 150,\r\n toolbar: {\r\n show: false,\r\n },\r\n zoom: {\r\n enabled: false,\r\n },\r\n sparkline: {\r\n enabled: true,\r\n },\r\n },\r\n plotOptions: {},\r\n legend: {\r\n show: false,\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n fill: {\r\n type: \"solid\",\r\n opacity: 1,\r\n },\r\n stroke: {\r\n curve: \"smooth\",\r\n show: true,\r\n width: 3,\r\n colors: [layoutProps.colorsThemeBaseSuccess],\r\n },\r\n xaxis: {\r\n categories: [\"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Aug\", \"Sep\"],\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n show: false,\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n },\r\n crosshairs: {\r\n show: false,\r\n position: \"front\",\r\n stroke: {\r\n color: layoutProps.colorsGrayGray300,\r\n width: 1,\r\n dashArray: 3,\r\n },\r\n },\r\n tooltip: {\r\n enabled: true,\r\n formatter: undefined,\r\n offsetY: 0,\r\n style: {\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: 55,\r\n labels: {\r\n show: false,\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 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 + \" thousands\";\r\n },\r\n },\r\n },\r\n colors: [layoutProps.colorsThemeLightSuccess],\r\n markers: {\r\n colors: [layoutProps.colorsThemeLightSuccess],\r\n strokeColor: [layoutProps.colorsThemeBaseSuccess],\r\n strokeWidth: 3,\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, {useMemo, useEffect} from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {useHtmlClassService} from \"../../../layout\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\n\r\nexport function StatsWidget12({ className }) {\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 colorsGrayGray300: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray300\"\r\n ),\r\n colorsThemeBasePrimary: objectPath.get(\r\n uiService.config,\r\n \"js.colors.theme.base.primary\"\r\n ),\r\n colorsThemeLightPrimary: objectPath.get(\r\n uiService.config,\r\n \"js.colors.theme.light.primary\"\r\n ),\r\n fontFamily: objectPath.get(uiService.config, \"js.fontFamily\")\r\n };\r\n }, [uiService]);\r\n\r\n useEffect(() => {\r\n const element = document.getElementById(\"kt_stats_widget_12_chart\");\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const options = getChartOption(layoutProps);\r\n const chartnewUsers = new ApexCharts(element, options);\r\n chartnewUsers.render();\r\n return function cleanUp() {\r\n chartnewUsers.destroy();\r\n };\r\n }, [layoutProps]);\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 +6,5K\r\n \r\n New Users\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nfunction getChartOption(layoutProps) {\r\n var options = {\r\n series: [\r\n {\r\n name: \"Net Profit\",\r\n data: [40, 40, 30, 30, 35, 35, 50]\r\n }\r\n ],\r\n chart: {\r\n type: \"area\",\r\n height: 150,\r\n toolbar: {\r\n show: false\r\n },\r\n zoom: {\r\n enabled: false\r\n },\r\n sparkline: {\r\n enabled: true\r\n }\r\n },\r\n plotOptions: {},\r\n legend: {\r\n show: false\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n fill: {\r\n type: \"solid\",\r\n opacity: 1\r\n },\r\n stroke: {\r\n curve: \"smooth\",\r\n show: true,\r\n width: 3,\r\n colors: [layoutProps.colorsThemeBasePrimary]\r\n },\r\n xaxis: {\r\n categories: [\"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Aug\", \"Sep\"],\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n },\r\n labels: {\r\n show: false,\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily\r\n }\r\n },\r\n crosshairs: {\r\n show: false,\r\n position: \"front\",\r\n stroke: {\r\n color: layoutProps.colorsGrayGray300,\r\n width: 1,\r\n dashArray: 3\r\n }\r\n },\r\n tooltip: {\r\n enabled: true,\r\n formatter: undefined,\r\n offsetY: 0,\r\n style: {\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: 55,\r\n labels: {\r\n show: false,\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 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 + \" thousands\";\r\n }\r\n }\r\n },\r\n colors: [layoutProps.colorsThemeLightPrimary],\r\n markers: {\r\n colors: [layoutProps.colorsThemeLightPrimary],\r\n strokeColor: [layoutProps.colorsThemeBasePrimary],\r\n strokeWidth: 3\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 SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function AdvanceTablesWidget1({ className }) {\r\n return (\r\n
    \r\n {/* begin::Header */}\r\n
    \r\n

    \r\n \r\n Agents Stats\r\n \r\n \r\n More than 400+ new members\r\n \r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n Add New Member\r\n \r\n
    \r\n
    \r\n {/* end::Header */}\r\n\r\n {/* begin::Body */}\r\n
    \r\n {/* begin::Table */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n authors\r\n \r\n \r\n company\r\n progress\r\n \r\n action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Brad Simmons\r\n \r\n \r\n HTML, JS, ReactJS\r\n \r\n \r\n \r\n \r\n Intertico\r\n \r\n \r\n Web, UI/UX Design\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n 65%\r\n \r\n \r\n Progress\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Jessie Clarcson\r\n \r\n \r\n C#, ASP.NET, MS SQL\r\n \r\n \r\n \r\n \r\n Agoda\r\n \r\n \r\n Houses & Hotels\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n 83%\r\n \r\n \r\n Progress\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Lebron Wayde\r\n \r\n \r\n PHP, Laravel, VueJS\r\n \r\n \r\n \r\n \r\n RoadGee\r\n \r\n \r\n Transportation\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n 47%\r\n \r\n \r\n Progress\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Natali Trump\r\n \r\n \r\n Python, PostgreSQL, ReactJS\r\n \r\n \r\n \r\n \r\n The Hill\r\n \r\n Insurance\r\n \r\n \r\n
    \r\n
    \r\n \r\n 71%\r\n \r\n \r\n Progress\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* end::Table */}\r\n \r\n {/* end::Body */}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {useState} from \"react\";\r\nimport { Nav, Tab } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\n\r\nexport function AdvanceTablesWidget2({ className }) {\r\n const [key, setKey] = useState(\"Month\");\r\n\r\n return (\r\n
    \r\n {/* Head */}\r\n
    \r\n

    \r\n \r\n New Arrivals\r\n \r\n \r\n More than 400+ new members\r\n \r\n

    \r\n
    \r\n \r\n setKey(_key)}\r\n className=\"nav nav-pills nav-pills-sm nav-dark-75\"\r\n >\r\n \r\n \r\n Month\r\n \r\n \r\n \r\n \r\n Week\r\n \r\n \r\n \r\n \r\n Day\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Sant Outstanding\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n bprow@bnc.cc\r\n \r\n
    \r\n
    \r\n \r\n $2,000,000\r\n \r\n Paid\r\n \r\n \r\n ReactJs, HTML\r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Application Development\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n app@dev.com\r\n \r\n
    \r\n
    \r\n \r\n $4,600,000\r\n \r\n Paid\r\n \r\n \r\n Python, MySQL\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Payrol Application\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n company@dev.com\r\n \r\n
    \r\n
    \r\n \r\n $560,000\r\n \r\n Paid\r\n \r\n \r\n Laravel, Metronic\r\n \r\n \r\n \r\n Success\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n HR Management System\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n hr@demo.com\r\n \r\n
    \r\n
    \r\n \r\n $57,000\r\n \r\n Paid\r\n \r\n \r\n AngularJS, C#\r\n \r\n \r\n \r\n Rejected\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n KTR Mobile Application\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n ktr@demo.com\r\n \r\n
    \r\n
    \r\n \r\n $45,200,000\r\n \r\n Paid\r\n \r\n \r\n ReactJS, Ruby\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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,jsx-a11y/img-redundant-alt */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\n\r\nexport function AdvanceTablesWidget4({ className }) {\r\n return (\r\n
    \r\n {/* Head */}\r\n
    \r\n

    \r\n Agents Stats\r\n More than 400+ new members\r\n

    \r\n
    \r\n New Report\r\n Create\r\n
    \r\n
    \r\n {/* 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    productsearningscompanyrating\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Brad\r\n Simmons\r\n HTML, JS, ReactJS\r\n
    \r\n
    \r\n
    \r\n \r\n $8,000,000\r\n \r\n \r\n In Proccess\r\n \r\n \r\n \r\n $520\r\n \r\n \r\n Paid\r\n \r\n \r\n \r\n Intertico\r\n \r\n \r\n Web, UI/UX Design\r\n \r\n \r\n \"image\"\r\n \r\n Best Rated\r\n \r\n \r\n View Offer\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Jessie\r\n Clarcson\r\n C#, ASP.NET, MS SQL\r\n
    \r\n
    \r\n
    \r\n \r\n $23,000,000\r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n $1,600\r\n \r\n \r\n Rejected\r\n \r\n \r\n \r\n Agoda\r\n \r\n \r\n Houses & Hotels\r\n \r\n \r\n \"image\"\r\n \r\n Above Avarage\r\n \r\n \r\n View Offer\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Lebron Wayde\r\n \r\n PHP, Laravel, VueJS\r\n
    \r\n
    \r\n
    \r\n \r\n $34,000,000\r\n \r\n \r\n Paid\r\n \r\n \r\n \r\n $6,700\r\n \r\n \r\n Paid\r\n \r\n \r\n \r\n RoadGee\r\n \r\n \r\n Paid\r\n \r\n \r\n \"image\"\r\n \r\n Best Rated\r\n \r\n \r\n View Offer\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Natali Trump\r\n \r\n Python, PostgreSQL, ReactJS\r\n
    \r\n
    \r\n
    \r\n \r\n $2,600,000\r\n \r\n \r\n Paid\r\n \r\n \r\n \r\n $14,000\r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n The Hill\r\n \r\n \r\n Insurance\r\n \r\n \r\n \"image\"\r\n \r\n Avarage\r\n \r\n \r\n \r\n View Offer\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/img-redundant-alt */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useState } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { Nav, Tab } from \"react-bootstrap\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function AdvanceTablesWidget7({ className }) {\r\n const [key, setKey] = useState(\"Month\");\r\n\r\n return (\r\n
    \r\n {/* Head */}\r\n
    \r\n

    \r\n \r\n New Arrivals\r\n \r\n \r\n More than 400+ new members\r\n \r\n

    \r\n
    \r\n \r\n setKey(_key)}\r\n className=\"nav nav-pills nav-pills-sm nav-dark-75\"\r\n >\r\n \r\n \r\n Month\r\n \r\n \r\n \r\n \r\n Week\r\n \r\n \r\n \r\n \r\n Day\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* Body */}\r\n
    \r\n
    \r\n {/* begin::Tap pane MONTH */}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Sant Outstanding\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n bprow@bnc.cc\r\n \r\n
    \r\n
    \r\n \r\n $2,000,000\r\n \r\n Paid\r\n \r\n \r\n ReactJs, HTML\r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Application Development\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n app@dev.com\r\n \r\n
    \r\n
    \r\n \r\n $4,600,000\r\n \r\n Paid\r\n \r\n \r\n Python, MySQL\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Payrol Application\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n company@dev.com\r\n \r\n
    \r\n
    \r\n \r\n $560,000\r\n \r\n Paid\r\n \r\n \r\n Laravel, Metronic\r\n \r\n \r\n \r\n Success\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n HR Management System\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n hr@demo.com\r\n \r\n
    \r\n
    \r\n \r\n $57,000\r\n \r\n Paid\r\n \r\n \r\n AngularJS, C#\r\n \r\n \r\n \r\n Rejected\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n KTR Mobile Application\r\n \r\n
    \r\n Email:{\" \"}\r\n \r\n ktr@demo.com\r\n \r\n
    \r\n
    \r\n \r\n $45,200,000\r\n \r\n Paid\r\n \r\n \r\n ReactJS, Ruby\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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::Tap pane MONTH */}\r\n\r\n {/* begin::Tap pane WEEK */}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Telegram Mobile\r\n \r\n \r\n \r\n FTP:\r\n {\" \"}\r\n bprow@bnc.cc\r\n \r\n \r\n \r\n $4,600,000\r\n \r\n Paid\r\n \r\n \r\n Python, MySQL\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Cisco Management\r\n \r\n \r\n \r\n FTP:\r\n {\" \"}\r\n bprow@bnc.cc\r\n \r\n \r\n \r\n $560,000\r\n \r\n Paid\r\n \r\n \r\n Laravel, Metronic\r\n \r\n \r\n \r\n Success\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Beats Studio\r\n \r\n \r\n FTP: bprow@bnc.cc\r\n \r\n \r\n \r\n $57,000\r\n \r\n Paid\r\n \r\n \r\n AngularJS, C#\r\n \r\n \r\n \r\n Rejected\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Sant Outstanding\r\n \r\n
    \r\n Email:\r\n \r\n bprow@bnc.cc\r\n \r\n
    \r\n
    \r\n \r\n $2,000,000\r\n \r\n Paid\r\n \r\n \r\n ReactJs, HTML\r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n KTR Application\r\n \r\n \r\n \r\n FTP:\r\n {\" \"}\r\n bprow@bnc.cc\r\n \r\n \r\n \r\n $45,200,000\r\n \r\n Paid\r\n \r\n \r\n ReactJS, Ruby\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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::Tap pane Week */}\r\n\r\n {/* begin::Tap pane DAY */}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Sant Outstanding\r\n \r\n
    \r\n Email:\r\n \r\n bprow@bnc.cc\r\n \r\n
    \r\n
    \r\n \r\n $2,000,000\r\n \r\n Paid\r\n \r\n \r\n ReactJs, HTML\r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Telegram Mobile\r\n \r\n \r\n \r\n FTP:\r\n {\" \"}\r\n bprow@bnc.cc\r\n \r\n \r\n \r\n $4,600,000\r\n \r\n Paid\r\n \r\n \r\n Python, MySQL\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Cisco Management\r\n \r\n \r\n \r\n FTP:\r\n {\" \"}\r\n bprow@bnc.cc\r\n \r\n \r\n \r\n $560,000\r\n \r\n Paid\r\n \r\n \r\n Laravel, Metronic\r\n \r\n \r\n \r\n Success\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Beats Studio\r\n \r\n \r\n FTP: bprow@bnc.cc\r\n \r\n \r\n \r\n $57,000\r\n \r\n Paid\r\n \r\n \r\n AngularJS, C#\r\n \r\n \r\n \r\n Rejected\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n KTR Application\r\n \r\n \r\n \r\n FTP:\r\n {\" \"}\r\n bprow@bnc.cc\r\n \r\n \r\n \r\n $45,200,000\r\n \r\n Paid\r\n \r\n \r\n ReactJS, Ruby\r\n \r\n \r\n \r\n In Progress\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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::Tap pane Day */}\r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport objectPath from \"object-path\";\r\nimport ApexCharts from \"apexcharts\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { DropdownCustomToggler, DropdownMenu4 } from \"../../dropdowns\";\r\nimport { useHtmlClassService } from \"../../../layout\";\r\n\r\nexport function TilesWidget1({ className, chartColor = \"danger\" }) {\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 colorsGrayGray300: objectPath.get(\r\n uiService.config,\r\n \"js.colors.gray.gray300\"\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 const element = document.getElementById(\"kt_tiles_widget_1_chart\");\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const options = getChartOption(layoutProps);\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
    Weekly Sales Stats
    \r\n
    890,344 Sales
    \r\n
    \r\n
    \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::Items */}\r\n
    \r\n {/* begin::Item */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Top Authors\r\n \r\n
    \r\n Ricky Hunt, Sandra Trepp\r\n
    \r\n
    \r\n
    \r\n
    \r\n +105$\r\n
    \r\n
    \r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Bestsellers\r\n \r\n
    \r\n Pitstop Email Marketing\r\n
    \r\n
    \r\n
    \r\n
    \r\n +60$\r\n
    \r\n
    \r\n {/* end::Item */}\r\n\r\n {/* begin::Item */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Top Engagement\r\n \r\n
    \r\n KT.com solution provider\r\n
    \r\n
    \r\n
    \r\n
    \r\n +75$\r\n
    \r\n
    \r\n {/* end::Item */}\r\n
    \r\n {/* end::Items */}\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) {\r\n const options = {\r\n series: [\r\n {\r\n name: \"Net Profit\",\r\n data: [20, 22, 30, 28, 25, 26, 30, 28, 22, 24, 25, 35],\r\n },\r\n ],\r\n chart: {\r\n type: \"area\",\r\n height: 150,\r\n toolbar: {\r\n show: false,\r\n },\r\n zoom: {\r\n enabled: false,\r\n },\r\n sparkline: {\r\n enabled: true,\r\n },\r\n },\r\n plotOptions: {},\r\n legend: {\r\n show: false,\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n fill: {\r\n type: \"gradient\",\r\n opacity: 1,\r\n gradient: {\r\n type: \"vertical\",\r\n shadeIntensity: 0.55,\r\n gradientToColors: undefined,\r\n inverseColors: true,\r\n opacityFrom: 1,\r\n opacityTo: 0.2,\r\n stops: [25, 50, 100],\r\n colorStops: [],\r\n },\r\n },\r\n stroke: {\r\n curve: \"smooth\",\r\n show: true,\r\n width: 3,\r\n colors: [layoutProps.colorsThemeBaseColor],\r\n },\r\n xaxis: {\r\n categories: [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Apr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dec\",\r\n ],\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n show: false,\r\n style: {\r\n colors: layoutProps.colorsGrayGray500,\r\n fontSize: \"12px\",\r\n fontFamily: layoutProps.fontFamily,\r\n },\r\n },\r\n crosshairs: {\r\n show: false,\r\n position: \"front\",\r\n stroke: {\r\n color: layoutProps.colorsGrayGray300,\r\n width: 1,\r\n dashArray: 3,\r\n },\r\n },\r\n tooltip: {\r\n enabled: true,\r\n formatter: undefined,\r\n offsetY: 0,\r\n style: {\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: 37,\r\n labels: {\r\n show: false,\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 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 + \" thousands\";\r\n },\r\n },\r\n },\r\n colors: [layoutProps.colorsThemeLightColor],\r\n markers: {\r\n colors: [layoutProps.colorsThemeLightColor],\r\n strokeColor: [layoutProps.colorsThemeBaseColor],\r\n strokeWidth: 3,\r\n },\r\n padding: {\r\n top: 0,\r\n bottom: 0,\r\n },\r\n };\r\n return options;\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function TilesWidget3({ className, widgetHeight = \"175px\" }) {\r\n const backgroundImageUrl = toAbsoluteUrl(\"/media/bg/bg-9.jpg\");\r\n return (\r\n <>\r\n {/* begin::Tiles Widget 3 */}\r\n \r\n {/* begin::Body */}\r\n
    \r\n {/* begin::Title */}\r\n \r\n Properties\r\n \r\n {/* end::Title */}\r\n
    \r\n {/* end::Body */}\r\n \r\n {/* end::Tiles Widget 3 */}\r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function TilesWidget10({ className, widgetHeight = \"175px\" }) {\r\n return (\r\n <>\r\n \r\n {/* begin::Body */}\r\n
    \r\n
    \r\n

    Create CRM Reports

    \r\n
    \r\n Generate the latest CRM Report\r\n
    \r\n
    \r\n \r\n Start Now\r\n \r\n
    \r\n {/* end::Body */}\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function TilesWidget11({\r\n className,\r\n baseColor = \"primary\",\r\n widgetHeight = \"150px\",\r\n}) {\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n 790\r\n
    \r\n\r\n \r\n New Products\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 SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function TilesWidget12({\r\n className,\r\n iconColor = \"success\",\r\n widgetHeight = \"150px\",\r\n}) {\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n 8,600\r\n
    \r\n\r\n \r\n New Customers\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 { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function TilesWidget13({ className, widgetHeight = \"175px\" }) {\r\n const backgroundImageUrl = toAbsoluteUrl(\"/media/svg/patterns/taieri.svg\");\r\n\r\n return (\r\n <>\r\n \r\n {/* begin::Body */}\r\n
    \r\n
    \r\n

    Create SaaS
    Based Reports

    \r\n Create Report\r\n
    \r\n
    \r\n {/* end::Body */}\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function TilesWidget14({ className }) {\r\n const backgroundImageUrl = toAbsoluteUrl(\"/media/stock-600x600/img-16.jpg\");\r\n\r\n return (\r\n <>\r\n \r\n {/* begin::Body */}\r\n
    \r\n
    \r\n

    \r\n Create Reports\r\n
    \r\n With App\r\n

    \r\n
    \r\n\r\n \r\n Create Report\r\n \r\n \r\n \r\n \r\n
    \r\n {/* end::Body */}\r\n \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 { AdvanceTablesWidget7 } from \"./advance-tables/AdvanceTablesWidget7\";\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 axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = \"Client/\";\r\n\r\nconst getClientById = async (id) => await axiosInstance.get(ENDPOINTORIGIN + 'GetClientById?id=' + id, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getClients = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetClients', constants.REQUIRE_INTERCEPTORS);\r\nconst getPaymentProfilesForClient = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetPaymentProfilesForClient', constants.REQUIRE_INTERCEPTORS);\r\nconst getManagementLink = async (chargifyCustomerId) => await axiosInstance.get(ENDPOINTORIGIN + `GetManagementLink?chargifyCustomerId=${chargifyCustomerId}`, constants.REQUIRE_INTERCEPTORS);\r\nconst getSubscriptionById = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GetSubscriptionById', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst generateSecurityToken = async () => await axiosInstance.get(ENDPOINTORIGIN + 'GenerateSecurityToken', constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveClient = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SaveClient', model, { ...constants.REQUIRE_INTERCEPTORS, fileHandler: true });\r\n\r\nconst upgradeClientTier = async (clientId, tierToUpgradeTo) => await axiosInstance.post(ENDPOINTORIGIN + 'UpgradeClientTier?clientId=' + clientId + '&tierToUpgradeTo=' + tierToUpgradeTo, {}, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst deleteClientByIsDeleteFlag = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'DeleteClientByIsDeletedFlag', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst savePaymentProfileAndOrSubscribe = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SavePaymentProfileAndOrSubscribe', model, constants.REQUIRE_INTERCEPTORS);\r\nconst savePaymentProfile = async (model) => await axiosInstance.post(ENDPOINTORIGIN + 'SavePaymentProfile', model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getClientById,\r\n getClients,\r\n saveClient,\r\n generateSecurityToken,\r\n upgradeClientTier,\r\n getManagementLink,\r\n deleteClientByIsDeleteFlag,\r\n getPaymentProfilesForClient,\r\n savePaymentProfileAndOrSubscribe,\r\n getSubscriptionById,\r\n savePaymentProfile\r\n}","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialCustomersState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n customerForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const customersSlice = createSlice({\r\n name: \"customers\",\r\n initialState: initialCustomersState,\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 // getCustomerById\r\n customerFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.customerForEdit = action.payload.customerForEdit;\r\n state.error = null;\r\n },\r\n // findCustomers\r\n customersFetched: (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 // createCustomer\r\n customerCreated: (state, action) => {\r\n state.ewactionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.customer);\r\n },\r\n // updateCustomer\r\n customerUpdated: (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.customer.id) {\r\n return action.payload.customer;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteCustomer\r\n customerDeleted: (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 // deleteCustomers\r\n customersDeleted: (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 // customersUpdateState\r\n customersStatusUpdated: (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","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialProductsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n productForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const productsSlice = createSlice({\r\n name: \"products\",\r\n initialState: initialProductsState,\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 // getProductById\r\n productFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.productForEdit = action.payload.productForEdit;\r\n state.error = null;\r\n },\r\n // findProducts\r\n productsFetched: (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 // createProduct\r\n productCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.product);\r\n },\r\n // updateProduct\r\n productUpdated: (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.product.id) {\r\n return action.payload.product;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteProduct\r\n productDeleted: (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 // deleteProducts\r\n productsDeleted: (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 // productsUpdateState\r\n productsStatusUpdated: (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","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialRemarksState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n remarkForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const remarksSlice = createSlice({\r\n name: \"remarks\",\r\n initialState: initialRemarksState,\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 // getRemarkById\r\n remarkFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.remarkForEdit = action.payload.remarkForEdit;\r\n state.error = null;\r\n },\r\n // findRemarks\r\n remarksFetched: (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 // createRemark\r\n remarkCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.remark);\r\n },\r\n // updateRemark\r\n remarkUpdated: (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.remark.id) {\r\n return action.payload.remark;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteRemark\r\n remarkDeleted: (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 // deleteRemarks\r\n remarksDeleted: (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 // remarksUpdateState\r\n remarksStatusUpdated: (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","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialSpecificationsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n specificationForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const specificationsSlice = createSlice({\r\n name: \"specifications\",\r\n initialState: initialSpecificationsState,\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 // getSpecificationById\r\n specificationFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.specificationForEdit = action.payload.specificationForEdit;\r\n state.error = null;\r\n },\r\n // findSpecifications\r\n specificationsFetched: (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 // createSpecification\r\n specificationCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.specification);\r\n },\r\n // updateSpecification\r\n specificationUpdated: (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.specification.id) {\r\n return action.payload.specification;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteSpecification\r\n specificationDeleted: (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 // deleteSpecifications\r\n specificationsDeleted: (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 }\r\n});\r\n","import { persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport { put, takeLatest } from \"redux-saga/effects\";\r\nimport { getUserByToken } from \"./authCrud\";\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nexport const actionTypes = {\r\n Login: \"[Login] Action\",\r\n Logout: \"[Logout] Action\",\r\n Register: \"[Register] Action\",\r\n UserRequested: \"[Request User] Action\",\r\n UserLoaded: \"[Load User] Auth API\",\r\n SetUser: \"[Set User] Action\",\r\n UpgradeTier: \"[Upgrade Tier] Action\",\r\n};\r\n\r\nconst initialAuthState = {\r\n user: undefined,\r\n authToken: undefined,\r\n role: undefined\r\n};\r\n\r\nexport const reducer = persistReducer(\r\n { storage, key: \"auth-token\", whitelist: [\"user\", \"authToken\", \"role\", \"clientRefId\"] },\r\n (state = initialAuthState, action) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n const { token } = action.payload;\r\n const decodedToken = jwt_decode(token);\r\n return { authToken: token, user: undefined, role: decodedToken.role, clientRefId: decodedToken.RefId };\r\n }\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\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\r\n case actionTypes.UserLoaded: {\r\n const { user } = action.payload;\r\n return { ...state, user };\r\n }\r\n\r\n case actionTypes.SetUser: {\r\n const { user } = action.payload;\r\n return { ...state, user };\r\n }\r\n\r\n case actionTypes.UpgradeTier: {\r\n const { user } = state;\r\n const updatedUser = { ...user, tier: action.payload };\r\n return { ...state, user: updatedUser };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n }\r\n);\r\n\r\nexport const actions = {\r\n login: (user) => ({ type: actionTypes.Login, payload: user }),\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) => ({\r\n type: actionTypes.UserRequested,\r\n payload: { user },\r\n }),\r\n fulfillUser: (user) => ({ type: actionTypes.UserLoaded, payload: { user } }),\r\n setUser: (user) => ({ type: actionTypes.SetUser, payload: user }),\r\n upgradeTier: (tier) => ({ type: actionTypes.UpgradeTier, payload: tier })\r\n};\r\n\r\nexport function* saga() {\r\n yield takeLatest(actionTypes.Login, function* loginSaga({ payload }) {\r\n yield put(actions.requestUser(payload));\r\n });\r\n\r\n yield takeLatest(actionTypes.Register, function* registerSaga() {\r\n yield put(actions.requestUser());\r\n });\r\n\r\n yield takeLatest(actionTypes.UserRequested, function* userRequested({ payload }) {\r\n\r\n yield put(actions.fulfillUser(payload.user));\r\n });\r\n}\r\n"],"sourceRoot":""}