{"version":3,"sources":["containers/routes/route-keys.ts","core/store/reducers/authUser.ts","core/store/reducers/cart.ts","core/store/reducers/product.ts","core/store/reducers/quote-reducer.ts","core/store/reducers/order-reducer.ts","core/store/reducers/notification-reducer.ts","core/store/reducers/brandBranch.ts","core/store/reducers/countries.ts","core/store/reducers/user-to-brand.ts","core/store/reducers/settings.ts","core/store/initializeStore.ts","core/store/rootReducer.ts","core/store/configureStore.ts","containers/header/SideMenuMob.tsx","containers/header/UserHeader.tsx","containers/header/HeaderCanvas.tsx","containers/header/BrandSlelection.tsx","containers/header/SideMenu.tsx","utils/get-initials.ts","containers/header/UserHeaderCanvas.tsx","containers/header/Header.tsx","containers/header/index.ts","components/modal/Modal.tsx","components/modal/index.ts","api/index.ts","api/client.ts","core/hooks/useCart.ts","core/hooks/useNotifications.tsx","components/inactive-user-popup.tsx","components/confirm-popup/confirm-popup.tsx","containers/home/cart/empty.png","i18n.ts","api/apiDomain.ts","core/hooks/useOrder.ts","components/copy-to-clipboard/index.tsx","components/counter/Counter.tsx","components/counter/index.js","utils/common.ts","containers/home/cart/components/confirm-summary.tsx","containers/home/cart/Cart.tsx","containers/home/cart/cart-item.tsx","containers/home/cart/components/delete-confirmation.tsx","core/hooks/useAuth.ts","core/store/utils.ts","core/api/interceptor.ts","core/store/reducers/common.ts","containers/home/cart/components/cart-confirm-popup.tsx","components/loader/mynaghi-loader.gif","core/api/services/http.ts","core/api/services/service.ts","core/api/services/models.ts","core/api/services/auth.ts","core/api/services/user.ts","core/api/services/order-service.ts","core/api/services/staff.ts","core/api/services/payment-service.ts","core/api/services/report-service.ts","core/api/services/customer-service.ts","core/api/services/sales-person-report.ts","core/api/services/report-payment-service.ts","core/api/services/creditline-extension.ts","core/api/services/notification-service.ts","core/api/client.ts","containers/return/return-requests.tsx","containers/return/components/return-listing.tsx","core/api/models/login.ts","core/api/models/user.ts","utils/text-utils.ts","components/counter/loading.gif","components/form-group/password-input/PasswordInput.tsx","components/form-group/password-input/index.ts","components/form-group/text-input/TextInput.tsx","components/form-group/text-input/index.ts","components/form-group/phone-input/PhoneInput.tsx","components/form-group/phone-input/index.ts","components/form-group/date-input/DateInput.tsx","components/form-group/switch-input/SwitchInput.tsx","components/form-group/switch-input/index.ts","components/form-group/text-area/TextArea.tsx","components/form-group/text-area/index.ts","components/form-group/phone-input/PhoneInputLimited.tsx","components/form-group/select-input/SelectInput.tsx","components/form-group/switch-input/SwitchInputSingleLabel.tsx","components/form-group/radio-select/index.tsx","components/pagination/Pagination.tsx","components/grid/app-table.tsx","containers/home/cart/quote-counter.tsx","containers/home/cart/cart-counter.tsx","core/hooks/useCountries.ts","components/form-group/date-range/DateRange.tsx","components/form-group/date-range/index.ts","core/hooks/useProduct.ts","core/hooks/useOutsideClick.ts","containers/home/cart/quote-item.tsx","core/hooks/useUserToBrand.ts","assets/logo/images/logo.svg","assets/images/no-user-sm.png","assets/images/no-company.png","assets/images/dashboard-logo.svg","firebase.ts","containers/vehicles/components/order-filter-component.tsx","components/list-filters/AddedFilter.tsx","components/list-filters/SavedFilters.tsx","components/list-filters/ListFilters.tsx","components/list-filters/MultiSelectFilter.tsx","components/list-filters/SingleSelectFilter.tsx","components/list-filters/StaffMultiSelectFilter.tsx","components/button/Button.tsx","components/button/index.ts","core/hooks/useBrandsAndBranches.ts","core/hooks/useQuotes.tsx","components/loader/full-page-loader/index.tsx","components/loader/container-loader/index.tsx","components/currency-formatter.tsx","assets/images/confirm-img.png","serviceWorker.ts","containers/higherOrder/Higher.tsx","containers/higherOrder/index.ts","containers/home/cart/cart-confirmation-screen.tsx","containers/home/cart/quote-confirmation-screen.tsx","containers/routes/AuthenticateRoute.tsx","containers/routes/RedirectIfAuthenticatedRoute.tsx","containers/routes/Routes.tsx","containers/App.tsx","core/hooks/useInitiate.ts","containers/routes/Root.ts","containers/routes/Root.prod.tsx","store.ts","index.tsx","utils/date-utils.ts"],"names":["RouteKeys","initialState","redirectTo","logoutAction","createAction","redirectApplyAction","redirectSaveAction","to","createActionWithPayload","getRolesSuccessAction","roles","profileUpdatedAction","profile","loggedInAction","data","checkInAction","customer","authUserReducer","state","action","type","api","setUserToken","payload","userType","UserType","Customer","User","token","undefined","setSalespersonToken","Salesperson","userToken","companyName","salesPersonToken","user","userStatus","checkedInCustomer","setUserType","setUserStatus","COMMON_RESET_DATA_ACTION","cart","isCartLoading","isCartLoaded","isAdding","cartOpen","quoteOpen","cartGetAction","cartResetAction","cartopen","quoteopen","isProductLoading","isProductLoaded","page","productGetAction","response","productSetModelAction","productSetFilterAction","productRequestAction","loading","productResetAction","productSetModelParamAction","productSetBrandParamAction","setProductSearchParamsAction","params","quoteDetails","isQuoteLoading","isQuoteLoaded","quoteUpdateAction","quote","quoteGetAction","quoteSetLoaderAction","isLoading","OrderActions","getOrderDetailsSuccess","getPreviewDetailsSuccess","getOrderFilterDataSuccess","getCheckoutDataSuccess","addCheckoutDeliveryAddress","clearPreviewDetails","setOrderLoader","setOrderDetailTabSelected","onFilterDataSuccess","filterData","onCheckoutDataSuccess","details","onAddCheckoutDeliveryAddress","onPreviewDetailsSuccess","notifications","isLoaded","isPopupOpened","NotificationActions","loadNotificationSuccess","setNotificationLoader","NotificationMarkAllAdRead","NotificationAddNewItem","setNotificationPopupOpen","onGetNotificationSuccessAction","items","setLoaderForNotificationAction","markAllAsReadAction","addNewNotificationAction","notification","brandAdBranch","isBrandAdBranchLoading","isBrandAdBranchLoaded","selectedBrand","selectedBranch","brandAndBranchGetAction","brandSelectAction","brand","brandSetLoaderAction","branchSelectAction","branch","branchCartUpadateAction","cartDetails","branchQuotUpdateAction","quotDetails","countries","isCountriesLoading","isCountriesLoaded","countriesGetAction","userToBrand","isUserToBrandLoading","isUserToBrandLoaded","userToBrandGetAction","EnglishLocale","languageID","languageName","languageKey","isRtl","ArabicLocale","locale","changeLanguageAction","initialize","store","setToken","getState","unauthorizedApiResponseInterceptor","AuthService","loginUrl","setBrandID","brandAndBranch","brandID","setBranchID","warehouseID","authUser","rootReducer","combineReducers","product","products","Number","result","carFilters","totalRecord","errorMsg","count","status","selectedFilter","modelDetails","model","searchParams","toastr","toastrReducer","loadingBar","loadingBarReducer","order","selectedOrder","previewDetails","checkout","checkoutData","checkoutDataClone","deliveryAddresses","selectedTab","find","branches","brands","sBrand","brandIndx","findIndex","item","brandId","branchIndx","itm","branchId","selectedBr","brnds","sqBrand","brndIndx","selectedBrn","forEach","label","brandName","warehouseName","value","clone","p","isRead","existingNotifications","unshift","settings","setLanguageID","configureStore","whitelistReducers","persistConfig","key","storage","whitelist","persistedReducer","persistReducer","createStore","compose","applyMiddleware","thunk","loadingBarMiddleware","persistor","persistStore","subMenus","UserHeader","props","headerType","menuVisible","mobHeader","showBrand","HeaderCanvas","activeClass","className","src","LogoImage","alt","Component","BrandSelection","history","useHistory","brandState","useBrandsAndBranches","useCart","quoteState","useQuotes","path","window","location","pathname","split","useState","showConfirmBox","setShowConfirmBox","React","brandDropdown","toggleBrandDropdown","searchTerm","setSearchTerm","setSelectedBrand","list","filter","match","RegExp","dispatch","useDispatch","useEffect","cartID","orderQty","orderTotalAmount","branch_id","addBrand","quotationRequestID","totalQty","length","branchID","isOpen","onClick","togglePopup","htmlFor","translate","brandIcon","style","maxHeight","map","index","includes","height","maxWidth","placeholder","onChange","e","target","decodeHtmlEntities","toFixed","replace","contentClassName","push","Home","SideMenuMob","authState","useSelector","hasRole","useAuth","useNotifications","notificationState","noImg","name","email","reload","width","viewBox","fill","d","stroke","strokeWidth","strokeMiterlimit","strokeLinecap","strokeLinejoin","UserPermissionTypes","customer_orders","quotation_list","href","Login","getInitials","fullName","names","firstNameInitial","charAt","toUpperCase","lastNameInitial","UserHeaderCanvas","useProduct","getCarsV2","searchCarsvin","setSearchParam","loaded","setProductFilter","setModel","setBrand","stateExpand","setStateExpand","menuAccountOpen","toggleMenuAccountOpen","brandSelectionOpen","setBrandSelectionOpen","quotations","getBrandAndBranches","onLanguageChange","language","setTimeout","unreadNotificationCount","loadNotifications","isAuthenticated","useLocation","loginLogo","isExpand","expandToggle","Header","this","SideMenu","toggleSubMenu","isSalesPerson","marginLeft","x","rx","xmlns","Position","Modal","el","closeModal","bind","options","modal","document","createElement","modalOverlay","modalFrame","pos","modalContent","noPadding","size","modalClose","onClose","modalCloseIcon","appendChild","buildModal","CENTER","body","append","addEventListener","display","overflow","prevProps","removeEventListener","removeChild","ReactDOM","createPortal","children","apiDomain","CoreApiClient","API_DOMAIN","cartState","setLoading","getCart","a","cartData","addToCart","success","error","message","updateQuantity","productID","productOptionID","bulkDeleteFromCart","ids","reason","otherReason","isClearCart","removeFromCart","cartItemID","id","reasonOther","markAsRead","registerDeviceToken","deviceToken","registerToken","InActiveUserPopup","content","ConfirmationDialog","open","title","onConfirm","onDismiss","hideCancel","ConfirmationDialogContext","createContext","ConfirmationDialogProvider","dialogOpen","setDialogOpen","dialogConfig","setDialogConfig","resetDialog","Provider","openDialog","actionCallback","useConfirmationDialog","useContext","getConfirmation","Promise","res","module","exports","resources","en","translation","translationEN","ar","translationAR","i18n","use","initReactI18next","init","lng","fallbackLng","interpolation","escapeValue","formatSeparator","react","debug","process","useOrder","orderService","orderState","loader","setLoader","progressEvent","getOrderDetails","orderId","loadCheckoutDetails","getCheckoutData","requestForPreview","requestId","isPreview","getPreviewDetails","requestForRejectReason","getRejectReason","loadFilterData","getOrderFilterData","requestForReject","rejectRequest","bulkUploadOrders","file","bulkImportOrders","submitBulkOrder","join","requestForCancel","cancelRequest","requestForReturn","returnRequest","requestAgain","rejectOrApprove","salepersonRejectOrApprove","Orders","downloadVehicles","param","downloadVehicle","downloadPath","fetch","then","blob","url","URL","createObjectURL","Blob","link","setAttribute","click","parentNode","catch","console","getReturnDetails","returnId","returnRejectOrApprove","Returns","StatusTabs","Approved","Rejected","CopyClipboard","text","onCopy","onAdd","Counter","incrButton","decrButton","disabled","Boolean","maxReached","isCurrent","prevValue","incrementCounter","decrementCounter","onBlur","updateDefault","setState","toString","isProductAddedToCart","event","counterDisabled","maxCount","prevState","updateValue","parseInt","toZero","num","ref","element","require","defaultProps","defaultValue","amountPerQuantity","gap","smallIcon","minValue","withIcon","noBorder","stickyStyles","disableNumberScrolls","uom","fromCart","productMaxBuyLimit","productMinBuyLimit","productModel","windowWidth","html","textarea","innerHTML","ConfirmSummary","header","redirectionRoute","buttonTitle","TabNames","CartItemComponent","cartId","cartItem","getAvailabilityText","branchStockQty","centralStockQty","trim","canEditCart","cartUserStatus","onSelectionChange","checked","isChecked","itemDetails","productTitle","optionSKU","alignItems","fdNumber","marginRight","mcNumber","isViewOnly","orderItemQuantity","quantity","offerPrice","toNumber","unitPrice","orderItemPrice","orderItemSubtotal","savedPriceVal","customerPrice","actualPrice","DeleteConfirmationDialog","setReason","useDataLoader","getDeleteReasons","reasonList","showError","setShowError","setOtherReason","containerClassName","valueField","textField","val","reasonKey","default","expand","Cart","isPopup","popup","getQuotations","loaded2","tabName","setTabName","popupToggle","setPopupToggle","cartOpenState","quoteOpenState","onToggle","setShowCartPopup","t","useTranslation","setRendered","userStatusFromQuotation","quoteList","Quotes","accountCode","brandWithAccountNumber","accountNumber","customerName","classnames","quoteUserStatus","CartComponent","showHeader","showConfirm","setShowConfirm","setIsClearCart","disableCounter","cartItems","disableSubmit","selectedItems","setSelectedItems","empty","delteItems","color","indexOf","orderSubtotal","shippingAmount","taxPercent","orderTaxAmount","ConfirmCart","QuoteComponent","pdt","partNumber","ConfirmQuote","loginError","setLoginError","updating","setUpdating","login","onSuccess","auth","username","password","Dashboard","redirectApply","getRoles","setProfile","customerBulkUploadPreview","bulkUploadPreviewCustomers","submitBulkCustomer","logout","logoutLink","redirectSave","role","onUnauthorizedResponse","excludedEndpoints","axios","interceptors","err","excludeOn","config","InPageConfirmation","goBack","getAuthHeader","getUserToken","salespersonToken","getSalespersonToken","getUserType","Authorization","get","headers","postAsFormData","includeUserToken","getBrandID","getBranchID","getLanguageID","has","filteredData","FormData","post","upload","onUploadProgress","ApiService","ModelsService","http","countryID","modelID","filters","parameterIDs","f","pageNo","apiResponse","vinNum","partNum","limit","carid","groupid","carDetails","isDefault","perPage","totalCount","parts","productName","quotationReqItemID","address","isDelivery","shippingFname_1","shippingLname_1","shippingFname","shippingLname","shippingAddress1","shippingCountryID","shippingStateID","shippingCity","shippingZip","shippingPhoneDialCode","shippingPhone","warehouseIDs","shippingPhoneCountryCode","userShippingID","paymentSettingsGroupKeySelected","pickupType","deliveryType","poNumber","poDate","purchaseFile","comments","orderRequestID","locationID","shippingContactPhoneCountryCode","shippingContactPhoneDialCode","shippingContactPhone","shippingContactName","listType","orderID","formData","wareHouseID","contactTypeID","searchText","assignedStates","salesperson","userID","customerIDs","JSON","stringify","userToWarehouseID","brandToBranchID","subUserID","contactPersonID","requestID","fromDate","toDate","export","Object","keys","FilterTypes","brnch","frontFile","backFile","expiryDate","formatDate","Date","DateFormats","YearMonthFormat","userProfilePicture","documentID","frontFileName","backFileName","documentMaster","estimatedQuantity","notAvailable","immediateAvailable","laterAvailable","backOrder","discount","totalPrice","comment","credentials","contactName","userEmail","userPhone","tradeno","vatNumber","stateID","city","userDialcode","signUpUrl","userLogin","forgotUrl","otp","newPassword","resetUrl","cred","createPass","oldPassword","confirmPassword","UserService","requestedByList","fields","nationalUnifiedNumber","vatNo","dialCode","entered","userCity","dealerGFIN","userFirstName","userLastName","userFullName","crn","userCountry","userPhoneDialCode","userAddress","userZip","documentTypeID","totalUsers","orderPermission","userCountryCode","userDesignation","filterParams","isDashboard","searchKeyword","searchName","reasonID","declineComment","notifyCustomer","languagesKnown","roleTypeID","rolesTypeName","stateName","userDOB","userGender","day","date","salespersonID","week","userIds","fromWeb","scheduleDetailID","switchType","OrderService","salespersons","fromMonth","toMonth","dashboard","includeCheckedInToken","startDate","endDate","requestedBy","approvedBy","createdFor","cancelledBy","rejectedBy","paymentID","paymentStatus","branchIDs","searchStartDate","searchEndDate","vinID","requestData","requestType","extendedCreditTerms","fileName","StaffService","vin","roleType","brandPermission","userTypeID","userAdress1","managerUserIDs","staffID","staffUserID","modelData","generalPermissions","brandPermissions","firstName","middleName","lastName","vehicleRegNumber","mobileNumber","invoiceDate","invoiceNumber","variant","istemara","invoice","street","poBox","dealerName","PaymentService","values","masterOrderID","userGivenAmount","bankName","transactionDetails","chequeNumber","chequeDate","paymentOrderID","searchRequestID","creditAmountRequested","creditTerm","credittermID","credittermName","addressID","businessAnalysisDetails","branchSummary","summaryDetails","bankFacilities","authorizedPersonDetails","CustomerLetter","SIMAH","CRC","COC","VAT","AFS","BS","SS","BA","masterOrderId","ReportSevice","month","quarter","multiSelectSalesPerson","sales","salesPerson","sort","orderby","supervisor","specificDate","OrdStatus","paymentMethod","pay","userGroup","CustomerSevice","SalesPersonReportSevice","ageing","escalationType","searchUserID","detailDate","year","PaymentReportSevice","CreditlineExtensionRequest","extentionCreditLimit","gracePeriod","NotificationService","deviceType","staff","report","payment","paymentReport","creditline","ReturnRequestListing","isRendered","setRender","setFilters","usePaginatedDataLoader","loadPage","getReturnRequest","search","tab","defaultData","isError","errData","resolveList","resolveData","startPage","initialParams","responseData","handleScroll","allPagesLoaded","setCount","returnReqCountByStatus","searchID","onChangeFilter","columns","columnRenderer","returnTotalAmount","Pending","onFilterChange","filterTypes","onRowClick","returnData","return_view","ReturnDetails","returnID","showEmptyResult","StatusTabNames","ReturnRequestScreen","useParams","tabs","tabTitle","tabKey","setSelectedTab","setDate","setSearch","setPage","setPerPage","listSearch","toggleListSearch","sTab","tb","minLength","debounceTimeout","onDateChange","classNames","active","Pagination","currentPage","totalPages","ct","pageCount","Math","trunc","getTotalPages","onPageChange","pg","onPerPageChange","UserStatus","BranchStatus","convertPascalCaseToWords","toLocaleLowerCase","str","isNullOrEmpty","PasswordInput","handleChange","customClasses","autoComplete","extraClassesInput","extraClasses","inputId","toLowerCase","autoFocus","autofocus","TextInput","pattern","test","maxLength","showLoading","onFocus","min","onWheel","preventDefault","onScroll","onKeyDown","keyCode","SelectPhoneInput","defaultDialCode","countryCode","defaultCountryCode","defaultEntered","showDropdown","handlerFlagClick","handlerFlagItemClick","code","fieldValue","optionLabel","optionValue","zIndex","enableSelectSearch","disableCountryCode","dial_code","cntry","data-dial-code","data-country-code","onInput","currentTarget","select","disableSelected","PhoneInput","DateInput","minDate","maxDate","filterDate","popperPlacement","selected","placeholderText","showMonthDropdown","showYearDropdown","dropdownMode","dateFormat","customInput","CustomDateInput","forwardRef","readOnly","Checkbox","newLine","labelOn","labelOff","SwitchInput","TextArea","rows","SelectPhoneInputLimited","country","customStyles","control","provided","indicatorSeparator","menu","option","background","isFocused","SelectInput","toggleLoading","toggleRtl","toggleSearchable","isSearchable","selectedValue","styles","classNamePrefix","getOptionLabel","getOptionValue","showValue","isDisabled","isMulti","refreshOption","RadioSelect","labelClass","containerClass","padding","groupCount","changePage","renderPage","renderEllipsis","showEllipsis","every","skipScrollToTop","Array","_","max","offset","renderEnd","dropUp","AppTable","multiSelectionConfig","defaultSelections","moment","thirtyDaysAgo","subtract","isDateGreaterThan30Days","customerDetailsAddedOn","diff","branchName","salesMan","distributor","cr","brandname","vinNumber","makeyear","description","ajvaInvoiceNumber","ajvaSoldDate","format","ajvaDelierydate","customerFirstName","customerMiddleName","customerLastName","onEditClick","version","transform","customerInvoiceDate","onViewClick","QuoteCounter","updateQuotation","openModal","setOpenModal","handleUpdateQuotation","msg","CartCounter","handleUpdateQuantity","cnt","useCountries","countriesState","getCountries","getCountryList","normalizeDate","addMinutes","getTimezoneOffset","handleEvent","picker","onApply","initialSettings","DateRange","productState","setParts","isLoadMore","searchPart","partNo","searchParts","prevData","setProductModel","resetProduct","getOfferParts","selectedModel","useOutsideClick","callback","handleClick","current","contains","QuoteItem","removeQuote","removeFromQuote","useUserToBrand","userToBrandState","getUserToBrand","getUserBrands","firebaseConfig","apiKey","REACT_APP_FIREBASE_API_KEY","authDomain","REACT_APP_FIREBASE_AUTH_DOMAIN","projectId","REACT_APP_FIREBASE_PROJECT_ID","storageBucket","REACT_APP_FIREBASE_STORAGE_BUCKET","messagingSenderId","REACT_APP_FIREBASE_MESSAGING_SENDER_ID","appId","REACT_APP_FIREBASE_APP_ID","firebaseApp","initializeApp","messaging","getMessaging","onMessageListener","resolve","onMessage","AddedFilter","valueLabel","onRemove","SavedFilters","onSelect","_id","ListFilters","setIsOpen","filterRef","setSelectedFilter","setFilterValue","newFilters","onFilter","resetFilterValue","resetFilters","allFilters","child","childFilters","addedFilters","reduce","filterKey","filterValue","isArray","adFilters","matchingFilter","ignoreAddedFilters","fixed","filterValues","slice","scrollIntoView","getAddedFilters","hasFixedFilters","childProps","hasAddedFilters","applyFilter","resetFilter","in","savedFilters","onRemoveFilter","noContent","MultiSelectFilter","setSelected","filteredOptions","op","labelField","allowSearch","keyPrefix","isSelected","allValues","ff","onAllSelected","fff","sel","fv","SingleSelectFilter","StaffMultiSelectFilter","us","showRole","OrderFilterComponent","includeFilter","onSaveFilter","isSavingFilter","searchFilters","approvalUsers","paymentMethods","brandList","prefixKey","getBranches","multiBrand","superviserList","salesPersonList","Button","Error","classes","light","btnlink","capitalize","align","allBrandAndBranch","setBrandAndBranch","getBrandsWithBranches","re","br","getAllBrands","previewData","setPreviewData","getMyQuotes","downlaodQuotations","getQuoteRequest","exportUrl","addToQuote","qdetails","updateMyQuotationQuantity","getQuotationDetails","rejectQuoteRequest","rejectQuotationRequest","Quotation","confirmQuoteSuggest","replaceQuotationItem","removeQuoteSuggest","removeQuotationItem","previewSuggestRequest","getPreviewQuotationSuggestList","confirmSuggestRequest","confirQuotationSuggestList","quotationBulkEstimatePreview","quotationbulkEstimatePreview","FullPageLoader","loaderIcon","ContainerLoader","minHeight","CurrencyFormatter","amount","currency","hostname","Higher","higherRequest","setHigherRequest","higherEstRequest","setHigherEstRequest","higherRejRequest","setHigherRejRequest","getHigherRequest","ind","highOrderID","createdDate","CartConfirmation","setOrderId","setStatus","onSubmit","submitRequest","order_id","dynamicOrderStatus","QuoteConfirmationScreen","isSubmitted","setIsSubmitted","submitRequest2","Customers","lazy","AuthenticateRoute","rest","component","render","needCheckIn","from","RedirectIfAuthenticatedRoute","SetNewPassword","PasswordForm","SignUp","ForgotPassword","NotFound","Categories","SearchResult","Parts","MyAccount","Profile","QuotationDetails","Vehicles","VehicleDetails","Checkout","Terms","StaffMember","StaffProfileDetails","ManageSalesPerson","DuePayments","PaymentHistory","PaymentHistoryDetails","CreditNote","CreditNoteDetails","DueCustomers","Faq","BulkOrder","ScheduleManagement","ScheduleList","NewVisitationRequests","VisitationRequestDetails","SalespersonAccountSettings","ReturnRequests","CreditRequests","CreditDetails","ToDo","DuePaymentDetails","CreditlineExtensionRequestScreen","CreditlineExtensionRequestDetails","ConfirmQuotationScreen","PermissionNeeded","Offers","ChangePassword","Sales","ReportsPayment","ReportSalesPerson","CreditExtensionDetail","PaymentDueDetail","PaymentCollectionDetail","ReportsCustomers","CustomerUsageDetailPage","PartsGroupCustomer","ProductsDeletedList","ConversionRatesDetail","ConversionRatesDetailSale","CustomerDeletedProductCart","StatusDetails","StatusOrderDetails","CutomerGroupDetails","YearPerformanceDetails","VisitReportDetail","SalespersonActivityView","CustomerActivityView","SalespersonActivityTrack","ConversionRatesCustomerOrderDetail","ConversionRatesCustomerOrderSaleDetail","StatusCustomerOrderDetail","PaymentStatus","DuePaymentStatus","IframeGateway","IframeGatewayDuePayments","FrequentBoughtList","Routes","fallback","exact","onlyForSalesperson","CartConfirmationScreen","requiredPermission","quotation_view","ConfirmQuotationOrder","CustomerDetails","PaymentGatewayStatus","IframeGatewayDuePayment","view_duepayments","list_paymenthistory","staff_list","StaffPersonalInfo","list_salespersons","place_order_for_customers","Schedules","view_account_personal_info","return_list","list_creditrequest","report_sales","report_payment","report_customer","CustomerProductDeletedCart","CustomerConversionOrderDetail","CustomerSalesConversionOrderDetail","report_salesperson","SalesPersonReport","SalesPersonActivityView","SalesPersonActivityTrack","StatusReportDetail","StatusOrderDetail","CustomerGroupDetail","CustomerConversionDetails","CustomerSalesConversionDetails","FrequentlyBoughtList","String","prototype","parseFloat","withRouter","getInitialData","useInitiate","dispath","changeLanguage","h1","getElementsByTagName","att","createAttribute","setAttributeNode","newNotificationData","Store","addNotification","insert","container","animationIn","animationOut","dismiss","duration","onScreen","timeOut","newestOnTop","preventDuplicates","position","transitionIn","transitionOut","progressBar","root","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister","convertStringToDate","dateString","NormalFromat","getNormalDateformat","tryFormatDate","MonthNameFormat","DayMonthFormat","DayMonthYearFormat","MonthNameOnly","TimeOnlyFormat","MonthWithDay","NormalDateFormatWithoutHiphons","calculateDaysBetweenDates","date1","date2","date1InMillis","getTime","date2InMillis","round","abs","isValidDate"],"mappings":"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","file":"static/js/main.91813ece.chunk.js","sourcesContent":["// import MyOrders from \"../orders\";\n// import Checkout from \"../orders/Checkout\";\n\nexport enum RouteKeys {\n Login = '/auth/login',\n PasswordForm = '/auth/password',\n SetNewPassword = '/auth/newpassword',\n SignUp = '/auth/signup',\n ForgotPassword = '/auth/forgot-password',\n ChangePassword = '/change-password',\n Home = '/',\n Dashboard = '/dashboard',\n NotFound = '/page-not-found',\n Categories = '/categories',\n SearchResult = '/search',\n Parts = '/parts',\n MyAccount = '/my-account',\n ConfirmCart = '/confirm-cart',\n ConfirmQuote = '/confirm-quote',\n StaffPersonalInfo = '/staff-personal-info',\n Quotation = '/quotation',\n ViewQuotations = '/view-quotations',\n QuotationDetails = '/QuotationDetails',\n ConfirmQuotationOrder = '/confirm-quotation-order',\n catalogue = '/catalogue',\n Orders = '/orders',\n ViewOrders = '/orders',\n Higher = '/higher',\n MyOrders = '/MyOrders',\n MyOrdersDetails = '/MyOrdersDetails',\n Checkout = '/checkout',\n OrderDetail = '/order-detail',\n GeneralSettings = '/general-settings',\n CustomerDetails = '/customer-details',\n Terms = '/terms-of-use',\n StaffMember = '/staff-member',\n ManageSalesPerson = '/manage-sales-persons',\n DuePayments = '/due-payments',\n DuePaymentDetails = '/due-payment-details',\n ToDo = '/to-do',\n PaymentHistory = '/payment-history',\n CreditNote = '/creditnote',\n\n DueCustomers = '/due-payment-customers',\n Faq = '/faq',\n BulkOrder = '/bulk-order',\n Customers = '/customers',\n ScheduleManagement = '/schedule-management',\n CustomerRequests = '/customer-requests',\n ViewCustomerRequests = '/customer-requests',\n Schedules = '/schedules',\n NewVisitationRequests = '/visitation-requests',\n VisitationRequestDetails = '/visitation-requests-details',\n CustomerRequestDetails = '/customer-request-details',\n SalespersonAccountSettings = '/account-settings',\n Returns = '/returns',\n ViewReturns = '/view-returns',\n ReturnDetails = '/return-details',\n CreditRequests = '/credit-requests',\n CreditDetails = '/credit-request-details',\n CreditlineExtensionRequestScreen = '/creditline-extension-request',\n CreditlineExtensionRequestDetails = '/creditline-extension-request-details',\n PermissionNeeded = '/permission-needed',\n Offers = '/offers',\n\n Reports = '/Reports',\n Sales = '/sales',\n ReportsPayment = '/reports-payment',\n CreditExtensionDetail = '/credit-extension-detail',\n PaymentDueDetail = '/payment-due-detail',\n PaymentCollectionDetail = '/payment-collection-detail',\n ReportsCustomers = '/reports-customers',\n // CustomerUsage = '/customer-usage-detail',\n PartsGroupCustomer = '/parts-group-customer-detail',\n ProductsDeletedList = '/products-deleted-list',\n CustomerConversionDetails = '/conversion-rate-detail',\n CustomerSalesConversionDetails = '/conversion-rate-sale-detail',\n CustomerConversionOrderDetail = '/conversion-rate-order-detail',\n CustomerSalesConversionOrderDetail = '/conversion-rate-sale-order-detail',\n CustomerUsageDetailPage = '/customer-usage-detail',\n CustomerProductDeletedCart = '/customer-deleted-cart-products',\n SalesPersonReport = '/sales-person-report',\n StatusReportDetail = '/status-report-detail',\n StatusOrderDetail = '/status-customer-order',\n StatusCustomerOrderDetail ='/status-customer-order-detail',\n CustomerGroupDetail = '/customer-buisness-type',\n YearPerformanceDetails = '/year-performance-detail',\n VisitReportDetail = '/visit-report-details',\n IframeGateway = '/payment-gateway',\n IframeGatewayDuePayment = '/due-payments/payment-gateway',\n PaymentGatewayStatus = '/payment-status',\n DuePaymentStatus = '/due-payments/payment-status',\n SalesPersonActivityTrack = '/sales-person/sales-person-activity-track',\n SalesPersonActivityView = '/sales-person/sales-person-activity-view',\n CustomerActivityView = '/sales-person/customer-activity-view',\n FrequentlyBoughtList = '/frequently-bought-orders-list',\n\n\n Vehicles = '/vehicles',\n VehicleDetails = '/vehicle-details',\n Profile = '/profile',\n}\n\n","import api from '../../../api';\nimport { ICustomer, Roles, User, UserType } from '../../api/models';\nimport { Dict } from '../../models';\nimport {\n createAction,\n createActionWithPayload,\n IAction,\n IActionWithPayload,\n} from '../utils';\nimport { COMMON_RESET_DATA_ACTION, ResetActionType } from './common';\n\n// action types\n// login\nconst AUTH_LOGGED_IN_ACTION = 'AUTH/LOGGED_IN';\n// profile\nconst AUTH_PROFILE_UPDATED_ACTION = 'AUTH/PROFILE_UPDATED_ACTION';\n// logout\nconst AUTH_LOGOUT_ACTION = 'AUTH/LOGOUT';\n// redirect\nconst AUTH_REDIRECT_SAVE_ACTION = 'AUTH/REDIRECT_SAVE';\nconst AUTH_REDIRECT_APPLY_ACTION = 'AUTH/REDIRECT_APPLY';\n\nconst AUTH_GET_ROLES_SUCCESS = 'AUTH/GET_ROLES_SUCCESS';\n\n// Customer checkin\nconst AUTH_CHECK_IN_ACTION = 'AUTH/CHECK_IN';\n\nexport interface AuthState {\n userType?: UserType;\n userToken?: string;\n userStatus?: string;\n checkedInCustomer?: ICustomer;\n salesPersonToken?: string;\n redirectTo?: string;\n apiPermissions?: Dict;\n profile?: User;\n roles?: Roles; \n companyName?: string\n}\n\ntype LoggedInActionType = IActionWithPayload<\n typeof AUTH_LOGGED_IN_ACTION,\n { token: string; userType: UserType; user: User, userStatus: string }\n>;\n\ntype CheckInActionType = IActionWithPayload<\n typeof AUTH_CHECK_IN_ACTION,\n ICustomer\n>;\n\ntype RedirectSaveActionType = IActionWithPayload<\n typeof AUTH_REDIRECT_SAVE_ACTION,\n string\n>;\n\ntype ProfileUpdatedActionType = IActionWithPayload<\n typeof AUTH_PROFILE_UPDATED_ACTION,\n User\n>;\n\ntype LogoutActionType = IAction;\ntype RedirectApplyActionType = IAction;\n\ntype Actions =\n | LoggedInActionType\n | RedirectSaveActionType\n | LogoutActionType\n | RedirectApplyActionType\n | ResetActionType\n | ProfileUpdatedActionType\n | CheckInActionType;\n\n// initial state\nconst initialState: AuthState = {\n redirectTo: '/',\n};\n\nexport const logoutAction = (): LogoutActionType => {\n return createAction(AUTH_LOGOUT_ACTION);\n};\n\nexport const redirectApplyAction = (): RedirectApplyActionType => {\n return createAction(AUTH_REDIRECT_APPLY_ACTION);\n};\n\nexport const redirectSaveAction = (to: string): RedirectSaveActionType => {\n return createActionWithPayload(AUTH_REDIRECT_SAVE_ACTION, to);\n};\n\nexport const getRolesSuccessAction = (roles: Roles): any => {\n return createActionWithPayload(AUTH_GET_ROLES_SUCCESS, roles);\n};\n\nexport const profileUpdatedAction = (\n profile: User\n): ProfileUpdatedActionType => {\n return createActionWithPayload(AUTH_PROFILE_UPDATED_ACTION, profile);\n};\n\nexport const loggedInAction = (data: {\n token: string;\n userType: UserType;\n user: User;\n companyName?: string,\n userStatus: string;\n}): LoggedInActionType => {\n return createActionWithPayload(AUTH_LOGGED_IN_ACTION, data);\n};\n\nexport const checkInAction = (customer: ICustomer): CheckInActionType => {\n return createActionWithPayload(AUTH_CHECK_IN_ACTION, customer);\n};\n\n// reducer\nexport const authUserReducer = (\n state: AuthState = initialState,\n action: any\n): AuthState => {\n switch (action.type) {\n // login\n case AUTH_LOGGED_IN_ACTION:\n api.setUserToken(\n action.payload.userType === UserType.Customer ||\n action.payload.userType === UserType.User\n ? action.payload.token\n : undefined\n );\n api.setSalespersonToken(\n action.payload.userType === UserType.Salesperson\n ? action.payload.token\n : undefined\n );\n return {\n ...state,\n userToken:\n action.payload.userType === UserType.Customer ||\n action.payload.userType === UserType.User\n ? action.payload.token\n : undefined,\n companyName: action.payload.companyName,\n salesPersonToken:\n action.payload.userType === UserType.Salesperson\n ? action.payload.token\n : undefined,\n userType: action.payload.userType,\n profile: action.payload.user,\n userStatus: action.payload.userStatus,\n };\n case AUTH_CHECK_IN_ACTION:\n let userToken: string | undefined = action.payload.userToken;\n if (action.payload.userToken === state.userToken) {\n api.setUserToken();\n userToken = undefined;\n } else {\n api.setUserToken(action.payload.userToken);\n }\n return {\n ...state,\n userToken,\n checkedInCustomer: userToken ? action.payload : undefined,\n };\n case AUTH_GET_ROLES_SUCCESS:\n return { ...state, roles: action.payload };\n\n // logout\n case AUTH_LOGOUT_ACTION:\n api.setUserToken(undefined);\n api.setSalespersonToken(undefined);\n api.setUserType(undefined);\n api.setUserStatus(undefined);\n return {\n ...state,\n userToken: undefined,\n checkedInCustomer: undefined,\n salesPersonToken: undefined,\n profile: undefined,\n userType: undefined,\n userStatus: undefined,\n };\n // profile\n case AUTH_PROFILE_UPDATED_ACTION:\n return {\n ...state,\n profile: action.payload,\n };\n\n case COMMON_RESET_DATA_ACTION:\n return {\n ...initialState,\n };\n\n // redirect\n case AUTH_REDIRECT_SAVE_ACTION:\n return { ...state, redirectTo: action.payload };\n case AUTH_REDIRECT_APPLY_ACTION:\n return { ...state, redirectTo: undefined };\n default:\n return state;\n }\n};\n","import { ICartData } from '../../../models/order-models';\nimport {\n createAction,\n createActionWithPayload,\n IAction,\n IActionWithPayload,\n} from '../utils';\n\n// action types\n// Add\nconst CART_ADD_ACTION = 'CART/ADD_ACTION';\n// Update\nconst CART_UPDATE_ACTION = 'CART/UPDATE_ACTION';\n// GET\nconst CART_GET_ACTION = 'CART/GET_ACTION';\n// RESET\nconst CART_RESET_DATA = 'CART/RESET_DATA';\n// CART OPEN\nconst CART_OPEN = 'CART/OPEN';\n// QUOTE OPEN\nconst QUOTE_OPEN = 'QUOTE/OPEN';\n\nexport interface CartState {\n cart?: ICartData;\n isCartLoading: boolean;\n isCartLoaded: boolean;\n isAdding: boolean;\n cartOpen: boolean;\n quoteOpen: boolean;\n}\n\ntype CartAddActionType = IActionWithPayload;\n\ntype CartGetActionType = IActionWithPayload;\n\ntype CartResetActionType = IAction;\n\ntype Actions = CartAddActionType | CartGetActionType | CartResetActionType;\n\ntype CartOpenType = IActionWithPayload;\n\ntype QuoteOpenType = IActionWithPayload;\n\n// initial state\nconst initialState: CartState = {\n cart: undefined,\n isCartLoading: false,\n isCartLoaded: false,\n isAdding: false,\n cartOpen: false,\n quoteOpen: false,\n};\n\nexport const cartAddAction = (cart: any): CartAddActionType => {\n return createActionWithPayload(CART_ADD_ACTION, cart);\n};\n\nexport const cartGetAction = (cart: ICartData): CartGetActionType => {\n return createActionWithPayload(CART_GET_ACTION, cart);\n};\n\nexport const cartResetAction = (): CartResetActionType => {\n return createAction(CART_RESET_DATA);\n};\n\nexport const cartOpen = (cartopen: boolean): CartOpenType => {\n return createActionWithPayload(CART_OPEN, cartopen);\n};\n\nexport const quoteOpen = (quoteopen: boolean): QuoteOpenType => {\n return createActionWithPayload(QUOTE_OPEN, quoteopen);\n};\n\n// reducer\nexport const cartReducer = (\n state: CartState = initialState,\n action: any\n): CartState => {\n switch (action.type) {\n // login\n case CART_ADD_ACTION:\n return {\n ...state,\n cart: action.payload,\n };\n\n case CART_GET_ACTION:\n return {\n ...state,\n cart: action.payload,\n isCartLoaded: true,\n };\n\n // logout\n case CART_RESET_DATA:\n return {\n ...state,\n cart: undefined,\n };\n\n // Cart Open\n case CART_OPEN:\n return {\n ...state,\n cartOpen: action.payload,\n };\n // Quote Open\n case QUOTE_OPEN:\n return {\n ...state,\n quoteOpen: action.payload,\n };\n default:\n return state;\n }\n};\n","import api from '../../../api';\nimport {\n ISearchParams,\n Model,\n MyList,\n Product,\n ProductFilter,\n ProductResponse,\n User,\n} from '../../api/models';\nimport { Dict } from '../../models';\nimport {\n createAction,\n createActionWithPayload,\n IAction,\n IActionWithPayload,\n} from '../utils';\n\n// GET\nconst PRODUCT_GET_ACTION = 'PRODUCT/GET_ACTION';\nconst PRODUCT_REQUEST_ACTION = 'PRODUCT/REQUEST_ACTION';\nconst PRODUCT_RESET_ACTION = 'PRODUCT/RESET_ACTION';\nconst SET_PRODUCT_SEARCH_PARAM = 'PRODUCT_SEARCH_PARAM';\n\n// GET\nconst PRODUCT_SET_MODEL = 'PRODUCT/SET_MODEL';\nconst PRODUCT_SET_FILTER = 'PRODUCT/SET_FILTER';\nconst PRODUCT_SET_MODEL_PARAM = 'PRODUCT/SET_MODEL_PARAM';\nconst PRODUCT_SET_BRAND_PARAM = 'PRODUCT/SET_BRAND_PARAM';\n\nexport interface ProductState {\n carFilters?: ProductFilter[];\n result?: Product[];\n totalRecord?: number;\n errorMsg?: string;\n status?: string;\n count?: number;\n isProductLoading: boolean;\n isProductLoaded: boolean;\n page: number;\n modelDetails?: Model;\n selectedFilter?: ProductFilter[];\n brand?: string;\n model?: string;\n searchParams?: ISearchParams;\n}\n\ntype ProductGetActionType = IActionWithPayload<\n typeof PRODUCT_GET_ACTION,\n ProductResponse\n>;\n\ntype ProductRequestActionType = IActionWithPayload<\n typeof PRODUCT_REQUEST_ACTION,\n boolean\n>;\n\ntype ProductResetActionType = IAction;\n\ntype ProductSetModelActionType = IActionWithPayload<\n typeof PRODUCT_SET_MODEL,\n Model\n>;\n\ntype ProductSetModelParamActionType = IActionWithPayload<\n typeof PRODUCT_SET_MODEL_PARAM,\n string\n>;\n\ntype ProductSetBrandParamActionType = IActionWithPayload<\n typeof PRODUCT_SET_BRAND_PARAM,\n string\n>;\n\ntype ProductSetFilterActionType = IActionWithPayload<\n typeof PRODUCT_SET_FILTER,\n ProductFilter[]\n>;\n\ntype ProductSearchParamActionType = IActionWithPayload<\n typeof SET_PRODUCT_SEARCH_PARAM,\n ISearchParams\n>;\n\ntype Actions =\n | ProductGetActionType\n | ProductRequestActionType\n | ProductSetModelActionType\n | ProductSetFilterActionType\n | ProductSetModelParamActionType\n | ProductSetBrandParamActionType\n | ProductResetActionType\n | ProductSearchParamActionType;\n\n// initial state\nconst initialState: ProductState = {\n isProductLoading: false,\n isProductLoaded: false,\n page: 1,\n};\n\nexport const productGetAction = (\n response: ProductResponse\n): ProductGetActionType => {\n return createActionWithPayload(PRODUCT_GET_ACTION, response);\n};\n\nexport const productSetModelAction = (\n response?: Model\n): ProductSetModelActionType => {\n return createActionWithPayload(PRODUCT_SET_MODEL, response!);\n};\n\nexport const productSetFilterAction = (\n response?: ProductFilter[]\n): ProductSetFilterActionType => {\n return createActionWithPayload(PRODUCT_SET_FILTER, response!);\n};\n\nexport const productRequestAction = (\n loading?: boolean\n): ProductRequestActionType => {\n return createActionWithPayload(PRODUCT_REQUEST_ACTION, loading);\n};\n\nexport const productResetAction = (): ProductResetActionType => {\n return createAction(PRODUCT_RESET_ACTION);\n};\n\nexport const productSetModelParamAction = (\n response?: string\n): ProductSetModelParamActionType => {\n return createActionWithPayload(PRODUCT_SET_MODEL_PARAM, response!);\n};\n\nexport const productSetBrandParamAction = (\n response?: string\n): ProductSetBrandParamActionType => {\n return createActionWithPayload(PRODUCT_SET_BRAND_PARAM, response!);\n};\n\nexport const setProductSearchParamsAction = (\n params: ISearchParams\n): ProductSearchParamActionType => {\n return createActionWithPayload(SET_PRODUCT_SEARCH_PARAM, params);\n};\n\n// reducer\nexport const productReducer = (\n state: ProductState = initialState,\n action: Actions\n): ProductState => {\n switch (action.type) {\n case PRODUCT_GET_ACTION:\n const products =\n Number(action.payload.page) <= 1\n ? [...action.payload.result]\n : [...(state.result ? state.result : []), ...action.payload.result];\n\n return {\n ...state,\n carFilters: action.payload.carFilters,\n result: products,\n totalRecord: action.payload.totalRecord,\n errorMsg: action.payload.errorMsg,\n count: action.payload.count,\n status: action.payload.status,\n isProductLoading: false,\n isProductLoaded: true,\n page: action.payload.page || 1,\n selectedFilter: action.payload.selectedFilter,\n };\n case PRODUCT_REQUEST_ACTION:\n return {\n ...state,\n isProductLoading: action.payload,\n isProductLoaded: !action.payload,\n };\n case PRODUCT_RESET_ACTION:\n return {\n ...state,\n result: [],\n carFilters: [],\n totalRecord: 0,\n page: 1,\n count:0,\n selectedFilter: [],\n isProductLoading: false,\n isProductLoaded: false,\n };\n case PRODUCT_SET_MODEL:\n return {\n ...state,\n modelDetails: action.payload,\n };\n case PRODUCT_SET_FILTER:\n return {\n ...state,\n selectedFilter: action.payload,\n };\n case PRODUCT_SET_MODEL_PARAM:\n return {\n ...state,\n model: action.payload,\n };\n case PRODUCT_SET_BRAND_PARAM:\n return {\n ...state,\n brand: action.payload,\n };\n case SET_PRODUCT_SEARCH_PARAM:\n return {\n ...state,\n searchParams: action.payload,\n };\n default:\n return state;\n }\n};\n","import { IQuotation, IQuoteDetails } from '../../api/models';\nimport {\n createAction,\n createActionWithPayload,\n IAction,\n IActionWithPayload,\n} from '../utils';\n\n// action types\n// Add\nconst QUOTE_ADD_ACTION = 'QUOTE/ADD_ACTION';\n\nconst QUOTE_SET_LOADER_ACTION = 'QUOTE/set_loader_action';\n// Update\nconst QUOTE_UPDATE_ACTION = 'QUOTE/UPDATE_ACTION';\n// GET\nconst QUOTE_GET_ACTION = 'QUOTE/GET_ACTION';\n// RESET\nconst QUOTE_RESET_DATA = 'QUOTE/RESET_DATA';\n\nexport interface QuoteState {\n // quote?: IQuotation[];\n quoteDetails?: IQuoteDetails;\n isQuoteLoading: boolean;\n isQuoteLoaded: boolean;\n isAdding: boolean;\n}\n\ntype QuoteAddActionType = IActionWithPayload<\n typeof QUOTE_ADD_ACTION,\n IQuoteDetails\n>;\n\ntype QuoteUpdateActionType = IActionWithPayload<\n typeof QUOTE_UPDATE_ACTION,\n IQuoteDetails\n>;\n\ntype QuoteGetActionType = IActionWithPayload<\n typeof QUOTE_GET_ACTION,\n IQuoteDetails\n>;\n\ntype QuoteResetActionType = IAction;\n\ntype QuoteLoaderAction = IActionWithPayload<\n typeof QUOTE_SET_LOADER_ACTION,\n boolean\n>;\n\ntype Actions =\n | QuoteAddActionType\n | QuoteUpdateActionType\n | QuoteGetActionType\n | QuoteResetActionType\n | QuoteLoaderAction;\n\n// initial state\nconst initialState: QuoteState = {\n quoteDetails: undefined,\n isQuoteLoading: false,\n isQuoteLoaded: false,\n isAdding: false,\n};\n\nexport const quoteAddAction = (quote: IQuoteDetails): QuoteAddActionType => {\n return createActionWithPayload(QUOTE_ADD_ACTION, quote);\n};\n\nexport const quoteUpdateAction = (\n quote: IQuoteDetails\n): QuoteUpdateActionType => {\n return createActionWithPayload(QUOTE_UPDATE_ACTION, quote);\n};\n\nexport const quoteGetAction = (quote: IQuoteDetails): QuoteGetActionType => {\n return createActionWithPayload(QUOTE_GET_ACTION, quote);\n};\nexport const quoteSetLoaderAction = (isLoading: boolean): QuoteLoaderAction => {\n return createActionWithPayload(QUOTE_SET_LOADER_ACTION, isLoading);\n};\n\nexport const quoteResetAction = (): QuoteResetActionType => {\n return createAction(QUOTE_RESET_DATA);\n};\n\nexport const quoteReducer = (\n state: QuoteState = initialState,\n action: Actions\n): QuoteState => {\n switch (action.type) {\n case QUOTE_ADD_ACTION:\n return {\n ...state,\n quoteDetails: action.payload,\n };\n case QUOTE_UPDATE_ACTION:\n return {\n ...state,\n quoteDetails: action.payload,\n };\n case QUOTE_GET_ACTION:\n return {\n ...state,\n quoteDetails: action.payload,\n isQuoteLoaded: true,\n };\n case QUOTE_SET_LOADER_ACTION:\n return {\n ...state,\n isQuoteLoading: action.payload,\n };\n\n // logout\n case QUOTE_RESET_DATA:\n return {\n ...state,\n quoteDetails: undefined,\n };\n default:\n return state;\n }\n};\n","import api from '../../../api';\nimport { TabFilters } from '../../../containers/vehicles/vehicle-listing-screen';\nimport {\n ICheckoutData,\n IDeliveryAddress,\n IOrderDetails,\n IOrderFilterData,\n IPreviewData,\n} from '../../../models/order-models';\nimport { createActionWithPayload, IActionWithPayload } from '../utils';\nexport interface OrderState {\n selectedOrder?: {\n details?: IOrderDetails;\n previewDetails?: IPreviewData;\n };\n checkout?: {\n checkoutData?: ICheckoutData;\n };\n filterData?: IOrderFilterData;\n isLoading: boolean;\n selectedTab?: TabFilters;\n}\n\nconst initialState = {\n isLoading: false,\n};\n\n// reducer\nexport const orderReducer = (\n state: OrderState = initialState,\n action: IActionWithPayload\n): OrderState => {\n switch (action.type) {\n // login\n case OrderActions.getOrderDetailsSuccess:\n return {\n ...state,\n selectedOrder: { details: action.payload },\n };\n case OrderActions.getPreviewDetailsSuccess:\n return {\n ...state,\n selectedOrder: {\n ...state.selectedOrder,\n previewDetails: action.payload,\n },\n };\n case OrderActions.getCheckoutDataSuccess:\n return {\n ...state,\n checkout: {\n ...state.checkout,\n checkoutData: action.payload,\n },\n };\n case OrderActions.addCheckoutDeliveryAddress:\n const checkoutData = state?.checkout?.checkoutData ?? ({} as any);\n const checkoutDataClone = { ...checkoutData };\n if (!checkoutDataClone?.deliveryAddresses) {\n checkoutDataClone.deliveryAddresses = [];\n }\n checkoutDataClone.deliveryAddresses = action.payload;\n return {\n ...state,\n checkout: {\n ...state.checkout,\n checkoutData: checkoutDataClone,\n },\n };\n case OrderActions.clearPreviewDetails:\n return {\n ...state,\n selectedOrder: {\n ...state.selectedOrder,\n previewDetails: undefined,\n },\n };\n case OrderActions.getOrderFilterDataSuccess:\n return {\n ...state,\n filterData: action.payload,\n };\n case OrderActions.setOrderLoader:\n return {\n ...state,\n isLoading: action.payload,\n };\n\n case OrderActions.setOrderDetailTabSelected:\n return {\n ...state,\n selectedTab: action.payload,\n };\n\n default:\n return state;\n }\n};\n\nexport const OrderActions = {\n getOrderDetailsSuccess: `Order-get-order-details-success`,\n getPreviewDetailsSuccess: `Order-get-preview-details-success`,\n getOrderFilterDataSuccess: `Order-get-filter-data-success`,\n getCheckoutDataSuccess: `Order-get-checkout=data-success`,\n addCheckoutDeliveryAddress: `Order-add-checkout-delivery-address`,\n clearPreviewDetails: `Order-clear-preview-details`,\n setOrderLoader: `Order-set-order-loader`,\n setOrderDetailTabSelected: `Order-set-tab-selected`,\n};\n\nexport const onOrderDetailsSuccess = (\n details: IOrderDetails\n): IActionWithPayload => {\n return createActionWithPayload(OrderActions.getOrderDetailsSuccess, details);\n};\n\nexport const onFilterDataSuccess = (\n filterData: IOrderFilterData\n): IActionWithPayload => {\n return createActionWithPayload(\n OrderActions.getOrderFilterDataSuccess,\n filterData\n );\n};\n\nexport const onCheckoutDataSuccess = (\n details: ICheckoutData\n): IActionWithPayload => {\n return createActionWithPayload(OrderActions.getCheckoutDataSuccess, details);\n};\n\nexport const onAddCheckoutDeliveryAddress = (\n details: IDeliveryAddress[]\n): IActionWithPayload => {\n return createActionWithPayload(\n OrderActions.addCheckoutDeliveryAddress,\n details\n );\n};\n\nexport const onPreviewDetailsSuccess = (\n details: IPreviewData\n): IActionWithPayload => {\n return createActionWithPayload(\n OrderActions.getPreviewDetailsSuccess,\n details\n );\n};\nexport const onClearPreviewDetails = (): IActionWithPayload => {\n return createActionWithPayload(OrderActions.clearPreviewDetails, null);\n};\n\nexport const setOrderLoader = (isLoading: boolean): IActionWithPayload => {\n return createActionWithPayload(OrderActions.setOrderLoader, isLoading);\n};\n\nexport const setOrderDetailSelectedTab = (\n tab?: TabFilters\n): IActionWithPayload => {\n return createActionWithPayload(OrderActions.setOrderDetailTabSelected, tab);\n};\n","import { INotificationItem } from '../../../models/order-models';\nimport { createActionWithPayload, IActionWithPayload } from '../utils';\nexport interface NotificationState {\n notifications: INotificationItem[];\n isPopupOpened?: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n}\n\nconst initialState: NotificationState = {\n notifications: [],\n isLoading: false,\n isLoaded: false,\n isPopupOpened: false,\n};\n\n// reducer\nexport const notificationReducer = (\n state: NotificationState = initialState,\n action: IActionWithPayload\n): NotificationState => {\n switch (action.type) {\n case NotificationActions.loadNotificationSuccess:\n return {\n ...state,\n notifications: action.payload,\n isLoaded: true,\n };\n case NotificationActions.setNotificationLoader:\n return {\n ...state,\n isLoading: action.payload,\n };\n case NotificationActions.setNotificationPopupOpen:\n return {\n ...state,\n isPopupOpened: action.payload,\n };\n case NotificationActions.NotificationMarkAllAdRead:\n const notifications = state.notifications ?? [];\n const clone = [...notifications];\n clone.forEach((p) => (p.isRead = true));\n return {\n ...state,\n notifications: clone,\n };\n\n case NotificationActions.NotificationAddNewItem:\n const existingNotifications = [...state.notifications];\n existingNotifications.unshift(action.payload);\n return {\n ...state,\n notifications: existingNotifications,\n };\n\n default:\n return state;\n }\n};\n\nexport const NotificationActions = {\n loadNotificationSuccess: `Notification-load-notifications-success`,\n setNotificationLoader: `Notification-set-loader`,\n NotificationMarkAllAdRead: `Notification-mark-all-as-read`,\n NotificationAddNewItem: `Notification-add-new-item`,\n setNotificationPopupOpen: `Notification-set-notification-popup-open`,\n};\n\nexport const onGetNotificationSuccessAction = (\n items: INotificationItem[]\n): IActionWithPayload => {\n return createActionWithPayload(\n NotificationActions.loadNotificationSuccess,\n items\n );\n};\n\nexport const setLoaderForNotificationAction = (\n isLoading: boolean\n): IActionWithPayload => {\n return createActionWithPayload(\n NotificationActions.setNotificationLoader,\n isLoading\n );\n};\n\nexport const markAllAsReadAction = (): IActionWithPayload => {\n return createActionWithPayload(\n NotificationActions.NotificationMarkAllAdRead,\n null\n );\n};\n\nexport const addNewNotificationAction = (\n notification: INotificationItem\n): IActionWithPayload => {\n return createActionWithPayload(\n NotificationActions.NotificationAddNewItem,\n notification\n );\n};\n\nexport const setNotificationPopupVisibilityAction = (\n isOpen: boolean\n): IActionWithPayload => {\n return createActionWithPayload(\n NotificationActions.setNotificationPopupOpen,\n isOpen\n );\n};\n","import api from '../../../api';\nimport {\n Branch,\n CartDetails,\n IBrandBranchData,\n QuoteDetails,\n} from '../../../models/brand';\nimport { createActionWithPayload, IActionWithPayload } from '../utils';\n\n// action types\n// Add\n\nconst BRANDANDBRANCH_GET_ACTION = 'BRANDANDBRANCH/GET_ACTION';\nconst BRANDANDBRANCH_BRAND_SELECT_ACTION = 'BRANDANDBRANCH/BRAND_SELECT';\nconst BRANDANDBRANCH_BRANCH_SELECT_ACTION = 'BRANDANDBRANCH/BRANCH_SELECT';\nconst BRANDANDBRANCH_SET_LOADER_ACTION = 'BRANDANDBRANCH_SET_LOADER_ACTION';\nconst BRANDANDBRANCH_CARTDATA_UPDATE_ACTION = 'BRANDANDBRANCH/CARTDATA_UPDATE';\nconst BRANDANDBRANCH_QUOTDATA_UPDATE_ACTION = 'BRANDANDBRANCH/QUOTDATA_UPDATE';\n\nexport interface BrandBranchState {\n brandAdBranch: IBrandBranchData[];\n isBrandAdBranchLoading: boolean;\n isBrandAdBranchLoaded: boolean;\n isAdding: boolean;\n selectedBrand?: IBrandBranchData;\n selectedBranch?: Branch;\n}\n\ntype BrandAndBranchGetActionType = IActionWithPayload<\n typeof BRANDANDBRANCH_GET_ACTION,\n IBrandBranchData[]\n>;\ntype BrandSelectionActionType = IActionWithPayload<\n typeof BRANDANDBRANCH_BRAND_SELECT_ACTION,\n IBrandBranchData\n>;\ntype BranchSelectionActionType = IActionWithPayload<\n typeof BRANDANDBRANCH_BRANCH_SELECT_ACTION,\n Branch\n>;\n\ntype BranchLoaderActionType = IActionWithPayload<\n typeof BRANDANDBRANCH_SET_LOADER_ACTION,\n boolean\n>;\n\ntype BranchCartUpdateActionType = IActionWithPayload<\n typeof BRANDANDBRANCH_CARTDATA_UPDATE_ACTION,\n { cartDetails: CartDetails; brandId: string; branchId: string }\n>;\n\ntype BranchQuotUpdateActionType = IActionWithPayload<\n typeof BRANDANDBRANCH_QUOTDATA_UPDATE_ACTION,\n { quotDetails: QuoteDetails; brandId: string; branchId: string }\n>;\n\ntype Actions =\n | BrandAndBranchGetActionType\n | BrandSelectionActionType\n | BranchSelectionActionType\n | BranchCartUpdateActionType\n | BranchQuotUpdateActionType\n | BranchLoaderActionType;\n\n// initial state\nconst initialState: BrandBranchState = {\n brandAdBranch: [],\n isBrandAdBranchLoading: false,\n isBrandAdBranchLoaded: false,\n isAdding: false,\n selectedBrand: undefined,\n selectedBranch: undefined,\n};\n\nexport const brandAndBranchGetAction = (\n brandAdBranch: IBrandBranchData[]\n): BrandAndBranchGetActionType => {\n return createActionWithPayload(BRANDANDBRANCH_GET_ACTION, brandAdBranch);\n};\n\nexport const brandSelectAction = (\n brand: IBrandBranchData\n): BrandSelectionActionType => {\n return createActionWithPayload(BRANDANDBRANCH_BRAND_SELECT_ACTION, brand);\n};\n\nexport const brandSetLoaderAction = (\n isLoading: boolean\n): BranchLoaderActionType => {\n return createActionWithPayload(BRANDANDBRANCH_SET_LOADER_ACTION, isLoading);\n};\n\nexport const branchSelectAction = (\n branch: Branch\n): BranchSelectionActionType => {\n return createActionWithPayload(BRANDANDBRANCH_BRANCH_SELECT_ACTION, branch);\n};\n\nexport const branchCartUpadateAction = (\n cartDetails: any\n): BranchCartUpdateActionType => {\n return createActionWithPayload(\n BRANDANDBRANCH_CARTDATA_UPDATE_ACTION,\n cartDetails\n );\n};\n\nexport const branchQuotUpdateAction = (\n quotDetails: any\n): BranchQuotUpdateActionType => {\n return createActionWithPayload(\n BRANDANDBRANCH_QUOTDATA_UPDATE_ACTION,\n quotDetails\n );\n};\n\n// reducer\nexport const brandBranchReducer = (\n state: BrandBranchState = initialState,\n action: Actions\n): BrandBranchState => {\n switch (action.type) {\n case BRANDANDBRANCH_GET_ACTION:\n const selectedBrand = state?.selectedBrand\n ? action.payload.find(\n (brand: IBrandBranchData) =>\n brand.brandID === state?.selectedBrand?.brandID\n ) ?? action.payload[0]\n : action.payload[0];\n const selectedBranch = selectedBrand\n ? selectedBrand?.branches?.find(\n (branch: Branch) =>\n branch.warehouseID === state?.selectedBranch?.warehouseID\n ) ?? selectedBrand?.branches[0]\n : action.payload[0]?.branches[0];\n api.setBrandID(selectedBrand?.brandID);\n api.setBranchID(selectedBranch?.warehouseID);\n return {\n ...state,\n brandAdBranch: action.payload,\n isBrandAdBranchLoaded: true,\n isBrandAdBranchLoading: false,\n selectedBrand,\n selectedBranch,\n };\n case BRANDANDBRANCH_BRAND_SELECT_ACTION:\n api.setBrandID(action?.payload?.brandID);\n api.setBranchID(action.payload?.branches[0]?.warehouseID ?? '');\n return {\n ...state,\n selectedBrand: action?.payload,\n selectedBranch: action.payload?.branches[0],\n };\n case BRANDANDBRANCH_SET_LOADER_ACTION:\n return {\n ...state,\n isBrandAdBranchLoading: action.payload,\n };\n case BRANDANDBRANCH_BRANCH_SELECT_ACTION:\n api.setBranchID(action.payload.warehouseID);\n return {\n ...state,\n selectedBranch: action.payload,\n };\n case BRANDANDBRANCH_CARTDATA_UPDATE_ACTION:\n const brands = state.brandAdBranch;\n const sBrand = state.selectedBrand;\n const brandIndx = state.brandAdBranch?.findIndex(\n (item) => item.brandID === action.payload.brandId\n );\n if (brandIndx !== undefined) {\n const branchIndx = brands[brandIndx]?.branches.findIndex(\n (itm) => itm.warehouseID === action.payload.branchId\n );\n if (\n branchIndx !== undefined &&\n brands[brandIndx]?.branches[branchIndx]\n ) {\n brands[brandIndx].branches[branchIndx].cartDetails =\n action.payload.cartDetails;\n if (sBrand) {\n sBrand.branches[branchIndx].cartDetails = {\n ...action.payload.cartDetails,\n };\n }\n }\n }\n const selectedBr = state.selectedBranch;\n if (selectedBr) {\n selectedBr.cartDetails = action.payload.cartDetails;\n }\n return {\n ...state,\n brandAdBranch: brands,\n selectedBrand: sBrand,\n selectedBranch: selectedBr,\n };\n case BRANDANDBRANCH_QUOTDATA_UPDATE_ACTION:\n const brnds = state.brandAdBranch;\n const sqBrand = state.selectedBrand;\n const brndIndx = state.brandAdBranch?.findIndex(\n (item) => item.brandID === action.payload.brandId\n );\n if (brndIndx !== undefined) {\n const branchIndx = brnds[brndIndx]?.branches.findIndex(\n (itm) => itm.warehouseID === action.payload.branchId\n );\n if (branchIndx !== undefined && brnds[brndIndx]?.branches[branchIndx]) {\n brnds[brndIndx].branches[branchIndx].quotDetails =\n action.payload.quotDetails;\n if (sqBrand) {\n sqBrand.branches[branchIndx].quotDetails =\n action.payload.quotDetails;\n }\n }\n }\n const selectedBrn = state.selectedBranch;\n if (selectedBrn) {\n selectedBrn.quotDetails = action.payload.quotDetails;\n }\n\n return {\n ...state,\n brandAdBranch: brnds,\n selectedBrand: sqBrand,\n selectedBranch: selectedBrn,\n };\n\n default:\n return state;\n }\n};\n","import api from '../../../api';\n\nimport { createActionWithPayload, IActionWithPayload } from '../utils';\n\n// action types\n// Add\n\nconst COUNTRIES_GET_ACTION = 'COUNTRIES/GET_ACTION';\n\nconst COUNTRIES_SET_LOADER_ACTION = 'COUNTRIES_SET_LOADER_ACTION';\n\nexport interface CountriesState {\n countries: any;\n isCountriesLoading: boolean;\n isCountriesLoaded: boolean;\n}\n\ntype CountriesGetActionType = IActionWithPayload<\n typeof COUNTRIES_GET_ACTION,\n any\n>;\n\n\n\ntype BranchLoaderActionType = IActionWithPayload<\n typeof COUNTRIES_SET_LOADER_ACTION,\n boolean\n>;\n\n\ntype Actions =\n | CountriesGetActionType\n | BranchLoaderActionType;\n\n// initial state\nconst initialState: CountriesState = {\n countries: [],\n isCountriesLoading: false,\n isCountriesLoaded: false,\n \n};\n\nexport const countriesGetAction = (\n countries: any\n): CountriesGetActionType => {\n return createActionWithPayload(COUNTRIES_GET_ACTION, countries);\n};\n\n\n// reducer\nexport const countriesReducer = (\n state: CountriesState = initialState,\n action: Actions\n): CountriesState => {\n switch (action.type) {\n case COUNTRIES_GET_ACTION:\n return {\n ...state,\n countries: action.payload,\n isCountriesLoaded: true,\n };\n\n default:\n return state;\n }\n};\n","import { createActionWithPayload, IActionWithPayload } from '../utils';\nimport { IBranch } from '../../../models/branch';\n\n// action types\n// Add\n\nconst USER_TO_BRAND_GET_ACTION = 'USER_TO_BRAND/GET_ACTION';\n\nconst USER_TO_BRAND_SET_LOADER_ACTION = 'USER_TO_BRAND_SET_LOADER_ACTION';\n\nexport interface UserToBrandState {\n userToBrand: any;\n isUserToBrandLoading: boolean;\n isUserToBrandLoaded: boolean;\n}\n\ntype UserToBrandGetActionType = IActionWithPayload<\n typeof USER_TO_BRAND_GET_ACTION,\n any\n>;\n\ntype BranchLoaderActionType = IActionWithPayload<\n typeof USER_TO_BRAND_SET_LOADER_ACTION,\n boolean\n>;\n\ntype Actions = UserToBrandGetActionType | BranchLoaderActionType;\n\n// initial state\nconst initialState: UserToBrandState = {\n userToBrand: [],\n isUserToBrandLoading: false,\n isUserToBrandLoaded: false,\n};\n\nexport const userToBrandGetAction = (\n userToBrand: any\n): UserToBrandGetActionType => {\n return createActionWithPayload(USER_TO_BRAND_GET_ACTION, userToBrand);\n};\n\n// reducer\nexport const userToBrandReducer = (\n state: UserToBrandState = initialState,\n action: Actions\n): UserToBrandState => {\n switch (action.type) {\n case USER_TO_BRAND_GET_ACTION:\n const branch = action.payload;\n branch.forEach((user: IBranch) => {\n user.label = user.brandName + ' ' + user.warehouseName;\n user.value = user.warehouseID;\n });\n return {\n ...state,\n userToBrand: branch,\n isUserToBrandLoaded: true,\n };\n\n default:\n return state;\n }\n};\n","import api from '../../../api';\nimport { createActionWithPayload, IActionWithPayload } from '../utils';\n\nconst SETTINGS_CHANGE_LANGUAGE = 'SETTINGS/CHANGE_LANGUAGE';\n\nexport interface ILocale {\n languageID: number;\n languageName: string;\n languageKey: string;\n isRtl: boolean;\n}\n\nexport class EnglishLocale implements ILocale {\n languageID: number = 1;\n languageName: string = 'English';\n languageKey: string = 'en';\n isRtl: boolean = false;\n}\nexport class ArabicLocale implements ILocale {\n languageID: number = 3;\n languageName: string = 'عربي';\n languageKey: string = 'ar';\n isRtl: boolean = true;\n}\n\nexport interface SettingsState {\n locale: ILocale;\n}\n\ntype ChangeLanguageActionType = IActionWithPayload<\n typeof SETTINGS_CHANGE_LANGUAGE,\n number\n>;\n\ntype Actions = ChangeLanguageActionType;\n\nconst initialState: SettingsState = {\n locale: new EnglishLocale(),\n};\n\nexport const changeLanguageAction = (languageID: number) => {\n return createActionWithPayload(SETTINGS_CHANGE_LANGUAGE, languageID);\n};\n\n// reducer\nexport const settingsReducer = (\n state: SettingsState = initialState,\n action: Actions\n): SettingsState => {\n switch (action.type) {\n case SETTINGS_CHANGE_LANGUAGE:\n let locale: ILocale;\n switch (action.payload) {\n case 1:\n locale = new EnglishLocale();\n break;\n case 3:\n locale = new ArabicLocale();\n break;\n default:\n locale = new EnglishLocale();\n }\n api.setLanguageID(action.payload);\n return {\n ...state,\n locale,\n };\n default:\n return state;\n }\n};\n","// import { clearDataAction, logoutAction } from './reducers';\nimport api from '../../api';\nimport { AuthService } from '../api';\nimport { unauthorizedApiResponseInterceptor } from '../api/interceptor';\nimport { UserType } from '../api/models';\n\nconst initialize = (store: any, setToken: (token?: string) => void) => {\n const state = store.getState();\n unauthorizedApiResponseInterceptor(() => {\n // store.dispatch(logoutAction);\n // store.dispatch(clearDataAction());\n api.setUserToken(undefined);\n api.setSalespersonToken(undefined);\n api.setUserType(undefined);\n api.setUserStatus(undefined);\n // window.location.reload();\n }, [AuthService.loginUrl]);\n\n // setToken(state.authUser.token);\n api.setBrandID(state.brandAndBranch?.selectedBrand?.brandID);\n api.setBranchID(state.brandAndBranch?.selectedBranch?.warehouseID);\n if (state.authUser.userToken) {\n api.setUserToken(state.authUser.userToken);\n // store.dispatch(userActions.fetchProfile());\n }\n if (state.authUser.salesPersonToken) {\n api.setSalespersonToken(state.authUser.salesPersonToken);\n }\n if (state.authUser.userType) {\n api.setUserType(state.authUser.userType);\n }\n if (state.authUser.userStatus) {\n api.setUserStatus(state.authUser.userStatus);\n }\n};\n\nexport default initialize;\n","import { loadingBarReducer } from 'react-redux-loading-bar';\nimport { reducer as toastrReducer } from 'react-redux-toastr';\nimport { combineReducers } from 'redux';\n\nimport {\n authUserReducer,\n cartReducer,\n productReducer,\n quoteReducer,\n orderReducer,\n brandBranchReducer,\n settingsReducer,\n countriesReducer,\n userToBrandReducer,\n notificationReducer,\n} from './reducers';\nimport { State } from './interfaces';\n\nexport const rootReducer = combineReducers({\n authUser: authUserReducer,\n cart: cartReducer,\n quote: quoteReducer,\n product: productReducer,\n toastr: toastrReducer,\n loadingBar: loadingBarReducer,\n order: orderReducer,\n brandAndBranch: brandBranchReducer,\n countries: countriesReducer,\n userToBrand: userToBrandReducer,\n notification: notificationReducer,\n settings: settingsReducer,\n});\n","/// \n\nimport { loadingBarMiddleware } from 'react-redux-loading-bar';\nimport { applyMiddleware, createStore, compose } from 'redux';\nimport thunk from 'redux-thunk';\n\nimport { persistReducer, persistStore, PersistConfig } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage'; // defaults to localStorage for web\n\nimport initialize from './initializeStore';\nimport { rootReducer } from './rootReducer';\nimport { composeWithDevTools } from 'redux-devtools-extension/developmentOnly';\nimport { State } from './interfaces';\n\nexport const configureStore = (\n setToken: (token?: string) => void,\n whitelistReducers?: string[]\n) => {\n const persistConfig: PersistConfig = {\n key: 'root',\n storage,\n whitelist: [\n 'authUser',\n 'cart',\n 'brandAndBranch',\n 'order',\n 'settings',\n ...(whitelistReducers || []),\n ],\n };\n\n const persistedReducer = persistReducer(persistConfig, rootReducer);\n\n const store = createStore(\n persistedReducer,\n process.env.NODE_ENV === 'production'\n ? compose(applyMiddleware(thunk, loadingBarMiddleware()))\n : composeWithDevTools(applyMiddleware(thunk, loadingBarMiddleware()))\n );\n\n if (process.env.NODE_ENV === 'development' && module.hot) {\n // Enable Webpack hot module replacement for reducers\n module.hot.accept('./rootReducer', () => {\n store.replaceReducer(rootReducer as any);\n });\n }\n\n const persistor = persistStore(store, null, () => {\n initialize(store, setToken);\n });\n return { store, persistor };\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, useHistory } from 'react-router-dom';\nimport {\n ArabicLocale,\n cartResetAction,\n changeLanguageAction,\n EnglishLocale,\n ILocale,\n logoutAction,\n State,\n} from '../../core/store';\nimport { RouteKeys } from '../routes/route-keys';\nimport { UserType, UserPermissionTypes } from '../../core/api/models';\nimport noImg from '../../assets/images/no-company.png';\nimport './SideMenu.scss';\nimport { useAuth } from '../../core/hooks';\nimport { translate } from '../../utils/text-utils';\nimport { useNotifications } from '../../core/hooks/useNotifications';\ninterface CustomProps {\n isExpand?: boolean;\n expandToggle: () => void;\n menuVisible?: boolean;\n}\n\nenum subMenus {\n payment = 'payment',\n settings = 'settings',\n}\n\nconst SideMenuMob: React.FunctionComponent = (\n props: CustomProps\n) => {\n const authState = useSelector((state: State) => state.authUser);\n const [subMenu, toggleSubMenu] = React.useState(null);\n const { hasRole } = useAuth();\n const subMenuSelection = (e: any, selected: subMenus) => {\n e.preventDefault();\n if (selected === subMenu) {\n toggleSubMenu(null);\n } else {\n toggleSubMenu(selected);\n }\n };\n const settings = useSelector((state: State) => state.settings);\n const dispatch = useDispatch();\n const history = useHistory();\n const { notificationState } = useNotifications();\n const unreadNotificationCount =\n notificationState.notifications?.filter((p) => !p.isRead)?.length ?? 0;\n const onLanguageChange = (language: ILocale) => {\n // i18n.changeLanguage(language.languageKey);\n dispatch(changeLanguageAction(language.languageID));\n // const h1 = document.getElementsByTagName('html')[0]; // Get the first

element in the document\n // const att = document.createAttribute('dir'); // Create a \"class\" attribute\n // att.value = language.isRtl ? 'rtl' : 'ltr'; // Set the value of the class attribute\n // h1.setAttributeNode(att);\n setTimeout(() => {\n window.location.reload();\n }, 100);\n };\n return (\n <>\n \n
\n
\n
\n
\n \n
\n\n
\n
\n {authState?.profile?.name}\n
\n

\n {authState?.profile?.email}\n

\n
\n
\n
\n
\n
\n
\n {authState?.userType === UserType.Customer && (\n window.location.reload()}\n className=\"d-flex align-items-center text-gray-700 mb-3\"\n >\n \n \n \n \n \n \n \n \n {translate('sideMenu.dashboard')}\n \n \n )}\n {hasRole(UserPermissionTypes.customer_orders) && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n Vehicles\n \n \n )}\n\n {authState.userType !== 'Salesperson' && (\n <>\n \n \n Manage Staff\n \n \n \n )}\n {hasRole(UserPermissionTypes.quotation_list) && (\n \n \n Profile\n \n \n )}\n \n \n {translate('common.changePassword')}\n \n \n
\n\n
\n {\n dispatch(logoutAction());\n dispatch(cartResetAction());\n history.push(RouteKeys.Login);\n }}\n >\n \n {translate('sideMenu.logOut')}\n \n \n
\n
\n \n \n );\n};\n\nexport default SideMenuMob;\n","import React from 'react';\nimport Header from '.';\ninterface CustomProps {\n menuVisible?: boolean;\n mobHeader?: boolean;\n showBrand?: boolean;\n}\n\nexport const UserHeader = (props: CustomProps) => {\n return (\n \n );\n};\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { Component } from 'react';\nimport Button from '../../components/button';\nimport '../../assets/sass/common.scss';\nimport '../../assets/logo/sass/logo.scss';\n\nimport LogoImage from '../../assets/logo/images/logo.svg';\nimport { Link } from 'react-router-dom';\ninterface CustomState {\n activeClass: string;\n}\nconst domain = '/';\n\nclass HeaderCanvas extends Component<{}, CustomState> {\n constructor(props: any) {\n super(props);\n this.state = {\n activeClass: '',\n };\n }\n\n render() {\n return (\n
\n
\n
\n
\n
\n \n \"Logo\"\n \n
\n {/*
\n \n New Account\n \n
*/}\n
\n
\n
\n
\n );\n }\n}\n\nexport default HeaderCanvas;\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n branchCartUpadateAction,\n branchQuotUpdateAction,\n branchSelectAction,\n brandSelectAction,\n State,\n} from '../../core/store';\nimport { useBrandsAndBranches } from '../../core/hooks/useBrandsAndBranches';\nimport { useCart } from '../../core/hooks';\nimport { useQuotes } from '../../core/hooks/useQuotes';\nimport {\n Branch,\n CartDetails,\n IBrandBranchData,\n QuoteDetails,\n} from '../../models/brand';\nimport Modal from '../../components/modal';\nimport { useHistory } from 'react-router-dom';\nimport { RouteKeys } from '../routes/route-keys';\nimport { translate } from '../../utils/text-utils';\nimport { decodeHtmlEntities } from '../../utils/common';\n\ninterface CustomProps {\n isOpen: boolean;\n togglePopup: () => void;\n selectedBrand?: IBrandBranchData;\n}\n\nconst BrandSelection: React.FunctionComponent = (\n props: CustomProps\n) => {\n const history = useHistory();\n const { brandState } = useBrandsAndBranches();\n const { cart } = useCart();\n const { quoteState } = useQuotes();\n const path = window.location.pathname.split('/')[1];\n const [showConfirmBox, setShowConfirmBox] = useState(false);\n const [brandDropdown, toggleBrandDropdown] = React.useState(false);\n const [searchTerm, setSearchTerm] = React.useState('');\n const [selectedBrand, setSelectedBrand] = useState();\n // const [list, setList] = React.useState(\n // brandState?.selectedBrand?.branches ?? []\n // );\n\n const list = searchTerm\n ? brandState?.selectedBrand?.branches?.filter((branch) =>\n branch.warehouseName?.match(new RegExp(searchTerm, 'si'))\n )\n : brandState?.selectedBrand?.branches;\n\n const dispatch = useDispatch();\n\n // useEffect(() => {\n // const list = searchTerm\n // ? brandState?.selectedBrand?.branches?.filter((branch) =>\n // branch.warehouseName?.match(new RegExp(searchTerm, 'si'))\n // )\n // : brandState?.selectedBrand?.branches;\n // setList(list ?? []);\n // }, [searchTerm, brandState?.selectedBrand?.branches]);\n\n useEffect(() => {\n if (cart?.cartID) {\n const cartDetails: CartDetails = {\n cartID: cart.cartID,\n orderQty: cart.orderQty,\n orderTotalAmount: `${cart.orderTotalAmount}`,\n };\n\n dispatch(\n branchCartUpadateAction({\n cartDetails,\n brandId: cart.brandID,\n branchId: cart.branch_id,\n })\n );\n }\n }, [cart?.cartID, cart?.orderQty]);\n\n useEffect(() => {\n if (props?.selectedBrand) {\n const addBrand = brandState.brandAdBranch?.find(\n (item: any) => item?.brandID === props?.selectedBrand?.brandID\n );\n dispatch(brandSelectAction(addBrand));\n }\n }, [props?.selectedBrand]);\n\n useEffect(() => {\n const quotDetails: QuoteDetails = {\n quotationRequestID: '',\n totalQty: `${quoteState?.quoteDetails?.items?.length}`,\n };\n dispatch(\n branchQuotUpdateAction({\n quotDetails,\n brandId: quoteState?.quoteDetails?.brandID ?? '',\n branchId: quoteState?.quoteDetails?.branchID ?? '',\n })\n );\n }, [quoteState?.quoteDetails]);\n\n const confirmModal = () => {\n return (\n \n
\n {\n setShowConfirmBox(false);\n }}\n >\n
\n
\n
\n
\n {translate('Header.selectingDiffernetBrand')}\n
\n
\n\n
\n
\n {\n setShowConfirmBox(false);\n }}\n className=\"btn btn-outline-primary py-2 font-weight-medium font-md px-4\"\n >\n {translate('Header.Cancel')}\n \n
\n
\n {\n setShowConfirmBox(false);\n if (selectedBrand) {\n dispatch(brandSelectAction(selectedBrand));\n setSelectedBrand(undefined);\n history.push(RouteKeys.Home);\n }\n }}\n className=\"btn btn-primary py-2 font-weight-medium font-md px-4\"\n >\n {translate('Header.confirmProceed')}\n \n
\n
\n
\n
\n );\n };\n return (\n <>\n \n {\n props.togglePopup();\n toggleBrandDropdown(false);\n }}\n >\n
\n \n {translate('Header.selectBrand')}\n \n
\n toggleBrandDropdown(!brandDropdown)}\n >\n {brandState?.selectedBrand?.brandName ?? 'Select'}\n
\n {brandState?.selectedBrand?.brandIcon && (\n \n )}\n \n
\n
\n {brandDropdown && (\n
\n {brandState.brandAdBranch?.map((brand, index) => {\n return (\n {\n // setBrandSelect({\n // selected: 'Ford',\n // selectedImage: FordLogoSm,\n // });\n if (!['parts', 'search', 'categories'].includes(path)) {\n dispatch(brandSelectAction(brand));\n toggleBrandDropdown(!brandDropdown);\n } else {\n if (\n brandState.selectedBrand?.brandID !== brand.brandID\n ) {\n setSelectedBrand(brand);\n setShowConfirmBox(true);\n props.togglePopup();\n } else {\n props.togglePopup();\n }\n }\n }}\n >\n {brand.brandName ?? ''}\n \n
\n );\n })}\n
\n )}\n \n \n
\n \n {translate('Header.cartWillBeDifferent')}\n
\n
\n
\n \n setSearchTerm(e.target.value)}\n />\n
\n
\n {brandState?.selectedBrand?.brandName ?? ''}{' '}\n {translate('Header.Branches')}\n
\n
\n {list?.map((branch, index) => {\n return (\n {\n dispatch(branchSelectAction(branch));\n props.togglePopup();\n }}\n >\n
\n

\n {translate('Header.FPDI')}\n

\n

\n {decodeHtmlEntities(branch?.warehouseName)}\n

\n
\n
\n

\n \n {translate('Header.InCart')}\n {' '}\n {branch?.cartDetails?.orderQty ?? 0}{' '}\n {translate('Header.Items')} ({translate('Header.SAR')}{' '}\n {Number(\n branch?.cartDetails?.orderTotalAmount ?? 0\n ).toFixed(2)}\n )\n

\n

\n \n {translate('Header.InQuote')}\n {' '}\n {branch?.quotDetails?.totalQty?.replace(\n 'undefined',\n '0'\n ) ?? 0}{' '}\n {translate('Header.Items')}\n

\n
\n
\n );\n })}\n
\n \n \n {props.isOpen &&
}\n {confirmModal()}\n \n );\n};\n\nexport default BrandSelection;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport { UserPermissionTypes, UserType } from '../../core/api/models';\nimport { useAuth } from '../../core/hooks';\nimport { cartResetAction, logoutAction, State } from '../../core/store';\nimport { translate } from '../../utils/text-utils';\nimport { RouteKeys } from '../routes/route-keys';\nimport './SideMenu.scss';\nimport noProfile from '../../assets/images/no-profile.png';\nimport { decodeHtmlEntities } from '../../utils/common';\n\ninterface CustomProps {\n isExpand?: boolean;\n expandToggle: () => void;\n menuVisible?: boolean;\n}\n\nenum subMenus {\n payment = 'payment',\n settings = 'settings',\n salespersonSettings = 'salespersonsettings',\n schedule = 'schedule',\n reports = 'reports',\n sales = 'sales',\n}\n\nconst SideMenu: React.FunctionComponent = (props: CustomProps) => {\n const [subMenu, toggleSubMenu] = React.useState(null);\n const authState = useSelector((state: State) => state.authUser);\n const { hasRole, isSalesPerson, userToken } = useAuth();\n\n const subMenuSelection = (e: any, selected: subMenus) => {\n e.preventDefault();\n if (selected === subMenu) {\n toggleSubMenu(null);\n } else {\n toggleSubMenu(selected);\n }\n };\n const dispatch = useDispatch();\n const history = useHistory();\n React.useEffect(() => {\n if (!props.isExpand) {\n toggleSubMenu(null);\n }\n }, [props.isExpand]);\n const { pathname } = useLocation();\n return (\n <>\n \n
\n
    \n {userToken && (\n
  • \n \n \n \n \n \n \n \n \n \n {translate('sideMenu.dashboard')}\n \n
  • \n )}\n\n {/* {hasRole(UserPermissionTypes.customer_orders) && ( */}\n
  • \n \n \n \n \n \n \n \n \n \n \n \n \n \n { }\n {/* {translate('sideMenu.profile')} */} Vehicles\n \n
  • \n {/* )} */}\n\n {/* {hasRole(UserPermissionTypes.staff_list) &&\n authState.userType === UserType.Customer && ( */}\n
  • \n \n \n \n \n \n \n \n \n \n \n \n {/* {translate('sideMenu.staff')} */} Manage Staff\n \n
  • \n {/* )} */}\n\n {/* {hasRole(UserPermissionTypes.quotation_list) && ( */}\n
  • \n \n \n \n \n \n \n \n \n \n \n {/* {translate('sideMenu.quotation')} */} Profile\n \n
  • \n {/* )} */}\n
  • \n \n \n \n \n \n \n \n \n {translate('common.changePassword')}\n \n
  • \n\n
  • \n {\n dispatch(logoutAction());\n dispatch(cartResetAction());\n history.push(RouteKeys.Login);\n }}\n >\n \n \n \n \n \n \n \n \n {translate('sideMenu.logOut')}\n \n
  • \n
\n
\n \n \n );\n};\n\nexport default SideMenu;\n","const getInitials = (fullName) => {\n const names = fullName.split(' ');\n const firstNameInitial = names[0].charAt(0).toUpperCase();\n const lastNameInitial = names[names.length - 1].charAt(0).toUpperCase();\n return `${firstNameInitial}${lastNameInitial}`;\n}\n\nexport default getInitials","/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nimport React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport './UserHeader.scss';\nimport './dropdown.scss';\nimport { SideMenu } from '.';\nimport { translate } from '../../utils/text-utils';\n\nimport LogoImage from '../../assets/logo/images/logo-black.svg';\nimport {\n ArabicLocale,\n changeLanguageAction,\n EnglishLocale,\n ILocale,\n State,\n cartOpen,\n quoteOpen,\n setNotificationPopupVisibilityAction,\n} from '../../core/store';\nimport { RouteKeys } from '../routes/route-keys';\nimport BrandSelection from './BrandSlelection';\nimport { useBrandsAndBranches } from '../../core/hooks/useBrandsAndBranches';\nimport { useAuth, useCart, useProduct } from '../../core/hooks';\nimport { useQuotes } from '../../core/hooks/useQuotes';\nimport i18n from '../../i18n';\nimport {\n ISearchParams,\n Model,\n ProductFilter,\n UserPermissionTypes,\n UserType,\n} from '../../core/api/models';\nimport SideMenuMob from './SideMenuMob';\nimport { NotificationPopup } from './notification-popup';\nimport { useNotifications } from '../../core/hooks/useNotifications';\nimport TabSearch from '../search-tab/search-tab';\nimport { decodeHtmlEntities } from '../../utils/common';\nimport loginLogo from '../../assets/images/dashboard-logo.svg';\nimport getInitials from '../../utils/get-initials';\ninterface CustomProps {\n menuVisible?: boolean;\n mobHeader?: boolean;\n showBrand?: boolean;\n}\n\nconst UserHeaderCanvas: React.SFC = (props: CustomProps) => {\n const {\n getCarsV2,\n searchCarsvin,\n setSearchParam,\n totalRecord,\n loaded,\n setProductFilter,\n selectedFilter,\n model,\n setModel,\n brand,\n setBrand,\n } = useProduct();\n const { notificationState } = useNotifications();\n const { hasRole } = useAuth();\n const history = useHistory();\n const showBrand = props.showBrand ?? false;\n\n const cartOpenState = useSelector((state: State) => state.cart.cartOpen);\n const quoteOpenState = useSelector((state: State) => state.cart.quoteOpen);\n\n const [stateExpand, setStateExpand] = React.useState(false);\n const [menuAccountOpen, toggleMenuAccountOpen] =\n React.useState(false);\n const [brandSelectionOpen, setBrandSelectionOpen] =\n React.useState(false);\n\n const [searched, setSearched] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n // const [brand, setBrand] = useState('');\n // const [model, setModel] = useState('');\n const [modelDetails, setModelDetails] = useState();\n const [vinNumber, setVinNumber] = useState('');\n const [filterOpen, setFilterOpen] = useState(false);\n const [searchFilter, toggleSearchFilter] = useState(false);\n const { cart } = useCart();\n const { quotations } = useQuotes();\n\n const authState = useSelector((state: State) => state.authUser);\n const domain = authState?.userToken ? '/' : '/dashboard';\n const { brandState, getBrandAndBranches } = useBrandsAndBranches();\n const settings = useSelector((state: State) => state.settings);\n const dispatch = useDispatch();\n const onLanguageChange = (language: ILocale) => {\n // i18n.changeLanguage(language.languageKey);\n dispatch(changeLanguageAction(language.languageID));\n // const h1 = document.getElementsByTagName('html')[0]; // Get the first

element in the document\n // const att = document.createAttribute('dir'); // Create a \"class\" attribute\n // att.value = language.isRtl ? 'rtl' : 'ltr'; // Set the value of the class attribute\n // h1.setAttributeNode(att);\n setTimeout(() => {\n window.location.reload();\n }, 100);\n };\n\n useEffect(() => {\n if (authState?.userToken) {\n getBrandAndBranches(authState?.userToken);\n }\n }, [authState.userToken]);\n const unreadNotificationCount =\n notificationState.notifications?.filter((p) => !p.isRead)?.length ?? 0;\n const getCars = (\n searchbrand?: string | undefined,\n searchmodel?: string | undefined,\n searchVin?: string | undefined,\n filters?: ProductFilter[],\n pageNo?: number\n ) => {\n if (searchbrand && searchmodel) {\n getCarsV2(searchmodel, filters, pageNo);\n } else if (searchVin) {\n searchCarsvin(searchVin, filters, pageNo);\n }\n };\n const { loadNotifications } = useNotifications();\n const { isAuthenticated } = useAuth();\n\n // useEffect(() => {\n // if (isAuthenticated) {\n // loadNotifications();\n // }\n // }, []);\n\n const onSearch = (selectedBrand: string, selectedmodel: string) => {\n let url = `/search-result?b=${selectedBrand}`;\n if (selectedmodel) {\n url = url + `&m=${selectedmodel}`;\n }\n\n // history.replace(url);\n setBrand(selectedBrand);\n setModel(selectedmodel);\n setVinNumber('');\n if (selectedBrand && selectedmodel) {\n setSearched(true);\n // window.history.pushState(\n // {\n // id: 'homepage',\n // },\n // 'pageTitle',\n // url\n // );\n history.replace(url);\n setIsLoading(true);\n getCars(selectedBrand, selectedmodel, '', selectedFilter, 1);\n setFilterOpen(true);\n }\n };\n\n const companyName = useSelector((state: State) => state?.authUser?.companyName);\n\n const onSearchVin = (vin: string) => {\n setSearched(true);\n setIsLoading(true);\n getCars('', '', vin, selectedFilter, 1);\n setBrand('');\n setModel('');\n setVinNumber(vin);\n const url = `/search-result?vin=${vin}`;\n window.history.pushState(\n {\n id: 'homepage',\n },\n 'pageTitle',\n url\n );\n // history.replace(url);\n };\n const { pathname } = useLocation();\n return (\n <>\n
\n
\n
\n
\n
\n
\n setStateExpand(!stateExpand)}\n >\n \n \n {translate('Header.MENU')}\n \n
\n
\n
\n
\n {/* \n \"Logo\"\n */}\n
\n
\n {getInitials(companyName)}
\n
\n
{companyName}
\n
\n
\n
\n\n {/* {showBrand && (\n
\n setBrandSelectionOpen(true)}\n >\n \n {decodeHtmlEntities(\n brandState?.selectedBrand?.brandName ?? ''\n )}\n \n {decodeHtmlEntities(\n brandState?.selectedBranch?.warehouseName ?? ''\n )}\n \n
\n
\n )} */}\n
\n \n {/*
    \n {\n history.push(`${RouteKeys.Offers}`);\n }}\n className=\"header__nav-inner position-relative ml-xl-5 ml-4 d-flex align-items-center cursor-pointer\"\n >\n \n

    \n {translate('Header.OFFERS')}\n

    \n \n {((authState.userType === UserType.Salesperson &&\n authState.checkedInCustomer &&\n hasRole(UserPermissionTypes.bulk_order)) ||\n ((authState.userType === UserType.Customer ||\n authState.userType === UserType.User) &&\n hasRole(UserPermissionTypes.bulk_order))) && (\n
  • \n \n \n

    \n {translate('Header.BULK_ORDER')}\n

    \n \n
  • \n )}\n
  • \n {\n if (settings.locale.languageID === 1) {\n onLanguageChange(new ArabicLocale());\n } else {\n onLanguageChange(new EnglishLocale());\n }\n }}\n >\n {settings?.locale?.languageID === 1 ? 'عربي' : 'English'}\n \n
  • \n 0 ? 'mr-3' : ''\n }`}\n onClick={() => {\n dispatch(setNotificationPopupVisibilityAction(true));\n }}\n >\n \n {unreadNotificationCount > 0 && (\n \n {unreadNotificationCount}\n \n )}\n \n
*/}\n
\n
\n \n \n
\n {props.mobHeader && (\n
\n
\n
\n
\n

\n {translate('Header.Discover')}\n

\n

\n {translate('Header.Everthing_you_needed_for_your_vehicle')}\n

\n
\n
\n
\n \n {unreadNotificationCount > 0 && (\n \n {unreadNotificationCount}\n \n )}\n \n {\n if (settings.locale.languageID === 1) {\n onLanguageChange(new ArabicLocale());\n } else {\n onLanguageChange(new EnglishLocale());\n }\n }}\n >\n EN\n AR\n
\n
\n
\n
\n \n\n
\n )}\n setStateExpand(!stateExpand)}\n menuVisible={props.menuVisible}\n />\n {menuAccountOpen && (\n setStateExpand(!menuAccountOpen)}\n menuVisible={props.menuVisible}\n />\n )}\n setBrandSelectionOpen(false)}\n />\n
\n
\n
\n
\n {\n if (menuAccountOpen === true) {\n toggleMenuAccountOpen(false);\n }\n }}\n className={`pt-2 pb-2 footer-menu d-inline-block ${pathname === '/' && !menuAccountOpen ? 'active' : ''\n }`}\n >\n \n

{translate('Header.Home')}

\n \n
\n
\n
toggleMenuAccountOpen(true)}>\n \n \n

{translate('Header.Account')}

\n \n
\n
\n\n\n
\n
\n
\n\n \n );\n};\n\nexport default UserHeaderCanvas;\n","import React, { Component } from 'react';\nimport HeaderCanvas from './HeaderCanvas';\nimport UserHeaderCanvas from './UserHeaderCanvas';\n\ninterface CustomProps {\n headerType?: 'logged-in' | 'pre-login';\n menuVisible?: boolean;\n mobHeader?: boolean;\n showBrand?: boolean;\n}\nclass Header extends Component {\n render() {\n return this.props.headerType !== 'logged-in' ? (\n \n ) : (\n \n );\n }\n}\n\nexport default Header;\n","import { UserHeader } from './UserHeader';\nimport Header from './Header';\nimport SideMenu from './SideMenu';\n\nexport default Header;\n\nexport { UserHeader , SideMenu };\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport './Modal.scss';\n\nenum Position {\n TOP = 'top',\n CENTER = 'center',\n}\n\ninterface CustomProps {\n pos?: Position;\n width?: number;\n onClose?: () => boolean;\n isOpen?: boolean;\n ref?: any;\n noPadding?: boolean;\n size?: 'sm' | 'md';\n contentClassName?: string;\n}\n\nclass Modal extends React.Component {\n private el: any;\n\n constructor(props: CustomProps) {\n super(props);\n this.closeModal = this.closeModal.bind(this);\n this.el = buildModal({\n width: props.width,\n onClose: props.onClose,\n pos: props.pos ? props.pos : Position.CENTER,\n noPadding: props.noPadding,\n size: props.size,\n contentClassName: props.contentClassName,\n });\n }\n\n componentDidMount() {\n document.body.append(this.el.modal);\n\n if (this.el.modalClose) {\n this.el.modalClose.addEventListener('click', this.closeModal);\n }\n this.el.modal.style.display =\n this.props.isOpen === false ? 'none' : 'block';\n if (this.props.isOpen) {\n document.body.style.overflow = 'hidden';\n }\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (prevProps.isOpen !== this.props.isOpen) {\n // this.setState({ close: this.props.close });\n this.el.modal.style.display =\n this.props.isOpen === false ? 'none' : 'block';\n document.body.style.overflow = this.props.isOpen ? 'hidden' : 'auto';\n }\n }\n\n componentWillUnmount() {\n if (this.el.modalClose) {\n this.el.modalClose.removeEventListener('click', this.closeModal);\n }\n // this.el.modal.remove()\n document.body.removeChild(this.el.modal);\n }\n\n closeModal() {\n if (this.props.onClose) {\n const shouldClose = this.props.onClose();\n if (shouldClose) {\n document.body.style.overflow = 'auto';\n this.el.modal.style.display = 'none';\n }\n }\n }\n\n render() {\n // const modal = (\n //
\n //
\n //
\n // X\n //
{this.props.children}
\n // {/*
*/}\n //
\n //
\n // );\n return ReactDOM.createPortal(this.props.children, this.el.modalContent);\n }\n}\n\nexport default Modal;\n\ninterface ModalOptions {\n pos?: Position;\n width?: number;\n onClose?: () => boolean;\n noPadding?: boolean;\n size?: 'sm' | 'md';\n contentClassName?: string;\n}\nfunction buildModal(options: ModalOptions = {}) {\n const modal = document.createElement('div');\n modal.className = 'Modal';\n // overlay\n const modalOverlay = document.createElement('div');\n modalOverlay.className = 'Modal__overlay';\n // frame\n const modalFrame = document.createElement('div');\n modalFrame.className = `Modal__frame Modal__frame--${options.pos}`;\n if (options.width) {\n modalFrame.style.width = `${options.width}px`;\n }\n // content\n const modalContent = document.createElement('div');\n modalContent.className = options.noPadding\n ? 'Modal__contentNoPadding'\n : 'Modal__content';\n\n if (options.size) {\n modalContent.className = `${modalContent.className} Modal__content--sm`;\n }\n if (options.contentClassName) {\n modalContent.className = `${modalContent.className} ${options.contentClassName}`;\n }\n // close\n let modalClose = null;\n if (options.onClose) {\n modalClose = document.createElement('span');\n modalClose.className = 'Modal__close';\n const modalCloseIcon = document.createElement('i');\n modalCloseIcon.className = 'icon-close';\n modalClose.appendChild(modalCloseIcon);\n modalContent.appendChild(modalClose);\n }\n // frame children\n modalFrame.appendChild(modalContent);\n // modal children\n modal.appendChild(modalOverlay);\n modal.appendChild(modalFrame);\n\n return {\n modal,\n modalOverlay,\n modalFrame,\n modalClose,\n modalContent,\n };\n}\n","import Modal from './Modal';\n\nexport default Modal;\n","import API_DOMAIN from './apiDomain';\nimport ApiClient from './client';\n\nconst api = new ApiClient(API_DOMAIN || '');\n\nexport default api;\n","/* eslint-disable @typescript-eslint/no-useless-constructor */\n\nimport { CoreApiClient } from '../core/api';\n\nexport default class ApiClient extends CoreApiClient {\n // Can add additional services here\n constructor(apiDomain: string) {\n super(apiDomain);\n }\n}\n","import { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport api from '../../api';\nimport { cartGetAction } from '../store';\nimport { CartItem, ICartData } from '../../models/order-models';\nimport { toastr } from 'react-redux-toastr';\nimport { IAddToCartModel, IAddToQuoteModel } from '../api/models';\nimport { translate } from '../../utils/text-utils';\n\nexport const useCart = () => {\n const cartState = useSelector((state: State) => state.cart);\n\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n const getCart = async () => {\n setLoading(true);\n const response = await api.model.getCart();\n dispatch(cartGetAction({...response?.cartData, userStatus: response?.userStatus }));\n setLoading(false);\n };\n const addToCart = async (data: IAddToCartModel) => {\n try {\n setLoading(true);\n const response = await api.model.addToCart(data);\n\n if (response?.result) {\n dispatch(cartGetAction(response?.result));\n toastr.success('Success', translate('toast.itemAddedToCart'));\n } else {\n if (!response?.errorMsg?.includes(\"inactive\") && response?.response === 'Failure') { \n toastr.error('Error', response?.errorMsg ?? 'Unable to add');\n } \n }\n return response;\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n } finally {\n setLoading(false);\n }\n };\n\n const updateQuantity = async (item: CartItem, count: number) => {\n const cart: ICartData = { ...cartState?.cart } as any;\n\n const index =\n cart?.items?.findIndex(\n (p) =>\n p.productID === item.productID &&\n p.productOptionID === item.productOptionID\n ) ?? -1;\n if (index > -1 && cart?.items?.[index]) {\n item.isLoading = true;\n cart.items[index] = item;\n dispatch(cartGetAction(cart));\n }\n try {\n const response = await api.model.updateQuantity(item, count);\n if (response?.result) {\n toastr.success('Success', translate('toast.itemUpdatedInCart')); \n dispatch(cartGetAction(response?.result));\n } else {\n if (response?.errorMsg?.includes(\"inactive\") && response?.response === 'Failure') {\n return response\n } else{\n toastr.error(\n 'Error',\n response?.errorMsg ?? 'Unable to update quantity'\n );\n }\n \n }\n\n // toastr.success('Success', 'Mylist updated successfully');\n } catch (error) {\n toastr.error('Error', 'Something went wrong');\n if (index > -1) {\n cart.items[index].isLoading = false;\n dispatch(cartGetAction(cart));\n }\n }\n };\n\n const bulkDeleteFromCart = async (\n ids: string,\n cartID: string,\n reason: string,\n otherReason: string,\n isClearCart: boolean\n ) => {\n const cart: ICartData = { ...cartState?.cart } as any;\n\n try {\n const response = await api.model.removeFromCart({\n cartItemID: ids,\n id: cartID,\n reason: reason,\n reasonOther: otherReason,\n isClearCart: isClearCart,\n });\n if (response.response === 'Success') {\n dispatch(cartGetAction(response.result));\n toastr.success(\n translate('common.success'),\n response?.errorMsg\n ? response.errorMsg\n : translate('toast.itemUpdatedInCart')\n );\n }\n } catch (error) {\n toastr.error('Error', 'Something went wrong');\n }\n };\n\n const removeFromCart = async (item: CartItem, cartID: string) => {\n const cart: ICartData = { ...cartState?.cart } as any;\n\n try {\n const response = await api.model.removeFromCart({\n cartItemID: item.cartItemID,\n id: cartID,\n });\n if (response.response === 'Success') {\n dispatch(cartGetAction(response.result));\n toastr.success(\n translate('common.success'),\n response?.errorMsg\n ? response.errorMsg\n : translate('toast.itemUpdatedInCart')\n );\n }\n } catch (error) {\n toastr.error('Error', 'Something went wrong');\n }\n }; \n return {\n getCart,\n updateQuantity,\n addToCart,\n removeFromCart,\n bulkDeleteFromCart,\n cart: cartState.cart,\n loaded: cartState.isCartLoaded,\n };\n};\n","import { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport api from '../../api';\nimport {\n markAllAsReadAction,\n onGetNotificationSuccessAction,\n setLoaderForNotificationAction,\n} from '../store';\nimport { toastr } from 'react-redux-toastr';\nimport { useAuth } from './useAuth';\n\nexport const useNotifications = () => {\n const notificationState = useSelector((state: State) => state.notification);\n const { isAuthenticated } = useAuth();\n const dispatch = useDispatch();\n\n const loadNotifications = async () => {\n if (isAuthenticated) {\n try {\n dispatch(setLoaderForNotificationAction(true));\n const response = await api.notification.loadNotifications();\n if (response.result) {\n dispatch(onGetNotificationSuccessAction(response.result?.list ?? []));\n }\n } catch (error) {\n dispatch(setLoaderForNotificationAction(false));\n } finally {\n dispatch(setLoaderForNotificationAction(false));\n }\n }\n };\n\n const markAsRead = async (ids: string) => {\n try {\n const isSuccess = await api.notification.markAsRead(ids);\n if (isSuccess) {\n dispatch(markAllAsReadAction());\n } else {\n toastr.error('Error', 'Unable to mark as read');\n }\n } catch (error) {\n toastr.error('Error', 'Unable to mark as read');\n }\n };\n\n const registerDeviceToken = async (deviceToken: string) => {\n try {\n const isSuccess = await api.notification.registerToken(\n deviceToken,\n 'Web'\n );\n if (!isSuccess) {\n toastr.error('Error', 'Unable to register device token');\n }\n } catch (error) {\n toastr.error('Error', 'Unable to register device token');\n }\n };\n\n return {\n registerDeviceToken,\n notificationState,\n loadNotifications,\n markAsRead,\n };\n};\n","import React, { FC, useState } from 'react';\nimport Modal from './modal';\n\ninterface UserPopUpPropsList {\n isOpen: boolean;\n content: string;\n onClose: () => void;\n}\n\nexport const InActiveUserPopup: FC = (props) => {\n return (\n \n
\n {/*
Warning
*/}\n \n \n \n
\n
\n
\n \n \n \n
\n
\n
\n {props?.content || ''}\n
\n
\n
\n
\n );\n};\n","import React from 'react';\nimport { translate } from '../../utils/text-utils';\nimport Button from '../button';\nimport Modal from '../modal';\n\ninterface Props {\n open: boolean;\n title: string;\n message?: string;\n hideCancel?: boolean;\n onConfirm: () => void;\n onDismiss: () => void;\n}\n\nconst ConfirmationDialog = ({\n open,\n title,\n message,\n onConfirm,\n onDismiss,\n hideCancel,\n}: Props) => {\n return (\n {\n onDismiss();\n return true;\n }}\n >\n
\n
\n {title}\n
\n\n
\n
\n {\n onDismiss();\n }}\n >\n {translate(\"common.cancel\")}\n \n
\n
\n {\n onConfirm();\n }}\n >\n {translate(\"common.confirm\")}\n \n
\n
\n
\n \n );\n};\n\nconst ConfirmationDialogContext = React.createContext({});\n\nconst ConfirmationDialogProvider = ({ children }: any) => {\n const [dialogOpen, setDialogOpen] = React.useState(false);\n const [dialogConfig, setDialogConfig] = React.useState({});\n\n const openDialog = ({ title, message, actionCallback, hideCancel }: any) => {\n setDialogOpen(true);\n setDialogConfig({ title, message, actionCallback, hideCancel });\n };\n\n const resetDialog = () => {\n setDialogOpen(false);\n setDialogConfig({});\n };\n\n const onConfirm = () => {\n resetDialog();\n dialogConfig.actionCallback(true);\n };\n\n const onDismiss = () => {\n resetDialog();\n dialogConfig.actionCallback(false);\n };\n\n return (\n \n \n {children}\n \n );\n};\n\nconst useConfirmationDialog = () => {\n const { openDialog }: any = React.useContext(ConfirmationDialogContext);\n\n const getConfirmation = ({\n ...options\n }: {\n title: string;\n message?: string;\n hideCancel?: boolean;\n }) =>\n new Promise((res) => {\n openDialog({ actionCallback: res, ...options });\n });\n\n return { getConfirmation };\n};\n\nexport default ConfirmationDialog;\nexport { ConfirmationDialogProvider, useConfirmationDialog };\n","module.exports = \"data:image/png;base64,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\"","import i18n from 'i18next';\nimport translationEN from './locales/en.json';\nimport translationAR from './locales/ar.json';\nimport { useTranslation, initReactI18next } from 'react-i18next';\n\nconst resources = {\n en: {\n translation: translationEN,\n },\n ar: {\n translation: translationAR,\n },\n};\n\ni18n.use(initReactI18next).init({\n resources,\n lng: 'en',\n fallbackLng: 'en',\n // keySeparator: false, // we do not use keys in form messages.welcome\n interpolation: {\n escapeValue: false,\n formatSeparator: ',',\n },\n react: {\n // wait: true,\n // bindStore: false,\n },\n debug: true,\n});\n\nexport default i18n;\n","const API_DOMAIN = process.env.REACT_APP_API_DOMAIN;\n\nexport default API_DOMAIN;\n","import { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport { OrderService } from '../api';\nimport {\n IApproveRequestItem,\n IBulkImportResponse,\n ICartData,\n ICheckoutData,\n IOrderDetails,\n IOrderFilterData,\n IOrderListParams,\n IPreviewData,\n IRejectRequestItem,\n IReturnDetails,\n IReturnRequestItem,\n Reasons,\n RejectReason,\n} from '../../models/order-models';\nimport {\n cartGetAction,\n onCheckoutDataSuccess,\n onFilterDataSuccess,\n onOrderDetailsSuccess,\n onPreviewDetailsSuccess,\n setOrderDetailSelectedTab,\n setOrderLoader,\n} from '../store';\nimport api from '../../api';\nimport { toastr } from 'react-redux-toastr';\nimport { TabFilters } from '../../containers/vehicles/vehicle-listing-screen';\nimport { useHistory } from 'react-router-dom';\nimport { RouteKeys } from '../../containers/routes/route-keys';\nimport { StatusTabs } from '../../containers/return/return-requests';\nimport { ApiResponse, UserType } from '../api/models';\nimport { translate } from '../../utils/text-utils';\n\nexport const useOrder = (orderService: OrderService) => {\n const history = useHistory();\n const orderState = useSelector((state: State) => state.order);\n const authState = useSelector((state: State) => state.authUser);\n const [loader, setLoader] = useState(false);\n const [progressEvent, setProgressEvent] = useState();\n const dispatch = useDispatch();\n\n const getOrderDetails = async (orderId: string) => {\n // try {\n // dispatch(setOrderLoader(true));\n // const response: IOrderDetails = await orderService.getOrderDetails(\n // orderId\n // );\n // dispatch(onOrderDetailsSuccess(response));\n // if (\n // response.dynamicOrderStatus === TabFilters.CancelRequest &&\n // response.prevOrderStatus\n // ) {\n // dispatch(\n // setOrderDetailSelectedTab(\n // response?.prevOrderStatus\n // ? response?.prevOrderStatus\n // : TabFilters.InternallyRequested\n // )\n // );\n // }\n // } catch (err) {\n // toastr.error('Error', 'Something went wrong');\n // } finally {\n // dispatch(setOrderLoader(false));\n // }\n };\n\n const loadCheckoutDetails = async (orderId: string) => {\n try {\n dispatch(setOrderLoader(true));\n const response: ApiResponse =\n await orderService.getCheckoutData(\n orderId,\n orderState?.selectedOrder?.details?.brandID,\n orderState?.selectedOrder?.details?.branchID,\n authState?.userType === UserType.Salesperson\n ? orderState?.selectedOrder?.details?.userToken ?? ''\n : undefined\n );\n if (response.result) {\n dispatch(onCheckoutDataSuccess(response.result));\n } else {\n dispatch(onCheckoutDataSuccess(null));\n toastr.error(\n 'Error',\n response?.errorMsg ?? 'Unable to load checkout details'\n );\n }\n } catch (err) {\n toastr.error('Error', 'Unable to load checkout details');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n //arb verify payment\n // const verifyArbPay = async (orderId: string) => {\n // try {\n // dispatch(setOrderLoader(true));\n // const response: any =\n // await orderService.getArbVerifyPay(\n // orderId,\n // orderState?.selectedOrder?.details?.brandID,\n // orderState?.selectedOrder?.details?.branchID,\n // authState?.userType === UserType.Salesperson\n // ? orderState?.selectedOrder?.details?.userToken ?? ''\n // : undefined\n // );\n // if (response.response === \"Success\") {\n // dispatch(onCheckoutDataSuccess(response.result));\n // } else {\n // dispatch(onCheckoutDataSuccess(null));\n // toastr.error(\n // 'Error',\n // response?.errorMsg ?? 'Unable to load checkout details'\n // );\n // }\n // } catch (err) {\n // toastr.error('Error', 'Unable to load checkout details');\n // } finally {\n // dispatch(setOrderLoader(false));\n // }\n // };\n\n const requestForPreview = async (\n requestId: string,\n items: IApproveRequestItem[],\n isPreview: boolean\n ) => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.getPreviewDetails(\n requestId,\n items,\n isPreview,\n authState?.userType === UserType.Salesperson\n ? orderState?.selectedOrder?.details?.userToken ?? ''\n : undefined\n );\n if (response.response === 'Success') {\n if (isPreview) {\n dispatch(onPreviewDetailsSuccess(response.result));\n }\n } else {\n toastr.error('Error', 'Unable to process the request');\n }\n return response;\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const requestForRejectReason = async (type?: 'Decline' | 'Revoke') => {\n try {\n setLoader(true);\n // dispatch(setOrderLoader(true));\n const response: Reasons[] = await orderService.getRejectReason(type);\n\n return response;\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n } finally {\n setLoader(false);\n // dispatch(setOrderLoader(false));\n }\n };\n\n const loadFilterData = async () => {\n // if (!orderState?.filterData) {\n try {\n dispatch(setOrderLoader(true));\n const response: IOrderFilterData =\n await orderService.getOrderFilterData();\n dispatch(onFilterDataSuccess(response));\n\n return response;\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n } finally {\n dispatch(setOrderLoader(false));\n }\n // }\n };\n\n const requestForReject = async (\n requestId: string,\n items: IRejectRequestItem[],\n isPreview: boolean = false\n ) => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.rejectRequest(\n requestId,\n items,\n isPreview,\n authState?.userType === UserType.Salesperson\n ? orderState?.selectedOrder?.details?.userToken ?? ''\n : undefined\n );\n if (isPreview) {\n dispatch(onPreviewDetailsSuccess(response?.result));\n }\n return response;\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const bulkUploadOrders = async (\n file: File\n ): Promise => {\n try {\n setLoader(true);\n const response = await api.order.bulkImportOrders(file);\n return response;\n } catch (e) {\n toastr.error('Error', 'File upload failed');\n\n return null;\n } finally {\n setLoader(false);\n }\n };\n\n const submitBulkOrder = async (ids: string[]) => {\n try {\n setLoader(true);\n const response: ApiResponse = await api.order.submitBulkOrder(\n ids?.join(',')\n );\n if (response.response === 'Success') {\n dispatch(cartGetAction(response?.result));\n }\n return response;\n } catch (e) {\n toastr.error('Error', 'Unable to add the items to the cart');\n return null;\n } finally {\n setLoader(false);\n }\n };\n\n const requestForCancel = async (\n requestId: string,\n items: IRejectRequestItem[],\n isPreview: boolean = false\n ) => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.cancelRequest(\n requestId,\n items,\n isPreview,\n authState?.userType === UserType.Salesperson\n ? orderState?.selectedOrder?.details?.userToken ?? ''\n : undefined\n );\n\n return response;\n } catch (err) {\n toastr.error('Error', 'Unable to cancel');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const requestForReturn = async (\n orderId: string,\n items: IReturnRequestItem[],\n isPreview: boolean\n ) => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.returnRequest(\n orderId,\n items,\n isPreview,\n authState?.userType === UserType.Salesperson\n ? orderState?.selectedOrder?.details?.userToken ?? ''\n : undefined\n );\n\n return response;\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const requestAgain = async (requestId: string) => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.requestAgain(\n requestId,\n authState?.userType === UserType.Salesperson\n ? orderState?.selectedOrder?.details?.userToken ?? ''\n : undefined\n );\n return response;\n } catch (err) {\n toastr.error('Error', 'Unable to request');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const rejectOrApprove = async (\n requestId: string,\n action: 'Approve' | 'Reject',\n reason?: string\n ) => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.salepersonRejectOrApprove(\n requestId,\n action,\n reason\n );\n if (response?.response === 'Success') {\n toastr.success(response?.response, response?.errorMsg ?? '');\n history.push(RouteKeys.Orders);\n // if (action === 'Approve') {\n // dispatch(setOrderDetailSelectedTab(TabFilters.CancelledOrders));\n // } else {\n // dispatch(setOrderDetailSelectedTab(TabFilters.CancelRequest));\n // }\n // getOrderDetails(requestId!);\n }\n return response;\n } catch (err) {\n toastr.error('Error', 'Unable to request');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const downloadVehicles = async (param: IOrderListParams) => {\n try {\n dispatch(setOrderLoader(true));\n const response: any = await orderService.downloadVehicle(param);\n if (response.result) {\n if (response?.result?.downloadPath) {\n if (response) {\n fetch(response?.result?.downloadPath)\n .then(response => response.blob())\n .then(blob => {\n const url = window.URL.createObjectURL(new Blob([blob]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', 'vehicles.csv');\n document.body.appendChild(link);\n link.click();\n link.parentNode.removeChild(link);\n })\n .catch(error => console.error('Error downloading file:', error));\n }\n // window.open(response?.result?.downloadPath);\n toastr.success(\n response.response,\n translate('toast.downloadCompleted')\n );\n }\n }\n // return response;\n } catch (err) {\n toastr.error('Error', translate('toast.unableToUpload'));\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const getReturnDetails = async (\n returnId: string\n ): Promise => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.getReturnDetails(returnId);\n if (response.response === 'Success') {\n return response.result;\n }\n return undefined;\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n return undefined;\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n const returnRejectOrApprove = async (\n returnId: string,\n action: 'Approve' | 'Reject',\n reason?: string\n ) => {\n try {\n dispatch(setOrderLoader(true));\n const response = await orderService.returnRejectOrApprove(\n returnId,\n action,\n reason\n );\n if (response?.response === 'Success') {\n toastr.success(response?.response, response?.errorMsg ?? '');\n if (action === 'Approve') {\n history.push(`${RouteKeys.Returns}/${StatusTabs.Approved}`);\n }\n if (action === 'Reject') {\n history.push(`${RouteKeys.Returns}/${StatusTabs.Rejected}`);\n }\n }\n return response;\n } catch (err) {\n toastr.error('Error', 'Unable to request');\n } finally {\n dispatch(setOrderLoader(false));\n }\n };\n\n return {\n orderState,\n loader,\n bulkUploadOrders,\n submitBulkOrder,\n getOrderDetails,\n requestForCancel,\n progressEvent,\n // verifyArbPay,\n loadFilterData,\n requestForReject,\n requestForPreview,\n loadCheckoutDetails,\n requestForRejectReason,\n requestForReturn,\n requestAgain,\n rejectOrApprove,\n downloadVehicles,\n getReturnDetails,\n returnRejectOrApprove,\n };\n};\n","import React from 'react';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport { toastr } from 'react-redux-toastr';\nimport { translate } from '../../utils/text-utils';\n\ninterface CopyClipboardProps {\n value?: string;\n children?: any;\n onAdd?: () => void;\n}\nconst CopyClipboard: React.SFC = (\n props: CopyClipboardProps\n) => {\n return (\n {\n toastr.success('Success', translate(\"toast.copiedToClipboard\"));\n props.onAdd?.();\n }}\n >\n {props.children}\n \n );\n};\n\nexport default CopyClipboard;\n","import React from 'react';\nimport './Counter.scss';\n\ninterface CustomProps {\n value: number;\n amountPerQuantity?: number;\n maxCount?: number;\n name?: string;\n placeholder?: string;\n label?: string;\n id?: string;\n gap?: 'sm' | 'md' | 'lg';\n size?: 'lg' | 'sm';\n withIcon?: string;\n smallIcon?: boolean;\n noBorder?: boolean;\n type?: 'text' | 'number';\n minValue?: string;\n toZero?: boolean;\n maxLength?: number;\n onChange: (value: number, onSuccess?: () => void) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n error?: string;\n disabled?: boolean;\n stickyStyles?: any;\n disableNumberScrolls?: boolean;\n showLoading?: boolean;\n className?: string;\n updateValue?: boolean;\n uom?: string;\n defaultValue: number;\n fromCart?: boolean;\n productMaxBuyLimit?: number;\n productMinBuyLimit?: number;\n productModel?: string;\n isProductAddedToCart?: boolean;\n windowWidth?: number;\n counterDisabled?: boolean;\n isLoading?: boolean;\n userStatus?: string;\n}\n\ninterface CustomSate {\n value: number | string;\n disabled?: boolean;\n maxReached?: boolean;\n isCurrent?: boolean;\n minReached?: boolean;\n prevValue: number | string;\n}\n\nclass Counter extends React.Component<\n CustomProps,\n CustomSate\n> {\n static defaultProps: Partial> = {\n value: 1,\n defaultValue: 0,\n amountPerQuantity: 0,\n maxCount: 0,\n name: '',\n label: '',\n placeholder: '',\n type: 'text',\n gap: 'md',\n smallIcon: false,\n minValue: '0',\n onChange: () => {\n return;\n },\n error: '',\n size: 'sm',\n withIcon: '',\n toZero: false,\n noBorder: false,\n disabled: false,\n stickyStyles: {},\n disableNumberScrolls: false,\n className: '',\n updateValue: true,\n uom: '',\n fromCart: false,\n productMaxBuyLimit: 0,\n productMinBuyLimit: 0,\n productModel: '',\n isProductAddedToCart: false,\n windowWidth: 0,\n counterDisabled: false,\n };\n incrButton: any;\n decrButton: any;\n\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: props.value,\n disabled: Boolean(props.disabled),\n maxReached: false,\n isCurrent: false,\n prevValue: props.value,\n };\n\n this.incrementCounter = this.incrementCounter.bind(this);\n this.decrementCounter = this.decrementCounter.bind(this);\n this.onChange = this.onChange.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.incrButton = null;\n this.decrButton = null;\n }\n\n componentDidMount() {\n this.incrButton.addEventListener('click', this.incrementCounter);\n this.decrButton.addEventListener('click', this.decrementCounter);\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (prevProps.value !== this.props.value) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n if (this.props.value !== undefined) {\n this.setState({\n value: this.props.value,\n maxReached: false,\n });\n }\n }\n\n onBlur() {\n const regx = /^[1-9][0-9]*$/;\n\n const value =\n this.state.value && this.state.value.toString().match(regx)\n ? Number(this.state.value)\n : 1;\n if (\n this.state.value.toString() === this.state.prevValue.toString() &&\n this.props.isProductAddedToCart\n ) {\n return;\n }\n\n this.setState({\n prevValue: value,\n });\n\n this.props.onChange(value);\n }\n\n onChange(event: { target: HTMLInputElement }) {\n const regx = /^[1-9][0-9]*$/;\n\n if (event.target.value.match(regx) || event.target.value === '') {\n const value = event.target.value ? Number(event.target.value) : '';\n\n this.setState({\n value,\n });\n } else {\n this.setState({\n value: '',\n });\n }\n }\n\n incrementCounter() {\n if (\n this.props.disabled ||\n this.props.counterDisabled ||\n (this.props.maxCount\n ? Number(this.state.value) >= this.props.maxCount\n : false)\n ) {\n return;\n }\n\n this.setState((prevState) => {\n return {\n value: this.props.updateValue\n ? prevState.value\n ? parseInt(prevState.value.toString(), 10) + 1\n : 1\n : prevState.value,\n };\n });\n\n const value = this.state.value ? Number(this.state.value) : 1;\n this.props.onChange(\n this.props.updateValue ? value : parseInt(value.toString(), 10) + 1\n );\n }\n\n decrementCounter() {\n if (this.props.counterDisabled) {\n return;\n }\n if (this.props.toZero === true) {\n if (Number(this.state.value) <= 0) {\n return;\n }\n } else {\n if (Number(this.state.value) - 1 <= 0) {\n return;\n }\n }\n\n this.setState((prevState) => {\n return {\n value: this.props.updateValue\n ? prevState.value\n ? parseInt(prevState.value.toString(), 10) - 1\n : 1\n : prevState.value,\n };\n });\n let value;\n if (this.props.toZero) {\n value = this.state.value ? Number(this.state.value) : 0;\n } else {\n value = this.state.value ? Number(this.state.value) : 1;\n }\n this.props.onChange(\n this.props.updateValue ? value : parseInt(value.toString(), 10) - 1\n );\n }\n formatNumber(num: any) {\n return num.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n }\n\n render() {\n return (\n \n
\n (this.decrButton = element)}\n className={`numberField__minus`}\n >\n = this.props.maxCount\n : false)\n }\n value={this.state.value}\n onChange={this.onChange}\n onBlur={this.onBlur}\n className=\"numberField__input\"\n />\n (this.incrButton = element)}\n className={`numberField__plus`}\n >\n {this.props.isLoading && (\n
\n \"loading...\"\n
\n )}\n
\n
\n );\n }\n}\n\nexport default Counter;\n","import Counter from './Counter';\n\nexport default Counter;\n","export const decodeHtmlEntities = (html: string) => {\n const textarea = document.createElement(\"textarea\");\n textarea.innerHTML = html;\n return textarea.value;\n};","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport Button from '../../../../components/button';\nimport { UserPermissionTypes } from '../../../../core/api/models';\nimport { useAuth } from '../../../../core/hooks';\nimport { translate } from '../../../../utils/text-utils';\nimport { TabFilters } from '../../../vehicles/vehicle-listing-screen';\nimport { RouteKeys } from '../../../routes/route-keys';\n\nexport const ConfirmSummary = (props: {\n header: string;\n text: string;\n buttonTitle?: string;\n redirectionRoute?: string;\n}) => {\n const history = useHistory();\n const { hasRole } = useAuth();\n\n return (\n
\n \n
{props.header}
\n
\n {props.text}\n
\n\n
\n
\n {\n history.push(RouteKeys.Home);\n }}\n >\n {translate('cart.backHome')}\n \n
\n
\n {hasRole(UserPermissionTypes.customer_orders) && (\n {\n history.push(\n props.redirectionRoute ??\n `${RouteKeys.Orders}/`\n );\n }}\n >\n {props.buttonTitle ?? translate('orders.viewMyOrders')}\n \n )}\n
\n
\n
\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport Button from '../../../components/button';\nimport './cart.scss';\nimport './cartItem.scss';\nimport '../../../containers/search-tab/search-box.scss';\n// @ts-ignore\nimport { useCart } from '../../../core/hooks/useCart';\nimport empty from './empty.png';\nimport classnames from 'classnames';\nimport { useQuotes } from '../../../core/hooks/useQuotes';\nimport { TextInput } from '../../../components/form-group';\nimport { QuoteItem } from './quote-item';\nimport { CartItemComponent } from './cart-item';\nimport { useHistory } from 'react-router-dom';\nimport { RouteKeys } from '../../routes/route-keys';\nimport { ICartData } from '../../../models/order-models';\nimport { IQuotation, UserType } from '../../../core/api/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { State, cartOpen, quoteOpen, checkInAction } from '../../../core/store';\nimport { useBrandsAndBranches } from '../../../core/hooks/useBrandsAndBranches';\nimport { useTranslation } from 'react-i18next';\nimport { translate } from '../../../utils/text-utils';\nimport Currency from 'react-currency-formatter';\nimport { CurrencyFormatter } from '../../../components/currency-formatter';\nimport { DeleteConfirmationDialog } from './components/delete-confirmation';\nimport { toastr } from 'react-redux-toastr';\nimport { ContainerLoader, FullPageLoader } from '../../../components/loader';\n\ninterface CustomProps {\n popup?: boolean;\n hideSubmit?: boolean;\n onToggle?: (isVisible: boolean) => void;\n setShowCartPopup?: (status: boolean) => void;\n}\nexport enum TabNames {\n Cart = 'Cart',\n Quotes = 'Quotes',\n}\n\nconst Cart: React.FunctionComponent = (props: CustomProps) => {\n const authState = useSelector((state: State) => state.authUser);\n const isPopup = props.popup ?? false;\n\n const { getCart, cart, loaded } = useCart();\n const { brandState } = useBrandsAndBranches();\n const { getQuotations, quotations, loaded2, quoteState } = useQuotes();\n\n const [tabName, setTabName] = React.useState(TabNames.Cart);\n\n const [popupToggle, setPopupToggle] = React.useState(!isPopup);\n\n const cartOpenState = useSelector((state: State) => state.cart.cartOpen);\n const quoteOpenState = useSelector((state: State) => state.cart.quoteOpen);\n\n useEffect(() => {\n props.onToggle?.(popupToggle);\n }, [popupToggle]);\n\n useEffect(() => {\n if (props.setShowCartPopup) {\n setPopupToggle(isPopup);\n }\n }, [isPopup]);\n\n const { t } = useTranslation();\n const dispatch = useDispatch();\n React.useEffect(() => {\n setRendered(true);\n if (authState?.userToken) {\n getCart();\n getQuotations();\n }\n }, [\n brandState?.selectedBrand?.brandID,\n brandState?.selectedBranch?.warehouseID,\n ]);\n\n const [isRendered, setRendered] = useState(false);\n const userStatusFromQuotation = quoteState?.quoteDetails?.userStatus || '';\n const quoteList = quotations ?? [];\n\n React.useEffect(() => {\n if (cartOpenState === true) {\n setTabName(TabNames.Cart);\n }\n if (quoteOpenState === true) {\n setTabName(TabNames.Quotes);\n }\n }, [cartOpenState, quoteOpenState]);\n\n const accountCode = authState.checkedInCustomer?.brandWithAccountNumber?.find(\n (p) => p.brandID === brandState?.selectedBrand?.brandID\n )?.accountNumber;\n\n return (\n <>\n {loaded && (\n \n {authState.userType === UserType.Salesperson &&\n authState.checkedInCustomer && (\n
\n
\n
\n
\n {authState.checkedInCustomer?.customerName ?? ''}\n
\n {accountCode != null && (\n

\n \n {translate('customerListing.accountCode')}\n {' : '}\n \n {\n authState.checkedInCustomer?.brandWithAccountNumber?.find(\n (p) =>\n p.brandID === brandState?.selectedBrand?.brandID\n )?.accountNumber\n }\n

\n )}\n
\n
\n {' '}\n {\n if (authState.checkedInCustomer) {\n dispatch(checkInAction(authState.checkedInCustomer));\n }\n }}\n >\n {translate('Home.Checkout')}\n \n
\n
\n
\n )}\n
\n
\n
\n
    \n {\n setTabName(TabNames.Cart);\n if (props?.setShowCartPopup) {\n props.setShowCartPopup(true);\n } else {\n setPopupToggle(true);\n }\n }}\n className={classnames({\n 'position-relative mr-5 cursor-pointer': true,\n 'searchBox__tabs--active text-gray-900 cartBlock__header mr-5':\n tabName === TabNames.Cart,\n })}\n >\n {t('cart.My_Cart')}{' '}\n {/* ({myList?.length || 0}) */}\n \n {\n setTabName(TabNames.Quotes);\n\n if (props?.setShowCartPopup) {\n props.setShowCartPopup(true);\n } else {\n setPopupToggle(true);\n }\n }}\n className={classnames({\n 'position-relative cursor-pointer': true,\n 'searchBox__tabs--active text-gray-900 cartBlock__header':\n tabName === TabNames.Quotes,\n })}\n >\n {translate('Home.My_Quotes')}{' '}\n {/* ({0}) */}\n \n
\n
\n
\n
\n
\n {!!cart?.items?.length && tabName === TabNames.Cart && (\n \n {translate('Home.Items_in_Cart')}{' '}\n \n {cart.items?.length}\n \n \n )}\n {!!quotations?.length && tabName === TabNames.Quotes && (\n \n {translate('Home.Items_in_Quote')}{' '}\n \n {quoteList?.length}\n \n \n )}\n
\n
\n {(isPopup || props.setShowCartPopup) && (\n {\n if (props.setShowCartPopup) {\n props.setShowCartPopup(!isPopup);\n } else {\n setPopupToggle(!popupToggle);\n }\n }}\n className=\"cursor-pointer border border-primary rounded border-width-2 font-weight-bold d-flex align-items-center justify-content-center\"\n style={{ width: '28px', height: '28px' }}\n >\n \n
\n )}\n
\n
\n
\n {popupToggle && (\n <>\n {cartOpenState && (\n
\n dispatch(cartOpen(!cartOpenState))}\n >\n {translate('Home.My_Cart')}\n
\n )}\n {quoteOpenState && (\n
\n dispatch(quoteOpen(!quoteOpenState))}\n >\n {translate('Home.My_Quotations')}\n
\n )}\n \n {tabName === TabNames.Cart && (\n \n )}\n {tabName === TabNames.Quotes && (\n \n )}\n \n \n )}\n \n )}\n \n );\n};\n\nexport default Cart;\n\nexport const CartComponent = (props: {\n cart?: ICartData;\n disableSubmit?: boolean;\n showHeader?: boolean;\n disableCounter?: boolean;\n canEditCart?: boolean;\n}) => {\n const showHeader = props.showHeader ?? false;\n const [showConfirm, setShowConfirm] = useState(false);\n const [isClearCart, setIsClearCart] = useState(false);\n\n const disableCounter = props.disableCounter ?? false;\n const history = useHistory();\n const cart = props.cart;\n const cartItems = cart?.items ?? [];\n const disableSubmit = props.disableSubmit ?? false;\n const [selectedItems, setSelectedItems] = useState([]);\n const { t } = useTranslation();\n const { bulkDeleteFromCart } = useCart();\n const [loading, setLoading] = useState(false);\n\n if (!!!cart?.items?.length) {\n return (\n
\n
\n {translate('Home.Your_Cart_is_empty')}\n
\n
\n \"\"\n
\n
\n );\n }\n const delteItems = async (reason: string, otherReason?: string) => {\n try {\n setLoading(true);\n await bulkDeleteFromCart(\n selectedItems.join(','),\n cart?.cartID,\n reason,\n otherReason,\n isClearCart\n )\n .then(() => {\n setSelectedItems([]);\n })\n .catch(() => {\n toastr.error('Error', 'Something went wrong');\n });\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n } finally {\n setLoading(false);\n }\n };\n return (\n <>\n {showHeader && (\n
\n
    \n
  • \n {t('cart.My_Cart')}{' '}\n
  • \n
\n
\n
\n \n {translate('Home.Items_in_Cart')}{' '}\n {cartItems.length}\n \n
\n
\n
\n )}\n
\n {/*
\n {\n if (event.target.checked) {\n setSelectedItems(cartItems?.map((p) => p.cartItemID) ?? []);\n } else {\n setSelectedItems([]);\n }\n }}\n type=\"checkbox\"\n checked={cartItems.length === selectedItems.length}\n id=\"checkone1\"\n />\n \n Select all\n \n
*/}\n {selectedItems.length > 0 && (\n {\n if (cart?.userStatus !== 'Inactive') {\n setIsClearCart(false);\n setShowConfirm(true);\n }\n }}\n className={`ml-3 mb-0 font-xs d-inline-flex tooltip left sm position-relative ${\n cart?.userStatus !== 'Inactive' && 'text-primary'\n } text-underline cursor-pointer`}\n style={{ color: cart?.userStatus === 'Inactive' ? '#999' : '' }}\n >\n Delete {selectedItems.length === 1 ? 'item' : 'items'}\n {cart?.userStatus === 'Inactive' && (\n \n

\n {t('common.inactive_user_message')}\n

\n
\n )}\n \n )}\n {!props?.canEditCart && (\n
\n {\n if (cart?.userStatus !== 'Inactive') {\n setIsClearCart(true);\n setShowConfirm(true);\n }\n }}\n className={`font-xs d-inline-flex tooltip sm position-relative ${\n cart?.userStatus !== 'Inactive' && 'text-primary'\n } text-underline cursor-pointer`}\n style={{ color: cart?.userStatus === 'Inactive' ? '#999' : '' }}\n >\n {translate('cart.clearCart')}\n {cart?.userStatus === 'Inactive' && (\n \n

\n {t('common.inactive_user_message')}\n

\n
\n )}\n \n
\n )}\n
\n
\n {cartItems?.map((cartItem, index) => {\n return (\n {\n let clone = [...selectedItems];\n if (clone.indexOf(cartItem.cartItemID) === -1) {\n clone.push(cartItem.cartItemID);\n } else {\n clone = clone.filter((p) => p !== cartItem.cartItemID);\n }\n setSelectedItems(clone);\n }}\n key={`${cartItem.cartID}_${index}`}\n isViewOnly={disableCounter}\n item={cartItem}\n cartId={cart.cartID}\n cartUserStatus={cart?.userStatus || ''}\n >\n );\n })}\n
\n
\n
\n
\n
{translate('Home.Sub_Total')}
\n
\n \n \n \n
\n
\n
\n
\n {translate('Home.Shipping_Fee')}\n
\n
\n \n \n \n
\n
\n
\n
\n {translate('Home.VAT')}{' '}\n {cart?.taxPercent ? cart?.taxPercent.toNumber() + ' % ' : ''}\n
\n
\n \n \n \n
\n
\n
\n
{translate('Home.Total')}
\n
\n \n \n \n
\n
\n
\n {!disableSubmit && (\n
\n {/*
\n
\n
\n
\n
\n \n
\n
\n {' '}\n \n {translate('Home.Apply')}\n \n
\n
\n
\n
\n
*/}\n
\n
\n {\n history.push(RouteKeys.ConfirmCart);\n }}\n disabled={cart?.userStatus === 'Inactive'}\n >\n \n {translate('Home.Send_Request')}\n \n \n {' '}\n \n \n \n {cart?.userStatus === 'Inactive' && (\n \n

\n {translate('common.inactive_user_message')}\n

\n
\n )}\n
\n
\n
\n )}\n
\n {\n setShowConfirm(false);\n }}\n onConfirm={(reason: string, otherReason?: string) => {\n setShowConfirm(false);\n delteItems(reason, otherReason);\n }}\n open={showConfirm}\n >\n {loading && (\n
\n \n
\n )}\n \n );\n};\n\nexport const QuoteComponent = (props: {\n quoteList: IQuotation[];\n showHeader?: boolean;\n disableSubmit?: boolean;\n quoteUserStatus?: string;\n}) => {\n const quoteList = props.quoteList;\n const history = useHistory();\n const disableSubmit = props.disableSubmit ?? false;\n return (\n <>\n {!!quoteList?.length ? (\n <>\n {props.showHeader && (\n
\n
    \n
  • \n {translate('Home.My_Quote')}\n
  • \n
\n
\n
\n \n {translate('Home.Items_in_Quote')}{' '}\n {quoteList.length}\n \n
\n
\n
\n )}\n
\n {quoteList?.map((pdt, index) => {\n return (\n \n );\n })}\n
\n\n {!!quoteList?.length && !disableSubmit && (\n
\n
\n {\n history.push(RouteKeys.ConfirmQuote);\n }}\n disabled={props?.quoteUserStatus === 'Inactive'}\n >\n \n {translate('Home.Send_Request')}\n \n \n {props?.quoteUserStatus === 'Inactive' && (\n \n

\n {translate('common.inactive_user_message')}\n

\n
\n )}\n
\n
\n )}\n \n ) : (\n <>\n
\n
\n {translate('Home.Your_Quote_is_empty')}\n
\n
\n \"\"\n
\n
\n \n )}\n \n );\n};\n","import React, { useState } from 'react';\n\nimport CopyClipboard from '../../../components/copy-to-clipboard';\nimport '../../../containers/search-tab/search-box.scss';\nimport { CartItem } from '../../../models/order-models';\nimport { CartCounter } from './cart-counter';\nimport { useCart } from '../../../core/hooks';\nimport { useConfirmationDialog } from '../../../components/confirm-popup/confirm-popup';\nimport { toastr } from 'react-redux-toastr';\nimport { translate } from '../../../utils/text-utils';\nimport Currency from 'react-currency-formatter';\nimport { CurrencyFormatter } from '../../../components/currency-formatter';\n\nexport const CartItemComponent = (props: {\n item: CartItem;\n cartId: string;\n isViewOnly: boolean;\n onSelectionChange?: () => void;\n isChecked?: boolean;\n canEditCart?: boolean;\n cartUserStatus?: string;\n}) => {\n const { getConfirmation } = useConfirmationDialog();\n const cartID = props.cartId;\n const cartItem = props.item;\n const [loading, setLoading] = useState(false);\n const { removeFromCart } = useCart();\n const removeItem = async () => {\n const granded = await getConfirmation({\n title: translate('common.areYouSureToDeleteThisItem'),\n });\n if (granded) {\n try {\n setLoading(true);\n await removeFromCart(cartItem, cartID);\n } catch (err) {\n toastr.error('Error', 'Somethign went wrong');\n } finally {\n setLoading(false);\n }\n }\n };\n\n const getAvailabilityText = () => {\n let text = '';\n text += `${translate('orders.immediatelyAvailable')}: ${cartItem.branchStockQty\n } `;\n text += ' / ';\n text += `${translate('orders.availableInDays')}: ${cartItem.centralStockQty\n }`;\n return text.trim();\n };\n return (\n
\n
\n
\n {/* {\n removeItem();\n }}\n >\n \n
*/}\n
\n
\n {\n if (\n !props?.canEditCart &&\n props?.cartUserStatus !== 'Inactive'\n ) {\n props.onSelectionChange?.();\n }\n }}\n className=\"font-sm text-gray-900 font-weight-medium py-1 cursor-pointer\"\n >\n {!props?.canEditCart && (\n \n )}\n \n
\n
\n \n
\n {cartItem.optionSKU}{' '}\n \n
\n
\n
\n \n
\n {cartItem?.fdNumber &&\n
\n FD : {cartItem?.fdNumber}\n
\n }\n {cartItem?.mcNumber &&\n
\n MC : {cartItem?.mcNumber}\n
\n }\n
\n
\n
\n
\n {!props.isViewOnly && (\n
\n \n {props?.cartUserStatus === 'Inactive' &&\n \n

\n {translate('common.inactive_user_message')}\n

\n
\n }\n
\n )}\n {props.isViewOnly && (\n
{cartItem?.orderItemQuantity ?? 0}
\n )}\n
\n
\n {' '}\n {translate('cart.EACH')}\n
\n
\n
\n {' '}\n {cartItem?.savedPriceVal?.toNumber() > 0 &&\n cartItem?.customerPrice?.toNumber() === 0 && (\n
\n {translate('cart.savedSAR')} {cartItem?.savedPriceVal}\n
\n )}\n {cartItem?.customerPrice?.toNumber() > 0 && (\n
\n \n {' '}\n \n
\n )}\n
\n
\n {getAvailabilityText() !== '' && (\n
\n
\n {getAvailabilityText()}\n
\n
\n )}\n
\n \n\n {loading && (\n
\n \n
\n )}\n \n );\n};\n","import React, { Props, useState } from 'react';\nimport { useDataLoader } from 'react-remote-data-hooks';\nimport { DropdownList } from 'react-widgets';\nimport api from '../../../../api';\nimport Button from '../../../../components/button';\nimport { TextArea } from '../../../../components/form-group';\nimport Modal from '../../../../components/modal';\nimport { ICartDeleteReason } from '../../../../models/order-models';\nimport { translate } from '../../../../utils/text-utils';\n\nexport const DeleteConfirmationDialog = ({\n open,\n title,\n message,\n onConfirm,\n onDismiss,\n hideCancel,\n}: any) => {\n const [reason, setReason] = useState();\n const {\n data: reasonList,\n loading,\n loaded,\n reload,\n } = useDataLoader(() => {\n return api.model.getDeleteReasons();\n });\n const [showError, setShowError] = useState(false);\n const [otherReason, setOtherReason] = useState('');\n const submit = () => {\n if (reason == null) {\n setShowError(true);\n return;\n }\n if (reason === 'other' && otherReason.trim() === '') {\n setShowError(true);\n return;\n }\n onConfirm(reason, reason === 'other' ? otherReason : '');\n };\n return (\n {\n onDismiss();\n setReason(null);\n return true;\n }}\n >\n
\n
{title}
\n \n
\n {\n setShowError(false);\n setReason(val.reasonKey);\n }}\n >\n {showError && reason == null && (\n \n {translate('cart.pleaseSelectReason')}\n \n )}\n {reason === 'other' && (\n
\n {\n setOtherReason(val);\n setShowError(false);\n }}\n placeholder={''}\n size=\"sm\"\n />\n {showError && otherReason.trim() === '' && (\n \n {translate('cart.pleaseSpecifyReason')}\n \n )}\n
\n )}\n
\n
\n
\n {\n onDismiss();\n setReason(null);\n }}\n >\n {translate('common.cancel')}\n \n
\n
\n {\n submit();\n }}\n >\n {translate('common.confirmAndDeleteItem')}\n \n
\n
\n
\n \n );\n};\n","import { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { State } from '../store/interfaces';\nimport {\n loggedInAction,\n logoutAction,\n redirectApplyAction,\n redirectSaveAction,\n profileUpdatedAction,\n getRolesSuccessAction,\n} from '../store/reducers/authUser';\nimport { StatusCodes } from 'http-status-codes';\nimport { AuthService } from '../api';\nimport {\n ApiResponse,\n ICustomerBulkImportResponse,\n User,\n UserPermissionTypes,\n UserType,\n} from '../api/models';\nimport { RouteKeys } from '../../containers/routes/route-keys';\nimport { useBrandsAndBranches } from './useBrandsAndBranches';\nimport api from '../../api';\nimport { toastr } from 'react-redux-toastr';\nimport { translate } from '../../utils/text-utils';\n\nexport const useAuth = () => {\n const authState = useSelector((state: State) => state.authUser);\n const dispatch = useDispatch();\n const [loader, setLoader] = useState(false);\n const [loginError, setLoginError] = useState();\n const [updating, setUpdating] = useState(false);\n const history = useHistory();\n const { getBrandAndBranches } = useBrandsAndBranches();\n const isSalesPerson: boolean = authState.userType === UserType.Salesperson;\n const login = async (\n data: {\n email: string;\n password: string;\n },\n setToken: (token?: string) => void,\n\n // redirectTo: string,\n onSuccess?: () => void\n ) => {\n setLoginError(undefined);\n setUpdating(true);\n try {\n const response = await api.auth.login({\n username: data.email,\n password: data.password,\n });\n\n if (response.response === 'Success') {\n setLoginError('');\n dispatch(\n loggedInAction({\n token: response.result?.userToken,\n userType: response.result?.userType,\n user: response.result?.user,\n companyName: response.result?.companyName ?? \"\",\n userStatus: response.result?.userStatus,\n })\n );\n // await getBrandAndBranches(response?.result?.userToken);\n // setToken(response.result?.userToken);\n history.replace(\n authState.redirectTo ||\n (response.result?.userType === UserType.Customer ||\n response.result?.userType === UserType.User\n ? RouteKeys.Home\n : RouteKeys.Dashboard)\n );\n redirectApply();\n if (onSuccess) onSuccess();\n } else {\n setLoginError(response?.errorMsg || 'Invalid Username or Password!');\n }\n } catch (error) {\n setLoginError(\n (error as any)?.response?.data?.errorMsg ||\n 'Invalid Username or Password!'\n );\n }\n setUpdating(false);\n };\n\n const logout = (logoutLink: string) => {\n dispatch(logoutAction());\n history.push(logoutLink);\n };\n\n const getRoles = async () => {\n const response = await api.auth.getRoles();\n if (response.result) {\n dispatch(getRolesSuccessAction(response.result));\n } else {\n dispatch(getRolesSuccessAction(undefined));\n }\n };\n\n const hasRole = (role: UserPermissionTypes) => {\n // if (\n // authState.userType === UserType.Customer ||\n // authState.userType === UserType.User\n // ) {\n // return true;\n // }\n return authState?.roles?.[role] ?? false;\n };\n\n const redirectSave = (to: string) => {\n dispatch(redirectSaveAction(to));\n };\n\n const setProfile = async (data: User, onSuccess?: () => void) => {\n dispatch(profileUpdatedAction(data));\n };\n\n const redirectApply = () => dispatch(redirectApplyAction());\n\n const customerBulkUploadPreview = async (\n file: File\n ): Promise> => {\n try {\n setLoader(true);\n const response = await api.auth.bulkUploadPreviewCustomers(file);\n return response;\n } catch (e) {\n toastr.error('Error', 'File upload failed');\n\n return null;\n } finally {\n setLoader(false);\n }\n };\n\n const submitBulkCustomer = async (ids?: string[]) => {\n try {\n setLoader(true);\n const response: any = await api.auth.submitBulkCustomer(ids?.join(','));\n if (response) {\n return response;\n }\n } catch (e) {\n toastr.error(\n translate('common.error'),\n translate('toast.somethingWentWrong')\n );\n return null;\n } finally {\n setLoader(false);\n }\n };\n return {\n ...authState,\n isAuthenticated: !!authState.userType,\n profile: authState.profile,\n loginError,\n updating,\n loader,\n login,\n logout,\n redirectSave,\n redirectApply,\n setProfile,\n getRoles,\n hasRole,\n customerBulkUploadPreview,\n submitBulkCustomer,\n isSalesPerson,\n };\n};\n","// tslint:disable: interface-name\nimport { Action } from 'redux';\n\nexport interface IAction extends Action {}\nexport interface IActionWithPayload extends IAction {\n readonly payload: U;\n}\n\nexport const createActionWithPayload = (\n type: T,\n payload: U\n): IActionWithPayload => {\n const actionData: IActionWithPayload = {\n type,\n payload,\n };\n return actionData;\n};\n\nexport const createAction = (type: T): IAction => {\n const actionData: IAction = {\n type,\n };\n return actionData;\n};\n","import axios from 'axios';\nimport API_DOMAIN from '../../api/apiDomain';\n\nexport const unauthorizedApiResponseInterceptor = (\n onUnauthorizedResponse?: () => void,\n excludedEndpoints?: string[]\n) => {\n axios.interceptors.response.use(undefined, (err) => {\n if (err.response && err.response.status === 401) {\n if (!excludeOn(err, excludedEndpoints) && onUnauthorizedResponse) {\n onUnauthorizedResponse();\n }\n }\n throw err;\n });\n};\n\nexport const excludeOn = (err: any, list?: string[]) => {\n if (!list?.length) {\n return false;\n }\n const url = new URL(\n err.response.config.url.replace(API_DOMAIN, ''),\n API_DOMAIN\n );\n return list.includes(url.pathname);\n};\n","import api from '../../../api';\nimport {\n createAction,\n createActionWithPayload,\n IAction,\n IActionWithPayload,\n} from '../utils';\n\n// common\nexport const COMMON_RESET_DATA_ACTION = 'COMMON/RESET_DATA';\n\nexport type ResetActionType = IAction;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport Button from '../../../../components/button';\nimport { translate } from '../../../../utils/text-utils';\n\nexport const InPageConfirmation = (props: {\n text: string;\n onConfirm: () => void;\n}) => {\n const history = useHistory();\n\n return (\n
\n
{props.text}
\n
\n
\n {\n history.goBack();\n }}\n >\n {translate(\"cart.Cancel\")}\n \n
\n
\n {\n props.onConfirm();\n }}\n >\n {translate(\"cart.confirmProceed\")}\n \n
\n
\n
\n );\n};\n","module.exports = __webpack_public_path__ + \"static/media/mynaghi-loader.1ede930a.gif\";","import axios, { AxiosRequestConfig } from 'axios';\nimport { ApiServiceDataStore } from '../data';\nimport { saveAs } from 'file-saver';\nimport api from '../../../api';\nimport { UserType } from '../models';\n\nexport function getAuthHeader() {\n const userToken = api.getUserToken();\n const salespersonToken = api.getSalespersonToken();\n const userType = api.getUserType();\n let token: string | undefined;\n if (userType) {\n if (userType === UserType.Salesperson) {\n token = salespersonToken;\n } else {\n token = userToken;\n }\n }\n token = undefined;\n if (!token) {\n return {};\n }\n return {\n Authorization: `Bearer ${token}`,\n userToken: token\n };\n}\n\nexport async function get(url: string, store?: ApiServiceDataStore) {\n const options = {\n headers: {\n ...getAuthHeader(),\n },\n };\n return axios.get(url, options);\n}\n\nexport async function post(\n url: string,\n data: U,\n store?: ApiServiceDataStore\n) {\n const options: AxiosRequestConfig = {\n data,\n url,\n method: 'POST',\n headers: {\n ...getAuthHeader(),\n 'Content-Type': 'application/json',\n },\n };\n return axios.post(url, JSON.stringify(data), options);\n}\n\nexport async function postAsFormData(\n url: string,\n data: FormData,\n includeUserToken?: boolean\n) {\n const userToken = api.getUserToken();\n const salespersonToken = api.getSalespersonToken();\n const options: AxiosRequestConfig = {\n headers: {\n ...getAuthHeader(),\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n const brandID = api.getBrandID();\n const branchID = api.getBranchID();\n const languageID = api.getLanguageID();\n if (!data.has('userToken') && userToken) {\n if (salespersonToken) {\n if (includeUserToken) {\n data.append('userToken', userToken);\n }\n } else {\n data.append('userToken', userToken);\n }\n }\n if (!data.has('salespersonToken') && salespersonToken) {\n data.append('salespersonToken', salespersonToken);\n }\n if (!data.has('brandID') && brandID) {\n data.append('brandID', brandID);\n }\n if (!data.has('branchID') && branchID) {\n data.append('branchID', branchID);\n }\n data.append('languageID', languageID.toString());\n data.append('website_id', '1');\n data.append('subsite_id', '1');\n const filteredData = new FormData();\n for (const [key, value] of data) {\n if (value) {\n filteredData.append(key, value);\n }\n }\n return axios.post(url, filteredData, options);\n}\n\nexport async function put(\n url: string,\n data: U,\n store?: ApiServiceDataStore\n) {\n const options: AxiosRequestConfig = {\n headers: {\n ...getAuthHeader(),\n 'Content-Type': 'application/json',\n },\n };\n return axios.put(url, JSON.stringify(data), options);\n}\n\nexport async function remove(url: string, store?: ApiServiceDataStore) {\n const options: AxiosRequestConfig = {\n headers: {\n ...getAuthHeader(),\n },\n };\n return axios.delete(url, options);\n}\n\nexport async function upload(\n url: string,\n data: FormData,\n onUploadProgress?: (progressEvent: any) => void,\n store?: ApiServiceDataStore\n) {\n const options: AxiosRequestConfig = {\n // onUploadProgress: (progressEvent: any) => {\n // },\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n };\n return axios.post(url, data);\n}\n\nexport async function download(\n url: string,\n store?: ApiServiceDataStore,\n accept?: string\n) {\n const options: AxiosRequestConfig = {\n headers: {\n ...getAuthHeader(),\n Accept: accept,\n },\n responseType: 'arraybuffer',\n };\n return axios.get(url, options);\n}\n\nexport async function downloadPostData(\n url: string,\n data: T,\n store?: ApiServiceDataStore,\n accept?: string\n) {\n const options: AxiosRequestConfig = {\n headers: {\n ...getAuthHeader(),\n Accept: accept,\n },\n responseType: 'arraybuffer',\n };\n return axios.post(url, data, options);\n}\n\nexport const saveDownloadedFile = (\n buffer: any,\n type: string,\n fileName: string\n) => {\n const data = new Blob([buffer], {\n type,\n });\n saveAs(data, fileName);\n};\n","import { ApiServiceDataStore } from '../data';\n\nexport default class ApiService {\n public store: ApiServiceDataStore;\n\n constructor(store: ApiServiceDataStore) {\n this.store = store;\n }\n\n get userToken() {\n return this.store.userToken;\n }\n\n get apiDomain() {\n return this.store.apiDomain;\n }\n}\n","import { FilterTypes } from '../../../containers/vehicles/components/order-filter-component';\nimport { filter } from 'lodash';\nimport {\n ISalesPersonCustomer,\n ISalespersonCustomerFilter,\n ISalespersonFilter,\n} from '../../../containers/account-settings/manage-salesperson/manage-sales-person-screen';\nimport { IBrandBranchData } from '../../../models/brand';\nimport {\n CartItem,\n ICartData,\n ICartDeleteReason,\n ICheckoutData,\n IDeliveryAddress,\n} from '../../../models/order-models';\nimport {\n Address,\n ApiResponse,\n BannerResponse,\n Brand,\n FreqProdList,\n Group,\n GroupApiResponse,\n GroupResponse,\n MediaFile,\n IAddToCartModel,\n ICartResponse,\n Model,\n MyItems,\n MyList,\n IQuotation,\n PaginatedFreqProdList,\n Parts,\n PartsApiResponse,\n PartsResponse,\n Product,\n ProductApiResponse,\n ProductFilter,\n ProductResponse,\n IAddToQuoteModel,\n IBankDetailsResponse,\n IDocument,\n IAddress,\n IDocumentType,\n IQuoteDetails,\n IDocumentList,\n IQuotationResponse,\n IQuotationDetails,\n ISalesPerson,\n ISalespersonRole,\n ISuggestList,\n IReplaceQuotationParam,\n IReplaceQuoteResponse,\n ISuggestPreviewResponse,\n IBulkEstimatePreviewResponse,\n ISalesmanagerRole,\n IAdduserBrandsParams,\n ICustomerBrands,\n IDocumentUpdateParam,\n UpdateQuotationAPIResponse,\n} from '../models';\nimport * as http from './http';\nimport ApiService from './service';\nimport { da } from 'date-fns/locale';\nimport { DateFormats, formatDate } from '../../../utils/date-utils';\n\nexport class ModelsService extends ApiService {\n public async getModels(brand: string): Promise {\n const url = `${this.apiDomain}/fetchapi/getmodels`;\n const data = new FormData();\n data.append('brandID', brand);\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getBranches(brand: string): Promise {\n const url = `${this.apiDomain}/index/listWareHouse/`;\n const data = new FormData();\n data.append('brandID', brand);\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n public async getDistrictList(countryID: string): Promise {\n const url = `${this.apiDomain}/user/listStates/`;\n const data = new FormData();\n data.append('countryID', countryID);\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getModelsV2(brand: string): Promise {\n const url = `${this.apiDomain}/partsapi/getmodels`;\n const data = new FormData();\n data.append('brandID', brand);\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getCars(\n modelID: string,\n filters?: ProductFilter[]\n ): Promise {\n const url = `${this.apiDomain}/fetchapi/getCars`;\n const data = new FormData();\n data.append('modelID', modelID);\n const parameterIDs = filters?.filter((f) => f.value)?.map((x) => x.value);\n if (!!parameterIDs?.length) {\n data.append('parameterIDs', parameterIDs?.join());\n }\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n const { carFilters, result } = response?.data;\n\n return {\n carFilters,\n result,\n };\n }\n\n public async getCarsV2(\n modelID: string,\n filters?: ProductFilter[],\n pageNo?: number\n ): Promise {\n const url = `${this.apiDomain}/partsapi/getCars`;\n const data = new FormData();\n // data.append('brandID', brand);\n data.append('modelID', modelID);\n data.append('pageID', pageNo ? pageNo?.toString() : '1');\n\n const parameterIDs = filters?.filter((f) => f.value)?.map((x) => x.value);\n if (!!parameterIDs?.length) {\n data.append('parameterIDs', parameterIDs?.join());\n }\n const apiResponse = await http.postAsFormData>(\n url,\n data\n );\n\n const { carFilters, result, totalRecord, errorMsg, response } =\n apiResponse?.data;\n\n return {\n carFilters,\n result,\n totalRecord,\n errorMsg,\n status: response,\n };\n }\n\n public async searchCarsvin(\n vinNum: string,\n filters?: ProductFilter[],\n pageNo?: number\n ): Promise {\n const url = `${this.apiDomain}/fetchapi/searchcarsvin`;\n const data = new FormData();\n data.append('vinNum', vinNum);\n // const parameterIDs = filters?.map((x) => x.value);\n // if (!!parameterIDs?.length) {\n // data.append('parameterIDs', parameterIDs?.join());\n // }\n const apiResponse = await http.postAsFormData>(\n url,\n data\n );\n\n const { carFilters, result, totalRecord, errorMsg, response } =\n apiResponse?.data;\n\n return {\n carFilters,\n result,\n totalRecord: result?.length,\n errorMsg,\n status: response,\n };\n }\n\n public async searchParts(\n partNum: string,\n page?: number,\n limit?: number\n ): Promise> {\n const url = `${this.apiDomain}/fetchapi/getPartsWithNo/`;\n const data = new FormData();\n data.append('partNumber', partNum);\n data.append('page', page.toString());\n data.append('limit', limit.toString());\n // data.append('brandID', '3');\n // data.append('branchID', '62');\n const apiResponse = await http.postAsFormData>(\n url,\n data\n );\n const { result, count, errorMsg, response, status } = apiResponse?.data;\n\n return {\n ...apiResponse?.data,\n count: count,\n errorMsg,\n };\n }\n\n public async getGroups(\n brandID: string,\n carid: string,\n groupid?: string\n ): Promise {\n const url = `${this.apiDomain}/fetchapi/getGroups`;\n const data = new FormData();\n data.append('brandID', brandID);\n data.append('carid', carid);\n if (groupid) {\n data.append('groupid', groupid);\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data;\n }\n\n public async getParts(\n brandID: string,\n carid: string,\n groupid: string\n ): Promise {\n const url = `${this.apiDomain}/fetchapi/getParts`;\n const data = new FormData();\n // data.append('brandID', brandID);\n data.append('carid', carid);\n data.append('groupid', groupid);\n // data.append('brandID', 'Hyundai');\n // data.append('carid', 'c1090cfb164021303c74efb94680a587');\n // data.append('groupid', 'IzLwn5qANjA2NjNfNjA2NjMxMQ');\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return {\n ...response?.data?.result,\n carDetails: response?.data?.carDetails,\n };\n }\n\n public async getCountryList(isDefault?: boolean): Promise {\n let url = `${this.apiDomain}/user/countries/${\n isDefault ? '?default=No' : '?default=Yes'\n }`;\n // if (isDefault) {\n // url = url + '?default=No';\n // } else {\n // url = url + '?default=Yes';\n // }\n const response = await http.get>(url);\n return response?.data?.result;\n }\n\n public async getSalespersonRoleList(): Promise {\n const url = `${this.apiDomain}/salesperson/listsalespersonroles/`;\n const data = new FormData();\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('userToken', '');\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getStateList(countryID: string): Promise {\n const url = `${this.apiDomain}/user/listStates/`;\n const data = new FormData();\n data.append('countryID', countryID);\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n // public async getMyFrequentlyList(\n // pageNo: number\n // ): Promise {\n // const url = `${this.apiDomain}/cart/getMyFrequentlyList`;\n // const data = new FormData();\n // data.append('page', pageNo?.toString());\n // data.append('userToken', this.token ? this.token : '');\n // const response = await http.postAsFormData>(\n // url,\n // data\n // );\n // const { count, result } = response?.data;\n // return {\n // totalCount: count,\n // result,\n // };\n // }\n\n public async getMyFrequentlyList(\n pageNo: number,\n perPage?: number\n ): Promise {\n const url = `${this.apiDomain}/cart/frequentlyBoughtOrders`;\n const data = new FormData();\n data.append('page', pageNo?.toString());\n if (perPage) {\n data.append('perPage', perPage.toString());\n } \n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n const { count, result } = response?.data;\n return {\n totalCount: count,\n result,\n };\n }\n\n public async listBanner(): Promise {\n const url = `${this.apiDomain}/banner/listBanner`;\n const data = new FormData();\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data?.result;\n }\n\n // public async getMyList(): Promise {\n // const url = `${this.apiDomain}/cart/getMyList`;\n // const data = new FormData();\n // data.append('userToken', this.token ? this.token : '');\n // const response = await http.postAsFormData>(\n // url,\n // data\n // );\n // return response?.data?.result;\n // }\n\n public async getCart(): Promise {\n const url = `${this.apiDomain}/cart/index`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data?.result;\n }\n\n public async getCompanyBankDetails(): Promise {\n const url = `${this.apiDomain}/company-bank-details`;\n const data = new FormData();\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data?.result;\n }\n\n public async getMyQuotes(): Promise {\n const url = `${this.apiDomain}/cart/viewQuotation`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data?.result;\n }\n\n public async getBrands(): Promise {\n const url = `${this.apiDomain}/fetchapi/getBrands`;\n const data = new FormData();\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getBrandsWithBranches(\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/index/listBrandWithBranches`;\n const data = new FormData();\n\n if (userToken) {\n data.append('userToken', userToken);\n } else {\n data.append('userToken', '');\n }\n\n const response = await http.postAsFormData>(\n url,\n data,\n false\n );\n return response?.data?.result;\n }\n\n public async getAllBrands(\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/index/listAllBrand`;\n const data = new FormData();\n\n if (userToken) {\n data.append('userToken', userToken);\n } else {\n data.append('userToken', '');\n }\n\n const response = await http.postAsFormData>(\n url,\n data,\n false\n );\n return response?.data?.result;\n }\n\n // public async addToMyList(parts: Parts): Promise {\n // const url = `${this.apiDomain}/cart/addToMyList`;\n // const data = new FormData();\n // data.append('productID', parts.id);\n // data.append('productName', parts.name);\n // data.append('partNumber', parts.number);\n // data.append('quantity', (parts.quantity || '1')?.toString());\n // data.append('userToken', this.token ? this.token : '');\n\n // const response = await http.postAsFormData>(\n // url,\n // data\n // );\n\n // return response?.data?.result;\n // }\n public async addToCart(\n parts: IAddToCartModel\n ): Promise> {\n const url = `${this.apiDomain}/cart/addItem`;\n const data = new FormData();\n data.append('productID', parts.productID);\n\n data.append('productOptionID', parts.productOptionID);\n data.append('cartID', parts.cartID || '');\n data.append('quantity', parts.quantity);\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data;\n }\n\n public async getDeleteReasons(): Promise {\n const url = `${this.apiDomain}/cart/cartDeleteReasons`;\n const data = new FormData();\n\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data?.result;\n }\n\n public async addToQuote(\n parts: IAddToQuoteModel\n ): Promise> {\n const url = `${this.apiDomain}/cart/addQuotation`;\n const data = new FormData();\n data.append('partNumber', parts.partNumber);\n data.append('productName', parts.productName);\n data.append('quantity', (parts.quantity || '1')?.toString());\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data;\n }\n\n public async removeQuote(parts: IQuotation): Promise {\n const url = `${this.apiDomain}/cart/deleteQuotation`;\n const data = new FormData();\n data.append('quotationRequestID', parts.quotationRequestID);\n data.append('quotationReqItemID', parts.quotationReqItemID);\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data?.result;\n }\n\n public async addToMyFrequentlyList(parts: FreqProdList): Promise {\n const url = `${this.apiDomain}/cart/addToMyList`;\n const data = new FormData();\n data.append('productID', parts.productID);\n // data.append('productName', parts.productName);\n // data.append('partNumber', parts.partNumber);\n // data.append('quantity', (parts.quantity || '1')?.toString());\n // data.append('userToken', this.token ? this.token : '');\n\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n\n public async updateMyList(parts: MyList): Promise {\n const url = `${this.apiDomain}/cart/addToMyList`;\n const data = new FormData();\n data.append('productID', parts.productID);\n data.append('productName', parts.productName);\n data.append('partNumber', parts.partNumber);\n data.append('quantity', (parts.quantity || '1')?.toString());\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n\n public async updateQuantity(\n parts: CartItem,\n count: number\n ): Promise> {\n const url = `${this.apiDomain}/cart/updateQuantity`;\n const data = new FormData();\n data.append('productOptionID', parts.productOptionID);\n data.append('productID', parts.productID);\n data.append('cartID', parts.cartID);\n data.append('cartItemID', parts.cartItemID);\n data.append('quantity', count.toString());\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data;\n }\n\n public async updateMyQuotationQuantity(parts: any): Promise {\n const url = `${this.apiDomain}/cart/updateQuotation`;\n const data = new FormData();\n data.append('quotationReqItemID', parts.quotationReqItemID);\n data.append('quantity', parts.quantity?.toString());\n\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data;\n }\n\n public async addToFrequentlyList(parts: {\n productID: string;\n productName: string;\n partNumber: string;\n quantity: number;\n }): Promise {\n const url = `${this.apiDomain}/cart/addToMyFrequentlyList`;\n const data = new FormData();\n data.append('productID', parts.productID);\n data.append('productName', parts.productName);\n data.append('partNumber', parts.partNumber);\n data.append('quantity', (parts.quantity || '1')?.toString());\n\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n\n public async addAddress(\n address: IAddress,\n isDelivery?: boolean,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/shipping/`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n if (isDelivery) {\n data.append('FromCheckOut', 'Yes');\n data.append('shippingFname_1', address.shippingFname_1);\n data.append('shippingLname_1', address.shippingLname_1);\n } else {\n data.append('shippingFname', address.shippingFname);\n data.append('shippingLname', address.shippingLname);\n }\n\n data.append('shippingAddress1', address.shippingAddress1);\n data.append('shippingCountryID', address.shippingCountryID);\n data.append('shippingStateID', address.shippingStateID);\n data.append('shippingCity', address.shippingCity);\n data.append('shippingZip', address.shippingZip);\n data.append('shippingPhoneDialCode', address.shippingPhoneDialCode || '');\n data.append('shippingPhone', address.shippingPhone || '');\n data.append('warehouseIDs', address.warehouseIDs);\n data.append(\n 'shippingPhoneCountryCode',\n address.shippingPhoneCountryCode || ''\n );\n\n if (address.userShippingID) {\n data.append('userShippingID', address.userShippingID);\n }\n data.append('action', address.action || '');\n if (address.userToken) {\n data.append('userToken', address.userToken);\n }\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result ?? [];\n }\n\n public async checkoutSubmit(body: any, userToken?: string): Promise {\n const url = `${this.apiDomain}/cart/checkoutsubmit/`;\n const data = new FormData();\n data.append('cartID', body.cartID);\n data.append(\n 'paymentSettingsGroupKeySelected',\n body?.paymentSettingsGroupKeySelected\n );\n data.append('selfPickup', body.pickupType || 'no');\n data.append('deliveryType', body.deliveryType);\n data.append('poNumber', body.poNumber);\n data.append('poDate', body.poDate);\n data.append('purchaseFile', body.purchaseFile);\n data.append('comments', body?.comments);\n data.append('orderRequestID', body.orderRequestID);\n data.append('locationID', body.locationID);\n data.append(\n 'shippingContactPhoneCountryCode',\n body.shippingContactPhoneCountryCode\n );\n data.append(\n 'shippingContactPhoneDialCode',\n body?.shippingContactPhoneDialCode\n );\n data.append('shippingContactPhone', body.shippingContactPhone);\n data.append('shippingContactName', body.shippingContactName);\n data.append('userShippingID', body.userShippingID);\n if (userToken) {\n data.append('userToken', userToken);\n }\n\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response;\n }\n\n public async removeFromList(params: {\n id?: number;\n listType: string;\n type?: string;\n }): Promise {\n const url = `${this.apiDomain}/cart/removeFromList`;\n const data = new FormData();\n if (params.id) {\n data.append('id', params.id?.toString());\n }\n data.append('listType', params.listType);\n if (params.type) {\n data.append('type', params.type);\n }\n\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n public async removeFromCart(params: {\n id: string;\n cartItemID: string;\n type?: string;\n reason?: string;\n reasonOther?: string;\n isClearCart?: boolean;\n }): Promise> {\n const url = `${this.apiDomain}/cart/updatecart`;\n const data = new FormData();\n data.append('cartID', params.id);\n data.append('mode', 'delete_item');\n data.append('cartItemID', params.cartItemID);\n if (params.isClearCart) {\n data.append('isCompleteCart', 'Yes');\n data.append('cartItemID', undefined);\n }\n\n if (params.reason != null && params.reason != '') {\n data.append('reason', params.reason);\n }\n\n if (params.reasonOther != null && params.reasonOther != '') {\n data.append('reasonOther', params.reasonOther);\n }\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data;\n }\n\n public async submitRequest(cartID: string): Promise {\n const url = `${this.apiDomain}/cart/saveOrderRequest`;\n const data = new FormData();\n data.append('cartID', cartID);\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data;\n }\n\n public async approveOrder(orderID: string): Promise {\n const url = `${this.apiDomain}/order/requestApprove/`;\n const data = new FormData();\n data.append('requestID', orderID);\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async submitRequest2(): Promise {\n const url = `${this.apiDomain}/cart/submitQuotation`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data;\n }\n\n public async upload(\n id: string,\n name: string,\n file: File,\n onUploadProgress: (progressEvent: ProgressEvent) => void\n ): Promise {\n const formData = new FormData();\n formData.append('file', file);\n formData.append('name', name);\n const url = `${this.apiDomain}/purchase-order/${id}/upload`;\n const response = await http.upload(url, formData, onUploadProgress);\n return response?.data;\n }\n\n public async getAddress(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/shipping/`;\n\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('action', 'list');\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n\n public async getUserBrands(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/listUserToBrand`;\n const data = new FormData();\n data.append('status', 'view');\n data.append('sortBy', 'desc');\n if (userToken) {\n data.append('userToken', userToken);\n }\n // data.append('userToken', 'ac3dd6d24b038d3896c9d747f8e352a7');\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n\n public async getContactPersonBranch(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/contactPersonBranch`;\n const data = new FormData();\n data.append('status', 'view');\n data.append('sortBy', 'desc');\n if (userToken) {\n data.append('userToken', userToken);\n }\n // data.append('userToken', 'ac3dd6d24b038d3896c9d747f8e352a7');\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n\n public async getCustomerBrands(\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/listUsersBrand`;\n const data = new FormData();\n // data.append('status', 'view');\n // data.append('sortBy', 'desc');\n if (userToken) {\n data.append('userToken', userToken);\n }\n // data.append('userToken', 'ac3dd6d24b038d3896c9d747f8e352a7');\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n\n return response?.data?.result;\n }\n\n public async getContactPerson(params?: {\n wareHouseID?: string;\n contactTypeID?: string;\n userToken?: string;\n }): Promise {\n const url = `${this.apiDomain}/user/listContactPerson`;\n const data = new FormData();\n\n data.append('warehouseID', params?.wareHouseID || '');\n data.append('contactTypeID', params?.contactTypeID || '');\n if (params?.userToken) {\n data.append('userToken', params?.userToken);\n }\n\n // data.append('userToken', 'ac3dd6d24b038d3896c9d747f8e352a7');\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getContactTypes(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/listContactType`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n\n // data.append('userToken', 'ac3dd6d24b038d3896c9d747f8e352a7');\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getUserList(params?: {\n searchText?: string;\n userToken?: string;\n isAddStaff?: boolean;\n }): Promise {\n const url = `${this.apiDomain}/user/listusers`;\n const data = new FormData();\n data.append('userFullName', params?.searchText ? params?.searchText : '');\n if (params?.userToken) {\n data.append('userToken', params?.userToken);\n }\n data.append('brandID', '');\n data.append('branchID', '');\n // data.append('userToken', this.token ? this.token : '');\n\n // data.append('userToken', 'ac3dd6d24b038d3896c9d747f8e352a7');\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getSalespersonList(params: {\n searchText?: string;\n filter?: ISalespersonFilter;\n page?: number;\n perPage?: number;\n }): Promise> {\n const url = `${this.apiDomain}/salesperson/listsalespersons/`;\n const data = new FormData();\n data.append('stateID', params.filter?.assignedStates?.join(',') ?? '');\n data.append('roleID', params.filter?.roles?.join(',') ?? '');\n data.append('searchKeyword', params?.searchText ?? '');\n data.append('brandID', '');\n data.append('branchID', '');\n if (params.page) {\n data.append('page', params.page.toString());\n }\n if (params.perPage) {\n data.append('perPage', params.perPage.toString());\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getSalespersons(\n brandID: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/salesperson/listsalespersons/`;\n const data = new FormData();\n data.append('fromCustomer', userToken ? 'No' : 'yes');\n data.append('brandID', brandID);\n data.append('branchID', '');\n if (userToken) data.append('userToken', userToken);\n const response = await http.postAsFormData>(url, data);\n return response?.data.result;\n }\n\n public async getSalesManagesRoles(): Promise {\n const url = `${this.apiDomain}/salesperson/listsalesmanagersroles`;\n const data = new FormData();\n\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('userToken', '');\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getSalesPersonCustomerList(params: {\n searchText?: string;\n filter?: ISalespersonCustomerFilter;\n page?: number;\n perPage?: number;\n }): Promise> {\n const url = `${this.apiDomain}/salesperson/listcustomers/`;\n const data = new FormData();\n data.append('salesperson', params.filter?.salesperson ?? '');\n data.append('searchKeyword', params?.searchText ?? '');\n data.append('brandID', params.filter?.brandID ?? '');\n data.append('branchID', '');\n if (params.page) {\n data.append('page', params.page.toString());\n }\n if (params.perPage) {\n data.append('perPage', params.perPage.toString());\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async assignSalesPersons(\n userID: string,\n customerIDs: string\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/customermapping`;\n const data = new FormData();\n data.append('userID', userID);\n data.append('customerIDs', customerIDs);\n\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('userToken', '');\n\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getUserPermissions(): Promise {\n const url = `${this.apiDomain}/index/listPermissions/`;\n const data = new FormData();\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getStaffShipping(id?: string, userToken?: string): Promise {\n const url = `${this.apiDomain}/user/staffShipping/`;\n const data = new FormData();\n data.append('staffUserID', id || '');\n data.append('action', 'list');\n data.append('brandID', '');\n data.append('branchID', '');\n if (userToken) data.append('userToken', userToken);\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getStaffDetails(id?: string, userToken?: string): Promise {\n const url = `${this.apiDomain}/user/staffDetails/`;\n const data = new FormData();\n data.append('staffUserID', id || '');\n if (userToken) data.append('userToken', userToken);\n\n data.append('brandID', '');\n data.append('branchID', '');\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getUserLanguages(): Promise {\n const url = `${this.apiDomain}/index/listLanguages/`;\n const data = new FormData();\n // data.append('userToken', this.token ? this.token : '');\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async addUserBrand(\n params: IAdduserBrandsParams,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/addUserToBrand`;\n const data = new FormData();\n data.append('brandID', params.brandID);\n data.append('branches', JSON.stringify(params.branches));\n /* commented due to each baranch have these data, so its binded in branches*/\n // if (params.salesPersonID) {\n // data.append('salesPersonID', params.salesPersonID);\n // data.append('accountNumber', params.accountNumber);\n // data.append('discountCode', params.discountCode);\n // data.append('creditLimit', params.creditLimit);\n // }\n\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n return response;\n }\n\n public async editUserBrand(params: any, userToken?: string): Promise {\n const url = `${this.apiDomain}/user/changeUserToBrandStatus`;\n const data = new FormData();\n data.append('brandToBranchID', params.id);\n data.append('status', params.status);\n if (userToken) {\n data.append('userToken', userToken);\n }\n\n const response = await http.postAsFormData>(url, data);\n\n return response;\n }\n\n public async deleteUserBrand(\n userToWarehouseID: string,\n brandToBranchID: string,\n userToken?: string\n ): Promise> {\n const url = `${this.apiDomain}/user/changeUsersBrandStatus`;\n const data = new FormData();\n data.append('userToWarehouseID', userToWarehouseID);\n data.append('brandToBranchID', brandToBranchID);\n data.append('status', 'Deleted');\n data.append('brandID', '');\n data.append('branchID', '');\n if (userToken) {\n data.append('userToken', userToken);\n }\n\n const response = await http.postAsFormData>(url, data);\n return response.data;\n }\n\n public async addContactPerson(params: any, userToken?: string): Promise {\n const url = `${this.apiDomain}/user/addContactPerson`;\n\n const data = new FormData();\n data.append('subUserID', params.subUserID);\n data.append('contactTypeID', params.contactTypeID);\n if (params.contactPersonID) {\n data.append('contactPersonID', params.contactPersonID);\n }\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('warehouseIDs', params.warehouseIDs);\n\n // data.append('userToken', 'ac3dd6d24b038d3896c9d747f8e352a7');\n const response = await http.postAsFormData>(url, data);\n\n return response;\n }\n\n public async getQuoteRequest(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/order/quotationRequest/`;\n const data = new FormData();\n if (params?.status) data.append('status', params.status);\n if (params?.requestID) data.append('searchRequestID', params.requestID);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((brnch) => {\n if (brnch.value) val.push(brnch.value);\n return;\n });\n if (val.length > 0) {\n data.append('branchID', JSON.stringify(val));\n }\n }\n });\n }\n try {\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n if (response?.data?.response === 'Success') {\n response.data.errorMsg = '';\n return response.data;\n }\n return response?.data;\n } catch (err) {\n throw err;\n }\n }\n\n public async getHigherRequest(params: any): Promise {\n const url = `${this.apiDomain}/order/listhighOrder/`;\n const data = new FormData();\n data.append('status', params);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getDocumentList(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/userdocuments`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getDocumentTypeList(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/listDocumentMaster`;\n const data = new FormData();\n\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async addDocumentFile(\n frontFile: File,\n backFile: File,\n type: string,\n expiryDate: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/documentadd`;\n const formData = new FormData();\n formData.append('documentUrl', frontFile);\n formData.append('documentBackUrl', backFile);\n formData.append('documentMaster', type);\n if (expiryDate) {\n formData.append(\n 'expiryDate',\n formatDate(new Date(expiryDate), DateFormats.YearMonthFormat)\n );\n }\n\n if (userToken) {\n formData.append('userToken', userToken);\n }\n // formData.append('userToken', '362e62776daf40ca2a8adc873ed4e4c8');\n const response = await http.upload(url, formData);\n return response as any;\n }\n\n public async uploadSalesPersonImage(\n userID: string,\n userProfilePicture: File\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/editProfileImage`;\n const formData = new FormData();\n formData.append('userProfilePicture', userProfilePicture);\n formData.append('userID', userID);\n formData.append('action', 'update');\n formData.append('userToken', '');\n formData.append('brandID', '');\n formData.append('branchID', '');\n const response = await http.postAsFormData(url, formData);\n return response.data;\n }\n\n public async getSingleDocument(\n documentID: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/getDocumentDetails`;\n const data = new FormData();\n\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('documentID', documentID);\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async deleteDocument(\n documentID: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/documentdelete`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('documentID', documentID);\n const response = await http.postAsFormData>(url, data);\n return response as any;\n }\n public async editDocument(param: IDocumentUpdateParam): Promise {\n const url = `${this.apiDomain}/user/documentadd`;\n const data = new FormData();\n // data.append('userToken', this.token ? this.token : '');\n\n if (param?.userToken) {\n data.append('userToken', param.userToken);\n }\n param?.frontFile\n ? data.append('documentUrl', param.frontFile)\n : data.append('fileName', param.frontFileName);\n param.backFile\n ? data.append('documentBackUrl', param.backFile)\n : data.append('fileNameBack', param.backFileName);\n data.append('documentMaster', param.documentMaster);\n data.append('documentID', param.documentID);\n if (param.expiryDate) {\n data.append(\n 'expiryDate',\n formatDate(new Date(param.expiryDate), DateFormats.YearMonthFormat)\n );\n }\n\n const response = await http.postAsFormData>(url, data);\n return response as any;\n }\n\n public async getQuotationDetails(\n requestID: string\n ): Promise> {\n const url = `${this.apiDomain}/cart/getQuotationDetails/`;\n const data = new FormData();\n data.append('quotationRequestID', requestID);\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n public async rejectQuotationRequest(\n requestID: string,\n reason: string\n ): Promise> {\n const url = `${this.apiDomain}/cart/rejectQuotation/`;\n const data = new FormData();\n data.append('quotationRequestID', requestID);\n data.append('rejectReason', reason);\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // clear quotation suggest\n public async clearQuotationSuggest(requestID: string) {\n const url = `${this.apiDomain}/cart/removeItemsEstimate/`;\n const data = new FormData();\n data.append('quotationRequestID', requestID);\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n public async getQuotationSuggestList(\n optionSKU: string,\n quotationRequestID: string\n ): Promise {\n const url = `${this.apiDomain}/cart/productAutoSuggestion/`;\n const data = new FormData();\n data.append('optionSKU', optionSKU);\n data.append('quotationRequestID', quotationRequestID);\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async replaceQuotationItem(\n param: IReplaceQuotationParam\n ): Promise> {\n const url = `${this.apiDomain}/cart/replaceQuotationItem/`;\n const data = new FormData();\n data.append('userToken', param?.userToken ?? '');\n data.append('quotationReqItemID', param?.quotationReqItemID ?? '');\n data.append('quantity', param?.quantity ?? '');\n data.append('productOptionID', param?.productOptionID ?? '');\n data.append('productID', param?.productID ?? '');\n data.append('estimatedQuantity', param?.estimatedQuantity ?? '');\n data.append('notAvailable', param?.notAvailable ?? '');\n data.append('immediateAvailable', param?.immediateAvailable ?? '');\n data.append('laterAvailable', param?.laterAvailable ?? '');\n data.append('backOrder', param?.backOrder ?? '0');\n data.append('discountPercentage', param?.discount ?? '');\n data.append('unitPrice', param.unitPrice ?? '');\n data.append('totalPrice', `${param?.totalPrice ?? ''}`);\n data.append('comment', param?.comment ?? '');\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data;\n }\n\n public async removeQuotationItem(\n param: IReplaceQuotationParam\n ): Promise> {\n const url = `${this.apiDomain}/cart/removeQuotationItem/`;\n const data = new FormData();\n data.append('userToken', param?.userToken ?? '');\n data.append('quotationReqItemID', param?.quotationReqItemID ?? '');\n data.append('productOptionID', param?.productOptionID ?? '');\n data.append('productID', param?.productID ?? '');\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data;\n }\n\n public async getPreviewQuotationSuggestList(\n quotationRequestID: string\n ): Promise> {\n const url = `${this.apiDomain}/cart/previewQuotationDetails/`;\n const data = new FormData();\n data.append('quotationRequestID', quotationRequestID);\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data;\n }\n\n public async confirQuotationSuggestList(\n quotationRequestID: string\n ): Promise> {\n const url = `${this.apiDomain}/cart/confirmQuotation/`;\n const data = new FormData();\n data.append('quotationRequestID', quotationRequestID);\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data;\n }\n\n public async quotationbulkEstimatePreview(\n file: File,\n action: 'add' | 'view'\n ): Promise {\n const url = `${this.apiDomain}/cart/bulkEstimateQuote/`;\n const formData = new FormData();\n formData.append('quoteFile', file);\n formData.append('action', action);\n const response = await http.postAsFormData(url, formData);\n return response?.data;\n }\n\n public async submitQuoteRequest(quotationRequestID: string): Promise {\n const url = `${this.apiDomain}/cart/orderQuotation/`;\n const data = new FormData();\n data.append('quotationRequestID', quotationRequestID);\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async uploadStaffImage(\n userID: string,\n userProfilePicture: File,\n userToken?: string\n ): Promise> {\n const url = `${this.apiDomain}/user/editStaffProfileImage`;\n const formData = new FormData();\n formData.append('userProfilePicture', userProfilePicture);\n formData.append('staffUserID', userID);\n if (userToken) formData.append('userToken', userToken);\n formData.append('brandID', '');\n formData.append('branchID', '');\n const response = await http.postAsFormData(url, formData);\n return response.data;\n }\n\n public async getOfferParts(): Promise> {\n const url = `${this.apiDomain}/fetchapi/offers/`;\n const data = new FormData();\n const apiResponse = await http.postAsFormData>(\n url,\n data\n );\n const { result, count, errorMsg, response, status } = apiResponse?.data;\n\n return {\n ...apiResponse?.data,\n count: result?.length,\n errorMsg,\n };\n }\n}\n","import {\n ApiResponse,\n ICustomerBulkImportResponse,\n Roles,\n TokenData,\n} from '../models';\nimport { SignUpModel, ISignup, ChangePasswordProps } from '../models/signup';\nimport * as http from './http';\nimport ApiService from './service';\n\nexport class AuthService extends ApiService {\n static loginUrl = '/user/login';\n static signUpUrl = '/user/signup';\n static forgotUrl = '/user/forgotPassword';\n static resetUrl = '/user/reset';\n static createPass = '/user/createpassword';\n\n public async login(credentials: { username: string; password?: string }) {\n const url = `${this.apiDomain}${AuthService.loginUrl}`;\n const data = new FormData();\n data.append('userLogin', credentials.username);\n data.append('userPassword', credentials.password || '');\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response.data;\n }\n\n // public async login(credentials: { username: string ,password:string }) {\n // const url = `${this.apiDomain}${AuthService.loginUrl}`;\n\n // const data = new FormData();\n // data.append('userLogin', credentials.username);\n // data.append('userPassword', credentials.password);\n\n // const response = await http.postAsFormData>(\n // url,\n // data\n // );\n // return response.data;\n // }\n\n public async signup(data: ISignup) {\n const formData = new FormData();\n formData.append('companyName', data.companyName);\n formData.append('contactName', data.contactName);\n formData.append('countryID', data.countryID);\n formData.append('userEmail', data.userEmail);\n formData.append('userPhone', data.userPhone);\n formData.append('tradeno', data?.tradeno);\n formData.append('vatNo', data?.vatNumber);\n formData.append('stateID', data.stateID);\n formData.append('userCity', data.city);\n formData.append('userDialcode', data.userDialcode);\n const url = `${this.apiDomain}${AuthService.signUpUrl}`;\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response;\n }\n\n public async forgot(data: any) {\n const formData = new FormData();\n formData.append('userLogin', data.userLogin);\n\n const url = `${this.apiDomain}${AuthService.forgotUrl}`;\n\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response;\n }\n\n public async reset(data: any) {\n const formData = new FormData();\n formData.append('userEmail', data.userLogin);\n formData.append('code', data.otp);\n formData.append('userPassword', data.newPassword);\n\n const url = `${this.apiDomain}${AuthService.resetUrl}`;\n\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response;\n }\n\n public async verifyOtp(credentials: {\n otp: string;\n token: string;\n }): Promise {\n const url = `${this.apiDomain}/user/verifyOTP/`;\n const data = new FormData();\n data.append('otp', credentials.otp);\n data.append('userToken', credentials.token);\n const response = await http.postAsFormData>(url, data);\n return response;\n }\n\n public async newPassword(cred: {\n token: string;\n newPassword: string;\n }): Promise {\n const url = `${this.apiDomain}${AuthService.createPass}`;\n const data = new FormData();\n\n data.append('newPassword', cred.newPassword);\n data.append('confirmPassword', cred.newPassword);\n\n data.append('userToken', cred.token);\n const response = await http.postAsFormData>(url, data);\n return response;\n }\n\n public async changePassword(data: ChangePasswordProps) {\n const formData = new FormData();\n formData.append('newPassword', data.newPassword);\n formData.append('oldPassword', data.oldPassword);\n formData.append('confirmPassword', data.confirmPassword);\n formData.append('brandID', '');\n formData.append('branchID', '');\n const url = `${this.apiDomain}/user/changepassword/`;\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response;\n }\n\n public async getRoles(): Promise> {\n const url = `${this.apiDomain}/user/checkRoles/`;\n const data = new FormData();\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async bulkUploadPreviewCustomers(\n file: File\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/bulkUploadCustomer/`;\n const formData = new FormData();\n formData.append('bulkUserFile', file);\n const response = await http.postAsFormData(url, formData);\n\n return response?.data;\n }\n\n public async submitBulkCustomer(ids?: string): Promise {\n const url = `${this.apiDomain}/salesperson/bulkUploadCustomerConfirmation/`;\n const data = new FormData();\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async resendOTP(token: string) {\n const formData = new FormData();\n formData.append('userToken', token);\n\n const url = `${this.apiDomain}/user/resendOTP`;\n\n const response = await http.postAsFormData>(url, formData);\n return response?.data;\n }\n}\n","import { toastr } from 'react-redux-toastr';\nimport { FilterTypes } from '../../../containers/vehicles/components/order-filter-component';\nimport {\n ApiResponse,\n BannerResponse,\n Brand,\n DocumentList,\n DocumentResponse,\n FreqProdList,\n Group,\n GroupApiResponse,\n GroupResponse,\n MediaFile,\n Model,\n MyList,\n Parts,\n PartsApiResponse,\n PartsResponse,\n Product,\n ProductApiResponse,\n ProductFilter,\n ProductResponse,\n UsersList,\n TermsResponse,\n UserApiResponse,\n UserResponse,\n ICompanyProfile,\n IUserWithRole,\n ICustomer,\n ICustomerFilterParams,\n ICustomerRequestFilterParams,\n CustomerRequestResponse,\n IReason,\n DeclineRequestParam,\n ISalesman,\n IAddApproveParam,\n IUseBrandDetails,\n IPersonalInfo,\n IUserLog,\n IUserLogParams,\n IScheduleResponse,\n IScheduleListParams,\n PaginatedApiResponse,\n IScheduleCustomerListResponse,\n IDayScheduleItem,\n IUserPermission,\n ICustomerDashboard,\n} from '../models';\nimport * as http from './http';\nimport ApiService from './service';\nimport { IPerformanceGraphRequestParams } from '../../../models/order-models';\n\nexport class UserService extends ApiService {\n public async getTerms(): Promise {\n const url = `${this.apiDomain}/user/gettermsofuse`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getAllStaffs(): Promise {\n toastr.error('Error', 'Not implemented');\n }\n\n // get user type permission\n public async getUserPermission(): Promise {\n const url = `${this.apiDomain}/user/getCustomerProfileEditPermission`;\n const data = new FormData();\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n\n public async getRequestedByUsers(): Promise {\n const url = `${this.apiDomain}/order/requestedbylist`;\n const data = new FormData();\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result?.requestedByList;\n }\n\n public async getBrandsForFilter(): Promise {\n const url = `${this.apiDomain}/index/listBrands`;\n const data = new FormData();\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getProfileDetails(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/companyprofile`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getCustomerDetails(userID?: string): Promise {\n const url = `${this.apiDomain}/salesperson/preview`;\n const data = new FormData();\n\n data.append('userToken', '');\n data.append('userID', userID);\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getBrandDetails(userID?: string): Promise {\n const url = `${this.apiDomain}/salesperson/getUserBranches/`;\n const data = new FormData();\n\n data.append('userToken', '');\n data.append('userID', userID);\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getSalesmenList(): Promise {\n const url = `${this.apiDomain}/salesperson/listSalesPerson/`;\n const data = new FormData();\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async editProfileDetails(\n fields: ICompanyProfile,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/companyprofile`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('action', 'update');\n data.append('companyName', fields?.companyName);\n data.append('fullName', fields?.fullName);\n data.append('tradeno', fields?.tradeno);\n data.append('nationalUnifiedNumber', fields?.nationalUnifiedNumber);\n data.append('vatNo', fields?.vatNo);\n data.append('userEmail', fields?.userEmail);\n data.append('userDialcode', fields?.userPhone?.dialCode);\n data.append('userPhone', fields?.userPhone?.entered);\n data.append('userCity', fields?.userCity);\n data.append('stateID', fields?.stateID);\n data.append('countryID', fields?.countryID);\n data.append('dealerGFIN', fields?.dealerGFIN);\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response;\n }\n\n\n public async editName(data: any) {\n const formData = new FormData();\n formData.append('userFirstName', ` ${data.userFirstName}`);\n formData.append('userLastName', `${data.userLastName}`);\n const url = `${this.apiDomain}/user/editUserName`;\n const response = await http.postAsFormData>(url, formData);\n return response;\n }\n\n public async editProfilePicture(file: File) {\n const formData = new FormData();\n formData.append('userProfilePicture', file);\n formData.append('action', `update`);\n const url = `${this.apiDomain}/user/editProfileImage`;\n const response = await http.postAsFormData>(url, formData);\n return response;\n }\n\n public async editCompanyProfile(data: any) {\n const formData = new FormData();\n\n formData.append('companyName', ` ${data.companyName}`);\n formData.append('fullName', ` ${data.userFullName}`);\n formData.append('tradeno', ` ${data.crn}`);\n formData.append('vatNo', ` ${data.vatNo}`);\n formData.append('userCity', ` ${data.userCity}`);\n formData.append('countryID', ` ${data.userCountry}`);\n formData.append('stateID', ` ${data.stateID}`);\n formData.append('userDialcode', `${data.userPhoneDialCode}`);\n formData.append('userPhone', `${data.userPhone}`);\n formData.append('userEmail', `${data.userEmail}`);\n formData.append('dealerGFIN', `${data.dealerGFIN}`);\n\n\n\n formData.append('action', 'update');\n const url = `${this.apiDomain}/user/companyprofile`;\n const response = await http.postAsFormData>(url, formData);\n return response?.data;\n }\n\n public async editCompanyAddress(data: any) {\n const formData = new FormData();\n formData.append('userAdress1', ` ${data.userAddress}`);\n formData.append('userCity', `${data.userCity}`);\n formData.append('countryID', `${data.userCountry}`);\n formData.append('userZip', `${data.userZip}`);\n const url = `${this.apiDomain}/user/editaddress`;\n const response = await http.postAsFormData>(url, formData);\n return response;\n }\n public async uploadDocument(\n file: File,\n documentTypeID: number\n ): Promise {\n const formData = new FormData();\n formData.append('documentUrl', file);\n formData.append('documentMaster', documentTypeID?.toString());\n const url = `${this.apiDomain}/user/documentadd`;\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response.data?.list;\n }\n\n public async getDocument(): Promise {\n const formData = new FormData();\n const url = `${this.apiDomain}/user/userdocuments`;\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return {\n list: response.data?.result?.list,\n type: response.data?.result?.type,\n };\n }\n\n public async documentDelete(documentID: number): Promise {\n const formData = new FormData();\n formData.append('documentID', documentID?.toString());\n const url = `${this.apiDomain}/user/documentdelete`;\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response.data?.list;\n }\n\n public async getUsersList(pageNo: number): Promise {\n const url = `${this.apiDomain}/user/listusers`;\n const data = new FormData();\n data.append('page', pageNo?.toString());\n const response = await http.postAsFormData>(url, data);\n const { result, totalUsers } = response?.data;\n\n return {\n result,\n totalUsers,\n };\n }\n\n public async createUsers(data: UsersList): Promise {\n const url = `${this.apiDomain}/user/createuser`;\n const formData = new FormData();\n formData.append('userEmail', data.userEmail);\n formData.append('userPhone', data.userPhone);\n formData.append('userFirstName', data.userFirstName);\n formData.append('userLastName', data.userLastName);\n formData.append('orderPermission', data.orderPermission);\n formData.append('userCountryCode', data.userCountryCode);\n formData.append('userDesignation', data.userDesignation);\n formData.append('userPhoneDialCode', data.userPhoneDialCode);\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response?.data;\n }\n\n public async updateUsers(data: UsersList): Promise {\n const url = `${this.apiDomain}/user/edituser`;\n const formData = new FormData();\n formData.append('userEmail', data.userEmail);\n formData.append('userPhone', data.userPhone);\n formData.append('userFirstName', data.userFirstName);\n formData.append('userLastName', data.userLastName);\n formData.append('orderPermission', data.orderPermission);\n formData.append('userCountryCode', data.userCountryCode);\n formData.append('userDesignation', data.userDesignation);\n formData.append('userPhoneDialCode', data.userPhoneDialCode);\n formData.append('userID', data.userID);\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response?.data;\n }\n\n public async deleteUser(id: string): Promise {\n const url = `${this.apiDomain}/user/deleteUser`;\n const formData = new FormData();\n formData.append('userID', id);\n const response = await http.postAsFormData>(url, formData);\n return response?.data;\n }\n\n public async getShippingAddresses(): Promise {\n const url = `${this.apiDomain}/user/gettermsofuse`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getCustomers(\n filterParams: ICustomerFilterParams,\n isDashboard: boolean\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/ordercustomers/`;\n const data = new FormData();\n if (filterParams.page) {\n data.append('page', `${filterParams.page}`);\n }\n if (filterParams.perPage) {\n data.append('perPage', `${filterParams.perPage}`);\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (isDashboard) {\n data.append('dashboard', 'Yes');\n }\n if (filterParams.searchKeyword) {\n data.append('searchKeyword', filterParams?.searchKeyword ?? '');\n }\n if (filterParams.fromDate) {\n data.append('fromDate', filterParams.fromDate);\n }\n if (filterParams.toDate) {\n data.append('toDate', filterParams.toDate);\n }\n // Object.keys(filterParams.filter)?.forEach((p) => {\n // const value = (filterParams.filter as any)[p]?.value;\n // if (value) {\n // if (p === FilterTypes.brand) {\n // data.append('brandID', value);\n // }\n // if (p === FilterTypes.branch) {\n // data.append('branchID', value);\n // }\n // }\n // });\n\n Object.keys(filterParams.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (filterParams.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const val: string = (filterParams.filter as any)[p]\n ?.map((brnch) => brnch.value)\n ?.join(',');\n if (val.length > 0) {\n data.append('branchID', val);\n }\n }\n });\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response.data;\n }\n\n public async getCustomerRequest(\n page: number,\n perPage?: number\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/ordercustomers/`;\n const data = new FormData();\n data.append('page', `${page}`);\n data.append('perPage', `${perPage}`);\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response.data;\n }\n\n public async getCustomersRequest(\n filterParams: ICustomerRequestFilterParams\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/customerList/`;\n const data = new FormData();\n data.append('page', `${filterParams.page}`);\n data.append('perPage', `${filterParams.perPage}`);\n data.append('brandID', '');\n data.append('branchID', '');\n if (filterParams.status) {\n data.append('status', filterParams.status);\n }\n if (filterParams.searchName) {\n data.append('searchName', filterParams?.searchName ?? '');\n }\n if (filterParams.fromDate) {\n data.append(\n 'searchDate',\n `${filterParams.fromDate}/${filterParams.toDate ?? filterParams.fromDate\n }`\n );\n }\n\n Object.keys(filterParams.filter)?.forEach((p) => {\n const value = (filterParams.filter as any)[p]?.value;\n if (value) {\n if (p === FilterTypes.brand) {\n data.append('searchBrands', value);\n }\n if (p === FilterTypes.branch) {\n data.append('searchBranch', value);\n }\n }\n });\n\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response.data;\n }\n\n public async getDeclineReason(\n type: 'Decline' | 'Revoke'\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/listReasons/`;\n const data = new FormData();\n data.append('type', type);\n data.append('userToken', '');\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response.data;\n }\n\n public async declineCustomerRequest(\n param: DeclineRequestParam\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/decline`;\n const data = new FormData();\n data.append('userID', param.userID);\n data.append('reasonID', param.reasonID);\n data.append('declineComment', param.declineComment);\n data.append('notifyCustomer', param.notifyCustomer);\n data.append('userToken', '');\n const response = await http.postAsFormData>(url, data);\n return response.data;\n }\n\n public async revokeCustomerRequest(\n param: DeclineRequestParam\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/revoke`;\n const data = new FormData();\n data.append('userID', param.userID);\n data.append('reasonID', param.reasonID);\n data.append('revokeComments', param.declineComment);\n data.append('notifyCustomer', param.notifyCustomer);\n data.append('userToken', '');\n const response = await http.postAsFormData>(url, data);\n return response.data;\n }\n\n public async addBranchAndApprove(\n param: IAddApproveParam\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/addBranchAndApprove`;\n const data = new FormData();\n data.append('userID', param.userID);\n data.append('brandBranch', JSON.stringify(param.brands));\n data.append('userToken', '');\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData>(url, data);\n return response.data;\n }\n\n public async getSalespersonAccountSettings(\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/salesperson/accountSettings/`;\n const data = new FormData();\n // if (userToken) {\n // data.append('userToken', userToken);\n // }\n data.append('action', 'view');\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getUserLogs(\n params: IUserLogParams\n ): Promise> {\n const url = `${this.apiDomain}/user/listUserLogs/`;\n const data = new FormData();\n if (params.userToken) {\n data.append('userToken', params.userToken);\n data.append('salespersonToken', '');\n } else {\n data.append('userToken', '');\n }\n data.append('userID', params.userID);\n data.append('perPage', `${params.perPage}`);\n data.append('page', `${params.page}`);\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n public async editSalesPerson(data: any): Promise {\n const url = `${this.apiDomain}/salesperson/accountSettings/`;\n const formData = new FormData();\n formData.append('action', 'update');\n formData.append('languagesKnown', data?.languagesKnown);\n formData.append('countryID', data?.userCountryCode);\n formData.append('roleTypeID', data?.roleTypeID);\n formData.append('rolesTypeName', data?.rolesTypeName);\n formData.append('stateID', data?.stateID);\n formData.append('stateName', data?.stateName);\n formData.append('userAdress1', data?.userAddress);\n formData.append('userCity', data?.userCity);\n formData.append('userDOB', data?.userDOB);\n formData.append('userEmail', data?.userEmail);\n formData.append('userFirstName', data?.userFirstName);\n formData.append('userLastName', data?.userLastName);\n formData.append('userGender', data?.userGender);\n formData.append('userZip', data?.userZip);\n formData.append('userProfilePicture', data?.userProfilePicture);\n formData.append('userPhone', data?.userPhone);\n formData.append('userDesignation', data?.userDesignation);\n formData.append('userDialcode', data?.userPhoneDialCode);\n formData.append('salespersonToken', data?.salespersonToken);\n\n const response = await http.postAsFormData>(\n url,\n formData\n );\n return response?.data;\n } \n\n public async getScheduleList(\n filterParams: IScheduleListParams\n ): Promise> {\n const url = `${this.apiDomain}/schedule/schedulemasterlist/`;\n const data = new FormData();\n if (filterParams.searchKeyword) {\n data.append('searchKeyword', filterParams?.searchKeyword ?? '');\n }\n\n if (filterParams.brandID) {\n data.append('brandID', filterParams.brandID.toString());\n } else {\n data.append('brandID', '');\n }\n data.append('branchID', '');\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n public async getUnScheduledList(\n filterParams: IScheduleListParams\n ): Promise> {\n const url = `${this.apiDomain}/schedule/listCustomers/`;\n const data = new FormData();\n if (filterParams.searchKeyword) {\n data.append('searchKeyword', filterParams?.searchKeyword ?? '');\n }\n data.append('day', filterParams.day);\n data.append('page', filterParams?.searchKeyword ? '1' : filterParams.page);\n data.append('perPage', filterParams.perPage);\n if (filterParams.date) {\n data.append('date', filterParams.date);\n }\n if (filterParams?.brandID?.length > 0) {\n data.append('brandID', filterParams.brandID.toString());\n } else {\n data.append('brandID', '');\n }\n data.append('branchID', '');\n if (filterParams?.salespersonID?.length > 0) {\n data.append('salePersonId', JSON.stringify(filterParams.salespersonID));\n }\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data;\n }\n public async createSchedule(\n week: string,\n userIds: string[],\n day?: string\n ): Promise> {\n const url = `${this.apiDomain}/schedule/addschedule/`;\n const data = new FormData();\n\n data.append('day', week);\n data.append('userIDs', JSON.stringify(userIds));\n if (day) {\n data.append('date', day);\n }\n\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getDayScheduleList(\n filterParams: IScheduleListParams\n ): Promise> {\n const url = `${this.apiDomain}/schedule/schedulelist/`;\n const data = new FormData();\n if (filterParams.searchKeyword) {\n data.append('searchKeyword', filterParams?.searchKeyword ?? '');\n }\n if (filterParams.brandID) {\n data.append('brandID', filterParams.brandID.toString());\n } else {\n data.append('brandID', '');\n }\n data.append('branchID', ''); \n if(filterParams?.fromWeb){\n data.append('fromWeb', filterParams?.fromWeb);\n }\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n public async getRequestScheduleList(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/schedule/schedulerequestlist/`;\n const data = new FormData(); \n if (params?.status) data.append('status', params?.status);\n if (params?.searchKeyword) data.append('searchKeyword', params?.searchKeyword);\n if (params?.scheduleDetailID) data.append('scheduleDetailID', params?.scheduleDetailID);\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate); \n if (params?.action) data.append('action', params.action); \n if (params?.reason) data.append('reason', params.reason); \n if (params?.page) data.append('page', params.page); \n if (params?.perPage) data.append('perPage', params.perPage); \n if (params?.filter?.salesperson) data.append('salesperson', params?.filter?.salesperson?.map(item => item?.value).join(',')); \n const response = await http.postAsFormData>(url, data); \n return response.data; \n }\n\n // customer-dashboard\n public async getCustomerDashboard(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/user/customerDashboard`;\n const data = new FormData();\n if (params?.type === 'graph') {\n data.append('graph', 'Yes');\n } else if (params?.type === 'tabular') {\n data.append('tabular', 'Yes');\n }\n if (params?.switchType === \"Monthly\") {\n data.append('Monthly', 'Yes');\n } else if (params?.switchType === \"Quarterly\") {\n data.append('Quarterly', 'Yes');\n } else if (params?.switchType === \"Yearly\") {\n data.append('Yearly', 'Yes');\n }\n data.append('userToken', params.userToken);\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('salespersonToken', params?.salespersonToken);\n\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n\n return response?.data?.result;\n }\n\n // get userStatus\n public async getUserActiveStatus(): Promise {\n const url = `${this.apiDomain}/user/getUserStatus`;\n const data = new FormData();\n data.append('userToken', this.userToken ? this.userToken : '');\n\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n\n }\n}\n","import api from '../../../api';\nimport { FilterTypes } from '../../../containers/vehicles/components/order-filter-component';\nimport {\n IApproveRequestItem,\n IBulkImportResponse,\n ICartData,\n ICheckoutData,\n IOrder,\n IOrderDetails,\n IOrderFilterData,\n IOrderListParams,\n IPerformanceGraphData,\n IPerformanceGraphRequestParams,\n IPreviewData,\n IRejectRequestItem,\n IReturnDetails,\n IReturnListApiResponse,\n IReturnRequestFilterParams,\n IReturnRequestItem,\n ISampleLinks,\n Reasons,\n RejectReason,\n ReturnRequests,\n ToDoResult,\n} from '../../../models/order-models';\nimport { ApiResponse, CreditExtendRequest, UserType } from '../models';\nimport * as http from './http';\nimport ApiService from './service';\n\nexport class OrderService extends ApiService {\n public async getOrderRequests(params: any): Promise {\n const url = `${this.apiDomain}/order/request/`;\n\n const data = new FormData();\n data.append('status', params.status);\n // data.append('requestID', params.requestID );\n // data.append('fromDate', params.fromDate );\n // data.append('toDate', params.toDate );\n // data.append('searchUserID', params.searchUserID );\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('limitFrom', '0');\n data.append('limitTo', params.limit);\n const response = await http.postAsFormData>(url, data);\n\n return response?.data;\n }\n\n public async getPerformaceGraphData(\n params: IPerformanceGraphRequestParams\n ): Promise {\n const url = `${this.apiDomain}/salesperson/performance/`;\n const data = new FormData();\n data.append('type', params?.type);\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('userToken', '');\n if ((params.salespersons?.length ?? 0) > 0) {\n data.append(\n 'searchUserID',\n params.salespersons.map((p) => p.value).join(',')\n );\n }\n if (params?.fromMonth) data.append('fromMonth', params.fromMonth);\n if (params?.toMonth) data.append('fromDate', params.toMonth);\n if (params?.dashboard) data.append('dashboard', params.dashboard);\n\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n\n return response?.data?.result;\n }\n\n public async getToDoList(isDashboard: boolean): Promise {\n const url = `${this.apiDomain}/salesperson/todoList/`;\n const data = new FormData();\n data.append('dashboard', isDashboard ? 'Yes' : '');\n data.append('userToken', '');\n data.append('brandID', '');\n data.append('branchID', '');\n if (isDashboard) {\n data.append('page', '1');\n data.append('perPage', '10');\n }\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data?.result;\n }\n\n public async getOrderRequestsDuplicate(\n params: IOrderListParams,\n includeCheckedInToken?: boolean\n ): Promise> {\n const url = `${this.apiDomain}/order/request/`;\n const data = new FormData();\n data.append('status', params?.status);\n if (params?.requestID) data.append('requestID', params.requestID);\n if (params?.startDate) data.append('fromDate', params.startDate);\n if (params?.endDate) data.append('toDate', params.endDate);\n if (params?.requestedBy) data.append('requestedBy', params.requestedBy);\n if (params?.approvedBy) data.append('approvalUser', params.approvedBy);\n if (params?.createdFor) data.append('createdFor', params.createdFor);\n if (params?.cancelledBy) data.append('cancelledBy', params.cancelledBy);\n if (params?.rejectedBy) data.append('rejectedBy', params.rejectedBy);\n if (params?.paymentID) data.append('paymentMethod', params.paymentID);\n if (params.paymentStatus) {\n data.append('payamentStatus', params.paymentStatus);\n }\n if (params.salesperson) data.append('salesperson', params.salesperson);\n if (params?.export) data.append('export', 'Yes');\n data.append('brandID', params.brand ?? '');\n data.append('branchID', params.branchIDs ?? '');\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // if (api.getUserType() === UserType.Salesperson) {\n // data.append('userToken', '');\n // }\n const response = await http.postAsFormData>(\n url,\n data,\n includeCheckedInToken\n );\n if (!params?.status) {\n response.data.result = [];\n }\n return response?.data;\n }\n\n public async getVehicleList(\n params: IOrderListParams,\n includeCheckedInToken?: boolean\n ): Promise> {\n const url = `${this.apiDomain}/product/listVin/`;\n const data = new FormData();\n data.append('status', params?.status);\n if (params?.requestID) data.append('searchText', params.requestID);\n if (params?.startDate) data.append('searchStartDate', params.startDate);\n if (params?.endDate) data.append('searchEndDate', params.endDate);\n if (params.salesperson) data.append('salesperson', params.salesperson);\n if (params?.export) data.append('export', 'Yes');\n data.append('brandID', params.brand ?? '');\n data.append('branchID', params.branchIDs ?? '');\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // if (api.getUserType() === UserType.Salesperson) {\n // data.append('userToken', '');\n // }\n const response = await http.postAsFormData>(\n url,\n data,\n includeCheckedInToken\n );\n if (!params?.status) {\n response.data.result = [];\n }\n return response?.data;\n }\n\n public async getVinListStats(\n params: any,\n includeCheckedInToken?: boolean\n ): Promise> {\n const url = `${this.apiDomain}/product/vinSummary/`;\n const data = new FormData();\n if(params?.searchStartDate){\n data.append('searchStartDate', params?.searchStartDate);\n }\n if(params?.searchEndDate){\n data.append('searchEndDate', params?.searchEndDate);\n }\n if(params?.searchText){\n data.append('searchText', params?.searchText);\n }\n\n const response = await http.postAsFormData>(\n url,\n data,\n includeCheckedInToken\n );\n return response?.data;\n }\n\n\n public async getDashboardData(\n params: any,\n includeCheckedInToken?: boolean\n ): Promise> {\n const url = `${this.apiDomain}/index/dashboard`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data,\n includeCheckedInToken\n );\n return response?.data;\n }\n\n public async getCustomerDetails(vinID: string): Promise {\n const url = `${this.apiDomain}/product/vinDetails`;\n\n const data = new FormData();\n data.append('vinID', vinID);\n if (api.getUserType() === UserType.Salesperson) {\n data.append('userToken', '');\n }\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getOrderDetails(orderId: string): Promise {\n const url = `${this.apiDomain}/order/requestDetails/`;\n\n const data = new FormData();\n data.append('requestID', orderId);\n data.append('brandID', '');\n data.append('branchID', '');\n if (api.getUserType() === UserType.Salesperson) {\n data.append('userToken', '');\n }\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result;\n }\n\n public async getCheckoutData(\n orderID: string,\n brandID: string,\n branchID: string,\n userToken?: string\n ): Promise> {\n const url = `${this.apiDomain}/cart/checkout/`;\n const data = new FormData();\n data.append('orderRequestID', orderID);\n data.append('brandID', brandID);\n data.append('branchID', branchID);\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getArbVerifyPay(\n orderID: string\n // brandID: string,\n // branchID: string,\n // userToken?: string\n ): Promise> {\n const url = `${this.apiDomain}/cart/verifyArabPaymentMobile/`;\n const data = new FormData();\n data.append('orderID', orderID);\n // data.append('brandID', brandID);\n // data.append('branchID', branchID);\n // if (userToken) {\n // data.append('userToken', userToken);\n // }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getSampleLinks(): Promise {\n const url = `${this.apiDomain}/index/bulkSampleFile`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async submitBulkOrder(ids: string): Promise> {\n const url = `${this.apiDomain}/cart/confirmBulkImportCart/`;\n const data = new FormData();\n data.append('tempBulkOrderID', ids);\n const response = await http.postAsFormData>(\n url,\n data,\n true\n );\n return response?.data;\n }\n\n public async bulkImportOrders(file: File): Promise {\n const url = `${this.apiDomain}/cart/bulkImportCart/`;\n const formData = new FormData();\n formData.append('orderFile', file);\n formData.append('action', 'view');\n const response = await http.postAsFormData(url, formData, true);\n\n return (response?.data as any)?.result;\n }\n\n public async getPreviewDetails(\n requestId: string,\n items: IApproveRequestItem[],\n isPreview: boolean,\n userToken: string\n ): Promise> {\n const url = `${this.apiDomain}/order/requestApprove/`;\n\n const data = new FormData();\n data.append('requestID', requestId);\n data.append('preview', isPreview ? 'Yes' : 'No');\n data.append('requestItems', JSON.stringify(items));\n if (userToken) {\n data.append('userToken', userToken);\n data.append('brandID', '');\n data.append('branchID', '');\n }\n const response = await http.postAsFormData>(url, data);\n\n return response?.data;\n }\n\n public async getOrderFilterData(): Promise {\n const url = `${this.apiDomain}/order/filter/`;\n\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data?.result;\n }\n\n public async getRejectReason(\n type?: 'Decline' | 'Revoke'\n ): Promise {\n const url = `${this.apiDomain}/order/rejectreasons/`;\n\n const data = new FormData();\n if (type) {\n data.append('type', type);\n }\n\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async rejectRequest(\n requestId: string,\n items: IRejectRequestItem[],\n isPreview: boolean,\n userToken: string\n ): Promise> {\n const url = `${this.apiDomain}/order/requestDelete/`;\n\n const data = new FormData();\n data.append('requestID', requestId);\n data.append('preview', isPreview ? 'Yes' : 'No');\n data.append('requestItems', JSON.stringify(items));\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n\n return response?.data;\n }\n\n public async cancelRequest(\n requestId: string,\n items: IRejectRequestItem[],\n isPreview: boolean,\n userToken: string\n ): Promise {\n const url = `${this.apiDomain}/order/requestCancel/`;\n\n const data = new FormData();\n data.append('requestID', requestId);\n data.append('preview', isPreview ? 'Yes' : 'No');\n data.append('requestItems', JSON.stringify(items));\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n\n return response.data;\n }\n\n public async returnRequest(\n orderId: string,\n items: IReturnRequestItem[],\n isPreview: boolean,\n userToken: string\n ): Promise> {\n const url = `${this.apiDomain}/return/returnproducts/`;\n\n const data = new FormData();\n data.append('orderID', orderId);\n data.append('products', JSON.stringify(items));\n data.append('action', isPreview ? 'Preview' : 'Save');\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n\n return response.data;\n }\n\n public async getCreditLimitDetails(requestData?: any): Promise {\n const url = `${this.apiDomain}/cart/checkcreditavailibility`;\n const data = new FormData();\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('cartID', requestData?.cartID);\n if (requestData?.userToken) {\n data.append('userToken', requestData?.userToken);\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async requestCreditExtend(\n requestData: CreditExtendRequest\n ): Promise {\n const url = `${this.apiDomain}/cart/requestcredit/`;\n const data = new FormData();\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('cartID', requestData?.cartID);\n data.append('requestType', requestData?.requestType);\n data.append('extendedCreditTerms', requestData?.extendedCreditTerms);\n if (requestData?.userToken) {\n data.append('userToken', requestData?.userToken);\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async requestAgain(\n requestId: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/order/requestAgain/`;\n\n const data = new FormData();\n data.append('requestID', requestId);\n if (userToken) {\n data.append('userToken', userToken);\n }\n const response = await http.postAsFormData>(url, data);\n\n return response.data;\n }\n\n public async salepersonRejectOrApprove(\n requestId: string,\n action: 'Approve' | 'Reject',\n reason?: string\n ): Promise {\n const url = `${this.apiDomain}/order/requestCancel/`;\n\n const data = new FormData();\n data.append('requestID', requestId);\n data.append('action', action);\n data.append('reason', reason);\n const response = await http.postAsFormData>(url, data);\n\n return response.data;\n }\n\n public async downloadVehicle(\n params: IOrderListParams,\n includeCheckedInToken?: boolean\n ): Promise> {\n const url = `${this.apiDomain}/product/downloadVin/`;\n const data = new FormData();\n data.append('status', params?.status);\n if (params?.requestID) data.append('searchStartDate', params.startDate);\n if (params?.startDate) data.append('searchEndDate', params.endDate);\n if (params?.endDate) data.append('searchText', params.searchText);\n if (params?.requestedBy) data.append('customerNotAdded', \"no\");\n data.append('brandID', params.brand ?? '');\n data.append('branchID', params.branchIDs ?? '');\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n const response = await http.postAsFormData>(\n url,\n data,\n includeCheckedInToken\n );\n if (!params?.status) {\n response.data.result = [];\n }\n return response?.data;\n }\n\n public async downloadCsv(url: string): Promise {\n const response = await http.get(url);\n\n return response;\n }\n\n public async removeExportFile(fileName: string): Promise {\n const url = `${this.apiDomain}/order/removeExportFile/`;\n\n const data = new FormData();\n data.append('file', fileName);\n const response = await http.postAsFormData>(url, data);\n\n return response.data;\n }\n\n public async getReturnRequest(\n params: IReturnRequestFilterParams\n ): Promise> {\n const url = `${this.apiDomain}/return/returnlist/`;\n const data = new FormData();\n data.append('status', params.status);\n data.append('requestID', params.requestID);\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n // if (params.fromDate) {\n // data.append(\n // 'searchDate',\n // `${params.fromDate}/${params.toDate ?? params.fromDate}`\n // );\n // }\n data.append('brandID', '');\n data.append('branchID', '');\n\n Object.keys(params.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((brnch) => {\n if (brnch.value) val.push(brnch.value);\n return;\n });\n if (val.length > 0) {\n data.append('branchID', val.toString());\n }\n }\n });\n\n const response = await http.postAsFormData<\n IReturnListApiResponse\n >(url, data);\n return response.data;\n }\n\n public async getReturnDetails(\n returnId: string\n ): Promise> {\n const url = `${this.apiDomain}/return/returnlist/`;\n\n const data = new FormData();\n data.append('returnID', returnId);\n data.append('brandID', '');\n data.append('branchID', '');\n if (api.getUserType() === UserType.Salesperson) {\n data.append('userToken', '');\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data;\n }\n\n public async returnRejectOrApprove(\n returnId: string,\n action: 'Approve' | 'Reject',\n reason?: string\n ): Promise {\n const url = `${this.apiDomain}/return/returnlist/`;\n\n const data = new FormData();\n data.append('returnID', returnId);\n data.append('action', action);\n data.append('reason', reason);\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData>(url, data);\n\n return response.data;\n }\n}\n","import { IBrandBranchData, IPermissionData } from '../../../models/brand';\nimport { ApiResponse, ICustomerData, ICustomerFormSubmit, ISalesPerson, ISalespersonApiModel } from '../models';\nimport * as http from './http';\nimport ApiService from './service';\nimport { IAddress } from '../../../core/api/models';\nimport { IStaffPermissionApiModel } from '../../../containers/account-settings/staff-member/userPermission/staff-permission-tab-content';\n\nexport class StaffService extends ApiService {\n public async getLanguages(): Promise {\n const url = `${this.apiDomain}/index/listLanguages/`;\n const data = new FormData();\n data.append('userToken', this.userToken ? this.userToken : '');\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getCountries(): Promise {\n const url = `${this.apiDomain}/user/countries/`;\n const data = new FormData();\n data.append('userToken', this.userToken ? this.userToken : '');\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getBrandsWithBranches(): Promise {\n const url = `${this.apiDomain}/index/listBrandWithBranches/`;\n const data = new FormData();\n data.append('userToken', this.userToken ? this.userToken : '');\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getRoleTypes(userToken?: string): Promise {\n const url = `${this.apiDomain}/user/listRolesType/`;\n const data = new FormData();\n data.append('userToken', this.userToken ? this.userToken : userToken);\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n\n public async getBrandTypes(userToken?: string): Promise {\n const url = `${this.apiDomain}/product/listBrands/`;\n const data = new FormData();\n data.append('userToken', this.userToken ? this.userToken : userToken);\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getVinTypes(userToken?: string, brandID?: string, status?: number, vin?: any): Promise {\n const url = `${this.apiDomain}/product/listVin/`;\n const data = new FormData();\n data.append('status', status?.toString())\n data.append('brandID', brandID);\n data.append('userToken', this.userToken ? this.userToken : userToken);\n data.append('multiple', \"yes\");\n data.append('vinSearch', vin ?? '');\n\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getPermissions(\n fields: any,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/index/listPermissions/`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('userType', fields?.userType);\n if (fields?.roleType) {\n data.append('roleType', fields?.roleType);\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async createStaff(fields: any): Promise {\n const url = `${this.apiDomain}/user/createuser`;\n const data = new FormData();\n data.append(\n 'userToken',\n this.userToken ? this.userToken : fields?.userToken ?? ''\n );\n data.append('userFirstName', fields?.userFirstName);\n data.append('userLastName', fields?.userLastName);\n data.append('orderPermission', 'true');\n data.append('userPhone', fields?.userPhone);\n if (fields?.userCountryCode) {\n data.append('userCountryCode', fields?.userCountryCode);\n }\n data.append('userPhoneDialCode', fields?.userPhoneDialCode);\n data.append('userEmail', fields?.userEmail);\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async editStaff(fields: any): Promise {\n const url = `${this.apiDomain}/user/edituser`;\n const data = new FormData();\n if (fields.userToken) {\n data.append('userToken', fields.userToken);\n }\n data.append('salespersonToken', '');\n\n data.append('userID', fields?.userID);\n data.append('userToken', this.userToken ? this.userToken : '');\n data.append('userFirstName', fields?.userFirstName);\n data.append('userLastName', fields?.userLastName);\n data.append('orderPermission', 'true');\n data.append('userPhone', fields?.userPhone);\n if (fields?.userCountryCode) {\n data.append('userCountryCode', fields?.userCountryCode);\n }\n data.append('userPhoneDialCode', fields?.userPhoneDialCode);\n data.append('userDesignation', fields?.userDesignation);\n data.append('userEmail', fields?.userEmail);\n data.append('countryID', fields?.countryID);\n data.append('languagesKnown', fields?.languagesKnown);\n data.append('userGender', fields?.userGender);\n data.append('userDOB', fields?.userDOB);\n if (fields?.userProfilePicture) {\n data.append('userProfilePicture', fields?.userProfilePicture);\n }\n if (fields?.roleTypeID) {\n data.append('roleTypeID', fields?.roleTypeID);\n }\n if (fields?.brandPermission) {\n data.append('brandPermission', JSON.stringify(fields?.brandPermission));\n }\n\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async addEditSalesPerson(\n fields: ISalespersonApiModel\n ): Promise> {\n let url = `${this.apiDomain}/salesperson/editsalesperson/`;\n if (!fields.userID) {\n url = `${this.apiDomain}/salesperson/createsalesperson/`;\n }\n const data = new FormData();\n data.append('userToken', '');\n data.append('brandID', '');\n data.append('branchID', '');\n\n if (fields?.userID) {\n data.append('userID', fields?.userID);\n }\n if (fields.userProfilePicture) {\n data.append('userProfilePicture', fields.userProfilePicture);\n }\n data.append('userToken', this.userToken ? this.userToken : '');\n data.append('userFirstName', fields?.userFirstName);\n data.append('userLastName', fields?.userLastName);\n data.append('orderPermission', 'true');\n data.append('userPhone', fields?.userPhone);\n data.append('userPhoneDialCode', fields?.userPhoneDialCode);\n data.append('userEmail', fields?.userEmail);\n data.append('countryID', fields?.countryID);\n data.append('stateID', fields?.stateID);\n data.append('userZip', fields?.userZip);\n data.append('userTypeID', fields?.userTypeID);\n data.append('userAdress1', fields?.userAdress1);\n data.append('assignedStates', fields?.assignedStates + ' ');\n data.append('managerUserIDs', fields?.managerUserIDs + ' ');\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n public async deteleStaff(staffID: string): Promise {\n const url = `${this.apiDomain}/user/deleteuser`;\n const data = new FormData();\n data.append('userToken', this.userToken ? this.userToken : '');\n data.append('userToken', this.userToken ? this.userToken : '');\n data.append('userID', staffID);\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async deteleSalesPerson(\n userID: string\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/listsalespersons/`;\n const data = new FormData();\n data.append('userToken', '');\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('action', 'Delete');\n data.append('userID', userID);\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async changeStatusOfsalesPerson(\n userID: string,\n status: 'Active' | 'Inactive'\n ): Promise> {\n const url = `${this.apiDomain}/salesperson/changestatus/`;\n const data = new FormData();\n data.append('userToken', '');\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('status', status);\n data.append('userID', userID);\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getStaffPermission(\n id?: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/user/getStaffPermission`;\n const data = new FormData();\n data.append('subUserID', id || '');\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('brandID', '');\n data.append('branchID', '');\n\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async addAddress(address: IAddress): Promise {\n const url = `${this.apiDomain}/user/staffShipping`;\n const data = new FormData();\n data.append('shippingFname', address.shippingFname);\n data.append('shippingAddress1', address.shippingAddress1);\n data.append('shippingCountryID', address.shippingCountryID);\n data.append('shippingStateID', address.shippingStateID);\n data.append('shippingCity', address.shippingCity);\n data.append('shippingZip', address.shippingZip);\n data.append('shippingPhoneDialCode', address.shippingPhoneDialCode);\n data.append('shippingPhone', address.shippingPhone);\n data.append('staffUserID', address.staffUserID);\n if (address.warehouseIDs) {\n data.append(\n 'warehouseIDs',\n JSON.stringify(address.warehouseIDs.toString())\n );\n }\n data.append('shippingPhoneCountryCode', address.shippingPhoneCountryCode);\n data.append('action', address.action);\n if (address.userToken) {\n data.append('userToken', address.userToken);\n }\n\n data.append('salespersonToken', '');\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async editAddress(address: IAddress): Promise {\n const url = `${this.apiDomain}/user/staffShipping/`;\n const data = new FormData();\n\n data.append('userShippingID', address?.userShippingID);\n data.append('shippingFname', address?.shippingFname);\n data.append('shippingAddress1', address?.shippingAddress1);\n data.append('shippingCountryID', address?.shippingCountryID);\n data.append('shippingStateID', address?.shippingStateID);\n data.append('shippingCity', address?.shippingCity);\n data.append('shippingZip', address?.shippingZip);\n data.append('shippingPhoneDialCode', address?.shippingPhoneDialCode);\n data.append('shippingPhone', address?.shippingPhone);\n data.append('staffUserID', address?.staffUserID);\n // data.append('warehouseIDs', JSON.stringify(address?.warehouseIDs?.toString()));\n data.append('shippingPhoneCountryCode', address?.shippingPhoneCountryCode);\n data.append('action', address?.action);\n if (address.userToken) {\n data.append('userToken', address.userToken);\n }\n\n data.append('salespersonToken', '');\n\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async editUserPermission(\n modelData: IStaffPermissionApiModel,\n userToken?: string\n ): Promise {\n const url = `${this?.apiDomain}/user/addStaffPermission`;\n const data = new FormData();\n data.append('action', modelData.action);\n data.append('subUserID', modelData?.staffUserID);\n data.append('roleIDs', modelData?.generalPermissions);\n data.append(\n 'brandPermission',\n JSON?.stringify(modelData?.brandPermissions)\n );\n data.append('roleTypeID', modelData?.roleType?.roleTypeID);\n data.append(\n 'userToken',\n this?.userToken ? this?.userToken : userToken ?? ''\n );\n\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n // get FAQ\n public async getFaq(): Promise {\n const url = `${this.apiDomain}/faq/getFaqList/`;\n const data = new FormData();\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async createCustomer(fields: ICustomerData): Promise {\n const url = `${this.apiDomain}/product/updateCustomer`;\n const data = new FormData();\n data.append(\n 'userToken',\n this.userToken ? this.userToken : fields?.userToken ?? ''\n );\n data.append('customerFirstName', fields?.firstName);\n data.append('customerMiddleName', fields?.middleName);\n data.append('customerLastName', fields?.lastName);\n data.append('hidVin', fields?.vin);\n data.append('vinRegNumber', fields?.vehicleRegNumber);\n data.append('customerMobileNumber', fields?.mobileNumber?.entered);\n data.append('userCountryCode', fields?.userCountryCode);\n data.append('userPhoneDialCode', fields?.userPhoneDialCode);\n data.append('customerEmail', fields?.email);\n data.append('countryID', fields?.countryID);\n data.append('customerInvoiceDate', fields?.invoiceDate);\n data.append('customerInvoiceNumber', fields?.invoiceNumber);\n data.append('vinRegNumber', fields?.vehicleRegNumber);\n data.append('variant', fields?.variant);\n data.append('customerCity', fields?.city);\n data.append('fileName', fields?.istemara);\n data.append('invoiceFile', fields?.invoice);\n data.append('customerStreet', fields?.street);\n data.append('customerPOBox', fields?.poBox);\n data.append('brand', fields?.brand?.brandId);\n data.append('dealerName', fields?.dealerName);\n\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n}\n","import { FilterTypes } from '../../../containers/vehicles/components/order-filter-component';\nimport {\n IDeliveryAddress,\n IOrderListParams,\n} from '../../../models/order-models';\n\nimport {\n ICreditApplyParams,\n ICreditDetails,\n ICreditRequestResult,\n ICreditTerm,\n IDueCustomersResponse,\n IDuePaymentListResult,\n} from '../models/payment-models';\n\nimport {\n ApiResponse,\n IPaymentHistoryFilterParams,\n ICustomerFilterParams,\n IPaymentHistory,\n UserType,\n} from '../models';\nimport {\n IDuePaymentDetails,\n IProcessArbPaymentRequest,\n IProcessPaymentRequest,\n} from '../../../models/payment-models';\nimport * as http from './http';\nimport ApiService from './service';\nimport api from '../../../api';\n\nexport class PaymentService extends ApiService {\n public async getDuePayments(\n params?: IOrderListParams,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/payment/paymentdueorders/`;\n\n const data = new FormData();\n if (params?.requestID) data.append('requestID', params.requestID);\n if (params?.startDate) data.append('fromDate', params.startDate);\n if (params?.endDate) data.append('toDate', params.endDate);\n if (params?.requestedBy) data.append('requestedBy', params.requestedBy);\n if (params?.approvedBy) data.append('approvalUser', params.approvedBy);\n if (params?.export) data.append('export', 'Yes');\n data.append('brandID', params.brand ?? '');\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('branchID', params.branchIDs ?? '');\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n\n return response?.data?.result;\n }\n\n public async getPaymentHistory(\n filterParams: IPaymentHistoryFilterParams\n ): Promise> {\n const url = `${this.apiDomain}/payment/paymenthistory/`;\n const data = new FormData();\n data.append('page', `${filterParams.page}`);\n data.append('brandID', '');\n data.append('branchID', '');\n if (filterParams.searchName) {\n data.append('searchName', filterParams?.searchName ?? '');\n }\n if (filterParams.fromDate) {\n data.append('fromDate', filterParams.fromDate);\n data.append('toDate', filterParams.toDate);\n }\n\n Object.keys(filterParams.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (filterParams.filter as any)[p]?.value;\n data.append('brandID', value);\n }\n\n if (p === FilterTypes.branch) {\n let values = (filterParams.filter as any)[p];\n values = values.map((item) => item.value);\n data.append('branchID', values);\n }\n });\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data;\n }\n\n public async getPaymentHistoryDetails(\n id: string\n ): Promise> {\n const url = `${this.apiDomain}/payment/paymenthistory/`;\n const data = new FormData();\n\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('paymentOrderID', id);\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data?.result?.list;\n }\n\n public async processPayment(\n params?: IProcessPaymentRequest\n ): Promise {\n const url = `${this.apiDomain}/payment/paymentdueorders/`;\n\n const data = new FormData();\n data.append('action', params.action);\n if (params.userToken != null) {\n data.append('userToken', params.userToken);\n }\n data.append('masterOrderID', params.masterOrderID);\n data.append('userGivenAmount', params.userGivenAmount);\n data.append(\n 'paymentSettingsGroupKeySelected',\n params.paymentSettingsGroupKeySelected\n );\n data.append('bankName', params.bankName);\n data.append('brandID', '');\n data.append('branchID', '');\n\n if (params?.purchaseFile) {\n data.append('purchaseFile', params.purchaseFile);\n }\n if (params?.transactionDetails) {\n data.append('transactionDetails', params.transactionDetails);\n }\n if (params?.chequeNumber) {\n data.append('chequeNumber', params.chequeNumber);\n }\n if (params?.chequeDate) {\n data.append('chequeDate', params.chequeDate);\n }\n\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n\n return response?.data?.result;\n }\n\n // arb due payment\n public async processArbDuePayment(\n params?: IProcessArbPaymentRequest\n ): Promise {\n const url = `${this.apiDomain}/payment/paymentdueorders/`;\n\n const data = new FormData();\n data.append('action', params.action);\n if (params.userToken != null) {\n data.append('userToken', params.userToken);\n }\n data.append('masterOrderID', params.masterOrderID);\n data.append('userGivenAmount', params.userGivenAmount);\n data.append(\n 'paymentSettingsGroupKeySelected',\n params.paymentSettingsGroupKeySelected\n );\n data.append('brandID', '');\n data.append('branchID', '');\n\n const response = await http.postAsFormData>(url, data);\n\n return response?.data;\n }\n\n // verify due-payment\n public async getArbVerifyDuePay(\n paymentOrderID: string\n // brandID: string,\n // branchID: string,\n // userToken?: string\n ): Promise> {\n const url = `${this.apiDomain}/payment/verifyArabPaymentDueMobile/`;\n const data = new FormData();\n data.append('paymentOrderID', paymentOrderID);\n // data.append('brandID', brandID);\n // data.append('branchID', branchID);\n // if (userToken) {\n // data.append('userToken', userToken);\n // }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getCreditRequests(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/payment/creditrequestlist/`;\n const data = new FormData();\n data.append('status', params.status);\n data.append('searchRequestID', params.searchRequestID);\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n Object.keys(params.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((brnch) => {\n if (brnch.value) val.push(brnch.value);\n return;\n });\n if (val.length > 0) {\n data.append('branchID', val.toString());\n }\n }\n });\n\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response.data;\n }\n\n public async getPaymentDueUsersList(\n filterParams: ICustomerFilterParams\n ): Promise> {\n const url = `${this.apiDomain}/payment/paymentdueuserslist/`;\n const data = new FormData();\n data.append('page', `${filterParams.page}`);\n data.append('brandID', '');\n data.append('branchID', '');\n if (filterParams.searchKeyword) {\n data.append('searchKeyword', filterParams?.searchKeyword ?? '');\n }\n if (filterParams.fromDate) {\n data.append('fromDate', filterParams.fromDate);\n }\n if (filterParams.toDate) {\n data.append('toDate', filterParams.toDate);\n }\n Object.keys(filterParams.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (filterParams.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const val: string = (filterParams.filter as any)[p]\n ?.map((brnch) => brnch.value)\n ?.join(',');\n if (val.length > 0) {\n data.append('branchID', val);\n }\n }\n });\n\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response.data;\n }\n\n public async applyCredit(params?: ICreditApplyParams): Promise {\n const url = `${this.apiDomain}/payment/newcreditrequest/`;\n const data = new FormData();\n if (params.userToken) {\n data.append('userToken', params.userToken);\n }\n if (params.requestID) {\n data.append('requestID', params.requestID);\n }\n\n data.append('creditAmountRequested', params.creditAmountRequested);\n data.append('creditTermID', params.creditTerm?.credittermID);\n data.append('creditTermRequested', params.creditTerm?.credittermName);\n data.append('addressID', params.addressID);\n data.append('businessAnalysisDetails', params.businessAnalysisDetails);\n data.append('branchSummary', params.branchSummary);\n data.append('summaryDetails', params.summaryDetails);\n data.append('bankFacilities', params.bankFacilities);\n data.append('authorizedPersonDetails', params.authorizedPersonDetails);\n data.append('CustomerLetter', params.CustomerLetter);\n data.append('SIMAH', params.SIMAH);\n data.append('CRC', params.CRC);\n data.append('COC', params.COC);\n data.append('VAT', params.VAT);\n data.append('AFS', params.AFS);\n data.append('BS', params.BS);\n data.append('SS', params.SS);\n data.append('BA', params.BA);\n data.append('brandID', '');\n data.append('branchID', '');\n\n const response = await http.postAsFormData(url, data);\n\n return response.data;\n }\n\n public async getCreditTerms(): Promise {\n const url = `${this.apiDomain}/payment/creditTermList/`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n public async getPaymentHistoryDuplicate(\n params: IOrderListParams\n ): Promise> {\n const url = `${this.apiDomain}/payment/paymenthistory/`;\n const data = new FormData();\n data.append('status', params?.status);\n if (params?.requestID) data.append('requestID', params.requestID);\n if (params?.startDate) data.append('fromDate', params.startDate);\n if (params?.endDate) data.append('toDate', params.endDate);\n if (params?.requestedBy) data.append('requestedBy', params.requestedBy);\n if (params?.approvedBy) data.append('approvalUser', params.approvedBy);\n if (params?.export) data.append('export', 'Yes');\n data.append('brandID', params.brand ?? '');\n data.append('branchID', params.branchIDs ?? '');\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n if (api.getUserType() === UserType.Salesperson) {\n data.append('userToken', '');\n }\n const response = await http.postAsFormData>(\n url,\n data\n );\n if (!params?.status) {\n response.data.result = [];\n }\n return response?.data;\n }\n\n public async getCreditAddress(\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/payment/listaddress/`;\n const data = new FormData();\n if (userToken) {\n data.append('userToken', userToken);\n }\n // data.append('salespersonToken', '');\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getCreditDetails(\n requestID: string,\n action?: string,\n userToken?: string\n ): Promise> {\n const url = `${this.apiDomain}/payment/creditrequestlist`;\n\n const data = new FormData();\n data.append('requestID', requestID);\n if (userToken) {\n data.append('userToken', userToken);\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (action) {\n data.append('action', action);\n }\n // else {\n // data.append('details', 'Yes');\n // }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data;\n }\n\n public async getDuePaymentDetails(\n masterOrderId: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/payment/paymentdueorderdetails/`;\n\n const data = new FormData();\n data.append('masterOrderID', masterOrderId);\n if (userToken) {\n data.append('userToken', userToken);\n }\n\n data.append('brandID', '');\n data.append('branchID', '');\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data?.result;\n }\n\n public async downloadPaymentDetails(\n masterOrderId: string,\n userToken?: string\n ): Promise {\n const url = `${this.apiDomain}/payment/printReciept`;\n\n const data = new FormData();\n data.append('paymentDetailOrderID', masterOrderId);\n if (userToken) {\n data.append('userToken', userToken);\n }\n\n data.append('brandID', '');\n data.append('branchID', '');\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n\n return response?.data;\n }\n}\n","import { FilterTypes } from \"../../../containers/vehicles/components/order-filter-component\";\nimport { BuisnessDetailData, ConversionCustomerOrderDetail, ConversionRateData, ConversionRateReportData, ConversionRateSalesDetail, CustomerGroup, CustomerGroupDetail, IBrandWiseTotal, ISalesManReport, ISalesPerformanceReport, SKUReportData, StatusQuotaionDetail, StatusReport, SupervisorFilter, TopSalesCustomerData, TopSalesPersonData } from \"../models/report\";\nimport { ApiResponse } from \"../models\";\nimport ApiService from \"./service\"\nimport * as http from './http';\nimport { da } from \"date-fns/locale\";\n\n\nexport class ReportSevice extends ApiService {\n\n //Sales Performance report \n\n public async getSalesPerformanceReport(params: any): Promise {\n const url = `${this.apiDomain}/report/salePerformance/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n data.append('branchID', '' );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getSalesPerformanceReportDuplicate(params: any): Promise> {\n const url = `${this.apiDomain}/report/salePerformance/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n data.append('branchID', '' );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n\n //top sales person report\n\n public async getTopSalesPersonReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/topSellingSalesperson/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //top sale customer report\n public async getTopSalesCustomerReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/topSellingCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //sku report\n public async getSKUReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/skuReport/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n data.append('branchID', '' );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //conversion rate report\n public async getConversionRateReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/conversionRates/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.supervisor) data.append('supervisor', params.supervisor);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n // conversion rate - sales amount\n public async getConversionRateSalesReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/conversionRatesSaleAmount/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.supervisor) data.append('supervisor', params.supervisor);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n // download conversion-rate-sale\n public async getConversionRateSalesReportDownload(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/conversionRatesSaleAmount/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.supervisor) data.append('supervisor', params.supervisor);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //conversion rate duplicate\n\n public async getConversionRateReportDuplicate(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/conversionRates/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //conversion rate customer detail report\n public async getConversionRateDetailReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/conversionRatesCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n // conversion-sale-detail\n public async getConversionRateSaleDetailReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/conversionRatesSaleAmountCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n\n //conversion rate customer order detail report\n public async getConversionCustomerOrderDetail(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/conversionRatesCustomerOrder/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n data.append('specificDate', params.specificDate );\n data.append('userID', params.userID );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // customer sale order conversion detail\n public async getConversionCustomerSaleOrderDetail(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/conversionRatesSaleAmountCustomerOrder/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n data.append('specificDate', params.specificDate );\n data.append('userID', params.userID );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // status-customer-detail-order\n public async getStatusCustomerOrderDetail(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/orderStatusOrderDetails/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n data.append('specificDate', params.specificDate );\n data.append('userID', params.userID );\n data.append('OrdStatus',params?.OrdStatus)\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //conversion sales person detail\n public async getConversionSalesDetail(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/conversionRatesCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //status report\n public async getSalesStatusReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/orderStatus/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.paymentMethod) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((pay) => {\n if (pay.value) val.push(pay.value);\n return;\n });\n if (val.length > 0) {\n data.append('paymentMethod', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getStatusReportDuplicate(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/orderStatus/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.paymentMethod) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((pay) => {\n if (pay.value) val.push(pay.value);\n return;\n });\n if (val.length > 0) {\n data.append('paymentMethod', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // status detail report\n public async getStatusDetailReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/orderStatusCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.paymentMethod) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((pay) => {\n if (pay.value) val.push(pay.value);\n return;\n });\n if (val.length > 0) {\n data.append('paymentMethod', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n // status customer order details\n public async getStatusOrderDetailReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/orderStatusQuotation/`;\n const data = new FormData();\n if (params?.userID) data.append('userID', params.userID);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // customer group\n public async getCustomerGroupReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/customerGroup/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.paymentMethod) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((pay) => {\n if (pay.value) val.push(pay.value);\n return;\n });\n if (val.length > 0) {\n data.append('paymentMethod', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n if (p === FilterTypes.userGroup) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('userGroupID', value);\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n public async getCustomerGroupReportDuplicate(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/customerGroup/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.multiSelectSalesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.paymentMethod) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((pay) => {\n if (pay.value) val.push(pay.value);\n return;\n });\n if (val.length > 0) {\n data.append('paymentMethod', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n if (p === FilterTypes.userGroup) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('userGroupID', value);\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // customer buisness type detail\n public async getCustomerGroupDetailReport(\n params: any\n ): Promise {\n const url = `${this.apiDomain}/report/customerGroupBusinessType/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.paymentMethod) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((pay) => {\n if (pay.value) val.push(pay.value);\n return;\n });\n if (val.length > 0) {\n data.append('paymentMethod', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n //filter supervisor\n public async getSupervisor(): Promise {\n const url = `${this.apiDomain}/report/getSupervisorFilter/`;\n const data = new FormData();\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data?.result;\n }\n\n}","import { FilterTypes } from '../../../containers/vehicles/components/order-filter-component';\nimport {\n IBrandWiseTotal,\n ISalesManReport,\n ISalesPerformanceReport,\n SKUReportData,\n TopSalesPersonData,\n} from '../models/report';\nimport { ApiResponse } from '../models';\nimport ApiService from './service';\nimport * as http from './http';\nimport { da } from 'date-fns/locale';\nimport {\n CustomerUsage,\n CustomerUsageDetail,\n DeletedCartData,\n DeletedProductCartCustomer,\n InactiveCustomer,\n} from '../models/customer';\n\nexport class CustomerSevice extends ApiService {\n //get customer usage report\n\n public async getCustomerUsage(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/customerusage/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes');\n }\n if (params?.month) {\n data.append('month', 'Yes');\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes');\n }\n if (params?.week) {\n data.append('week', 'Yes');\n }\n data.append('brandID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n //get customer usage details\n\n public async getCustomerUsageDetail(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/subCustomerUsageGetCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data;\n }\n\n //get customer deleted products of cart\n\n public async getCustomerDeletedProductCart(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/subCustomerUsageGetCartDeleted/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData<\n ApiResponse\n >(url, data);\n return response?.data;\n }\n\n //Customer inactive report\n\n public async getInactiveCustomers(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/inactivecustomeruser/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n public async getDeletedCartItemReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/deletedCart/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n}\n","import { FilterTypes } from \"../../../containers/vehicles/components/order-filter-component\";\nimport { IBrandWiseTotal, ISalesManReport, ISalesPerformanceReport, SKUReportData, TopSalesPersonData } from \"../models/report\";\nimport { ApiResponse, EscalationReport, SalesPersonActivity, SalesPersonActivityDetail, SalesPersonUsage, VisitReport, VisitReportCustomer, YearPerformanceCustomer, YearToYearPerformance } from \"../models\";\nimport ApiService from \"./service\"\nimport * as http from './http';\nimport { da } from \"date-fns/locale\";\nimport { CustomerUsage, CustomerUsageDetail, DeletedCartData, DeletedProductCartCustomer, InactiveCustomer } from \"../models/customer\";\n\n\nexport class SalesPersonReportSevice extends ApiService {\n\n // get escalation report\n\n public async getEscalationReport(params: any): Promise> {\n const url = `${this.apiDomain}/report/escalation/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n \n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.ageing) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('escDays', value);\n }\n }\n if (p === FilterTypes.escalationType) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('escType', value);\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n // get sales person usage details\n public async getSalesPersonUsageReport(params: any): Promise> {\n const url = `${this.apiDomain}/report/salespersonUsage/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n // salesperson activity report\n public async getSalesPersonActivityReport(params: any): Promise> {\n const url = `${this.apiDomain}/report/salespersonActivityReport/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n // salesperson activity view report\n public async getSalesPersonActivityViewReport(params: any): Promise {\n const url = `${this.apiDomain}/report/salespersonActivityReportDetails/`;\n const data = new FormData();\n if (params?.searchUserID) data.append('searchUserID', params.searchUserID);\n if (params?.detailDate) data.append('detailDate', params.detailDate);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n // customer activity\n public async getCustomerActivityReport(params: any): Promise> {\n const url = `${this.apiDomain}/report/customerActivityReport/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n // customer activity view\n public async getCustomerActivityViewReport(params: any): Promise {\n const url = `${this.apiDomain}/report/customerActivityReportDetails/`;\n const data = new FormData();\n if (params?.searchUserID) data.append('searchUserID', params.searchUserID);\n if (params?.detailDate) data.append('detailDate', params.detailDate);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '' );\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n // year to year performance\n public async getYearPerformanceReport(params: any): Promise {\n const url = `${this.apiDomain}/report/yearToYearPerformance/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.year) data.append('year', params.year);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getYearPerformanceReportDuplicate(params: any): Promise> {\n const url = `${this.apiDomain}/report/yearToYearPerformance/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.year) data.append('year', params.year);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n\n public async getYearPerformanceDetailReport(params: any): Promise {\n const url = `${this.apiDomain}/report/yearToYearGetCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.year) data.append('year', params.year);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n //visit report\n public async getVisitReport(params: any): Promise {\n const url = `${this.apiDomain}/report/visitReport/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.year) data.append('year', params.year);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getVisitReportDuplicate(params: any): Promise> {\n const url = `${this.apiDomain}/report/visitReport/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.year) data.append('year', params.year);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n \n // visit report customer detail\n public async getVisitReportDetailReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/visitReportGetCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.status) data.append('status', params.status);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.specificDate) data.append('specificDate', params.specificDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.userID) data.append('userID', params.userID);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n}","import { FilterTypes } from \"../../../containers/vehicles/components/order-filter-component\";\nimport { ApiResponse, EscalationReport, SalesPersonUsage } from \"../models\";\nimport ApiService from \"./service\"\nimport * as http from './http';\nimport { CreditExtension, CreditExtensionDetail, DueCustomerDetails, PayCollection, PayCollectionDetail, PaymentDueReport, PaymentDueReportDetails } from \"../models/payment-report\";\n\n\nexport class PaymentReportSevice extends ApiService {\n\n // credit extension report\n\n public async getCreditExtensionReport(params: any): Promise {\n const url = `${this.apiDomain}/report/creditExtension/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getCreditExtensionReportDuplicate(params: any): Promise> {\n const url = `${this.apiDomain}/report/creditExtension/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n //get payment due report\n\n public async getPaymentDueReport(params: any): Promise> {\n const url = `${this.apiDomain}/report/paymentDue/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n data.append('branchID', '');\n data.append('brandID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n // due detail report\n\n public async getPaymentDueDetailReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/paymentDueGetOrders/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.userID) data.append('userID', params.userID);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // credit extension detail report\n public async getCreditExtensionDetailReport(\n params: any\n ): Promise> {\n const url = `${this.apiDomain}/report/getCreditExtensionRequest/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.status) data.append('status', params.status);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.specificDate) data.append('specificDate', params.specificDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.userID) data.append('userID', params.userID);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n\n const response = await http.postAsFormData>(\n url,\n data\n );\n return response?.data;\n }\n\n // payment collection report\n public async getPayCollectionReport(params: any): Promise {\n const url = `${this.apiDomain}/report/paymentCollection/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data?.result;\n }\n\n public async getPayCollectionReportDuplicate(params: any): Promise> {\n const url = `${this.apiDomain}/report/paymentCollection/`;\n const data = new FormData();\n // if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n // data.append('limitFrom', params.limitFrom );\n // data.append('limitTo', params.limitTo );\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.day) {\n data.append('day', 'Yes')\n }\n if (params?.month) {\n data.append('month', 'Yes')\n }\n if (params?.quarter) {\n data.append('quarter', 'Yes')\n }\n if (params?.week) {\n data.append('week', 'Yes')\n }\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n if (p === FilterTypes.supervisor) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('supervisor', value);\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n // payment collection detail\n public async getPayCollectionDetailReport(params: any): Promise> {\n const url = `${this.apiDomain}/report/paymentCollectionGetCustomer/`;\n const data = new FormData();\n if (params?.salesPerson) data.append('salesPerson', params.salesPerson);\n if (params?.searchTerm) data.append('searchTerm', params.searchTerm);\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n if (params?.fromDate) data.append('fromDate', params.fromDate);\n if (params?.toDate) data.append('toDate', params.toDate);\n if (params?.sort) data.append('sort', params.sort);\n if (params?.orderby) data.append('orderby', params.orderby);\n data.append('brandID', '');\n data.append('branchID', '');\n if (params?.export) {\n data.append('export', 'Yes');\n }\n\n if (params?.filter) {\n Object.keys(params?.filter)?.forEach((p) => {\n if (p === FilterTypes.brand) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('brandID', value);\n }\n }\n if (p === FilterTypes.branch) {\n const value = (params.filter as any)[p]?.value;\n if (value) {\n data.append('branchID', value);\n }\n }\n if (p === FilterTypes.salesPerson) {\n const val: string[] = [];\n (params.filter as any)[p]?.map((sales) => {\n if (sales.value) val.push(sales.value);\n return;\n });\n if (val.length > 0) {\n data.append('salesPerson', val.toString());\n }\n }\n });\n }\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n \n\n\n}","import { IOrderListParams } from '../../../models/order-models';\nimport { ApiResponse } from '../models';\nimport { IDuePaymentListResult } from '../models/payment-models';\nimport * as http from './http';\nimport ApiService from './service';\n\nexport class CreditlineExtensionRequest extends ApiService {\n public async getCreditlineExtensionRequests(params): Promise {\n\n const url = `${this.apiDomain}/payment/creditextensionlist/`;\n const data = new FormData();\n if(params?.salesPersonToken)data.append('salespersonToken', params?.salesPersonToken);\n // data.append('salespersonToken', 'dd360c4196870d39da7fd924d9917cc4');\n data.append('status', params.status);\n // data.append('userToken', '');\n \n if (params?.requestID) data.append('searchRequestID', params.requestID);\n if (params?.startDate) data.append('fromDate', params.startDate);\n if (params?.endDate) data.append('toDate', params.endDate);\n if (params?.requestedBy) data.append('requestedBy', params.requestedBy);\n data.append('brandID', params.brand ?? '');\n data.append('branchID', params.branchIDs ?? '');\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n\n\n const response = await http.postAsFormData>(url, data);\n return response?.data.result;\n }\n\n public async getCreditlineExtensionRequestsDownload(params): Promise {\n\n const url = `${this.apiDomain}/payment/creditextensionlist/`;\n const data = new FormData();\n if(params?.salesPersonToken)data.append('salespersonToken', params?.salesPersonToken);\n // data.append('salespersonToken', 'dd360c4196870d39da7fd924d9917cc4');\n data.append('status', params.status);\n // data.append('userToken', '');\n \n if (params?.export) data.append('export', 'Yes');\n if (params?.requestID) data.append('searchRequestID', params.requestID);\n if (params?.startDate) data.append('fromDate', params.startDate);\n if (params?.endDate) data.append('toDate', params.endDate);\n if (params?.requestedBy) data.append('requestedBy', params.requestedBy);\n data.append('brandID', params.brand ?? '');\n data.append('branchID', params.branchIDs ?? '');\n if (params?.page) data.append('page', params.page);\n if (params?.perPage) data.append('perPage', params.perPage);\n\n\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async getCreditlineExtensionDetails(requestID,salesPersonToken): Promise {\n const url = `${this.apiDomain}/payment/creditextensionlist/`;\n const data = new FormData();\n if(salesPersonToken)data.append('salespersonToken',salesPersonToken);\n // data.append('salespersonToken', 'dd360c4196870d39da7fd924d9917cc4');\n // data.append('status', params.status);\n // data.append('userToken', '');\n \n if (requestID) data.append('requestID', requestID);\n data.append('brandID', '');\n data.append('branchID', '');\n \n\n\n const response = await http.postAsFormData>(url, data);\n return response?.data.result.list;\n }\n\n public async approveCreditLine(params): Promise {\n const url = `${this.apiDomain}/payment/creditextensionlist/`;\n const data = new FormData();\n // data.append('salespersonToken', 'dd360c4196870d39da7fd924d9917cc4');\n if(params?.salesPersonToken)data.append('salespersonToken', params?.salesPersonToken);\n // data.append('status', params.status);\n // data.append('userToken', '');\n \n if (params?.requestID) data.append('requestID', params.requestID);\n if (params?.action) data.append('action', params.action);\n if (params?.extentionCreditLimit) data.append('extentionCreditLimit', params.extentionCreditLimit);\n if (params?.gracePeriod) data.append('gracePeriod', params.gracePeriod);\n\n\n data.append('brandID', '');\n data.append('branchID', '');\n \n \n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async rejectCreditLine(params): Promise {\n const url = `${this.apiDomain}/payment/creditextensionlist/`;\n const data = new FormData();\n // data.append('salespersonToken', 'dd360c4196870d39da7fd924d9917cc4');\n if(params?.salesPersonToken)data.append('salespersonToken', params?.salesPersonToken);\n // data.append('status', params.status);\n // data.append('userToken', '');\n \n if (params?.requestID) data.append('requestID', params.requestID);\n if (params?.action) data.append('action', params.action);\n if (params?.reasonID) data.append('reason', params.reasonID);\n if (params?.comment) data.append('comment', params.comment);\n\n\n data.append('brandID', '');\n data.append('branchID', '');\n \n\n\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n}\n\n\n\n\n\n","import { INotificationResult } from '../../../models/order-models';\nimport { ApiResponse } from '../models';\nimport * as http from './http';\nimport ApiService from './service';\n\nexport class NotificationService extends ApiService {\n public async loadNotifications(\n params?: any\n ): Promise> {\n const url = `${this.apiDomain}/user/notificationList/`;\n const data = new FormData();\n data.append('brandID', '');\n data.append('branchID', '');\n const response = await http.postAsFormData>(url, data);\n return response?.data;\n }\n\n public async markAsRead(ids: string): Promise {\n const url = `${this.apiDomain}/user/read/`;\n const data = new FormData();\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('notificationId', ids);\n const response = await http.postAsFormData(url, data);\n return response?.data?.response === 'Success';\n }\n\n public async registerToken(\n deviceToken: string,\n deviceType: string\n ): Promise {\n const url = `${this.apiDomain}/user/insertdevice/`;\n const data = new FormData();\n data.append('brandID', '');\n data.append('branchID', '');\n data.append('deviceToken', deviceToken);\n data.append('deviceType', deviceType);\n const response = await http.postAsFormData(url, data);\n return response?.data?.response === 'Success';\n }\n}\n","import {\n AuthService,\n ModelsService,\n OrderService,\n UserService,\n StaffService,\n ReportSevice,\n SalesPersonReportSevice,\n} from './services';\n\nimport { ApiServiceDataStore } from './data';\nimport { UserType } from './models';\nimport { PaymentService } from './services/payment-service';\nimport { CreditlineExtensionRequest } from './services/creditline-extension';\nimport { NotificationService } from './services/notification-service';\nimport { CustomerSevice } from './services/customer-service';\nimport { PaymentReportSevice } from './services/report-payment-service';\nexport class CoreApiClient {\n public model: ModelsService;\n protected store: ApiServiceDataStore;\n public auth: AuthService;\n public user: UserService;\n public staff: StaffService;\n public order: OrderService;\n public report: ReportSevice;\n public payment: PaymentService;\n public salesPerson: SalesPersonReportSevice;\n public customer: CustomerSevice;\n public paymentReport: PaymentReportSevice;\n public creditline: CreditlineExtensionRequest;\n public notification: NotificationService;\n\n constructor(apiDomain: string) {\n this.store = {\n apiDomain,\n userToken: undefined,\n salespersonToken: undefined,\n userType: undefined,\n brandID: undefined,\n branchID: undefined,\n languageID: 1,\n userStatus: undefined,\n\n };\n this.model = new ModelsService(this.store);\n this.auth = new AuthService(this.store);\n this.user = new UserService(this.store);\n this.staff = new StaffService(this.store);\n this.payment = new PaymentService(this.store);\n this.report = new ReportSevice(this.store);\n this.customer = new CustomerSevice(this.store);\n this.salesPerson = new SalesPersonReportSevice(this.store);\n this.creditline = new CreditlineExtensionRequest(this.store);\n this.order = new OrderService(this.store);\n this.paymentReport = new PaymentReportSevice(this.store);\n this.notification = new NotificationService(this.store);\n }\n public setUserType(userType?: UserType) {\n this.store.userType = userType;\n }\n public getUserType() {\n return this.store.userType;\n } \n public getUserStatus() {\n return this.store.userStatus;\n }\n\n public setUserToken(token?: string) {\n this.store.userToken = token;\n }\n\n public setUserStatus(userStatus?: string) { \n this.store.userStatus = userStatus;\n }\n public getUserToken() {\n return this.store.userToken;\n }\n public setSalespersonToken(token?: string) {\n this.store.salespersonToken = token;\n }\n public getSalespersonToken() {\n return this.store.salespersonToken;\n }\n\n public setBrandID(brandID: string) {\n this.store.brandID = brandID;\n }\n public setBranchID(branchID: string) {\n this.store.branchID = branchID;\n }\n public setLanguageID(languageID?: number) {\n this.store.languageID = languageID ?? 1;\n }\n\n public getBrandID() {\n return this.store.brandID;\n }\n public getBranchID() {\n return this.store.branchID;\n }\n public getLanguageID() {\n return this.store.languageID;\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport './Return.scss';\nimport { UserHeader } from '../header';\nimport api from '../../api';\nimport classNames from 'classnames';\nimport { useHistory, useParams } from 'react-router-dom';\nimport {\n IReturnListApiResponse,\n ReturnReqCountByStatus,\n ReturnRequests,\n} from '../../models/order-models';\nimport { translate } from '../../utils/text-utils';\nimport { ITabDataWithColumns } from '../vehicles/vehicle-listing-screen';\nimport { FilterTypes } from '../vehicles/components/order-filter-component';\nimport { usePaginatedDataLoader } from 'react-remote-data-hooks';\nimport { PaginatedApiResponse } from '../../core/api/models';\nimport { ReturnRequestListing } from './components/return-listing';\nimport { ContainerLoader } from '../../components/loader';\nimport DateRange from '../../components/form-group/date-range';\nimport { DateFormats, formatDate } from '../../utils/date-utils';\nimport Pagination from '../../components/pagination/Pagination';\nimport { DebounceInput } from 'react-debounce-input';\nexport enum StatusTabs {\n Pending = 'Pending',\n Approved = 'Approved',\n Rejected = 'Rejected',\n}\nexport const StatusTabNames = {\n Pending: 'return.pending',\n Approved: 'return.approved',\n Rejected: 'return.rejected',\n};\n\nconst ReturnRequestScreen: React.FunctionComponent = () => {\n const history = useHistory();\n const { tab } = useParams<{\n tab: string;\n }>();\n\n const tabs: ITabDataWithColumns[] = [\n {\n tabTitle: translate(StatusTabNames.Pending),\n tabKey: StatusTabs.Pending,\n filterTypes: [FilterTypes.brand, FilterTypes.branch],\n },\n {\n tabTitle: translate(StatusTabNames.Approved),\n tabKey: StatusTabs.Approved,\n filterTypes: [FilterTypes.brand, FilterTypes.branch],\n },\n {\n tabTitle: translate(StatusTabNames.Rejected),\n tabKey: StatusTabs.Rejected,\n filterTypes: [FilterTypes.brand, FilterTypes.branch],\n },\n ];\n const [selectedTab, setSelectedTab] = React.useState(\n tabs[0]\n );\n\n const [date, setDate] = useState();\n const [count, setCount] = useState();\n const [search, setSearch] = useState('');\n const [page, setPage] = useState(1);\n const [perPage, setPerPage] = useState(10);\n\n const [tabName, setTabName] = React.useState(StatusTabNames.Pending);\n const [listSearch, toggleListSearch] = React.useState(false);\n\n useEffect(() => {\n const sTab = tabs.find((tb) => tb.tabKey === tab);\n if (sTab) {\n setSelectedTab(sTab);\n }\n }, [tab]);\n\n const onDateChange = (value: { startDate: Date; endDate: Date }) => {\n const d = {\n startDate: formatDate(\n new Date(value.startDate),\n DateFormats.YearMonthFormat\n ),\n endDate: formatDate(new Date(value.endDate), DateFormats.YearMonthFormat),\n };\n setDate(d);\n };\n\n const getTotalPages = () => {\n const ct = count?.[selectedTab.tabKey] ?? 0;\n\n if (ct > 0) {\n const pageCount = ct / perPage;\n\n return Math.trunc(pageCount) === pageCount\n ? pageCount\n : Math.trunc(pageCount) + 1;\n }\n return 0;\n };\n\n return (\n <>\n \n\n
\n
\n
\n
\n
\n {\n history.goBack();\n }}\n >\n
\n
\n
{translate('return.returnRequests')}
\n
\n
\n toggleListSearch(!listSearch)}\n >\n {listSearch === true ? (\n \n ) : (\n \n )}\n \n
\n \n
\n
\n setSearch(e.target.value)}\n />\n
\n \n
\n
\n
\n
\n \n
\n
\n {\n onDateChange(value);\n }}\n >\n
\n
\n
\n
\n
\n \n
\n
    \n {tabs.map((p, index) => {\n return (\n {\n setSelectedTab(p);\n }}\n >\n

    {count?.[p.tabKey] ?? 0}

    \n

    \n {p.tabTitle} ({count?.[p.tabKey] ?? 0})\n

    \n \n );\n })}\n
\n
\n\n <>\n \n {\n setPage(pg);\n }}\n perPage={perPage}\n onPerPageChange={(pg: number) => {\n setPerPage(pg);\n }}\n count={count?.[selectedTab.tabKey] ?? 0}\n label=\"report\"\n />\n \n \n \n );\n};\n\nexport default ReturnRequestScreen;\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, useHistory } from 'react-router-dom';\nimport { AppTable, IColumn } from '../../../components/grid/app-table';\nimport { FilterValueType } from '../../../components/list-filters/saved-filters';\nimport {\n ICustomer,\n IDate,\n UserPermissionTypes,\n} from '../../../core/api/models';\nimport { checkInAction, State } from '../../../core/store';\nimport { Dict } from '../../../models';\nimport '../../../assets/sass/listing.scss';\nimport '../../../assets/sass/grid.scss';\nimport { formatDate, getNormalDateformat } from '../../../utils/date-utils';\nimport {\n FilterTypes,\n OrderFilterComponent,\n} from '../../vehicles/components/order-filter-component';\nimport { RouteKeys } from '../../routes/route-keys';\nimport { Props } from 'react-select';\nimport {\n IReturnItem,\n IReturnListApiResponse,\n ReturnReqCountByStatus,\n ReturnRequests,\n} from '../../../models/order-models';\nimport { StatusTabs } from '../return-requests';\nimport { useAuth } from '../../../core/hooks';\nimport { usePaginatedDataLoader } from 'react-remote-data-hooks';\nimport api from '../../../api';\nimport { ContainerLoader } from '../../../components/loader';\nimport { translate } from '../../../utils/text-utils';\nimport { CurrencyFormatter } from '../../../components/currency-formatter';\n\nexport const ReturnRequestListing = (props: {\n page?: number;\n perPage?: number;\n filterTypes: FilterTypes[];\n date?: IDate;\n tab: string;\n setCount: (count: ReturnReqCountByStatus) => void;\n search?: string;\n}) => {\n const authState = useSelector((state: State) => state.authUser);\n const [isRendered, setRender] = useState(false);\n const dispatch = useDispatch();\n const history = useHistory();\n const { hasRole } = useAuth();\n const [filters, setFilters] = useState({});\n\n const {\n data: responseData,\n list: data,\n loading,\n handleScroll,\n reload,\n allPagesLoaded,\n loaded,\n } = usePaginatedDataLoader<\n IReturnListApiResponse,\n ReturnRequests\n >({\n loadPage: () => {\n return api.order.getReturnRequest({\n filter: filters,\n requestID: props?.search,\n fromDate: props?.date?.startDate,\n toDate: props.date?.endDate,\n status: props.tab as any,\n perPage: props.perPage,\n page: props.page,\n });\n },\n defaultData: [],\n isError: (errData: IReturnListApiResponse) =>\n errData.errorMsg\n ? errData.errorMsg || 'Unable to load return list'\n : undefined,\n resolveList: (resolveData: IReturnListApiResponse) =>\n resolveData?.result!,\n startPage: 1,\n initialParams: [],\n });\n const onChangeFilter = () => {\n if (isRendered) {\n reload({\n ...filters,\n status: props.tab,\n searchID: props?.search,\n fromDate: props.date?.startDate,\n toDate: props?.date?.endDate,\n perPage: props?.perPage,\n page: props?.page,\n });\n }\n };\n\n useEffect(() => {\n if (loaded) {\n props.setCount(responseData?.returnReqCountByStatus);\n }\n }, [responseData.returnReqCountByStatus, loaded]);\n\n useEffect(() => {\n setRender(true);\n }, []);\n useEffect(() => {\n if (isRendered) {\n onChangeFilter();\n }\n }, [\n props?.search,\n filters,\n props?.page,\n props?.perPage,\n props?.tab,\n props?.date,\n ]);\n\n let columns: IColumn[] = [\n {\n key: 'requestID',\n title: translate('Creditline.RequestID'),\n },\n {\n key: 'customerCode',\n title: translate('Creditline.customerCode'),\n },\n {\n key: 'customerName',\n title: translate('Creditline.customerName'),\n },\n {\n key: 'requestedBy',\n title: translate('Creditline.requestedBy'),\n },\n {\n key: 'salesperson',\n title: translate('Creditline.salesPerson'),\n },\n {\n key: 'orderNumber',\n title: translate('duePayments.orderId'),\n },\n {\n key: 'returnDate',\n title: translate('orders.requestedOn'),\n },\n {\n key: 'requestedItems',\n title: translate('orders.requestedItems'),\n },\n {\n key: 'requestedQty',\n title: translate('orders.requestedQuantity'),\n },\n {\n key: 'returnTotalAmount',\n title: translate('orders.refundAmount'),\n columnRenderer: (data: any) => {\n return ;\n },\n },\n {\n key: 'approvedBy',\n title: translate('orders.approvedBy'),\n },\n {\n key: 'approveDate',\n title: translate('orders.approvedOn'),\n },\n {\n key: 'rejectedBy',\n title: translate('orders.requestedBy'),\n },\n {\n key: 'rejectedDate',\n title: translate('orders.requestedOn'),\n },\n {\n key: 'rejectReason',\n title: translate('orders.rejectedReason'),\n },\n ];\n if (props.tab === StatusTabs.Pending) {\n columns = columns.filter((p) => p.key !== 'approvedBy');\n columns = columns.filter((p) => p.key !== 'approveDate');\n columns = columns.filter((p) => p.key !== 'rejectedBy');\n columns = columns.filter((p) => p.key !== 'rejectedDate');\n columns = columns.filter((p) => p.key !== 'rejectReason');\n }\n if (props.tab === StatusTabs.Approved) {\n columns = columns.filter((p) => p.key !== 'rejectedBy');\n columns = columns.filter((p) => p.key !== 'rejectedDate');\n columns = columns.filter((p) => p.key !== 'rejectReason');\n }\n if (props.tab === StatusTabs.Rejected) {\n columns = columns.filter((p) => p.key !== 'approvedBy');\n columns = columns.filter((p) => p.key !== 'approveDate');\n }\n\n // const checkUserRole = (returnData) => {\n // hasRole(UserRoleTypes.return_view) &&\n // history.push(`${RouteKeys.ReturnDetails}/${returnData.returnID}`);\n // };\n\n return (\n <>\n
\n {\n setFilters(filter);\n }}\n filterTypes={props.filterTypes}\n >\n
\n
\n {\n if (hasRole(UserPermissionTypes.return_view)) {\n history.push(`${RouteKeys.ReturnDetails}/${returnData.returnID}`);\n }\n }}\n data={data}\n columns={columns}\n showEmptyResult\n isLoading={loading}\n >\n {loading && (\n
\n \n
\n )}\n
\n \n );\n};\n","import { Dict } from '../../models';\nimport { User } from './user';\n\nexport interface TokenData {\n userStatus?: string;\n otpExpireTime: any;\n token: string;\n userId: string;\n userType: UserType;\n expiryDate: Date;\n apiPermissions: Dict;\n roles: string[];\n user: User;\n userToken: string;\n passwordExists: string;\n verified: boolean;\n userData?: any;\n companyName?: string\n}\n\nexport enum UserType {\n Salesperson = 'Salesperson',\n Customer = 'Customer',\n User = 'User',\n}\n\nexport interface Roles {\n add_address: boolean;\n add_brand: boolean;\n add_contact_person: boolean;\n add_customer: boolean;\n add_document: boolean;\n add_staff: boolean;\n bulk_estimate: boolean;\n bulk_order: boolean;\n create_customer_request: boolean;\n create_order_request: boolean;\n create_quotation_request: boolean;\n create_schedule_master: boolean;\n create_schedule_list: boolean;\n customer_approve: boolean;\n customer_orders: boolean;\n customer_request_view: boolean;\n customer_review: boolean;\n customer_view: boolean;\n customers_list: boolean;\n edit_address: boolean;\n edit_brand: boolean;\n edit_company_profile: boolean;\n edit_contact_person: boolean;\n edit_customer: boolean;\n edit_document: boolean;\n edit_personal_info: boolean;\n edit_quotation_request: boolean;\n edit_staff_address: boolean;\n edit_staff_permission: boolean;\n edit_staff_personalinfo: boolean;\n export_customer_orders: boolean;\n export_customer_request: boolean;\n export_quotation: boolean;\n export_return: boolean;\n graph_view: boolean;\n high_order_request: boolean;\n import_customer: boolean;\n list_address: boolean;\n list_brands: boolean;\n list_contact_person: boolean;\n list_documents: boolean;\n order_proceed_checkout: boolean;\n order_request_again: boolean;\n order_view: boolean;\n place_order_for_customers: boolean;\n quotation_list: boolean;\n quotation_view: boolean;\n return_list: boolean;\n return_view: boolean;\n return_reject: boolean;\n return_approve: boolean;\n report: boolean;\n report_sales: boolean;\n report_payment: boolean;\n report_salesperson: boolean;\n report_customer: boolean;\n schedule_master_list: boolean;\n schedule_list: boolean;\n staff_list: boolean;\n todo_list: boolean;\n user_log: boolean;\n view_account_general_info: boolean;\n view_account_personal_info: boolean;\n view_company_profile: boolean;\n view_staff_address: boolean;\n view_staff_log: boolean;\n view_staff_permission: boolean;\n view_staff_personalinfo: boolean;\n}\n\nexport enum UserPermissionTypes {\n delete_staff = 'delete_staff',\n list_creditrequest = 'list_creditrequest',\n process_duepayments = 'process_duepayments',\n list_paymenthistory = 'list_paymenthistory',\n view_duepayments = 'view_duepayments',\n add_address = 'add_address',\n add_brand = 'add_brand',\n add_contact_person = 'add_contact_person',\n add_customer = 'add_customer',\n add_document = 'add_document',\n add_staff = 'add_staff',\n\n bulk_estimate = 'bulk_estimate',\n bulk_order = 'bulk_order',\n\n create_customer_request = 'create_customer_request',\n create_order_request = 'create_order_request',\n create_quotation_request = 'create_quotation_request',\n customer_approve = 'customer_approve',\n customer_orders = 'customer_orders',\n customer_request_view = 'customer_request_view',\n customer_review = 'customer_review',\n customer_view = 'customer_view',\n customers_list = 'customers_list',\n\n edit_address = 'edit_address',\n edit_brand = 'edit_brand',\n edit_company_profile = 'edit_company_profile',\n edit_contact_person = 'edit_contact_person',\n edit_customer = 'edit_customer',\n edit_document = 'edit_document',\n edit_personal_info = 'edit_personal_info',\n edit_quotation_request = 'edit_quotation_request',\n edit_staff_address = 'edit_staff_address',\n edit_staff_permission = 'edit_staff_permission',\n edit_staff_personalinfo = 'edit_staff_personalinfo',\n export_customer_orders = 'export_customer_orders',\n export_customer_request = 'export_customer_request',\n export_quotation = 'export_quotation',\n export_return = 'export_return',\n\n graph_view = 'graph_view',\n\n high_order_request = 'high_order_request',\n\n import_customer = 'import_customer',\n\n list_address = 'list_address',\n list_brands = 'list_brands',\n list_contact_person = 'list_contact_person',\n list_documents = 'list_documents',\n\n order_proceed_checkout = 'order_proceed_checkout',\n order_request_again = 'order_request_again',\n order_view = 'order_view',\n\n place_order_for_customers = 'place_order_for_customers',\n\n quotation_list = 'quotation_list',\n quotation_view = 'quotation_view',\n\n return_list = 'return_list',\n return_view = 'return_view',\n return_reject = 'return_reject',\n return_approve = 'return_approve',\n\n report = 'report',\n report_sales = 'report_sales',\n report_payment = 'report_payment',\n report_customer = 'report_customer',\n report_salesperson = 'report_salesperson',\n\n staff_list = 'staff_list',\n\n todo_list = 'todo_list',\n\n user_log = 'user_log',\n\n view_account_general_info = 'view_account_general_info',\n view_account_personal_info = 'view_account_personal_info',\n view_company_profile = 'view_company_profile',\n view_staff_address = 'view_staff_address',\n view_staff_log = 'view_staff_log',\n view_staff_permission = 'view_staff_permission',\n view_staff_personalinfo = 'view_staff_personalinfo',\n\n credit_approve = 'credit_approve',\n reject_creditrequest = 'reject_creditrequest',\n\n list_salespersons = 'list_salespersons',\n create_salesperson = 'create_salesperson',\n edit_salesperson = 'edit_salesperson',\n delete_salesperson = 'delete_salesperson',\n\n schedule_master_list = 'schedule_master_list',\n create_schedule_master = 'create_schedule_master',\n schedule_list = 'schedule_list',\n create_schedule_list = 'create_schedule_list',\n\n report_salesperson_visit = 'report_salesperson_visit',\n report_salesperson_yearperformance = 'report_salesperson_yearperformance',\n report_salesperson_salesactivity = 'report_salesperson_salesactivity',\n report_salesperson_customeractivity = 'report_salesperson_customeractivity',\n report_salesperson_escalation = 'report_salesperson_escalation',\n report_salesperson_usage = 'report_salesperson_usage',\n}\n","import { string } from 'prop-types';\nimport { Dict } from '../../../models';\nimport { IAdduserBrandsParams, IAssignedStates } from './model';\nimport { FilterValueType } from './saved-filters';\n\nexport interface User {\n _id?: string;\n name: string;\n email?: string;\n phone?: string;\n userProfilePicture?: string;\n}\n\nexport interface RequestedBy {\n userID: string;\n userName: string;\n role?: string;\n phone?: string;\n}\n\nexport interface CartDetails {\n cartID: string;\n orderQty: string;\n orderTotalAmount: string;\n}\nexport interface QuotDetails {\n quotationRequestID: string;\n totalQty: string;\n}\n\nexport interface TermsResponse {\n terms?: string;\n}\n\nexport interface MediaFile {\n encoding: string;\n fieldname: string;\n filename: string;\n mimetype: string;\n originalname: string;\n path: string;\n size: number;\n location?: string;\n}\n\nexport interface DocumentList {\n userID: number;\n fileName: string;\n documentMaster: number;\n documentType: string;\n documentUrl: string;\n createdDate: Date;\n documentUrlFull: string;\n typeName: string;\n documentID: number;\n documentStatus: string;\n}\n\nexport interface DocumentResponse {\n list: DocumentList[];\n type: { documentTypeID: number; documentTypeName: string }[];\n}\n\nexport interface UserResponse {\n result: UsersList[];\n totalUsers?: number;\n}\n\nexport interface UsersList {\n userID: string;\n userFirstName: string;\n userLastName: string;\n userFullName: string;\n userCountryCode: string;\n userPhoneDialCode: string;\n userPhone: string;\n userStatus: string;\n userDesignation: string;\n userEmail: string;\n orderPermission: boolean | any;\n accessToken: string;\n}\n\nexport default interface Company {\n userID: number;\n billingName?: string;\n tradeLicenseNo?: number;\n trn?: string;\n userEmail?: string;\n userWebsite?: string;\n userPhoneCountryCode?: string;\n userPhoneDialCode?: string;\n userPhone?: string;\n userAddress?: string;\n userCity?: string;\n userZip?: string;\n userCountry?: number;\n countryName?: string;\n stateName?: string;\n userProvince?: string;\n billingPhoneDialCode?: string;\n billingPhoneCountryCode?: string;\n billingPhone?: string;\n companyLogo?: string;\n billingEmail?: string;\n companyName?: string;\n tradeno?: string;\n userAdress1?: string;\n}\n\nexport interface IPersonalInfo {\n countryName: string;\n languagesKnown: string;\n roleTypeID: string;\n rolesTypeName: string;\n stateID: string;\n stateName: string;\n userAddress: string;\n userAdress2: string;\n userCity: string;\n userCountry: string;\n userDOB: string;\n userDesignation: string;\n userEmail: string;\n userFirstName: string;\n userGender: string;\n userID: string;\n userLastName: string;\n userPhone: string;\n userPhoneDialCode: string;\n userProfilePicture: string;\n userZip: string;\n assignedManagers: IAssignedManagers[];\n statesNames: IAssignedStates[];\n assignedStates: IAssignedStates[];\n}\n\nexport interface IUserLog {\n activityID: string;\n userID: string;\n referenceID: string;\n createdDate: string;\n displayText: string;\n activityType: string;\n salesPersonID: string;\n}\nexport interface IUserLogParams {\n userID: string;\n perPage: number;\n page: number;\n userToken?: string;\n}\n\nexport interface IAssignedManagers {\n id: string;\n name: string;\n role: string;\n}\nexport interface ISalesman {\n salesPersonName: string;\n userID: string;\n firstName: string;\n userEmail?: string;\n}\nexport interface IBrandWithAccountNumber {\n brandID: string;\n accountNumber: string;\n name: string;\n}\n\nexport interface ICustomer {\n brandWithAccountNumber: IBrandWithAccountNumber[];\n accountCode?: string;\n cartTotalAmount: string;\n customerCode: string;\n companyName?: string;\n creditApplyEditID?: number;\n creditApplyNeeded?: number;\n customerName: string;\n lastOrderDate: string;\n lastOrderValue: string;\n orderTotalQty: string;\n orderTotalAmount: string;\n tradeno?: string;\n trn?: string;\n userCountryCode: string;\n userCity?: string;\n stateID?: string;\n stateName?: string;\n userEmail: string;\n userFirstName?: string;\n userID: string;\n userPhone: string;\n userRegistredDate?: string;\n userLastName?: string;\n userToken: string;\n userStatus: 'Declined' | 'Approved' | 'Requested';\n vatNo: string;\n\n\n firstName: string;\n middleName: string;\n lastName: string;\n userPhoneDialCode: string;\n countryID: string;\n invoiceDate?: any\n invoiceNumber: number\n vehicleRegNumber: string\n variant: string\n vin: string\n email: string\n mobileNumber: string\n city: string\n istemara: any\n invoice: any\n street:string\n poBox: string\n brand: string\n dealerName: string\n}\n\nexport interface IUseBrandDetails {\n userToWarehouseID: string;\n userID: string;\n brandID: string;\n // warehouseID: string;\n // salesPersonID: string;\n // creditLimit: string;\n // accountNumber: string;\n // discountCode: string;\n status: boolean;\n warehouses: IWarehouse[];\n warehouseList: IWarehouseList[];\n}\nexport interface IWarehouse {\n warehouseID: string;\n status: string;\n warehouseName: string;\n creditLimit?: string;\n discountCode?: string;\n salesPersonID: string;\n accountNumber?: string;\n}\n\nexport interface IWarehouseList {\n warehouseID: string;\n warehouseName: string;\n}\n\nexport interface IDate {\n startDate: string;\n endDate: string;\n}\n\nexport interface ICustomerFilterParams {\n filter: Dict;\n page: number;\n perPage: number;\n searchKeyword?: string;\n fromDate?: string;\n toDate?: string;\n}\n\nexport interface ICustomerRequestFilterParams {\n filter: Dict;\n page: number;\n perPage: number;\n searchName?: string;\n fromDate?: string;\n toDate?: string;\n status?: UserStatus;\n}\n\nexport enum UserStatus {\n Requested = 'Requested',\n Approved = 'Approved',\n Declined = 'Declined',\n}\n\nexport enum BranchStatus {\n Requested = 'Requested',\n Active = 'Active',\n Inactive = 'Inactive',\n}\n\nexport interface CustomerRequestResponse {\n list: ICustomer[];\n declinedUserCount: string;\n approvedUserCount: string;\n newUserCount: string;\n}\n\nexport interface IPhoneData {\n countryCode?: string; // shippingPhoneCountryCode\n dialCode?: string; // shippingPhoneDialCode\n entered?: string; // shippingPhone\n}\nexport interface IReason {\n reasonID: string;\n reasons: string;\n}\n\nexport interface DeclineRequestParam {\n userID: string;\n reasonID: string;\n declineComment: string;\n notifyCustomer: 'Yes' | 'No';\n}\n\nexport interface IAddApproveParam {\n userID: string;\n brands: IAdduserBrandsParams[];\n}\nexport interface IAddBrands {\n brandID: string;\n branches: IAddBranch[];\n accountCode: string;\n salesPersonID: string;\n creditLimit: string;\n discountCode?: string;\n}\nexport interface IAddBranch {\n warehouseID: string;\n status: string;\n}\n\nexport interface ICustomerBulkImportResponse {\n companyName: string;\n countryID: string;\n userPhoneDialCode: string;\n userPhone: string;\n userEmail: string;\n tradeno: string;\n trn: string;\n vatNo: string;\n userCity: string;\n stateID: string;\n stateName: String;\n brand: string;\n brandID: string;\n branch: string;\n warehouseID: string;\n accountNumber: string;\n creditLimit: string;\n salesPersonID: string;\n salesPersonName: string;\n branches: ICustoerBranch[];\n address: ICustomerAddress[];\n}\n\nexport interface ICustoerBranch {\n brandID: string;\n warehouseID: string;\n brandName: string;\n branchName: string;\n salesPersonName: string;\n creditLimit: string;\n accountNumber: string;\n salesPersonID: string;\n}\n\nexport interface ICustomerAddress {\n shippingAddress1: string;\n shippingCity: string;\n shippingCountryID: string;\n shippingCountry: string;\n shippingState: string;\n shippingStateID: string;\n shippingPhone: string;\n shippingPhoneDialCode: string;\n}\n\nexport interface IScheduleResponse {\n unscheduledCustomers: IScheduledCustomer[];\n scheduledCustomers: IScheduleItem[];\n}\nexport interface IScheduleItem {\n day: string;\n usersCount: number;\n userList: IScheduledCustomer[];\n}\n\nexport interface IDayScheduleItem {\n date: string;\n adteCustom: string;\n datedispaly: string;\n edit: string;\n itemIDs: string;\n masterScheduleID: string;\n weekDay: string;\n userList: IScheduledCustomer[];\n}\n\ninterface Address {\n shippingLname?: string;\n shippingFname?: string; \n address1: string,\n address2: string,\n city: string,\n zip: string,\n phone: string,\n countryName: string,\n stateName: string\n}\n\nexport interface IScheduledCustomer {\n userID: string;\n userName: string;\n userAddress: string;\n address?: Address;\n addressID?: string;\n accountCode: string;\n userEmail: string;\n userPhone: string;\n salesperson: string;\n userToken: string;\n scheduledDays: string[];\n totalOrders: string;\n billingName: string;\n customerRequestedDate?: string;\n}\nexport interface IScheduleListParams {\n searchKeyword?: string;\n date?: string;\n day?: string;\n page?: string;\n perPage?: string;\n brandID?: string[];\n salespersonID?: string[];\n fromWeb?: string;\n}\n\nexport interface IScheduleCustomerListResponse {\n customerlist: IScheduleCustomerlist[];\n scheduleID: string;\n day: string;\n}\n\nexport interface IScheduleCustomerlist {\n shippingLname?: string;\n shippingFname?: string;\n userPhone: string;\n userID: string;\n addressID?: string;\n userFirstName: string;\n userLastName: string;\n companyCode: string;\n parentID: string;\n userStatus: string;\n billingName: string;\n website_id: string;\n store_name: string;\n website_name: string;\n userAdress1: string;\n webstorename: string;\n store_code: string;\n store_id: string;\n locationName: string;\n salesPerson: string;\n salespersonIDs: string[];\n Sunday: string;\n Monday: string;\n Tuesday: string;\n Wednesday: string;\n Thursday: string;\n Friday: string;\n Saturday: string;\n scheduled: string;\n shippingAddress1?: string;\n shippingAddress2?: string;\n shippingCity?: string;\n stateName?: string;\n shippingZip?: string;\n countryName?: string;\n shippingPhone?: string; \n userUniqueID?: string; \n}\nexport interface ICustomerDashboard {\n SalesTarget: number;\n Achieved: string;\n nextMonthTarget: string;\n infoMsgShow: boolean;\n msg: string;\n grpah: GraphData[];\n rebatDet: any[]; // Assuming this can be an array of any type\n years: Year[];\n viewOptions: string[];\n creditValueReport: CreditValueReport;\n generalView: GeneralView;\n}\n\nexport interface GraphData {\n name: string;\n SalesTarget: string;\n Achieved: number;\n percentage: number;\n}\n\nexport interface Year {\n ID: number | string;\n name: string;\n}\n\nexport interface CreditValueReport {\n creditLimit: string;\n Used: number;\n Balance: string;\n}\n\nexport interface GeneralView {\n totalCreditLimit: string;\n totalcreditTerm: string;\n totalOverDueAmountZeroToThirtyDays: string;\n totalOverDueAmountThirtyOneToNinetyDays: string;\n totalOverDueAmountNinetyOneToOneTwentyDays: string;\n totalOverDueAmountOneTwentyOneToOneFiftyDays: string;\n}\n","import i18n from '../i18n';\nexport const capitalizeFirstLetter = (text: string) => {\n if (!text) {\n return text;\n }\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\n\nexport const capitalizeAllFirstLettersOfWords = (text: string) => {\n if (!text) {\n return text;\n }\n return text.split(' ').map(capitalizeFirstLetter).join(' ');\n};\n\nexport const convertPascalCaseToWords = (value?: string) => {\n if (!value) {\n return value;\n }\n return (\n value\n ?.toLocaleLowerCase()\n // Look for long acronyms and filter out the last letter\n .replace(/([A-Z]+)([A-Z][a-z])/g, ' $1 $2')\n // Look for lower-case letters followed by upper-case letters\n .replace(/([a-z\\d])([A-Z])/g, '$1 $2')\n // Look for lower-case letters followed by numbers\n .replace(/([a-zA-Z])(\\d)/g, '$1 $2')\n .replace(/^./, (str) => {\n return str.toUpperCase();\n })\n // Remove any white space left around the word\n .trim()\n );\n};\n\nexport function isNullOrEmpty(value?: string) {\n return (\n value === undefined || value == null || value === '' || value.length === 0\n );\n}\n\nexport function translate(key: string, config?: any) {\n return i18n.t(key, config);\n}\n","module.exports = __webpack_public_path__ + \"static/media/loading.01a86e93.gif\";","import React from 'react';\n// import PropTypes, { string } from 'prop-types';\n\nimport '../Input.scss';\n\ninterface CustomProps {\n default?: string;\n name?: string;\n placeholder?: string;\n autoComplete?: string;\n label?: string;\n gap?: 'sm' | 'md' | 'lg';\n size?: 'lg' | 'sm';\n onChange: (value: string) => void;\n error?: string;\n disabled?: boolean;\n autofocus?: boolean;\n customClasses : string;\n}\n\ninterface CustomState {\n value?: string;\n}\n\nclass PasswordInput extends React.Component {\n static defaultProps: Partial = {\n default: '',\n name: '',\n label: '',\n placeholder: '',\n gap: 'md',\n size: 'sm',\n customClasses : '',\n onChange: () => {\n return;\n },\n error: '',\n disabled: false,\n autofocus: false,\n };\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: props.default,\n };\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (prevProps.default !== this.props.default) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n if (this.props.default !== undefined) {\n this.setState({ value: this.props.default });\n this.props.onChange(this.props.default);\n }\n }\n\n handleChange(e: { target: any }) {\n const { value } = e.target;\n this.setState({ value });\n this.props.onChange(value);\n }\n\n render() {\n const {\n size,\n label,\n placeholder,\n name,\n customClasses,\n gap,\n error,\n disabled,\n autoComplete,\n } = this.props;\n const extraClassesInput: string[] = [];\n if (size === 'lg') extraClassesInput.push('Input__field--lg');\n const extraClasses = extraClassesInput.join(' ');\n const inputIdCandidate = name || label || placeholder || '';\n const inputId = inputIdCandidate.toLowerCase().split(' ').join('-');\n return (\n
\n {label && (\n \n )}\n \n\n {error && {error}}\n
\n );\n }\n}\n\nexport default PasswordInput;\n","import PasswordInput from './PasswordInput';\n\nexport default PasswordInput;\n","import React from 'react';\nimport './input.scss';\n\ninterface CustomProps {\n default?: T;\n name?: string;\n placeholder?: string;\n label?: string;\n id?: string;\n gap?: 'no' | 'sm' | 'md' | 'lg';\n size?: 'lg' | 'sm' | 'md';\n withIcon?: string;\n smallIcon?: boolean;\n noBorder?: boolean;\n type?: 'text' | 'number';\n minValue?: string;\n pattern?: string;\n maxLength?: number;\n onChange: (value: string | number) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n error?: string;\n disabled?: boolean;\n stickyStyles?: any;\n disableNumberScrolls?: boolean;\n showLoading?: boolean;\n autoComplete?: string;\n autofocus?: boolean;\n}\n\ninterface CustomSate {\n value?: string | number;\n}\n\nclass TextInput extends React.Component<\n CustomProps,\n CustomSate\n> {\n static defaultProps: Partial> = {\n default: '',\n name: '',\n label: '',\n placeholder: '',\n type: 'text',\n gap: 'md',\n smallIcon: false,\n minValue: '0',\n onChange: () => {\n return;\n },\n error: '',\n size: 'sm',\n withIcon: '',\n noBorder: false,\n disabled: false,\n stickyStyles: {},\n disableNumberScrolls: false,\n autoComplete: 'on',\n autofocus: false,\n };\n\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: props.default,\n };\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (this.props.default && prevProps.default !== this.props.default) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n if (this.props.default !== undefined) {\n this.setState({ value: this.props.default });\n this.props.onChange(this.props.default);\n }\n }\n\n handleChange(e: { target: HTMLInputElement }) {\n if (this.props?.pattern) {\n if (RegExp(this.props.pattern).test(e.target.value)) {\n let value: string | number = e.target.value;\n\n if (this.props.type === 'number' && e.target.value) {\n value = Number(value);\n }\n\n this.setState({ value });\n this.props.onChange(value);\n }\n } else {\n let value: string | number = e.target.value;\n\n if (this.props.type === 'number' && e.target.value) {\n value = Number(value);\n }\n\n this.setState({ value });\n this.props.onChange(value);\n }\n }\n\n render() {\n const {\n size,\n noBorder,\n withIcon,\n disableNumberScrolls,\n name,\n label,\n placeholder,\n gap,\n stickyStyles,\n error,\n smallIcon,\n disabled,\n minValue,\n pattern,\n maxLength,\n type,\n showLoading,\n onFocus,\n onBlur,\n id,\n autoComplete,\n } = this.props;\n const extraClassesInput = [];\n if (size === 'lg') extraClassesInput.push('textField__input--lg');\n if (size === 'sm') extraClassesInput.push('textField__input--sm');\n if (noBorder) extraClassesInput.push('textField__field--noborder');\n if (withIcon || showLoading) {\n extraClassesInput.push('textField__field--icon');\n }\n if (disableNumberScrolls) {\n extraClassesInput.push('disable-number-scrolls');\n }\n if (disabled) {\n extraClassesInput.push('textField__input--disabled');\n }\n const extraClasses: string = extraClassesInput.join(' ');\n const inputIdCandidate = id || name || label || placeholder || '';\n const inputId = inputIdCandidate.toLowerCase().split(' ').join('-');\n return (\n \n {label && (\n \n )}\n {withIcon && (\n \n )}\n this.props.disableNumberScrolls && e.preventDefault()}\n onScroll={(e) =>\n this.props.disableNumberScrolls && e.preventDefault()\n }\n onKeyDown={(e) =>\n this.props.disableNumberScrolls &&\n (e.keyCode === 38 || e.keyCode === 40) &&\n e.preventDefault()\n }\n onFocus={onFocus}\n onBlur={onBlur}\n autoComplete={autoComplete}\n autoFocus={this.props.autofocus}\n />\n\n {showLoading && (\n
\n \n \n \n
\n )}\n {error && {error}}\n \n );\n }\n}\n\nexport default TextInput;\n","import TextInput from './TextInput';\n\nexport default TextInput;\n","import React, { Component } from 'react';\nimport TextInput from '../text-input';\nimport '../Input.scss';\nimport './PhoneInput.scss';\nimport './flag.scss';\n\nimport countries from './countries.json';\n\ninterface CustomProps {\n data: any[];\n optionLabel?: string;\n optionValue?: string;\n onChange: (value: any) => void;\n disabled?: boolean;\n disableCountryCode?: boolean;\n error?: string;\n name?: string;\n label?: string;\n placeholder?: string;\n type?: 'text' | 'number';\n gap?: 'sm' | 'md' | 'lg';\n defaultCountryCode?: string | undefined;\n defaultDialCode?: string | undefined;\n defaultEntered?: string | number;\n zIndex?: number;\n width?: {\n code?: number;\n select?: number;\n text?: number;\n };\n enableSelectSearch?: boolean;\n disableSelected?: boolean;\n disableNumberScrolls?: boolean;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ninterface CustomState {\n value: {\n dialCode: string | undefined;\n countryCode: string | undefined;\n entered?: string | number;\n };\n showDropdown: boolean;\n}\n\nclass SelectPhoneInput extends Component {\n static defaultProps: Partial = {\n placeholder: '',\n error: '',\n name: '',\n label: '',\n optionLabel: 'label',\n optionValue: 'value',\n type: 'text',\n gap: 'md',\n defaultCountryCode: '',\n defaultDialCode: '',\n defaultEntered: '',\n zIndex: 1,\n width: { code: 15, select: 31, text: 55 },\n enableSelectSearch: false,\n disableSelected: false,\n disableNumberScrolls: false,\n disabled: false,\n disableCountryCode: false\n };\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: {\n dialCode: props.defaultDialCode,\n countryCode: props.defaultCountryCode,\n entered: props.defaultEntered,\n },\n showDropdown: false,\n };\n this.handlerFlagClick = this.handlerFlagClick.bind(this);\n this.handlerFlagItemClick = this.handlerFlagItemClick.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (\n this.props.defaultEntered &&\n prevProps.defaultEntered !== this.props.defaultEntered\n ) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n if (this.props.defaultEntered !== undefined) {\n this.setState((prevState) => {\n const value = {\n dialCode: this.props.defaultDialCode,\n countryCode: this.props.defaultCountryCode,\n entered: this.props.defaultEntered,\n };\n this.props.onChange(value);\n return { value };\n });\n }\n }\n\n handlerFlagClick() {\n if (this.props.disabled) {\n return;\n }\n const { showDropdown } = this.state;\n this.setState({ showDropdown: !showDropdown });\n }\n\n handlerFlagItemClick(code: string, countryCode: string) {\n this.setState((prevState) => {\n const value = {\n dialCode: code,\n countryCode,\n entered: prevState.value.entered,\n };\n this.props.onChange(value);\n return { value, showDropdown: false };\n });\n }\n\n handleChange(e: { target: HTMLInputElement }) {\n const fieldValue: string | number = e.target.value;\n this.setState((prevState) => {\n const value = {\n dialCode: prevState.value.dialCode,\n countryCode: prevState.value.countryCode,\n entered: fieldValue,\n };\n this.props.onChange(value);\n return { value };\n });\n }\n\n render() {\n const {\n data,\n optionLabel,\n optionValue,\n error,\n name,\n label,\n placeholder,\n gap,\n type,\n zIndex,\n width,\n enableSelectSearch,\n disabled,\n disableCountryCode,\n onFocus,\n onBlur,\n } = this.props;\n\n const { showDropdown, value } = this.state;\n const selectProps = { data, optionLabel, optionValue };\n const textInputProps = { placeholder, type };\n const inputIdCandidate = name || label || placeholder;\n const inputId = inputIdCandidate;\n const countryCode = countries?.find((x) => x.dial_code === value.dialCode)\n ?.code;\n return (\n
\n {label && (\n \n {label}\n \n )}\n\n
\n
\n {\n if (!disableCountryCode) {\n this.handlerFlagClick();\n }\n }}\n >\n
\n
{value.dialCode}
\n
\n
\n
\n {showDropdown && (\n
    \n {countries.map(\n (cntry: { dial_code: string; name: string; code: string }) => {\n return (\n {\n this.handlerFlagItemClick(cntry.dial_code, cntry.code);\n }}\n >\n
    \n
    \n \n
    \n {cntry.name}\n {cntry.dial_code}\n
    \n \n );\n }\n )}\n
\n )}\n {\n e.currentTarget.value = e.currentTarget.value.replace(/[^0-9]/g, '');\n }}\n id={inputId}\n className={`textField__input`}\n type={type}\n placeholder={placeholder}\n onChange={this.handleChange}\n value={value.entered}\n disabled={disabled}\n onWheel={(e) =>\n this.props.disableNumberScrolls && e.preventDefault()\n }\n onScroll={(e) =>\n this.props.disableNumberScrolls && e.preventDefault()\n }\n onKeyDown={(e) =>\n this.props.disableNumberScrolls &&\n (e.keyCode === 38 || e.keyCode === 40) &&\n e.preventDefault()\n }\n onFocus={onFocus}\n onBlur={onBlur}\n />\n \n {error && {error}}\n \n );\n }\n}\n\nexport default SelectPhoneInput;\n","import PhoneInput from './PhoneInput';\n\nexport default PhoneInput;\n","import React, { forwardRef } from 'react';\nimport DatePicker from 'react-datepicker';\n// import PropTypes from 'prop-types';\n\nimport 'react-datepicker/dist/react-datepicker.css';\nimport '../Input.scss';\nimport './DateInput.scss';\n\ninterface CustomProps {\n default?: string | Date;\n placeholder?: string;\n onChange: (value: Date) => void;\n gap?: 'no' | 'sm' | 'md' | 'lg';\n name?: string;\n label?: string;\n error?: string;\n minDate?: Date;\n maxDate?: Date;\n filterDate?: (date: Date) => boolean;\n disabled?: boolean;\n popperPlacement?: string;\n}\n\ninterface CustomState {\n value?: Date;\n}\n\nclass DateInput extends React.Component {\n static defaultProps: Partial = {\n gap: 'md',\n name: '',\n label: '',\n error: '',\n placeholder: '',\n popperPlacement: 'auto',\n };\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: this.props.default ? new Date(this.props.default) : undefined,\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (this.props.default && prevProps.default !== this.props.default) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n this.setState({ value: new Date(this.props.default || '') });\n }\n\n handleChange(date: Date) {\n this.setState({\n value: date,\n });\n this.props.onChange(date);\n }\n\n render() {\n const {\n name,\n label,\n placeholder,\n gap,\n error,\n minDate,\n maxDate,\n filterDate,\n disabled,\n popperPlacement,\n } = this.props;\n const inputIdCandidate = name || label || placeholder || '';\n const inputId = inputIdCandidate.toLowerCase().split(' ').join('-');\n return (\n
\n {label && (\n \n {label}\n \n )}\n\n }\n filterDate={filterDate}\n disabled={disabled}\n />\n {/* */}\n {error && {error}}\n
\n );\n }\n}\n\nexport default DateInput;\n\n// using forwardRef for this issue:\n// https://github.com/Hacker0x01/react-datepicker/issues/862\nconst CustomDateInput = forwardRef((props, ref) => {\n const { id, placeholder, value, onClick }: { [key: string]: any } = props;\n return (\n
\n \n \n
\n );\n});\n\n// CustomDateInput.propTypes = {\n// id: PropTypes.string.is,\n// placeholder: PropTypes.string,\n// value: PropTypes.string,\n// onClick: PropTypes.func,\n// };\n\n// CustomDateInput.defaultProps = {\n// placeholder: '',\n// value: null,\n// id: '',\n// onClick: () => {},\n// };\n","import React from 'react';\nimport './input.scss';\nimport './SwitchInput.scss';\nimport { translate } from '../../../utils/text-utils';\n\ninterface CustomProps {\n default: boolean;\n name: string;\n placeholder: string;\n onChange: (value: boolean) => void;\n gap: string;\n newLine: boolean;\n label: string;\n error: string;\n disabled: boolean;\n labelOn: string;\n labelOff: string;\n}\ninterface CustomState {\n value: any;\n}\n\nclass Checkbox extends React.Component {\n static defaultProps: Partial = {\n default: false,\n name: '',\n gap: 'lg',\n newLine: false,\n placeholder: '',\n label: '',\n error: '',\n disabled: false,\n labelOn: translate('accSettings.ON'),\n labelOff: translate('accSettings.OFF'),\n };\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: props.default,\n };\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange() {\n this.setState((prevState) => {\n return {\n value: !prevState.value,\n };\n });\n this.props.onChange(!this.state.value);\n }\n\n render() {\n const inputIdCandidate =\n this.props.name || this.props.label || this.props.placeholder;\n const inputId = inputIdCandidate;\n return (\n \n {this.props.label && (\n \n )}\n \n\n {this.props.error && (\n {this.props.error}\n )}\n \n );\n }\n}\n\nexport default Checkbox;\n","import SwitchInput from './SwitchInput';\n\nexport default SwitchInput;\n","import React from 'react';\n// import PropTypes from 'prop-types';\n\nimport './TextArea.scss';\n\ninterface CustomProps {\n default?: string;\n name?: string;\n placeholder?: string;\n label?: string;\n id?: string;\n gap?: 'sm' | 'md' | 'lg';\n size?: 'lg' | 'sm';\n noBorder?: boolean;\n onChange: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n error?: string;\n disabled?: boolean;\n stickyStyles?: any;\n}\n\ninterface CustomSate {\n value?: string;\n}\n\nclass TextArea extends React.Component {\n static defaultProps: Partial = {\n default: '',\n name: '',\n label: '',\n placeholder: '',\n gap: 'md',\n onChange: () => {\n return;\n },\n error: '',\n size: 'sm',\n noBorder: false,\n disabled: false,\n stickyStyles: {},\n };\n\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: props.default,\n };\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (\n this.props.default !== undefined &&\n prevProps.default !== this.props.default\n ) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n if (this.props.default !== undefined) {\n this.setState({ value: this.props.default });\n this.props.onChange(this.props.default);\n }\n }\n\n handleChange(e: { target: any }) {\n const { value } = e.target;\n this.setState({ value });\n this.props.onChange(value);\n }\n\n render() {\n const {\n size,\n noBorder,\n name,\n label,\n placeholder,\n gap,\n stickyStyles,\n error,\n disabled,\n onFocus,\n onBlur,\n id,\n } = this.props;\n const extraClassesInput = [];\n if (size === 'lg') extraClassesInput.push('TextArea__field--lg');\n if (noBorder) extraClassesInput.push('TextArea__field--noborder');\n\n if (disabled) {\n extraClassesInput.push('TextArea__field--disabled');\n }\n const extraClasses: string = extraClassesInput.join(' ');\n const inputIdCandidate = id || name || label || placeholder || '';\n const inputId = inputIdCandidate.toLowerCase().split(' ').join('-');\n return (\n
\n {label && (\n \n )}\n \n {error && {error}}\n
\n );\n }\n}\n\nexport default TextArea;\n","import TextArea from './TextArea';\n\nexport default TextArea;\n","import React, { Component } from 'react';\nimport TextInput from '../text-input';\nimport '../Input.scss';\nimport './PhoneInput.scss';\nimport './flag.scss';\n\n// import countries from './countries.json';\n\ninterface CustomProps {\n key?: number;\n country: any[];\n data: any[];\n optionLabel?: string;\n optionValue?: string;\n onChange: (value: any) => void;\n disabled?: boolean;\n error?: string;\n name?: string;\n label?: string;\n placeholder?: string;\n type?: 'text' | 'number';\n gap?: 'sm' | 'md' | 'lg';\n defaultCountryCode?: string | undefined;\n defaultDialCode?: string | undefined;\n defaultEntered?: string | number;\n zIndex?: number;\n width?: {\n code?: number;\n select?: number;\n text?: number;\n };\n enableSelectSearch?: boolean;\n disableSelected?: boolean;\n disableNumberScrolls?: boolean;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ninterface CustomState {\n value: {\n dialCode: string | undefined;\n countryCode: string | undefined;\n entered?: string | number;\n };\n showDropdown: boolean;\n}\n\nclass SelectPhoneInputLimited extends Component {\n static defaultProps: Partial = {\n placeholder: '',\n error: '',\n name: '',\n label: '',\n optionLabel: 'label',\n optionValue: 'value',\n type: 'text',\n gap: 'md',\n defaultCountryCode: '',\n defaultDialCode: '',\n defaultEntered: '',\n zIndex: 1,\n width: { code: 15, select: 31, text: 55 },\n enableSelectSearch: false,\n disableSelected: false,\n disableNumberScrolls: false,\n disabled: false,\n };\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: {\n dialCode: props.defaultDialCode,\n countryCode: props.defaultCountryCode,\n entered: props.defaultEntered,\n },\n showDropdown: false,\n };\n this.handlerFlagClick = this.handlerFlagClick.bind(this);\n this.handlerFlagItemClick = this.handlerFlagItemClick.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (\n this.props.defaultEntered &&\n prevProps.defaultEntered !== this.props.defaultEntered\n ) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n if (this.props.defaultEntered !== undefined) {\n this.setState((prevState) => {\n const value = {\n dialCode: this.props.defaultDialCode,\n countryCode: this.props.defaultCountryCode,\n entered: this.props.defaultEntered,\n };\n this.props.onChange(value);\n return { value };\n });\n }\n }\n\n handlerFlagClick() {\n if (this.props.disabled) {\n return;\n }\n const { showDropdown } = this.state;\n this.setState({ showDropdown: !showDropdown });\n }\n\n handlerFlagItemClick(code: string, countryCode: string) {\n this.setState((prevState) => {\n const value = {\n dialCode: code,\n countryCode,\n entered: prevState.value.entered,\n };\n this.props.onChange(value);\n return { value, showDropdown: false };\n });\n }\n\n handleChange(e: { target: HTMLInputElement }) {\n const fieldValue: string | number = e.target.value;\n this.setState((prevState) => {\n const value = {\n dialCode: prevState.value.dialCode,\n countryCode: prevState.value.countryCode,\n entered: fieldValue,\n };\n this.props.onChange(value);\n return { value };\n });\n }\n\n render() {\n const {\n data,\n optionLabel,\n optionValue,\n error,\n name,\n label,\n placeholder,\n gap,\n type,\n zIndex,\n width,\n enableSelectSearch,\n disabled,\n onFocus,\n onBlur,\n } = this.props;\n\n const { showDropdown, value } = this.state;\n const selectProps = { data, optionLabel, optionValue };\n const textInputProps = { placeholder, type };\n const inputIdCandidate = name || label || placeholder;\n const inputId = inputIdCandidate;\n\n return (\n
\n {label && (\n \n {label}\n \n )}\n\n
\n
\n \n
\n
{value.dialCode}
\n
\n
\n
\n {showDropdown && (\n
    \n {this.props.country.map(\n (cntry: { dial_code: string; name: string; code: string; key: number }) => {\n return (\n {\n this.handlerFlagItemClick(cntry.dial_code, cntry.code);\n }}\n >\n
    \n
    \n \n
    \n {cntry.name}\n {cntry.dial_code}\n
    \n \n );\n }\n )}\n
\n )}\n \n this.props.disableNumberScrolls && e.preventDefault()\n }\n onScroll={(e) =>\n this.props.disableNumberScrolls && e.preventDefault()\n }\n onKeyDown={(e) =>\n this.props.disableNumberScrolls &&\n (e.keyCode === 38 || e.keyCode === 40) &&\n e.preventDefault()\n }\n onFocus={onFocus}\n onBlur={onBlur}\n />\n \n {error && {error}}\n \n );\n }\n}\n\nexport default SelectPhoneInputLimited;\n","import React, { Component } from 'react';\n// import PropTypes from 'prop-types';\nimport Select from 'react-select';\nimport api from '../../../api';\n// import { CrudListRequestModel } from '../../../api/models';\n\nexport interface Dict {\n [key: string]: T;\n}\n\nexport interface CrudRequestModel {\n resource?: string;\n}\n\nexport interface CrudListRequestModel extends CrudRequestModel {\n pagination: { page?: number; perPage?: number };\n sort: { field?: string; order?: string };\n filter?: {};\n queryParams?: Dict;\n}\n\nconst customStyles = {\n control: (provided: any) => ({\n ...provided,\n height: '46px',\n }),\n indicatorSeparator: (provided: any) => ({\n ...provided,\n display: 'none',\n }),\n menu: (provided: any) => ({\n ...provided,\n zIndex: '10',\n }),\n option: (provided: any, state: any) => {\n return {\n ...provided,\n background: state.isFocused ? '#f2f9f9' : '#fff',\n color: '#1d1d1d',\n };\n },\n};\n\ninterface CustomProps {\n default?: string | number;\n api?: string;\n data?: any[];\n placeholder?: string;\n label?: string;\n id?: string;\n optionLabel?: string;\n optionValue?: string;\n onChange: (value: any, selected: any) => void;\n gap?: 'sm' | 'md' | 'lg' | 'no';\n // size: PropTypes.oneOf(['lg']),\n error?: string;\n name?: string;\n defaultIfNotFound?: string | number;\n disabled?: boolean;\n stickyStyles?: {};\n isSearchable?: boolean;\n isRtl?: boolean;\n refreshOption?: boolean;\n isMulti?: boolean\n}\n\ninterface CustomState {\n isLoading?: boolean;\n isRtl?: boolean;\n isSearchable?: boolean;\n selected: any;\n options: any[];\n selectedValue?: string | number;\n}\n\nclass SelectInput extends Component {\n static defaultProps: Partial = {\n default: '',\n gap: 'md',\n placeholder: 'Select...',\n error: '',\n name: '',\n label: '',\n data: [],\n disabled: false,\n optionLabel: 'label',\n optionValue: 'value',\n stickyStyles: {},\n isSearchable: true,\n isRtl: false,\n refreshOption: false,\n };\n\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n isLoading: false,\n isRtl: props.isRtl,\n isSearchable: props.isSearchable,\n selected: '',\n options: [],\n selectedValue: props.default,\n };\n this.handleChange = this.handleChange.bind(this);\n }\n\n async componentDidMount() {\n // const options = [];\n // if (this.props.api) {\n // const request: CrudListRequestModel = {\n // resource: this.props.api,\n // pagination: {},\n // sort: {},\n // };\n // this.toggleLoading();\n // const { data } = await api.crud.getList(request);\n // this.toggleLoading();\n\n // if (\n // this.props.default &&\n // data.result.filter(\n // (el: any) => el[this.props.optionValue || ''] === this.props.default\n // ).length === 0\n // ) {\n // this.setState(() => ({\n // selectedValue: this.props.defaultIfNotFound,\n // }));\n // this.handleChange({\n // [this.props.optionValue || '']: this.props.defaultIfNotFound,\n // });\n // }\n // this.setState(() => ({\n // options: data.result,\n // }));\n // } else {\n // this.setState(\n // (prevState: CustomState): CustomState => ({\n // ...prevState,\n // options: this.props.data || [],\n // })\n // );\n // }\n\n this.setState(\n (prevState: CustomState): CustomState => ({\n ...prevState,\n options: this.props.data || [],\n })\n );\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (prevProps.default !== this.props.default) {\n this.updateDefault();\n }\n }\n\n toggleLoading = () =>\n this.setState((state) => ({ isLoading: !state.isLoading }));\n\n toggleRtl = () => this.setState((state) => ({ isRtl: !state.isRtl }));\n\n toggleSearchable = () =>\n this.setState((state) => ({ isSearchable: !state.isSearchable }));\n\n updateDefault() {\n if (this.props.default !== undefined) {\n this.setState({ selectedValue: this.props.default });\n }\n }\n\n handleChange(selected: any) {\n // const value = event.value;\n this.setState({\n selected,\n selectedValue: selected[this.props.optionValue || ''],\n });\n this.props.onChange(selected[this.props.optionValue || ''], selected);\n }\n\n showValue() {\n return this.state.options.filter((option) => {\n if (this.state.selectedValue !== undefined) {\n return (\n option[this.props.optionValue || ''] === this.state.selectedValue\n );\n }\n return (\n option[this.props.optionValue || ''] ===\n this.state.selected[this.props.optionValue || '']\n );\n });\n }\n\n render() {\n const {\n gap,\n name,\n label,\n placeholder,\n stickyStyles,\n error,\n id,\n } = this.props;\n const { isSearchable, isLoading, isRtl } = this.state;\n const inputIdCandidate = id || name || label || placeholder;\n const inputId = inputIdCandidate;\n return (\n \n {label && (\n \n {label}\n \n )}\n option[this.props.optionLabel || '']}\n getOptionValue={(option) => option[this.props.optionValue || '']}\n options={this.state.options}\n onChange={this.handleChange}\n value={this.showValue()}\n isDisabled={this.props.disabled ? this.props.disabled : false}\n id={inputId}\n isMulti={this.props.isMulti}\n />\n {error && {error}}\n \n );\n }\n}\n\nexport default SelectInput;\n","import React from 'react';\n\nimport './input.scss';\nimport './SwitchInput.scss';\n\ninterface CustomProps {\n default: boolean;\n name: string;\n placeholder: string;\n onChange: (value: boolean) => void;\n gap: string;\n newLine: boolean;\n label: string;\n error: string;\n disabled: boolean;\n}\ninterface CustomState {\n value: any;\n}\n\nclass Checkbox extends React.Component {\n static defaultProps: Partial = {\n default: false,\n name: '',\n gap: 'lg',\n newLine: false,\n placeholder: '',\n label: '',\n error: '',\n disabled: false,\n };\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: props.default,\n };\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange() {\n this.setState((prevState) => {\n return {\n value: !prevState.value,\n };\n });\n this.props.onChange(!this.state.value);\n }\n\n render() {\n const inputIdCandidate =\n this.props.name || this.props.label || this.props.placeholder;\n const inputId = inputIdCandidate;\n return (\n \n {this.props.label && (\n \n )}\n \n\n {this.props.error && (\n {this.props.error}\n )}\n \n );\n }\n}\n\nexport default Checkbox;\n","import * as React from 'react';\nimport classnames from 'classnames';\nimport { FieldProps, StateProps } from './props';\nexport class RadioSelect extends React.Component {\n constructor(props: any) {\n super(props);\n this.state = {\n value: this.props.defaultValue,\n };\n this.handleChange = this.handleChange.bind(this);\n }\n public componentDidUpdate(prevProps: FieldProps) {\n if (prevProps.defaultValue !== this.props.defaultValue) {\n this.updateDefault();\n }\n }\n\n public updateDefault() {\n if (this.props.defaultValue !== undefined) {\n this.setState({ value: this.props.defaultValue });\n }\n }\n\n public handleChange(event: { target: { value: any } }) {\n const value =\n this.props.type === 'boolean'\n ? event.target.value === 'true'\n ? true\n : false\n : event.target.value;\n this.setState({ value });\n if (this.props.onChange != null) {\n this.props.onChange(value);\n }\n }\n public render() {\n const {\n name,\n label,\n labelClass,\n options,\n optionLabel,\n optionValue,\n className,\n containerClass,\n } = this.props;\n\n return (\n \n
\n {options.map((option, index) => {\n return (\n \n \n \n {option[optionLabel || '']}\n \n
\n );\n })}\n \n
\n );\n }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport { DropdownList } from 'react-widgets';\nimport 'react-widgets/dist/css/react-widgets.css';\nimport { translate } from '../../utils/text-utils';\n\ninterface IPaginationProps {\n currentPage: number;\n totalPages: number;\n perPage: number;\n onPerPageChange: (perPage: number) => void;\n onPageChange?: (page: number) => void;\n padding?: number;\n count?: number;\n label?: string;\n skipScrollToTop?: boolean;\n}\n\nconst Pagination: React.FunctionComponent = (props) => {\n if (props.totalPages <= 0) {\n return <>;\n }\n const padding = props.padding || 1;\n const groupCount = padding * 2 + 1;\n const changePage = (page: number) => {\n props.onPageChange?.(page);\n };\n\n const renderPage = (page: number) => {\n return (\n \n changePage(page)}\n >\n {page}\n \n \n );\n };\n\n const renderEllipsis = () =>
  • ...
  • ;\n\n const renderStart = () => {\n if (props.currentPage <= groupCount) {\n return new Array(Math.max(groupCount, props.currentPage + padding))\n .fill('')\n .map((_, index) => renderPage(index + 1));\n } else {\n return (\n <>\n {renderPage(1)}\n {renderEllipsis()}\n \n );\n }\n };\n\n const renderMid = () => {\n if (\n props.currentPage > groupCount &&\n props.currentPage < props.totalPages - groupCount + padding - 1\n ) {\n return new Array(groupCount)\n .fill('')\n .map((_, index) => renderPage(index + props.currentPage - padding));\n }\n\n return <>;\n };\n\n const renderEnd = () => {\n if (props.currentPage >= props.totalPages - groupCount + padding - 1) {\n const offset = Math.max(\n groupCount,\n props.totalPages - props.currentPage + groupCount - padding\n );\n return new Array(offset)\n .fill('')\n .map((_, index) => renderPage(index + props.totalPages - offset + 1));\n } else {\n return (\n <>\n {renderEllipsis()}\n {renderPage(props.totalPages)}\n \n );\n }\n };\n\n const renderLeftArrow = () => {\n return (\n \n changePage(props.currentPage - 1)}\n >\n \n \n \n );\n };\n\n const renderRightArrow = () => {\n return (\n \n changePage(props.currentPage + 1)}\n >\n \n \n \n );\n };\n\n const showEllipsis = props.totalPages > (padding + 1) * 2 + 1;\n let data = [\n { value: 100, name: '100' },\n { value: 200, name: '200' },\n { value: 300, name: '300' },\n { value: 500, name: '500' },\n { value: 1000, name: '1000' },\n { value: 1500, name: '1500' },\n ];\n\n if (props?.count > 100) {\n data = data?.filter((val) => val.value <= props.count);\n if (\n data.every((d) => {\n return d.value < props.count;\n })\n ) {\n data.push({ value: props.count, name: `${props.count}` });\n }\n } else {\n data = [{ value: props?.count, name: `${props?.count}` }];\n }\n return (\n
    \n
      \n {renderLeftArrow()}\n {!showEllipsis &&\n new Array(props.totalPages)\n .fill('')\n .map((_, index) => renderPage(index + 1))}\n {showEllipsis && (\n <>\n {renderStart()}\n {renderMid()}\n {renderEnd()}\n \n )}\n\n {renderRightArrow()}\n
    \n
    \n {translate('Paymentmode.Showing')}\n
    \n
    \n props.onPerPageChange?.(val.value)}\n >\n
    \n
    \n {translate('Paymentmode.of')} {props.count} {props.label}\n
    \n
    \n );\n};\n\nexport default Pagination;\n","import React, { useEffect, useState } from 'react';\nimport empty from '../../containers/home/cart/empty.png';\nimport { translate } from '../../utils/text-utils';\nimport { ContainerLoader } from '../loader';\nimport moment from 'moment';\nimport { decodeHtmlEntities } from '../../utils/common';\n\nexport const AppTable = (props: {\n data: any[];\n columns: IColumn[];\n onRowClick?: (data: any) => void;\n onViewClick?: (data: any) => void;\n onEditClick?: (data: any) => void;\n multiSelectionConfig?: IMultiSelectionConfig;\n isLoading?: boolean;\n showEmptyResult?: boolean;\n}) => {\n const [selectedItems, setSelectedItems] = useState([]);\n useEffect(() => {\n if (\n props.multiSelectionConfig &&\n props.multiSelectionConfig?.defaultSelections\n ) {\n setSelectedItems(props.multiSelectionConfig?.defaultSelections);\n }\n }, []);\n useEffect(() => {\n props.multiSelectionConfig?.onChange?.(selectedItems);\n }, [selectedItems]);\n\n return (\n <>\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!props?.isLoading &&\n \n {props?.data?.map(item => {\n\n const currentDate = moment();\n const thirtyDaysAgo = moment().subtract(30, 'days');\n const isDateGreaterThan30Days = moment(item?.customerDetailsAddedOn).diff(thirtyDaysAgo, 'days') >= 0;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {item?.customerFirstName &&\n }\n {!item?.customerFirstName &&\n }\n \n \n \n )\n })}\n }\n
    BranchSalesmanDistributor NameDealer CRBrandVINModel YearModelvariantDescriptionAJVA Invoice NumberAJVA Sold DateAJVA Delivery DateCustomerCustomer Invoice DateAction
    {item?.branchName}{item?.salesMan}{decodeHtmlEntities(item?.distributor)}{item?.cr}{item?.brandname}{item?.vinNumber}{item?.makeyear}{item?.model}{item?.variant}{item?.description}{item?.ajvaInvoiceNumber}{item?.ajvaSoldDate !== \"0000-00-00\" ? moment(item?.ajvaSoldDate)?.format('DD-MM-YYYY') : \"\"}{item?.ajvaDelierydate !== \"0000-00-00\" ? item?.ajvaDelierydate : \"\"}{item?.customerFirstName + \" \" + item?.customerMiddleName + \" \" + item?.customerLastName}\n \n {item?.customerInvoiceDate !== \"0000-00-00\" ? moment(item?.customerInvoiceDate)?.format('DD-MM-YYYY') : \"\"}\n \n {item?.customerFirstName && isDateGreaterThan30Days &&\n <>\n \n \n }\n
    \n
    \n {props?.isLoading && (\n
    \n \n
    \n )\n }\n {\n props.data.length === 0 && !!!props.isLoading && props.showEmptyResult && (\n
    \n
    \n
    \n {translate('orders.No_Result')}\n
    \n
    \n \"\"\n
    \n
    \n
    \n )\n }\n \n );\n};\n\nexport interface IColumn {\n key: string;\n title: string;\n headerRenderer?: (hederText: string) => JSX.Element;\n columnRenderer?: (data: any, index: number) => JSX.Element;\n isSalesPerson?: boolean;\n}\n\nexport interface IMultiSelectionConfig {\n key: string;\n defaultSelections?: string[];\n onChange?: (selectedValues: string[]) => void;\n}\n","import React, { Fragment, useState } from 'react';\nimport Counter from '../../../components/counter';\nimport { IQuotation } from '../../../core/api/models';\nimport { useQuotes } from '../../../core/hooks/useQuotes';\nimport { InActiveUserPopup } from '../../../components/inactive-user-popup';\n\nexport const QuoteCounter = (props: {\n item: IQuotation;\n disabled?: boolean;\n quoteUserStatus?: string;\n}) => {\n const item = props.item;\n const isDisabled = props.disabled ?? false;\n const { updateQuotation } = useQuotes();\n const [openModal, setOpenModal] = useState<{ isOpen?: boolean; msg?: string; }>({ isOpen: false });\n\n const onClose = () => {\n setOpenModal({});\n }\n\n const handleUpdateQuotation = async (items) => {\n const response = await updateQuotation(items); \n if (response?.errorMsg?.includes(\"inactive\") && response?.response === 'Failure') { \n setOpenModal(prevState => ({\n ...prevState,\n isOpen: true,\n msg: response?.errorMsg,\n })); \n }\n }; \n return (\n \n {\n const clone = { ...item };\n clone.quantity = count;\n handleUpdateQuotation(clone);\n }}\n isProductAddedToCart={true}\n className=\"numberField\"\n updateValue={false}\n defaultValue={item.quantity}\n disabled={false}\n counterDisabled={isDisabled}\n userStatus={props?.quoteUserStatus}\n /> \n onClose()} />\n \n\n );\n};\n","import React, { Fragment, useState } from 'react';\nimport Counter from '../../../components/counter';\nimport { useCart } from '../../../core/hooks';\nimport { CartItem } from '../../../models/order-models';\nimport { InActiveUserPopup } from '../../../components/inactive-user-popup';\n\nexport const CartCounter = (props: { cartItem: CartItem , cartUserStatus?: string}) => {\n const item = props.cartItem;\n const { updateQuantity } = useCart();\n const [openModal, setOpenModal] = useState<{ isOpen?: boolean; msg?: string; }>({ isOpen: false });\n\n const onClose = () => {\n setOpenModal({});\n }\n\n const handleUpdateQuantity = async (items, cnt) => {\n const response = await updateQuantity(items, cnt);\n if (response?.errorMsg?.includes(\"inactive\") && response?.response === 'Failure') {\n setOpenModal({\n isOpen: true,\n msg: response?.errorMsg,\n });\n }\n };\n return (\n \n {\n handleUpdateQuantity(item, count);\n }}\n isProductAddedToCart={true}\n className=\"numberField\"\n updateValue={false}\n defaultValue={item.orderItemQuantity}\n disabled={false}\n userStatus={props?.cartUserStatus}\n />\n onClose()} />\n \n\n );\n};\n","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport api from '../../api';\nimport { countriesGetAction, brandSetLoaderAction } from '../store';\n\nexport const useCountries = () => {\n const countriesState = useSelector((state: State) => state.countries);\n const dispatch = useDispatch();\n\n // useEffect(() => {\n // if (\n // !countriesState.isCountriesLoaded &&\n // !countriesState.isCountriesLoading\n // ) {\n // getCountries();\n // }\n // }, []);\n\n const getCountries = async () => {\n dispatch(brandSetLoaderAction(true));\n const response = await api.model.getCountryList();\n dispatch(countriesGetAction(response));\n dispatch(brandSetLoaderAction(false));\n };\n\n return {\n getCountries,\n countries: countriesState.countries,\n loaded: countriesState.isCountriesLoaded,\n loading: countriesState.isCountriesLoading,\n countriesState,\n };\n};\n","import React, { forwardRef } from 'react';\nimport DateRangePicker from 'react-bootstrap-daterangepicker';\n// you will need the css that comes with bootstrap@3. if you are using\n// a tool like webpack, you can do the following:\n// import 'bootstrap/dist/css/bootstrap.css';\n// you will also need the css that comes with bootstrap-daterangepicker\nimport 'bootstrap-daterangepicker/daterangepicker.css';\nimport '../Input.scss';\nimport './DateRange.scss';\nimport { addMinutes } from 'date-fns';\n\ninterface CustomProps {\n default?: string | Date;\n placeholder?: string;\n onChange: (value: { startDate: Date; endDate: Date }) => void;\n gap?: 'sm' | 'md' | 'lg' | 'no';\n name?: string;\n label?: string;\n error?: string;\n minDate?: Date;\n maxDate?: Date;\n filterDate?: (date: Date) => boolean;\n disabled?: boolean;\n startDate?: Date;\n endDate?: Date;\n}\n\ninterface CustomState {\n value?: Date;\n}\n\nclass DateInput extends React.Component {\n static defaultProps: Partial = {\n gap: 'md',\n name: '',\n label: '',\n error: '',\n placeholder: '',\n };\n constructor(props: CustomProps) {\n super(props);\n this.state = {\n value: this.props.default ? new Date(this.props.default) : undefined,\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleEvent = this.handleEvent.bind(this);\n }\n componentDidMount() {\n // eslint-disable-next-line react/no-direct-mutation-state\n this.state = {\n value: this.props.default ? new Date(this.props.default) : undefined,\n };\n }\n\n componentDidUpdate(prevProps: CustomProps) {\n if (this.props.default && prevProps.default !== this.props.default) {\n this.updateDefault();\n }\n }\n\n updateDefault() {\n this.setState({ value: new Date(this.props.default || '') });\n }\n\n normalizeDate = (date: Date) => {\n const d = new Date();\n\n return addMinutes(date, -1 * d.getTimezoneOffset());\n };\n\n handleChange(date: Date) {\n this.setState({\n value: date,\n });\n }\n\n handleEvent(event: any, picker: { startDate: Date; endDate: Date }) {\n this.props.onChange({\n startDate: new Date(picker.startDate),\n endDate: new Date(picker.endDate),\n });\n }\n\n render() {\n const {\n name,\n label,\n placeholder,\n gap,\n error,\n minDate,\n maxDate,\n filterDate,\n disabled,\n startDate,\n endDate,\n } = this.props;\n const inputIdCandidate = name || label || placeholder || '';\n const inputId = inputIdCandidate.toLowerCase().split(' ').join('-');\n return (\n
    \n {label && (\n \n )}\n\n {/* }\n filterDate={filterDate}\n disabled={disabled}\n /> */}\n \n \n \n {/* */}\n {error && {error}}\n
    \n );\n }\n}\n\n// DateInput.propTypes = {\n// default: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]),\n// placeholder: PropTypes.string,\n// onChange: PropTypes.func.isRequired,\n// gap: PropTypes.oneOf(['sm', 'md', 'lg']),\n// name: PropTypes.string,\n// label: PropTypes.string,\n// error: PropTypes.string,\n// minDate: PropTypes.instanceOf(Date),\n// maxDate: PropTypes.instanceOf(Date),\n// };\n\n// DateInput.defaultProps = {\n// gap: 'md',\n// default: null,\n// name: '',\n// label: '',\n// error: '',\n// placeholder: '',\n// minDate: null,\n// maxDate: null,\n// };\n\nexport default DateInput;\n\n// using forwardRef for this issue:\n// https://github.com/Hacker0x01/react-datepicker/issues/862\nconst CustomDateInput = forwardRef((props, ref) => {\n const { id, placeholder, value, onClick }: { [key: string]: any } = props;\n return (\n
    \n \n \n
    \n );\n});\n\n// CustomDateInput.propTypes = {\n// id: PropTypes.string.is,\n// placeholder: PropTypes.string,\n// value: PropTypes.string,\n// onClick: PropTypes.func,\n// };\n\n// CustomDateInput.defaultProps = {\n// placeholder: '',\n// value: null,\n// id: '',\n// onClick: () => {},\n// };\n","import DateRange from './DateRange';\n\nexport default DateRange;\n","import { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport api from '../../api';\nimport {\n productRequestAction,\n productGetAction,\n productSetModelAction,\n productSetFilterAction,\n productSetModelParamAction,\n productSetBrandParamAction,\n productResetAction,\n setProductSearchParamsAction,\n} from '../store';\nimport {\n ISearchParams,\n Model,\n Parts,\n ProductFilter,\n ProductResponse,\n} from '../api/models';\nimport { useState } from 'react';\nimport { toastr } from 'react-redux-toastr';\n\nexport const useProduct = () => {\n const productState = useSelector((state: State) => state.product);\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n const [parts, setParts] = useState([]);\n\n const getCarsV2 = async (\n modelID: string,\n filters?: ProductFilter[],\n pageNo?: number,\n isLoadMore?: boolean\n ) => {\n try {\n if (!isLoadMore) {\n dispatch(productRequestAction(true));\n }\n\n const response = await api.model.getCarsV2(modelID, filters, pageNo);\n dispatch(\n productGetAction({\n ...response,\n page: pageNo,\n selectedFilter: filters,\n })\n );\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n } finally {\n dispatch(productRequestAction(false));\n }\n };\n\n const searchCarsvin = async (\n vinNum: string,\n filters?: ProductFilter[],\n pageNo?: number\n ) => {\n try {\n dispatch(productRequestAction(true));\n const response = await api.model.searchCarsvin(vinNum, filters, pageNo);\n dispatch(\n productGetAction({\n ...response,\n page: pageNo,\n selectedFilter: filters,\n })\n );\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n } finally {\n dispatch(productRequestAction(false));\n }\n };\n\n const searchPart = async (partNo: string, page: number, limit: number, isLoadMore?: boolean) => {\n try {\n setLoading(true)\n if (!isLoadMore) {\n dispatch(productRequestAction(true));\n }\n // dispatch(productRequestAction(true));\n const response = await api.model.searchParts(partNo, page, limit);\n if (response.response === 'Success' && !!response.result?.length) {\n const res: ProductResponse = {\n carFilters: [],\n result: [],\n totalRecord: response?.result?.length ?? 0,\n errorMsg: '',\n status: 'Success',\n page: 1,\n count: response?.count,\n selectedFilter: [],\n };\n dispatch(productGetAction(res));\n if (!isLoadMore) {\n setParts(response.result ?? []);\n } else {\n setParts((prevData => [...prevData, ...response.result ?? []]));\n }\n setLoading(false)\n } else {\n setParts([]);\n const res: ProductResponse = {\n carFilters: [],\n result: [],\n totalRecord: 0,\n errorMsg: 'Sorry, No Parts are available with this part number',\n status: 'Failure',\n page: 1,\n count: 0,\n selectedFilter: [],\n };\n dispatch(productGetAction(res));\n }\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n dispatch(productRequestAction(false));\n } finally {\n dispatch(productRequestAction(false));\n }\n };\n\n const setProductModel = async (model?: Model) => {\n dispatch(productSetModelAction(model));\n };\n\n const setProductFilter = async (filters: ProductFilter[]) => {\n dispatch(productSetFilterAction(filters));\n };\n\n const setModel = async (model: string) => {\n dispatch(productSetModelParamAction(model));\n };\n\n const setBrand = async (brand: string) => {\n dispatch(productSetBrandParamAction(brand));\n };\n\n const resetProduct = async () => {\n dispatch(productResetAction());\n };\n\n const setSearchParam = async (params: ISearchParams) => {\n dispatch(setProductSearchParamsAction(params));\n };\n\n const getOfferParts = async () => {\n try {\n dispatch(productRequestAction(true));\n const response = await api.model.getOfferParts();\n if (response.response === 'Success' && !!response.result?.length) {\n setParts(response.result ?? []);\n } else {\n setParts([]);\n }\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n dispatch(productRequestAction(false));\n } finally {\n dispatch(productRequestAction(false));\n }\n };\n\n return {\n getCarsV2,\n searchCarsvin,\n setProductModel,\n setProductFilter,\n setModel,\n setBrand,\n resetProduct,\n setSearchParam,\n searchPart,\n getOfferParts,\n carFilters: productState.carFilters,\n result: productState.result,\n totalRecord: productState.totalRecord,\n count: productState.count,\n errorMsg: productState.errorMsg,\n status: productState.status,\n loading,\n loaded: productState.isProductLoaded,\n page: productState.page,\n selectedModel: productState.modelDetails,\n selectedFilter: productState.selectedFilter,\n model: productState.model,\n brand: productState.brand,\n searchParams: productState.searchParams,\n isProductLoading: productState.isProductLoading,\n parts,\n setParts,\n };\n};\n","import React, { useEffect } from 'react';\n\nexport const useOutsideClick = (\n ref: React.MutableRefObject,\n callback: () => void\n) => {\n const handleClick = (e: MouseEvent) => {\n if (ref?.current && !ref.current.contains(e.target)) {\n callback();\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n });\n};\n","import React, { useState } from 'react';\n\nimport CopyClipboard from '../../../components/copy-to-clipboard';\nimport '../../../containers/search-tab/search-box.scss';\nimport { useQuotes } from '../../../core/hooks/useQuotes';\nimport { QuoteCounter } from './quote-counter';\nimport { IQuotation } from '../../../core/api/models';\nimport { useConfirmationDialog } from '../../../components/confirm-popup/confirm-popup';\nimport { toastr } from 'react-redux-toastr';\nimport { translate } from '../../../utils/text-utils';\n\nexport const QuoteItem = (props: {\n item: IQuotation;\n disabled?: boolean;\n quoteUserStatus?: string;\n}) => {\n const { getConfirmation } = useConfirmationDialog();\n const pdt = props.item;\n const [loading, setLoading] = useState(false);\n const { removeQuote } = useQuotes();\n const removeFromQuote = async () => {\n const granded = await getConfirmation({\n title: translate('common.areYouSureToDeleteThisItem'),\n });\n if (granded) {\n try {\n setLoading(true);\n await removeQuote(pdt);\n } catch (err) {\n toastr.error('Error', 'Somethign went wrong');\n } finally {\n setLoading(false);\n }\n }\n };\n\n return (\n
    \n
    \n
    \n
    \n {!props?.disabled && (\n
    \n
    \n {\n if (props?.quoteUserStatus !== 'Inactive') {\n removeFromQuote();\n }\n }}\n className=\"icon-delete\"\n style={{\n color:\n props?.quoteUserStatus === 'Inactive' ? '#999' : '',\n }}\n >\n {props?.quoteUserStatus === 'Inactive' &&\n \n

    \n {translate('common.inactive_user_message')}\n

    \n
    \n }\n
    \n
    \n )}\n
    \n {pdt.productName}\n
    \n
    \n \n
    \n {pdt.partNumber} \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n {props?.quoteUserStatus === 'Inactive' &&\n \n

    \n {translate('common.inactive_user_message')}\n

    \n
    \n }\n
    \n
    \n
    \n
    \n
    \n {loading && (\n
    \n \n
    \n )}\n
    \n );\n};\n","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport api from '../../api';\nimport { userToBrandGetAction, brandSetLoaderAction } from '../store';\n\nexport const useUserToBrand = () => {\n const userToBrandState = useSelector((state: State) => state.userToBrand);\n const dispatch = useDispatch();\n\n // useEffect(() => {\n // if (\n // !userToBrandState.isUserToBrandLoaded &&\n // !userToBrandState.isUserToBrandLoading\n // ) {\n // getUserToBrand();\n // }\n // }, []);\n\n const getUserToBrand = async () => {\n dispatch(brandSetLoaderAction(true));\n const response = await api.model.getUserBrands();\n dispatch(userToBrandGetAction(response));\n dispatch(brandSetLoaderAction(false));\n };\n\n return {\n getUserToBrand,\n userToBrand: userToBrandState.userToBrand,\n loaded: userToBrandState.isUserToBrandLoaded,\n loading: userToBrandState.isUserToBrandLoading,\n userToBrandState,\n };\n};\n","module.exports = __webpack_public_path__ + \"static/media/logo.692aa4c1.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF4SURBVHgBhVPLbYNAEN3FlmyfQgmkgtBB4GbLF1NB7EpMKkhSQUgFHA1ccDogFYQSyAUBEpA39q41wjgZaaX5vt2ZeSvFiIRhaC4Wi23f96Zy5TjH1WqVD3MlNw6HgyWlfIfqiHEJAPrMgS4ASZLYCKbsVpIv2AVAH5kvb9vWW6/XGRmGvrnrupAXQ98tl0sbtzmkMwBrMpmkVHMBwA17CrDiTxQG2iYdORkDMWG/nAAU0pY3ahjGnfhfNjRs5Br2MIIX2HEc77VNOvmGefP5fDNF7zaeI0ZA/CiKtkq3xLhYU3FbaAMZwGmwPzgPY0kEkHMHXvRW17XveV7B/WpWPgCftA/tZzJNU7Npmm+1wgCr24k/BECBBkHNveG6bgHlQ8Udvd8bxRYjVUCMPPFgNpv5qhVKSDH1zUixQzFx5ktOlCa/HKDrBKEAiTw0C4f7Uezq/3D1mcRgUFrgK2jAVVW98gFfE0CcvzNIQvywVXFeluVxuBmSX9anwc9HRVtZAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAVgSURBVHgB5Zt/bhpHFMffzC626mCbTQKBNmpBUVWpURuQ+kf/Mz5BkxPYPkHSE7g+QewTxD5BkxOY/tc/KpmoaqWqiuy2bpwaV0tskgrDzPa94UdNWWAXdpdd8pHwwjBY+3beft/Mm7cMfOTQNBMLQityja8wgIQFVp6BhUeWvdoP246w7QjfVqWUz8FiZamJcsYwjsAnGHhMpXJRBB1W8O19fOVhMsp4iqUmNHa8vgieGE4je01o95nG1vBjEfyhbAlrJ3VzaRc8YGLD/zZrD9GFv7HQlSEAGN4SUsitSS/A2IaTSzOdPUGjszAF6AI0wNrIGIslGAPXhpNbx0HfxLePIBSwbR0aW4ZhVF39yk3nE9PMxiC2P61RHkRr9BurbgSQO+1Irh0D/SBsRhN0Tjqe24mJEcUhjgw/M2trGKL2gxKwMUnoAPtn57U1J51HujoZjVd0FyIEhtX1m0vxvaF9hn3ZnozsQwRpAqwOU/yBhreEjO7pULv3MKpNaBYGCZ7tPU4hq6XekTWaUDaYaIvdl7aGU5wOo3q7hWxoQmzT7rs+V4/yfT0Iu/u9b8RpGgozRgz6beoZ8dOz83UMBWMb/v0PBzApS4tx+PSTj8FrhJRfp28sb3c+94w4Jgw2YUbRON+8KnRdw2m0Z0HQhpBoYM6g86FrONP4Q5hx2okShTKcJiso/pOmiaJAsbOQUYZrkodkbe0/XMqiOtIfxrUV8JH0rSTcfj/d0zY/P6farieWIUg451+pYxBunkml0MhMT9v83JxqM4xgDUfypO48JrR34d7uQYBW1AWz8tz79HoP9cvLvjYhBNTrl+oYNFJaRR19/h74zM+//NrX9ubtP3Dw408wFbi2jNmacC493+KFaTr0BprmugG3rPI6/slaPrv6OBz9cQznF7WR/UgkC5/fBTdgVjbB/7+B5wd3ch/1LTwWFt5Tbbc/SEPQtLKyAbAUj6u4fRVd05SL1i/rMA0c59VnjUBG/OT0VI3wVSjEHb88USI2DfT2pnwWfOTVX5W+Norhxy9fgRNICzrKTYJnFx7dQFtOugW8Srd7mCEdqNdbGiFEEyYFxQ0Nl+I54zzU09YXh7+Dl0jLek3i5mp7dRwKn92FL78o9LSR61LbndyHEDiWVebcYiUIObR0Td64rl5uZ2l2aJyVUWxFqRmMuI9N+lbKU3FrgCjrVElQMWtlP9fkL45+62ujRQoZQOo+iuM/T7oTIA9Wc6qMrDXUUjwDHwXObs5NBjiZi6vf17Cfs64jsaT8jo6tmRvnJYgouq656i+4VJsKyvBka1+pBBGEFjsu6FZLdufqGNT3IGKohGUm47g/2rjTed+V8xiIp6juj2GCxIQXoaYzgtdGjOTS4iKkU0nHrk6ztZTxX1FgTwaiYr7G/Dp/DDMIGr4x0HDi1Dw/xEl8FmaI9mjnrrb1748D24AZw86mPsNJ4ZmEHZgRcN25k7SpfrLNMtJOQwO0g6i7PLn4GxCFnE2dq23qiaaxAsQqBLBy8w9L2ZAbUNw7MOfWDvQPILKwB8OKeocmG+neoDAAEQNTaRvJEXXsjnYSMMStM4hGNRQZnTLiu6P6Od5CqbQqCb6F0FY7WlVy76TDJxZcF+proO2HTe1JvUnIfCnUJ+gf45y+EKY4T3GaQpbbx7PGfxgHXR+v9JNpjT6NMnMgYoOYeJuUhA8Pm8FdALqX+VbSiG/DBHi2P9xWfqqV8yuFRaF1D936ac7lE0d2eL4xrgRQ6o8YV49ZevCIJTzDV2lclx6ErxUBracctLyQVl7j/B4V/rcLEbK9J6H276roMWUpcZeDW6ULECUvRnYQ/wLjzgn6PaVrxAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/dashboard-logo.c3de88ac.svg\";","import { initializeApp } from 'firebase/app';\nimport { getMessaging, getToken, onMessage } from 'firebase/messaging';\n\nconst firebaseConfig = {\n apiKey: process?.env?.REACT_APP_FIREBASE_API_KEY,\n authDomain: process?.env?.REACT_APP_FIREBASE_AUTH_DOMAIN,\n projectId: process?.env?.REACT_APP_FIREBASE_PROJECT_ID,\n storageBucket: process?.env?.REACT_APP_FIREBASE_STORAGE_BUCKET,\n messagingSenderId: process?.env?.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n appId: process?.env?.REACT_APP_FIREBASE_APP_ID,\n};\n\nconst firebaseApp = initializeApp(firebaseConfig);\nconst messaging = getMessaging(firebaseApp);\n\nexport const requestForToken = (setTokenFound) => {\n return getToken(messaging, {\n vapidKey: process?.env?.REACT_APP_FIREBASE_VAPIDKEY,\n })\n .then((currentToken) => {\n if (currentToken) {\n setTokenFound(currentToken);\n // Track the token -> client mapping, by sending to backend server\n // show on the UI that permission is secured\n } else {\n setTokenFound(null);\n // shows on the UI that permission is required\n }\n })\n .catch((err) => {\n // catch error while creating client token\n });\n};\n\nexport const onMessageListener = () =>\n new Promise((resolve) => {\n onMessage(messaging, (payload) => {\n resolve(payload);\n });\n });\n","import React, { useEffect } from 'react';\nimport { toastr } from 'react-redux-toastr';\nimport { useDataLoader, usePaginatedDataLoader } from 'react-remote-data-hooks';\nimport api from '../../../api';\nimport {\n ListFilters,\n MultiSelectFilter,\n SingleSelectFilter,\n} from '../../../components/list-filters';\nimport { FilterValueType } from '../../../components/list-filters/saved-filters';\nimport StaffMultiSelectFilter from '../../../components/list-filters/StaffMultiSelectFilter';\nimport { ApiResponse, SupervisorFilter } from '../../../core/api/models';\nimport { useBrandsAndBranches } from '../../../core/hooks/useBrandsAndBranches';\nimport { useOrder } from '../../../core/hooks/useOrder';\nimport { Dict } from '../../../models';\nimport { Branch } from '../../../models/brand';\nimport { translate } from '../../../utils/text-utils';\n\nexport const OrderFilterComponent = (props: {\n filter: Dict;\n onFilterChange: (filter: Dict) => void;\n filterTypes: FilterTypes[];\n prefixKey?: string;\n}) => {\n const { orderState } = useOrder(api.order);\n // const { loadFilterData } = useOrder(api.order);\n useEffect(() => {\n // this call changed to useIntiate hook to avoid repeated call every time\n // loadFilterData();\n }, []);\n const { brandState } = useBrandsAndBranches();\n const brandID = (props?.filter?.brand as any)?.value;\n const getBranches = (): Branch[] => {\n if (brandID) {\n return (\n brandState?.brandAdBranch?.find((p) => p.brandID === brandID)\n ?.branches ?? []\n );\n }\n return [];\n };\n const filterTypes = props.filterTypes;\n const includeFilter = (key: FilterTypes) => {\n return filterTypes?.indexOf(key) !== -1;\n };\n\n return (\n {\n toastr.message('Message', 'Not Implemented');\n }}\n isSavingFilter={false}\n onRemoveFilter={() => {\n toastr.message('Message', 'Not Implemented');\n }}\n filters={props.filter}\n onFilter={(searchFilters: Dict) => {\n if (searchFilters?.brand !== props.filter?.brand) {\n if (searchFilters.branch) {\n delete searchFilters.branch;\n }\n }\n props.onFilterChange(searchFilters);\n }}\n >\n {includeFilter(FilterTypes.requestedBy) && (\n \n )}\n {includeFilter(FilterTypes.approvedBy) && (\n \n )}\n {includeFilter(FilterTypes.rejectedBy) && (\n \n )}\n {includeFilter(FilterTypes.cancelledBy) && (\n \n )}\n {includeFilter(FilterTypes.createdFor) && (\n user.role === 'User'\n ) ?? []\n }\n // showRole\n />\n )}\n {includeFilter(FilterTypes.salesPerson) && (\n user.role === 'Salesperson'\n ) ?? []\n }\n />\n )}\n {includeFilter(FilterTypes.paymentMethod) && (\n \n )}\n {includeFilter(FilterTypes.paymentStatus) && (\n \n )}\n {includeFilter(FilterTypes.brand) && (\n \n )}\n {includeFilter(FilterTypes.branch) && (\n api.user.getBrandsForFilter()}\n />\n )}\n {includeFilter(FilterTypes.multiBrand) && (\n api.user.getBrandsForFilter()}\n keyPrefix={props.prefixKey}\n />\n )}\n {includeFilter(FilterTypes.ageing) && (\n \n )}\n {includeFilter(FilterTypes.escalationType) && (\n \n )}\n {includeFilter(FilterTypes.supervisor) &&\n ((orderState?.filterData?.superviserList as any) ?? []).length > 0 && (\n \n )}\n {includeFilter(FilterTypes.userGroup) && (\n \n )}\n {includeFilter(FilterTypes.salesMan) && (\n \n )}\n {includeFilter(FilterTypes.multiSelectSalesPerson) && (\n \n )}\n \n );\n};\n\nexport enum FilterTypes {\n requestedBy = 'requestedBy',\n approvedBy = 'approvedBy',\n rejectedBy = 'rejectedBy',\n createdFor = 'createdFor',\n cancelledBy = 'cancelledBy',\n paymentMethod = 'paymentID',\n paymentStatus = 'paymentStatus',\n salesPerson = 'salesperson',\n brand = 'brand',\n city = 'city',\n customerNotAdded = 'customerNotAdded',\n branch = 'branch',\n multiBrand = 'multiBrand',\n ageing = 'escDays',\n escalationType = 'escType',\n supervisor = 'supervisor',\n userGroup = 'userGroupID',\n salesMan = 'salesPerson',\n multiSelectSalesPerson = 'multiSelectSalesPerson',\n}\n","import * as React from 'react';\n\ninterface IAddedFilterProps {\n name: string;\n valueLabel: string;\n onRemove?: () => void;\n onClick?: () => void;\n}\n\nconst AddedFilter: React.FunctionComponent = (props) => {\n if (!props.valueLabel) {\n return null;\n }\n return (\n
  • \n
    \n {props.name}: \n \n {props.valueLabel}\n \n \n
    \n
  • \n );\n};\n\nexport default AddedFilter;\n","import * as React from 'react';\nimport { FilterValueType, SavedFilter } from '../../core/api/models/saved-filters';\nimport { Dict } from '../../models';\nimport { translate } from '../../utils/text-utils';\n\ninterface ISavedFiltersProps {\n items?: SavedFilter[];\n onRemove?: (savedFilterId: string) => void;\n onSelect?: (filter: Dict) => void;\n}\n\nconst SavedFilters: React.FunctionComponent = (props) => {\n if (!props.items?.length) {\n return <>;\n }\n return (\n
    \n
    \n {translate(\"common.savedFilter\")}\n
    \n
      \n {props.items?.map((item, index) => {\n return (\n \n props.onSelect?.(item.value)}>\n {item.name}{' '}\n \n {props.onRemove && (\n props.onRemove?.(item._id)}\n >\n )}\n \n );\n })}\n
    \n
    \n );\n};\n\nexport default SavedFilters;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport * as React from 'react';\nimport AddedFilter from './AddedFilter';\nimport SavedFilters from './SavedFilters';\nimport classnames from 'classnames';\nimport { useOutsideClick } from '../../core/hooks';\nimport { IListFilterProps } from './props';\nimport { Dict } from '../../models';\nimport SaveFilter from './SaveFilter';\nimport {\n FilterValueType,\n SavedFilter,\n} from '../../core/api/models/saved-filters';\n// import { AppPermissions } from '../../api/models/permissions';\nimport { translate } from '../../utils/text-utils';\n\ninterface IListFiltersProps {\n filters?: Dict;\n onFilter?: (filters: Dict) => void;\n savedFilters?: SavedFilter[];\n onSaveFilter: (name: string) => void;\n isSavingFilter?: boolean;\n onRemoveFilter?: (savedFilterId: string) => void;\n ignoreAddedFilters?: string[];\n hideSearch?: boolean;\n}\n\nexport const ListFilters: React.FunctionComponent = (\n props\n) => {\n // const canSaveFilter = useHasPermission(AppPermissions.SaveFilter);\n // const canRemoveFilter = useHasPermission(AppPermissions.RemoveFilter);\n const [isOpen, setIsOpen] = React.useState(false);\n const [search, setSearch] = React.useState('');\n const ref = React.useRef(null);\n const filterRef = React.useRef(null);\n\n const [selectedFilter, setSelectedFilter] = React.useState();\n const [filters, setFilters] = React.useState>({\n ...props.filters,\n });\n\n useOutsideClick(ref, () => {\n setIsOpen(false);\n setSearch('');\n setSelectedFilter(undefined);\n });\n\n React.useEffect(() => {\n setFilters({ ...props.filters });\n }, [props.filters]);\n\n const setFilterValue = (key: string, value: FilterValueType) => {\n if (!value) {\n resetFilterValue(key);\n } else {\n const newFilters = {\n ...filters,\n [key]: value,\n };\n setFilters(newFilters);\n setIsOpen(false);\n setSelectedFilter(undefined);\n props.onFilter?.(newFilters);\n }\n };\n\n const resetFilterValue = (key: string) => {\n const newFilters = { ...filters };\n delete newFilters[key];\n setFilters(newFilters);\n setIsOpen(false);\n setSelectedFilter(undefined);\n props.onFilter?.(newFilters);\n };\n\n const resetFilters = (val: Dict) => {\n const newFilters = { ...val };\n setFilters(newFilters);\n setIsOpen(false);\n setSelectedFilter(undefined);\n props.onFilter?.(newFilters);\n };\n\n const allFilters = React.Children.map(props.children, (child) => {\n if (React.isValidElement(child)) {\n return child;\n }\n })?.filter((child) => !!child);\n\n if (!allFilters?.length) {\n return <>;\n }\n\n const childFilters = search\n ? allFilters.filter((child) =>\n child.props.label?.match(new RegExp(search, 'i'))\n )\n : allFilters;\n\n const appliedFiltersCount = Object.keys(filters).reduce(\n (count, filterKey) => {\n if (!filterKey) {\n return count;\n }\n const filterValue = filters[filterKey];\n if (!filterValue) {\n return count;\n }\n if (Array.isArray(filterValue)) {\n return count + filterValue.length;\n } else {\n return count + 1;\n }\n },\n 0\n );\n const renderHeader = () => (\n
    \n
    \n \n \n {translate(\"common.filter\")}:\n {translate(\"common.all\")}\n \n
    \n
    \n );\n\n const getAddedFilters = () => {\n const adFilters: React.ReactNode[] = [];\n Object.keys(filters).forEach((filterKey) => {\n const matchingFilter = childFilters.find(\n (child) => child.props.filterKey === filterKey\n );\n if (!filterKey || props.ignoreAddedFilters?.includes(filterKey)) {\n return <>;\n }\n const filterValue = filters[filterKey];\n if (!filterValue || matchingFilter?.props?.fixed) {\n return <>;\n }\n if (Array.isArray(filterValue)) {\n let filterValues = filterValue\n ?.map((f) => f.label)\n ?.slice(0, 2)\n ?.join(', ');\n if (filterValue.length > 2) {\n filterValues = `${filterValues}, + ${filterValue.length - 2} more`;\n }\n\n adFilters.push(\n resetFilterValue(filterKey)}\n onClick={() => {\n setIsOpen(true);\n setSelectedFilter(filterKey);\n filterRef?.current?.scrollIntoView();\n }}\n />\n );\n } else {\n adFilters.push(\n resetFilterValue(filterKey)}\n onClick={() => {\n setIsOpen(true);\n setSelectedFilter(filterKey);\n filterRef?.current?.scrollIntoView();\n }}\n />\n );\n }\n });\n\n return adFilters;\n };\n\n const renderFixedFilters = () => {\n return childFilters.map((child, index) => {\n const childProps: IListFilterProps = child.props;\n if (!childProps.fixed) {\n return <>;\n }\n\n return React.cloneElement(child, {\n ...childProps,\n applyFilter: (value: FilterValueType) =>\n setFilterValue(childProps.filterKey, value),\n resetFilter: () => resetFilterValue(childProps.filterKey),\n onClose: () => setSelectedFilter(undefined),\n value: filters[childProps.filterKey],\n });\n });\n };\n\n const renderSearch = () => {\n return (\n
    \n
    \n setSearch(e.target.value)}\n />\n
    \n \n
    \n
    \n
    \n );\n };\n\n const renderFilterSaveOptions = () => {\n if (!appliedFiltersCount) {\n return <>;\n }\n return (\n
    \n {/* {props.onSaveFilter && canSaveFilter && ( */}\n
    \n \n
    \n {/* )} */}\n {/* {canRemoveFilter && ( */}\n
    \n resetFilters({})}\n >\n \n {translate(\"orders.Reset\")}\n \n
    \n {/* )} */}\n
    \n );\n };\n\n const addedFilters = getAddedFilters();\n\n const hasFixedFilters =\n childFilters.filter((child, index) => {\n const childProps: IListFilterProps = child.props;\n return childProps.fixed && filters[childProps.filterKey];\n }).length > 0;\n\n const hasAddedFilters = addedFilters.length > 0;\n\n return (\n \n
    \n
    \n
    \n {renderHeader()}\n \n {renderFixedFilters()}\n {addedFilters}\n
  • \n \n {\n setIsOpen(!isOpen);\n if (isOpen) {\n setSearch('');\n setSelectedFilter(undefined);\n }\n }}\n >\n \n {translate(\"orders.Add_Filter\")}\n \n \n \n
    \n {/* {selectedFilter === undefined &&\n !props.hideSearch &&\n renderSearch()} */}\n \n \n {childFilters.map((child, index) => {\n const childProps: IListFilterProps = child.props;\n if (\n selectedFilter &&\n selectedFilter !== childProps.filterKey\n ) {\n return <>;\n }\n if (childProps.fixed) {\n return <>;\n }\n\n if (childProps.noContent) {\n return React.cloneElement(child, {\n ...childProps,\n applyFilter: (value: FilterValueType) =>\n setFilterValue(childProps.filterKey, value),\n resetFilter: () =>\n resetFilterValue(childProps.filterKey),\n onClose: () => setSelectedFilter(undefined),\n value: filters[childProps.filterKey],\n });\n }\n\n return (\n
  • \n \n setSelectedFilter(\n selectedFilter === childProps.filterKey\n ? undefined\n : childProps.filterKey\n )\n }\n >\n {childProps.label}\n \n \n {React.cloneElement(child, {\n ...childProps,\n applyFilter: (value: FilterValueType) =>\n setFilterValue(childProps.filterKey, value),\n resetFilter: () =>\n resetFilterValue(childProps.filterKey),\n onClose: () => setSelectedFilter(undefined),\n value: filters[childProps.filterKey],\n })}\n
  • \n \n );\n })}\n \n
    \n
    \n \n \n \n \n \n {/*
    {renderFilterSaveOptions()}
    */}\n \n \n );\n};\n","import * as React from 'react';\nimport { IListFilterProps } from './props';\nimport { FilterValue } from '../../core/api/models/saved-filters';\nimport { translate } from '../../utils/text-utils';\nimport { NoResult } from '../grid/no-result';\n\ninterface IMultiSelectFilterProps extends IListFilterProps {\n allowSearch?: boolean;\n options: any[];\n labelField: string;\n valueField: string;\n value?: FilterValue[];\n keyPrefix?: string;\n}\n\nconst MultiSelectFilter: React.FunctionComponent = (\n props\n) => {\n const [search, setSearch] = React.useState('');\n const [selected, setSelected] = React.useState(\n props.value || []\n );\n\n React.useEffect(() => {\n setSelected(props.value || []);\n }, [props.value]);\n\n const onSelect = (value: FilterValue, sel: boolean) => {\n if (sel) {\n setSelected([...(selected || []), value]);\n } else {\n setSelected(selected?.filter((val) => val.value !== value.value) || []);\n }\n };\n\n const onAllSelected = (isSelected: boolean) => {\n const allValues = !isSelected\n ? []\n : filteredOptions?.map((ff) => {\n return {\n label: ff[props.labelField],\n value: ff[props.valueField],\n };\n });\n\n setSelected(allValues);\n };\n\n const onApply = () => {\n setSearch('');\n props.applyFilter?.(selected);\n };\n\n const onClose = () => {\n setSearch('');\n props.onClose?.();\n };\n\n const filteredOptions = search\n ? props.options?.filter((op) =>\n op[props.labelField]?.match(new RegExp(search, 'i'))\n )\n : props.options;\n\n return (\n <>\n
    \n
    \n
    \n {translate('common.filterBy')} {props.label}\n
    \n \n \n \n
    \n {props.allowSearch && (\n
    \n
    \n setSearch(e.target.value)}\n />\n
    \n \n
    \n
    \n
    \n )}\n
      \n {!!filteredOptions?.length && (\n
    • \n onAllSelected(e.target.checked)}\n checked={\n !filteredOptions.find(\n (ff) =>\n !selected.find(\n (fff) => ff[props.valueField] === fff.value\n )\n )\n }\n />\n \n {`All ${props.label}`}\n \n
    • \n )}\n {filteredOptions?.map((option, index) => {\n const label = option[props.labelField];\n const value = option[props.valueField];\n // if (!value) {\n // return <>;\n // }\n const id = `${label}-${value}-${index}-${props.keyPrefix ?? ''}`;\n return (\n
    • \n onSelect({ label, value }, e.target.checked)}\n checked={!!selected?.find((fv) => fv.value === value)}\n />\n \n
    • \n );\n })}\n {filteredOptions?.length === 0 && (\n
      \n \n {translate('orders.No_Result')}\n \n
      \n )}\n
    \n
    \n \n {translate('orders.Apply')}\n \n
    \n
    \n \n );\n};\n\nexport default MultiSelectFilter;\n","import * as React from 'react';\nimport { IListFilterProps } from './props';\nimport { FilterValue } from '../../core/api/models/saved-filters';\nimport { translate } from '../../utils/text-utils';\n\ninterface ISingleSelectFilterProps extends IListFilterProps {\n allowSearch?: boolean;\n options: any[];\n labelField: string;\n valueField: string;\n value?: FilterValue;\n keyPrefix?: string;\n}\n\nconst SingleSelectFilter: React.FunctionComponent = (\n props\n) => {\n const [search, setSearch] = React.useState('');\n const [selected, setSelected] = React.useState(\n props.value || undefined\n );\n\n React.useEffect(() => {\n setSelected(props.value);\n }, [props.value]);\n\n const onSelect = (value: FilterValue, sel: boolean) => {\n if (sel) {\n setSelected(value);\n } else {\n setSelected(undefined);\n }\n };\n\n const onApply = () => {\n setSearch('');\n props.applyFilter?.(selected);\n };\n\n const onClose = () => {\n setSearch('');\n props.onClose?.();\n };\n\n const filteredOptions = search\n ? props.options?.filter((op) =>\n op[props.labelField]?.match(new RegExp(search, 'i'))\n )\n : props.options;\n\n return (\n <>\n
    \n
    \n
    \n {translate('common.filterBy')} {props.label}\n
    \n \n \n \n
    \n {props.allowSearch && (\n
    \n
    \n setSearch(e.target.value)}\n />\n
    \n \n
    \n
    \n
    \n )}\n
      \n {filteredOptions.map((option, index) => {\n const label = option[props.labelField];\n const value = option[props.valueField];\n\n return (\n
    • \n onSelect({ label, value }, e.target.checked)}\n checked={selected?.value === value}\n />\n \n {label}\n \n
    • \n );\n })}\n
    \n
    \n \n {translate('orders.Apply')}\n \n
    \n
    \n \n );\n};\n\nexport default SingleSelectFilter;\n","import * as React from 'react';\nimport { IListFilterProps } from './props';\nimport { FilterValue } from '../../core/api/models/saved-filters';\nimport { useDataLoader } from 'react-remote-data-hooks';\nimport { IUserWithRole, RequestedBy } from '../../core/api/models';\nimport { IFilterRequestedByList } from '../../models/order-models';\nimport { translate } from '../../utils/text-utils';\nimport { NoResult } from '../grid/no-result';\n\ninterface IMultiSelectFilterProps extends IListFilterProps {\n allowSearch?: boolean;\n value?: FilterValue[];\n key?: string;\n data: IFilterRequestedByList[];\n showRole?: boolean;\n labelField?: any;\n}\n\nconst StaffMultiSelectFilter: React.FunctionComponent<\n IMultiSelectFilterProps\n> = (props) => {\n const data = props.data;\n const [search, setSearch] = React.useState('');\n\n const list = search\n ? data?.filter((us: RequestedBy) =>\n us?.[props.labelField ?? 'userName']?.match(new RegExp(search, 'si'))\n )\n : data;\n\n const [selected, setSelected] = React.useState(\n props.value || []\n );\n\n React.useEffect(() => {\n setSelected(props.value || []);\n }, [props.value]);\n\n const onAllSelected = (isSelected: boolean) => {\n const allValues = !isSelected\n ? []\n : list?.map((ff: RequestedBy) => {\n return {\n label: ff?.[props.labelField ?? 'userName'],\n value: ff.userID,\n role: ff.role,\n };\n });\n\n setSelected(allValues);\n };\n\n const onSelect = (value: FilterValue, sel: boolean) => {\n if (sel) {\n setSelected([...(selected || []), value]);\n } else {\n setSelected(selected?.filter((val) => val.value !== value.value) || []);\n }\n };\n\n const onApply = () => {\n setSearch('');\n props.applyFilter?.(selected);\n };\n\n const onClose = () => {\n setSearch('');\n props.onClose?.();\n };\n\n return (\n <>\n
    \n
    \n
    \n {translate('common.filterBy')} {props.label}\n
    \n \n \n \n
    \n {/* {props.allowSearch && list?.length > 5 && ( */}\n {props.allowSearch && (\n
    \n
    \n setSearch(e.target.value)}\n />\n
    \n \n
    \n
    \n
    \n )}\n
      \n {!!list?.length && (\n
    • \n onAllSelected(e.target.checked)}\n checked={\n !list.find(\n (ff: RequestedBy) =>\n !selected.find((fff) => ff.userID === fff.value)\n )\n }\n />\n \n {translate('orders.Select_All')}\n \n
    • \n )}\n\n {list?.map((option: RequestedBy, index: number) => {\n const label = option?.[props.labelField ?? 'userName'];\n const value = option.userID;\n const role = option.role;\n\n return (\n
    • \n \n onSelect({ label, value, role }, e.target.checked)\n }\n checked={!!selected?.find((fv) => fv.value === value)}\n />\n \n {label} {role && props.showRole ? `(${role})` : ''}\n \n
    • \n );\n })}\n {list?.length === 0 && (\n
      \n \n {translate('orders.No_Result')}\n \n
      \n )}\n
    \n
    \n \n {translate('orders.Apply')}\n \n
    \n
    \n \n );\n};\n\nexport default StaffMultiSelectFilter;\n","import React from 'react';\n// import PropTypes, { InferProps } from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { translate } from '../../utils/text-utils';\n\nimport './Button.scss';\n\ninterface CustomProps {\n link?: string;\n onClick?: () => void;\n size?: number | string;\n light?: boolean;\n btnlink?: boolean;\n expand?: boolean;\n children?: any;\n type?: 'button' | 'submit';\n disabled?: boolean;\n className?: string;\n align?: string;\n capitalize?: boolean;\n}\n\nconst Button = (props: CustomProps) => {\n // either link or onClick is allowed\n if (props.link && props.onClick) {\n throw new Error('Both link & onClick is not acceptable. Provide either.');\n }\n const classes: string[] = ['Button', `Button--${props.size}`];\n if (props.light) classes.push(`Button--light`);\n if (props.btnlink) classes.push(`Button__link`);\n if (props.capitalize) classes.push(`Button--capitalize`);\n if (props.expand) classes.push(`Button--block`);\n if (props.align) classes.push(`float-${props.align}`);\n if (props.className) classes.push(props.className);\n const className = classes.join(' ');\n\n if (props.link) {\n return (\n \n {props.children}\n \n );\n }\n\n return (\n // eslint-disable-next-line react/button-has-type\n \n {props.children}\n \n );\n};\n\n// Button.propTypes = {\n// size: PropTypes.oneOf(['xsm', 'sm', 'md', 'lg']),\n// children: PropTypes.node.isRequired,\n// link: PropTypes.string,\n// onClick: PropTypes.func,\n// light: PropTypes.bool,\n// disabled: PropTypes.bool,\n// type: PropTypes.oneOf(['button', 'submit']),\n// expand: PropTypes.bool,\n// btnlink: PropTypes.bool,\n// };\nButton.defaultProps = {\n size: 'md',\n link: null,\n onClick: null,\n light: false,\n disabled: false,\n type: 'button',\n expand: false,\n btnlink: false,\n};\n\ninterface ButtonBlockCustomProps {\n children?: any;\n align?: 'left' | 'center' | 'right';\n gap?: 'sm' | 'lg';\n}\n\nconst ButtonBlock: React.SFC = (\n props: ButtonBlockCustomProps\n) => {\n return (\n \n {props.children}\n \n );\n};\n\nconst IconBlock: React.SFC = (\n props: ButtonBlockCustomProps\n) => {\n return (\n <>\n {translate(\"common.download\")}\n \n );\n};\n\n// ButtonBlock.propTypes = {\n// children: PropTypes.element.isRequired,\n// align: PropTypes.oneOf(['left', 'center', 'right']),\n// gap: PropTypes.oneOf(['sm', 'lg']),\n// };\nButtonBlock.defaultProps = {\n align: 'left',\n gap: 'sm',\n};\n\nexport default Button;\nexport { ButtonBlock, IconBlock };\n","import Button, { ButtonBlock, IconBlock } from './Button';\n\nexport default Button;\nexport { ButtonBlock, IconBlock };\n","import { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport api from '../../api';\nimport { brandAndBranchGetAction, brandSetLoaderAction } from '../store';\nimport { IBrandBranchData } from '../../models/brand';\n\nexport const useBrandsAndBranches = () => {\n const brandState = useSelector((state: State) => state.brandAndBranch);\n const [allBrandAndBranch, setBrandAndBranch] = useState(\n []\n );\n\n const [isLoading, setLoader] = useState(false);\n const dispatch = useDispatch();\n const authState = useSelector((state: State) => state.authUser);\n\n // useEffect(() => {\n // if (!brandState.isBrandAdBranchLoading) {\n // getBrandAndBranches(authState?.userToken ?? '');\n // }\n // }, [authState?.userToken, authState.salesPersonToken]);\n\n const getBrandAndBranches = async (userToken?: string) => {\n dispatch(brandSetLoaderAction(true));\n const response = await api.model.getBrandsWithBranches(userToken);\n const re = response?.filter((br) => br.branches.length !== 0);\n dispatch(brandAndBranchGetAction(re));\n dispatch(brandSetLoaderAction(false));\n };\n\n const getAllBrands = async () => {\n setLoader(true);\n try {\n const response = await api.model.getBrandsWithBranches();\n const re = response?.filter((br) => br.branches.length !== 0);\n setBrandAndBranch(re);\n // return response;\n } catch (error) {\n setBrandAndBranch([]);\n // return [];\n } finally {\n setLoader(false);\n }\n\n // dispatch(brandAndBranchGetAction(response));\n // dispatch(brandSetLoaderAction(false));\n };\n\n return {\n getBrandAndBranches,\n getAllBrands,\n isLoading,\n allBrandAndBranch,\n brandAndBranch: brandState.brandAdBranch,\n loaded: brandState.isBrandAdBranchLoaded,\n loading: brandState.isBrandAdBranchLoading,\n brandState,\n };\n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { State } from '../store/interfaces';\nimport api from '../../api';\nimport {\n quoteGetAction,\n quoteSetLoaderAction,\n quoteUpdateAction,\n} from '../store';\nimport {\n IAddToQuoteModel,\n IBulkEstimatePreviewResponse,\n IQuotation,\n IQuotationDetails,\n IReplaceQuotationParam,\n IReplaceQuoteResponse,\n ISuggestPreviewResponse,\n} from '../api/models';\nimport { toastr } from 'react-redux-toastr';\nimport { translate } from '../../utils/text-utils';\nimport { useHistory } from 'react-router-dom';\nimport { RouteKeys } from '../../containers/routes/route-keys';\n\nexport const useQuotes = () => {\n const quoteState = useSelector((state: State) => state.quote); \n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n const [previewData, setPreviewData] = useState();\n\n // useEffect(() => {\n // if (!quoteState.isQuoteLoaded && !quoteState.isQuoteLoading) {\n // getQuotations();\n // }\n // }, []);\n const getQuotations = async () => {\n setLoading(true);\n dispatch(quoteSetLoaderAction(true));\n const response = await api.model.getMyQuotes();\n setLoading(false);\n dispatch(quoteGetAction(response));\n dispatch(quoteSetLoaderAction(false));\n };\n\n const downlaodQuotations = async (param: any) => {\n try {\n setLoading(true);\n const response: any = await api.model.getQuoteRequest(param);\n if (response.response === 'Success') {\n if (response?.result?.exportUrl) {\n window.open(response?.result?.exportUrl);\n toastr.success(\n response.response,\n translate('toast.downloadCompleted')\n );\n }\n }\n // return response;\n } catch (err) {\n toastr.error('Error', translate('toast.unableToUpload'));\n } finally {\n setLoading(false);\n }\n };\n\n const addToQuote = async (data: IAddToQuoteModel) => {\n try {\n setLoading(true);\n const response = await api.model.addToQuote(data);\n if (response.response === 'Success') {\n dispatch(quoteUpdateAction(response?.result));\n toastr.success('Success', translate('toast.itemAddedToQuote'));\n } else {\n if (!response?.errorMsg?.includes(\"inactive\") && response?.response === 'Failure') { \n toastr.error('Error', 'Unable to add');\n } \n }\n return response;\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n } finally {\n setLoading(false);\n }\n };\n\n const removeQuote = async (data: IQuotation) => {\n try {\n const response = await api.model.removeQuote(data);\n if (response) {\n toastr.success('Success', translate('toast.itemRemovedSuccessfully'));\n dispatch(quoteUpdateAction(response));\n } else {\n toastr.error('Error', 'Unable to remove item');\n }\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n } finally {\n setLoading(false);\n }\n };\n\n const updateQuotation = async (item: IQuotation) => {\n const qdetails = quoteState?.quoteDetails;\n const index =\n qdetails?.items?.findIndex(\n (p) =>\n p.partNumber === item.partNumber &&\n p.quotationReqItemID === item.quotationReqItemID\n ) ?? -1;\n const clone = [...(qdetails?.items ?? [])];\n if (index > -1) {\n clone[index].isLoading = true;\n if (qdetails) {\n qdetails.items = clone;\n dispatch(quoteUpdateAction(qdetails));\n }\n }\n try {\n const response = await api.model.updateMyQuotationQuantity(item); \n if (response?.response === 'Success') {\n toastr.success('Success', translate('toast.quoteUpdatedSuccessfully'));\n dispatch(quoteUpdateAction(response.result));\n } else {\n if (response?.errorMsg?.includes(\"inactive\") && response?.response === 'Failure') {\n return response\n }\n }\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n if (quoteState.quoteDetails) {\n dispatch(quoteUpdateAction(quoteState.quoteDetails));\n }\n }\n };\n\n const getQuotationDetails = async (\n requestID: string\n ): Promise => {\n try {\n setLoading(true);\n const response = await api.model.getQuotationDetails(requestID);\n if (response.response === 'Success') {\n return response.result;\n } else {\n toastr.error('Error', 'Unable to add');\n return undefined;\n }\n } catch (error) {\n toastr.error('Error', (error as any)?.response?.data?.message);\n return undefined;\n } finally {\n setLoading(false);\n }\n };\n\n const rejectQuoteRequest = async (requestId: string, reason?: string) => {\n try {\n setLoading(true);\n const response = await api.model.rejectQuotationRequest(\n requestId,\n reason\n );\n if (response?.response === 'Success') {\n toastr.success(response?.response, response?.errorMsg ?? '');\n history.push(`${RouteKeys.Quotation}/rejected`);\n }\n return response;\n } catch (err) {\n toastr.error('Error', (err as any)?.response?.data?.message);\n } finally {\n setLoading(false);\n }\n };\n\n const confirmQuoteSuggest = async (\n param: IReplaceQuotationParam\n ): Promise => {\n try {\n setLoading(true);\n const response = await api.model.replaceQuotationItem(param);\n if (response?.response === 'Success') {\n toastr.success(response?.response, response?.errorMsg ?? '');\n } else {\n toastr.error(response?.response, response?.errorMsg ?? '');\n return undefined;\n }\n return response?.result;\n } catch (err) {\n toastr.error('Error', (err as any)?.response?.data?.message);\n return undefined;\n } finally {\n setLoading(false);\n }\n };\n\n const removeQuoteSuggest = async (\n param: IReplaceQuotationParam\n ): Promise => {\n try {\n setLoading(true);\n const response = await api.model.removeQuotationItem(param);\n if (response?.response === 'Success') {\n toastr.success(response?.response, response?.errorMsg ?? '');\n } else {\n toastr.error(response?.response, response?.errorMsg ?? '');\n return undefined;\n }\n return response?.result;\n } catch (err) {\n toastr.error('Error', (err as any)?.response?.data?.message);\n return undefined;\n } finally {\n setLoading(false);\n }\n };\n\n const previewSuggestRequest = async (quotationRequestID: string) => {\n try {\n setLoading(true);\n const response = await api.model.getPreviewQuotationSuggestList(\n quotationRequestID\n );\n if (response.response === 'Success') {\n setPreviewData(response.result);\n }\n } catch (error) {\n toastr.error('Error', 'Cannot submit request ');\n } finally {\n setLoading(false);\n }\n };\n\n const confirmSuggestRequest = async (quotationRequestID: string) => {\n try {\n setLoading(true);\n const response = await api.model.confirQuotationSuggestList(\n quotationRequestID\n );\n if (response.response === 'Success') {\n toastr.success(response?.response, response?.errorMsg ?? '');\n history.push(`${RouteKeys.Quotation}/estimated`);\n }\n } catch (error) {\n toastr.error('Error', 'Cannot submit request');\n setLoading(false);\n }\n };\n\n const quotationBulkEstimatePreview = async (\n file: File,\n action: 'add' | 'view'\n ): Promise => {\n try {\n setLoading(true);\n\n const response = await api.model.quotationbulkEstimatePreview(\n file,\n action\n );\n return response;\n } catch (e) {\n toastr.error('Error', 'File upload failed');\n\n return null;\n } finally {\n setLoading(false);\n }\n };\n\n return {\n loading,\n previewData,\n getQuotations,\n addToQuote,\n updateQuotation,\n removeQuote,\n getQuotationDetails,\n rejectQuoteRequest,\n confirmQuoteSuggest,\n removeQuoteSuggest,\n previewSuggestRequest,\n confirmSuggestRequest,\n setPreviewData,\n quotationBulkEstimatePreview,\n downlaodQuotations,\n quoteState,\n quotations: quoteState.quoteDetails?.items,\n loaded2: quoteState.isQuoteLoaded,\n };\n};\n","import React from 'react';\nimport './../styles.scss';\nimport loaderIcon from './../mynaghi-loader.gif';\nimport { LoaderProps } from '..';\n\nconst FullPageLoader: React.SFC = (props: LoaderProps) => {\n return (\n
    \n
    \n \"..\"\n
    \n {props.text &&
    {props.text}
    }\n
    \n );\n};\n\nexport default FullPageLoader;\n","import React from 'react';\nimport './../styles.scss';\nimport loaderIcon from './../mynaghi-loader.gif';\nimport { LoaderProps } from '..';\n\ninterface ContainerLoaderProps extends LoaderProps {\n height?: number;\n maxHeight?: number;\n}\nconst ContainerLoader: React.SFC = (\n props: ContainerLoaderProps\n) => {\n return (\n \n {' '}\n
    \n {'..'}\n
    \n {props.text &&
    {props.text}
    }\n \n );\n};\n\nexport default ContainerLoader;\n","import React from 'react';\nimport Currency from 'react-currency-formatter';\nimport { translate } from '../utils/text-utils';\nexport const CurrencyFormatter = (props: { quantity?: any }) => {\n const amount = props.quantity ?? '0';\n return (\n <>\n {translate('DashBoard.SAR')}{' '}\n \n \n );\n};\n","module.exports = \"data:image/png;base64,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\"","// This optional code is used to register a service worker.\n// register() is not called by default.\n\nimport { toastr } from 'react-redux-toastr';\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n // 'This web app is being served cache-first by a service ' +\n // 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n // );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n toastr.error('Service worker error', '');\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n toastr.error('Service worker error', '');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n toastr.error('Service worker error', '');\n });\n }\n}\n","import React, { useEffect } from 'react';\nimport './Higher.scss';\nimport '../../assets/sass/listing.scss';\nimport { UserHeader } from '../header';\nimport api from '../../api';\nimport classNames from 'classnames';\nimport { translate } from '../../utils/text-utils';\nimport { useHistory } from 'react-router-dom';\nexport enum TabNames {\n Pending = 'Pending',\n Approved = 'Approved',\n Rejected = 'Rejected',\n}\nconst Higher: React.FunctionComponent = () => {\n const history = useHistory();\n const [higherRequest, setHigherRequest] = React.useState([]);\n const [higherEstRequest, setHigherEstRequest] = React.useState([]);\n const [higherRejRequest, setHigherRejRequest] = React.useState([]);\n\n const [tabName, setTabName] = React.useState(TabNames.Pending);\n const [listSearch, toggleListSearch] = React.useState(false);\n\n const setHigherData = () => {\n api.model\n .getHigherRequest('Pending')\n .then((items: any) => setHigherRequest(items));\n };\n const sethigherEstData = () => {\n api.model\n .getHigherRequest('Approved')\n .then((items: any) => setHigherEstRequest(items));\n };\n const setHigherRejData = () => {\n api.model\n .getHigherRequest('rejected')\n .then((items: any) => setHigherRejRequest(items));\n };\n useEffect(() => {\n setHigherData();\n sethigherEstData();\n setHigherRejData();\n }, []);\n\n return (\n <>\n \n\n
    \n
    \n
    \n
    \n
    \n { history.goBack(); }}>\n
    \n
    \n
    {translate(\"higher.High_Value_Order_Requests\")}
    \n
    \n
    \n toggleListSearch(!listSearch)}>\n {listSearch === true ? (\n \n ) : (\n \n )}\n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
      \n {\n setTabName(TabNames.Pending);\n }}\n >\n

      {higherRequest.length}

      \n

      \n {TabNames.Pending} ({higherRequest.length})\n

      \n \n {\n setTabName(TabNames.Approved);\n }}\n >\n

      {higherEstRequest.length}

      \n

      \n {TabNames.Approved} ({higherEstRequest.length})\n

      \n \n {\n setTabName(TabNames.Rejected);\n }}\n >\n

      {higherRejRequest.length}

      \n

      \n {TabNames.Rejected} ({higherRejRequest.length})\n

      \n \n
    \n
    \n {/*
    \n
    \n
    \n
    \n
    \n
    \n Filter:All\n
    \n
    \n
    \n Add\n Filter\n
    \n
    \n
    \n

    Filter by Status

    \n \n
    \n
      \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n Filter:All\n
    \n
    \n
    \n
      \n
    • \n
      \n filter Type: Filter\n
      \n
    • \n
    • \n
      \n filter Type: Filter\n
      \n
    • \n
    • \n
      \n Add\n Filter\n
      \n
      \n
      \n

      Filter by Status

      \n \n
      \n
        \n
      • \n \n \n
      • \n
      • \n \n \n
      • \n
      • \n \n \n
      • \n
      \n
      \n \n
      \n
      \n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n
    \n
    */}\n\n {higherRequest.length > 0 && (\n <>\n {tabName === TabNames.Pending && (\n
    \n \n \n \n \n \n \n \n \n {higherRequest.map((pdt, ind) => {\n return (\n \n \n \n \n \n \n \n );\n })}\n\n \n
    {translate(\"higher.requestID\")}{translate(\"higher.Product\")}{translate(\"higher.Part_Number\")}{translate(\"higher.Quantity_Requested\")}
    {pdt.highOrderID}{pdt.productTitle}{pdt.productID}{pdt.orderQty} {translate(\"higher.Items\")}
    \n
    \n )}\n \n )}\n {higherEstRequest.length > 0 && (\n <>\n {tabName === TabNames.Approved && (\n
    \n \n \n \n \n \n \n \n \n {higherRequest.map((pdt, ind) => {\n return (\n \n \n \n \n \n \n \n );\n })}\n\n \n
    {translate(\"higher.requestID\")}{translate(\"higher.Requested_By_(userID)\")}{translate(\"higher.Requested_Date\")}{translate(\"higher.Items\")}
    {pdt.quotationRequestID}{pdt.userID}{pdt.createdDate}{pdt.totalQty}{translate(\"higher.Items\")}
    \n
    \n )}\n \n )}\n {higherRejRequest.length > 0 && (\n <>\n {tabName === TabNames.Rejected && (\n
    \n \n \n \n \n \n \n \n \n {higherRequest.map((pdt, ind) => {\n return (\n \n \n \n \n \n \n \n );\n })}\n\n \n
    {translate(\"higher.requestID\")}{translate(\"higher.Requested_By_(userID)\")}{translate(\"higher.Requested_Date\")}{translate(\"higher.Items\")}
    {pdt.quotationRequestID}{pdt.userID}{pdt.createdDate}{pdt.totalQty} {translate(\"higher.Items\")}
    \n
    \n )}\n \n )}\n
    \n \n );\n};\n\nexport default Higher;\n","import Higher from \"./Higher\";\n\nexport default Higher;","import React, { useState } from 'react';\nimport { toastr } from 'react-redux-toastr';\nimport { useHistory } from 'react-router-dom';\nimport api from '../../../api';\nimport { FullPageLoader } from '../../../components/loader';\nimport { useCart } from '../../../core/hooks';\nimport { translate } from '../../../utils/text-utils';\nimport { UserHeader } from '../../header';\nimport { RouteKeys } from '../../routes/route-keys';\nimport Cart, { CartComponent } from './Cart';\nimport { InPageConfirmation } from './components/cart-confirm-popup';\nimport { ConfirmSummary } from './components/confirm-summary';\nimport { InActiveUserPopup } from '../../../components/inactive-user-popup';\n\nconst CartConfirmation: React.SFC = () => {\n const { getCart: getCart, cart } = useCart();\n const [loader, setLoader] = useState(false);\n const [orderId, setOrderId] = useState();\n const [status, setStatus] = useState();\n const [openModal, setOpenModal] = useState<{ isOpen?: boolean; msg?: string; }>({ isOpen: false });\n\n\n const onSubmit = async () => {\n try {\n setLoader(true);\n const response = await api.model.submitRequest(cart?.cartID!);\n if (response?.errorMsg?.includes(\"inactive\") && response?.response === 'Failure') {\n setOpenModal({\n isOpen: true,\n msg: response?.errorMsg,\n });\n }\n getCart();\n setOrderId(response.order_id);\n setStatus(response?.dynamicOrderStatus);\n } catch (err) {\n toastr.error('Error', 'Something went wrong');\n } finally {\n setLoader(false);\n }\n };\n\n const onClose = () => {\n setOpenModal({});\n }\n\n return (\n <>\n \n
    \n {!orderId && (\n
    \n
    \n {(cart?.items?.length ?? 0) > 0 && (\n \n )}\n
    \n
    \n
    \n \n
    \n
    \n
    \n )}\n {orderId && (\n <>\n \n \n )}\n \n
    \n\n {loader && }\n \n );\n};\n\nexport default CartConfirmation;\n","import React, { useState } from 'react';\nimport { toastr } from 'react-redux-toastr';\nimport { useHistory } from 'react-router-dom';\nimport api from '../../../api';\nimport { FullPageLoader } from '../../../components/loader';\nimport { useCart } from '../../../core/hooks';\nimport { useQuotes } from '../../../core/hooks/useQuotes';\nimport { translate } from '../../../utils/text-utils';\nimport { UserHeader } from '../../header';\nimport { RouteKeys } from '../../routes/route-keys';\nimport { QuoteComponent } from './Cart';\nimport { InPageConfirmation } from './components/cart-confirm-popup';\nimport { ConfirmSummary } from './components/confirm-summary';\n\nconst QuoteConfirmationScreen: React.SFC = () => {\n const { quoteState, quotations, getQuotations } = useQuotes();\n const [loader, setLoader] = useState(false);\n const [isSubmitted, setIsSubmitted] = useState();\n\n const onSubmit = async () => {\n try {\n setLoader(true);\n const response = await api.model.submitRequest2();\n await getQuotations();\n setIsSubmitted(true);\n } catch (err) {\n toastr.error('Error', 'Somethign went wrong');\n } finally {\n setLoader(false);\n }\n };\n\n return (\n <>\n \n
    \n {!isSubmitted && (\n
    \n
    \n {(quotations?.length ?? 0) > 0 && (\n \n )}\n
    \n
    \n
    \n \n
    \n
    \n
    \n )}\n {isSubmitted && (\n <>\n \n \n )}\n
    \n\n {(loader || quoteState.isQuoteLoading) && (\n \n )}\n \n );\n};\n\nexport default QuoteConfirmationScreen;\n","import React, { lazy } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { UserPermissionTypes, UserType } from '../../core/api/models';\nimport { useAuth } from '../../core/hooks';\n\nimport { RouteKeys } from './route-keys';\nconst Customers = lazy(() => import('../customers/customers-screen'));\n\ninterface CustomProps {\n component: any;\n exact?: boolean;\n path?: string;\n needCheckIn?: boolean;\n hasPermissionToView?: boolean;\n requiredPermission?: UserPermissionTypes;\n onlyForSalesperson?: boolean;\n}\n\nconst AuthenticateRoute: React.FunctionComponent = (props) => {\n const auth = useAuth();\n const { component, ...rest } = props;\n\n const { hasRole, isSalesPerson } = useAuth();\n\n const hasPermissionToView = () => {\n if (props.onlyForSalesperson) {\n return isSalesPerson;\n }\n if (!props.requiredPermission) {\n return true;\n }\n return hasRole(props.requiredPermission);\n };\n\n return (\n {\n // if (hasPermissionToView()) {\n if (auth.isAuthenticated) {\n if (\n auth.userType === UserType.Customer ||\n auth.userType === UserType.User\n ) {\n return ;\n } else {\n if (props.needCheckIn && !auth.userToken) {\n return ;\n } else {\n return ;\n }\n }\n }\n auth.redirectSave('');\n return (\n \n );\n // } else {\n // return (\n // \n // );\n // }\n }}\n />\n );\n};\n\nexport default AuthenticateRoute;\n","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { useAuth } from '../../core/hooks';\nimport { RouteKeys } from './route-keys';\n\ninterface CustomProps {\n component: any;\n redirectTo?: string;\n exact?: boolean;\n path?: string;\n}\n\nconst RedirectIfAuthenticatedRoute: React.FunctionComponent = (\n props\n) => {\n const auth = useAuth();\n const { component, redirectTo, ...rest } = props;\n\n return (\n {\n if (!auth.isAuthenticated) {\n return ;\n }\n auth.redirectSave(childProps.location.pathname);\n return (\n \n );\n }}\n />\n );\n};\n\nexport default RedirectIfAuthenticatedRoute;\n","import React, { lazy, Suspense } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { ContainerLoader } from '../../components/loader';\nimport Higher from '../higherOrder';\nimport CartConfirmationScreen from '../home/cart/cart-confirmation-screen';\nimport QuoteConfirmationScreen from '../home/cart/quote-confirmation-screen';\nimport AuthenticateRoute from './AuthenticateRoute';\nimport RedirectIfAuthenticatedRoute from './RedirectIfAuthenticatedRoute';\nimport { RouteKeys } from './route-keys';\nimport { UserPermissionTypes } from '../../core/api/models';\n\nconst Home = lazy(() => import('../home'));\nconst Dashboard = lazy(() => import('../dashboard/dashboard-screen'));\nconst SetNewPassword = lazy(() => import('../auth/setNewPassword'));\nconst Login = lazy(() => import('../auth/Login'));\nconst PasswordForm = lazy(() => import('../auth/passwordForm'));\nconst SignUp = lazy(() => import('../auth/SignUp'));\nconst ForgotPassword = lazy(() => import('../auth/ForgotPassword'));\nconst NotFound = lazy(() => import('../notfound'));\nconst Categories = lazy(() => import('../categories'));\nconst SearchResult = lazy(\n () => import('../search-result/search-result-screen')\n);\nconst Parts = lazy(() => import('../parts'));\nconst MyAccount = lazy(() => import('../my-account'));\nconst Profile = lazy(() => import('../profile/profile-screen'));\nconst QuotationDetails = lazy(\n () => import('../profile/quotation-details-screen')\n);\nconst Vehicles = lazy(() => import('../vehicles'));\nconst VehicleDetails = lazy(() => import('../vehicles/vehicle-details-screen'));\nconst Checkout = lazy(() => import('../checkout/checkout-screen'));\nconst Terms = lazy(() => import('../my-account/terms'));\nconst StaffMember = lazy(() => import('../account-settings/staff-member'));\nconst StaffProfileDetails = lazy(\n () => import('../account-settings/staff-member/staff-profile-details-screen')\n);\nconst ManageSalesPerson = lazy(\n () =>\n import('../account-settings/manage-salesperson/manage-sales-person-screen')\n);\nconst DuePayments = lazy(() => import('../payment-center/due-payments-screen'));\nconst PaymentHistory = lazy(\n () => import('../payment-center/payment-history/payment-history-screen')\n);\nconst PaymentHistoryDetails = lazy(\n () =>\n import('../payment-center/payment-history/payment-history-details-screen')\n);\nconst CreditNote = lazy(\n () => import('../payment-center/creditnote/creditnote-screen')\n);\nconst CreditNoteDetails = lazy(\n () => import('../payment-center/creditnote/creditnote-details-screen')\n);\nconst DueCustomers = lazy(\n () => import('../due-payments/due-payment-customers')\n);\nconst Faq = lazy(() => import('../faq'));\nconst BulkOrder = lazy(() => import('../bulk-order'));\nconst Customers = lazy(() => import('../customers/customers-screen'));\nconst ScheduleManagement = lazy(\n () => import('../schedule-management/manage-schedule-screen')\n);\nconst ScheduleList = lazy(\n () => import('../schedule-management/schedule-list-screen')\n);\n\nconst NewVisitationRequests = lazy(\n () => import('../schedule-management/new-visitation-screen')\n);\nconst VisitationRequestDetails = lazy(\n () => import('../schedule-management/components/visitation-request-details')\n);\nconst SalespersonAccountSettings = lazy(\n () => import('../salesperson-account-settings/account-settings-screen')\n);\nconst ReturnRequests = lazy(() => import('../return/return-requests'));\nconst ReturnDetails = lazy(\n () => import('../return-details/return-details-screen')\n);\n\nconst CreditRequests = lazy(\n () => import('../credit-requests/credit-request-screen')\n);\nconst CreditDetails = lazy(\n () => import('../credit-request-details/credit-request-details-screen')\n);\n\nconst ToDo = lazy(() => import('../to-do/to-do-screen'));\n\nconst DuePaymentDetails = lazy(\n () =>\n import('../payment-center/due-payment-details/due-payment-details-screen')\n);\nconst CreditlineExtensionRequestScreen = lazy(\n () => import('../payment-center/creditline-extension-request-screen')\n);\nconst CreditlineExtensionRequestDetails = lazy(\n () =>\n import('../payment-center/components/creditline-extension-request-details')\n);\n\nconst ConfirmQuotationScreen = lazy(\n () => import('../profile/place-order-confirmation-screen')\n);\n\nconst PermissionNeeded = lazy(() => import('../permission-needed'));\nconst Offers = lazy(() => import('../offers/offers-screen'));\nconst ChangePassword = lazy(\n () => import('../change-password/change-password-screen')\n);\nconst Sales = lazy(() => import('../reports/sales/sales'));\nconst ReportsPayment = lazy(() => import('../reports/payments/payment'));\nconst ReportSalesPerson = lazy(() => import('../reports/sales-person/sales-person'));\nconst CreditExtensionDetail = lazy(\n () => import('../reports/payments/credit-extension-detail')\n);\nconst PaymentDueDetail = lazy(() => import('../reports/payments/payment-due-detail'));\nconst PaymentCollectionDetail = lazy(\n () => import('../reports/payments/payment-collection-detail')\n);\nconst ReportsCustomers = lazy(() => import('../reports/customers/customers'));\nconst CustomerUsageDetailPage = lazy(\n () => import('../reports/customers/customer-usage-detail')\n);\nconst PartsGroupCustomer = lazy(\n () => import('../reports/customers/parts-group-customer')\n);\nconst ProductsDeletedList = lazy(\n () => import('../reports/customers/products-deleted-list')\n);\nconst ConversionRatesDetail = lazy(\n () => import('../reports/sales/conversion-detail')\n);\nconst ConversionRatesDetailSale = lazy(\n () => import('../reports/sales/conversion-detail-sale')\n);\n\nconst CustomerDeletedProductCart = lazy(\n () => import('../reports/customers/products-deleted-list')\n);\nconst StatusDetails = lazy(\n () => import('../reports/sales/status-details')\n);\nconst StatusOrderDetails = lazy(\n () => import('../reports/sales/status-order-detail')\n);\nconst CutomerGroupDetails = lazy(\n () => import('../reports/sales/customer-group-details')\n);\n\nconst YearPerformanceDetails = lazy(\n () => import('../reports/sales-person/year-perfomance-detail')\n);\n\nconst VisitReportDetail = lazy(\n () => import('../reports/sales-person/visit-report-details')\n);\n\nconst SalespersonActivityView = lazy(\n () => import('../reports/sales-person/sales-person-activity-view')\n);\n\nconst CustomerActivityView = lazy(\n () => import('../reports/sales-person/customer-activity-view')\n);\n\nconst SalespersonActivityTrack = lazy(\n () => import('../reports/sales-person/sales-person-activity-track')\n);\n\nconst ConversionRatesCustomerOrderDetail = lazy(() => import('../reports/sales/conversion-rate-customer-order'));\nconst ConversionRatesCustomerOrderSaleDetail = lazy(() => import('../reports/sales/conversion-rate-customer-order-sale'));\nconst StatusCustomerOrderDetail = lazy(() => import('../reports/sales/status-customer-order-detail'));\nconst PaymentStatus = lazy(() => import('../checkout/payment-status'));\nconst DuePaymentStatus = lazy(() => import('../payment-center/components/due-payment-status'));\nconst IframeGateway = lazy(\n () => import('../checkout/components/iframe-gateway')\n);\n\nconst IframeGatewayDuePayments = lazy(\n () => import('../payment-center/components/process-payment/duePayment-iframe-gateway')\n);\nconst FrequentBoughtList = lazy(() => import('../home/frequent-bought/FrequentBoughtList'));\n\nclass Routes extends React.Component {\n render() {\n return (\n }>\n \n {/* */}\n \n \n \n \n\n \n \n \n \n \n {/* */}\n \n \n\n \n \n \n \n \n \n \n \n {/* */}\n \n\n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default Routes;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory, withRouter } from 'react-router-dom';\nimport ReduxToastr from 'react-redux-toastr';\nimport Routes from './routes/Routes';\nimport '../styles/base.scss';\nimport { ConfirmationDialogProvider } from '../components/confirm-popup/confirm-popup';\nimport { useAuth } from '../core/hooks';\nimport { useInitiate } from '../core/hooks/useInitiate';\nimport { requestForToken, onMessageListener } from '../firebase';\nimport { INotificationItem } from '../models/order-models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n addNewNotificationAction,\n changeLanguageAction,\n ILocale,\n State,\n} from '../core/store';\nimport { useNotifications } from '../core/hooks/useNotifications';\nimport 'react-notifications-component/dist/theme.css';\nimport { Store, ReactNotifications } from 'react-notifications-component';\nimport i18n from '../i18n';\nimport api from '../api';\nimport { useBrandsAndBranches } from '../core/hooks/useBrandsAndBranches';\n\n(String.prototype as any).toNumber = function () {\n let num = 0;\n try {\n num = parseFloat(this);\n } catch (err) {\n num = 0;\n }\n return num;\n};\n\nconst App: React.SFC = () => {\n const { getInitialData } = useInitiate();\n const { registerDeviceToken } = useNotifications();\n const settings = useSelector((state: State) => state.settings);\n const {\n getRoles,\n userType,\n isAuthenticated,\n userToken,\n salesPersonToken,\n isSalesPerson,\n } = useAuth();\n\n const dispath = useDispatch();\n\n useEffect(() => {\n onLanguageChange(settings.locale);\n api.setLanguageID(settings.locale.languageID);\n // do not remove this setTimeout.\n setTimeout(() => {\n getInitialData();\n // requestForToken(setDeviceToken);\n });\n }, []);\n useEffect(() => {\n if (isAuthenticated) {\n // do not remove this setTimeout.\n setTimeout(() => {\n getInitialData(userToken);\n getRoles();\n });\n }\n }, [userType, isAuthenticated]);\n const dispatch = useDispatch();\n const brandState = useSelector((state: State) => state.brandAndBranch);\n const authState = useSelector((state: State) => state.authUser);\n const { getBrandAndBranches } = useBrandsAndBranches();\n useEffect(() => {\n if (!brandState.isBrandAdBranchLoading) {\n getBrandAndBranches(authState?.userToken ?? '');\n }\n }, [authState?.userToken, authState.salesPersonToken]);\n\n const onLanguageChange = (language: ILocale) => {\n i18n.changeLanguage(language.languageKey);\n dispatch(changeLanguageAction(language.languageID));\n const h1 = document.getElementsByTagName('html')[0]; // Get the first

    element in the document\n const att = document.createAttribute('dir'); // Create a \"class\" attribute\n att.value = language.isRtl ? 'rtl' : 'ltr'; // Set the value of the class attribute\n h1.setAttributeNode(att);\n };\n\n const [deviceToken, setDeviceToken] = useState();\n\n const showNotification = (title: string, body: string) => {\n Store.addNotification({\n title,\n message: body,\n type: 'success',\n insert: 'top',\n container: 'top-right',\n animationIn: ['animate__animated', 'animate__fadeIn'],\n animationOut: ['animate__animated', 'animate__fadeOut'],\n dismiss: {\n duration: 5000,\n onScreen: true,\n },\n });\n };\n\n onMessageListener().then((payload: any) => {\n if (isAuthenticated) {\n const newNotificationData: INotificationItem = payload.data;\n if (\n (isSalesPerson && newNotificationData.userToken === salesPersonToken) ||\n (!isSalesPerson && newNotificationData.userToken === userToken)\n ) {\n newNotificationData.isRead = false;\n showNotification(\n payload.notification?.title,\n payload?.notification?.body\n );\n dispath(addNewNotificationAction(newNotificationData));\n }\n }\n });\n // useEffect(() => {\n // if (deviceToken != null && isAuthenticated) {\n // registerDeviceToken(deviceToken);\n // }\n // }, [deviceToken, isAuthenticated]);\n return (\n
    \n \n\n \n \n \n \n
    \n );\n};\n\n// without using withRouter, route changes only reflect in url but not on page.\nexport default withRouter(App);\n","import { useEffect } from 'react';\nimport api from '../../api';\nimport { useBrandsAndBranches } from './useBrandsAndBranches';\nimport { useCart } from './useCart';\nimport { useCountries } from './useCountries';\nimport { useNotifications } from './useNotifications';\nimport { useOrder } from './useOrder';\nimport { useQuotes } from './useQuotes';\nimport { useUserToBrand } from './useUserToBrand';\n\nexport const useInitiate = () => {\n const { getBrandAndBranches } = useBrandsAndBranches();\n const { getCountries } = useCountries();\n const { getUserToBrand } = useUserToBrand();\n const { loadFilterData } = useOrder(api.order);\n const { getCart } = useCart();\n const { getQuotations } = useQuotes();\n\n const getInitialData = async (userToken?: string) => {\n // getBrandAndBranches(userToken);\n // getCountries();\n // getUserToBrand();\n // loadFilterData();\n // getCart(),\n // getQuotations()\n };\n\n return {\n getInitialData,\n };\n};\n","import RootDev from './Root.dev';\nimport RootProd from './Root.prod';\n\nconst root = process.env.NODE_ENV === 'production' ? RootProd : RootDev;\n\nexport default root;\n","import React from 'react';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { PersistGate } from 'redux-persist/integration/react';\n\nimport App from '../App';\n// import registerServiceWorker from './registerServiceWorker';\n\nconst Root = ({ store, persistor }: any) => (\n \n \n \n \n \n \n \n);\n\n// disable service worker until initial production deployment\n// know the caching caveats before enabling it early on:\n// https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#opting-out-of-caching\n// registerServiceWorker();\n\nRoot.propTypes = {\n store: PropTypes.shape({}).isRequired,\n persistor: PropTypes.shape({}).isRequired,\n};\n\nexport default Root;\n","import api from './api';\nimport { configureStore } from './core/store';\n\nconst setToken = (token?: string) => api.setUserToken(token);\nconst { store, persistor } = configureStore(setToken);\n\nexport { store, persistor };\nexport default { store, persistor };\n","import 'react-app-polyfill/ie9';\nimport 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport * as serviceWorker from './serviceWorker';\nimport Root from './containers/routes/Root';\nimport './i18n';\n\nimport { store, persistor } from './store';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import moment from 'moment';\nimport 'moment-timezone';\nimport { isNullOrEmpty } from './text-utils';\n\nconst DubaiTimezone = 'Asia/Dubai';\n\nexport const convertStringToDate = (dateString: string) => {\n if (isNullOrEmpty(dateString) || dateString === '0000-00-00 00:00:00') {\n return '-';\n }\n return moment(dateString).format(DateFormats.NormalFromat);\n};\n\nexport const formatDate = (date: string | Date, dateFormat: string): string => {\n return moment(date).format(dateFormat);\n};\nexport const formatUTCDate = (\n date: string | Date,\n dateFormat: string\n): string => {\n return moment(date).utc().format(dateFormat);\n};\n\nexport const getNormalDateformat = (date?: string | Date) => {\n return moment(date ?? new Date()).format(DateFormats.NormalFromat);\n};\n\nexport const convertToTimezone = (\n date: Date,\n timezone: string = DubaiTimezone\n) => {\n return moment(date).tz(timezone).toDate();\n};\n\nexport const formatDateWithTimeZone = (\n date: string | Date,\n timezone: string = DubaiTimezone,\n dateFormat: string = DateFormats.NormalFromat\n) => {\n return moment(date).tz(timezone).format(dateFormat);\n};\n\nexport const tryFormatDate = (\n date: string | Date,\n dateFormat: string = DateFormats.NormalFromat\n): string | Date => {\n try {\n return formatDate(date, dateFormat);\n } catch (e) {\n return date;\n }\n};\n\nexport const tryFormatDateWithTimezone = (\n date: string | Date,\n timezone: string = DubaiTimezone,\n dateFormat: string = DateFormats.NormalFromat\n): string | Date => {\n try {\n return formatDateWithTimeZone(date, timezone, dateFormat);\n } catch (e) {\n return date;\n }\n};\n\nexport class DateFormats {\n static NormalFromat = 'DD-MM-YYYY, h:mm A';\n static MonthNameFormat = 'DD-MMM-YYYY';\n static DayMonthFormat = 'DD-MM-YYYY';\n static YearMonthFormat = 'YYYY-MM-DD';\n static DayMonthYearFormat = 'DD/MM/YYYY';\n static MonthNameOnly = 'MMM';\n static TimeOnlyFormat = 'h:mm A';\n static MonthWithDay = 'MMM DD';\n static NormalDateFormatWithoutHiphons = 'DD MMM YYYY';\n}\n\nexport const addDays = (date: Date, days: number) => {\n return moment(date).add(days, 'days').toDate();\n};\n\nexport const getUTCStartOfDate = (date: Date): Date => {\n return new Date(\n Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())\n );\n};\n\n\nexport interface DataWithCount {\n date: Date | string;\n week?: number;\n month?: number;\n year?: number;\n count: number;\n key: string;\n displayText: string;\n index?: number;\n name?: string;\n leadIds?: string[];\n appointmentIds?: string[];\n customerIds?: string[];\n configIds?: string[];\n}\n\nexport const calculateDaysBetweenDates = (date1: Date, date2: Date) => {\n const oneDay = 24 * 60 * 60 * 1000;\n const date1InMillis = date1.getTime();\n const date2InMillis = date2.getTime();\n const days = Math.round(Math.abs(date2InMillis - date1InMillis) / oneDay);\n return days;\n};\n\nexport const isValidDate = (date: string) => {\n return !isNullOrEmpty(date) && date !== '0000-00-00 00:00:00';\n};\n"],"sourceRoot":""}