{"version":3,"sources":["assets/gasBottle.png","core/enums/Roles.js","core/exceptions/ApiRouteError.js","core/exceptions/ApiRouteCustomError.js","services/getAxios.js","services/Login/LoginService.js","hooks/_shared/useSharedState.js","components/data/ListingPageProvider.js","components/elements/GlobalStyles.js","hooks/_shared/useImmerReducer.js","services/Config/config.prod.js","services/Company/CompanyService.js","core/state/createStateModule.js","core/state/createListStateModule.js","core/state/admin/companies/companiesListStateModule.js","services/User/UserService.js","core/state/plugins/adminRolesStatePlugin.js","core/state/admin/users/adminUsersListStateModule.js","core/state/admin/users/usersListStateModule.js","services/BuyRefrigerant/MarketplaceService.js","services/Stock/StockService.js","core/state/plugins/gasTypesStatePlugin.js","core/state/sell-refrigerant/sellRefrigerantListingPlugins.js","core/state/buy-refrigerant/marketplaceListingStateModule.js","services/SellRefrigerant/SellRefrigerantService.js","core/state/buy-refrigerant/myBidsListingStateModule.js","services/Clients/ClientsService.js","services/User/CountryService.js","core/state/plugins/countriesStatePlugin.js","core/state/clients/clientsListStateModule.js","core/state/clients/clientsLocationsListStateModule.js","core/state/clients/clientsUnitsListStateModule.js","services/Registration/RegistrationService.js","core/state/company/companyStateModule.js","core/state/company/cylinderListStateModule.js","core/state/plugins/companyRolesStatePlugin.js","core/state/company/employeeListStateModule.js","core/state/company/equipmentListStateModule.js","core/state/navigation/breadcrumbsStateModule.js","core/state/navigation/leftNavigationStateModule.js","core/state/sell-refrigerant/sellRefrigerantListingStateModule.js","core/state/stock/installerStockListingStateModule.js","core/state/stock/stockListingStateModule.js","core/state/user/userStateModule.js","core/state/rootReducer.js","core/state/GlobalStore.js","core/state/useStateModule.js","core/state/bindActions.js","globalVars.js","core/state/navigation/useLeftMenu.js","core/state/navigation/useBreadcrumbs.js","components/breadcrumbs/Breadcrumbs.js","core/enums/CompanyType.js","core/RouteCreator.js","assets/logo-big-rtr.svg","assets/logo-small-rtr.svg","components/elements/header/components/HeaderLogo.js","hooks/_shared/useClickAway.js","components/elements/buttons/Button.js","components/modal/ModalDialog.js","components/data/DateCell.js","core/helpers.js","screens/Equipment/components/splitAt.js","components/elements/buttons/LogoutButton.js","assets/ios_add.svg","assets/ios_share.svg","assets/close.svg","components/elements/form-elements/ClearableInput.js","components/elements/form-elements/Form.js","components/elements/form-elements/FormField.js","components/elements/form-elements/FormikCheckbox.js","components/elements/form-elements/hooks/useFileDrop.js","assets/Eye.svg","assets/Invisible.svg","components/elements/form-elements/Input.js","components/elements/form-elements/GalleryUploader.js","components/elements/form-elements/InputSubmit.js","components/elements/form-elements/Label.js","components/elements/form-elements/Radio.js","assets/pwa/search.svg","components/elements/form-elements/SearchInput.js","assets/plus-white.svg","components/elements/Stylings.js","components/elements/form-elements/Select.js","components/elements/form-elements/TextArea.js","assets/trash.svg","assets/upload.svg","components/elements/form-elements/Uploader.js","components/elements/form-elements/ValidationError.js","assets/fileupload.svg","components/elements/form-elements/SingleFileUploader.js","components/elements/headings/H1.js","components/elements/headings/H2.js","components/elements/headings/H3.js","components/elements/headings/Headings.js","components/user-menu/TehnicianTools.js","components/user-menu/UserMenu.js","components/elements/header/components/HeaderUserArea.js","components/elements/header/components/LanguageSwitch.js","assets/impersonation.svg","assets/support.svg","core/useAuthorization.js","core/AuthorizeComponent.js","assets/kyc-valid.svg","assets/kyc-invalid.svg","components/tooltip/Tooltip.js","components/elements/header/components/KycSemaphore.js","assets/haveCert.svg","assets/noCert.svg","components/elements/header/components/CertSemaphore.js","assets/goback.svg","components/elements/form-elements/InputElement.js","services/Tags/TagsService.js","components/elements/header/components/RequestSupportForm.js","components/elements/header/AppHeader.js","components/elements/Main.js","components/layout/flex/FlexContainer.js","core/state/navigation/useActiveNavigationPath.js","components/layout/sidebar/LeftMenuListItem.js","components/layout/sidebar/LeftMenu.js","components/layout/split/one-two/MainLayout.js","components/loaders/Loader.js","components/logo/Logo.js","components/modal/ModalWizard.js","components/notifications/Notifier.js","components/elements/general/Spinner.js","core/PrivateRoute.js","data/menu/globalAdminMenuItems.js","assets/sort_triangle.svg","core/state/useListingPage.js","components/pagination/Pagination.js","components/data/IndeterminateCheckbox.js","components/data/styles/StyledDataContainer.js","components/data/styles/StyledTable.js","assets/no_data.svg","components/data/DataTable.js","components/filter/FilterItem.js","components/filter/FilterTitle.js","components/filter/FilterWrapper.js","components/filter/Filters.js","components/layout/flex/FlexColumn.js","components/layout/flex/FlexRow.js","components/layout/flex/Flex.js","components/layout/split/one/LayoutInnerContainer.js","components/modal/DetailSideBar.js","components/wrappers/HeaderActionsWrapper.js","components/data/DataCard.js","components/data/DataCardList.js","components/data/DataCardsContainer.js","components/data/LoadingCards.js","components/data/LoadingTable.js","components/data/ListingPage.js","components/data/NullableCell.js","hooks/_shared/usePageChange.js","components/menu/HamburgerMenu.js","components/menu/HamburgerMenuAction.js","screens/Administration/views/company/components/ActionsCell.js","components/elements/sidebar/SidebarStyle.js","components/elements/sidebar/SidebarField.js","components/elements/sidebar/SidebarLicence.js","components/elements/sidebar/SidebarUsers.js","components/toggle-view/AccordionWrapper.js","hooks/_shared/useAccordionGroup.js","screens/Administration/views/company/components/CompanyDetailSideBar.js","hooks/_shared/useDebouncedCallback.js","screens/Administration/views/company/components/filterCompanyActionTypes.js","screens/Administration/views/company/components/CompanyFilter.js","screens/Administration/views/company/components/StatusCell.js","assets/Flag.svg","screens/Administration/views/company/components/PartnerStatusCell.js","hooks/_shared/useQueryString.js","core/validations/common.js","core/validations/ValidationRule.js","components/modal/components/WizardStyling.js","screens/Administration/views/company/components/PartnerStatusWizard.js","screens/Administration/views/company/CompanyListing.js","hooks/_shared/useDataReducer.js","hooks/_shared/useDataReducerImmediate.js","services/Statistics/StatisticsService.js","components/dashboard/ChartHeader.js","components/dashboard/DashboardConstants.js","assets/no-chart-data.svg","components/dashboard/DashboardStyles.js","components/dashboard/DashboardTheme.js","components/dashboard/ProgressStyles.js","components/dashboard/CustomLegend.js","components/dashboard/ChartPieGasQuality.js","components/dashboard/ProgressBar.js","components/dashboard/Menu.js","screens/Administration/views/user/components/AdminDashboardMenu.js","components/dashboard/DataFunctions.js","components/dashboard/ChartDatePicker.js","components/dashboard/ChartDates.js","components/dashboard/TooltipContainer.js","components/dashboard/TooltipItemList.js","components/dashboard/CustomTooltip.js","components/dashboard/ChartDataSidebar.js","components/dashboard/NoData.js","components/dashboard/FilterableLineChart.js","components/dashboard/ChartProgress.js","core/enums/CompanyStatus.js","screens/Administration/views/company/CompanysStatisticsDashboard.js","screens/Administration/AdminCertSidebar.js","screens/Administration/CompanyCertificatesScreen.js","screens/Administration/CompanyAdministrationScreen.js","components/wrappers/ListingWrapper.js","screens/Administration/views/marketplace/MarketplaceStatisticsDashboard.js","components/dashboard/DashboardWrapper.js","components/dashboard/ChartAveragePrice.js","assets/pwa/menu-bullet.svg","screens/pwa/components/GasTypeItems.js","assets/pwa/magnifier.svg","components/elements/form-elements/ClearableLookup.js","screens/pwa/CompanyLookup.js","screens/pwa/components/MenuColumnContainer.js","screens/pwa/GasMenu.js","screens/Administration/views/marketplace/MarketplaceAdminDashboard.js","assets/dot.svg","components/elements/general/Slider.js","screens/SalesCenter/views/components/MarketplaceDetailSideBar.js","components/elements/form-elements/MoneyInputElement.js","components/bids/BidItem.js","components/bids/Bids.js","screens/SalesCenter/views/components/OfferBids.js","core/enums/AnalysisStatus.js","assets/calendar.svg","components/elements/form-elements/DatePicker.js","screens/SalesCenter/views/components/MarketplaceFilter.js","screens/SalesCenter/views/components/WizardPlaceBid.js","components/data/GradeCell.js","components/data/GreenCell.js","components/elements/tabs/TabLinks.js","screens/SalesCenter/views/MarketplaceListing.js","screens/SalesCenter/views/components/ReclaimedMarketFilterState.js","screens/SalesCenter/views/components/ReclaimedMarketFilter.js","screens/SalesCenter/views/components/ReclaimedMarketSidebar.js","services/Payment/PaymentService.js","core/enums/PaymentType.js","components/elements/links/NavigationLink.js","screens/SalesCenter/views/components/wizard/WizardPayForOffer.js","screens/SalesCenter/views/ReclaimedMarketplace.js","screens/Administration/MarketplaceStatisticsScreen.js","components/elements/form-elements/HTMLAnchor.js","screens/Administration/views/qr/QRGenerationView.js","screens/Administration/QRTagsScreen.js","components/data-entry/DataEntry.js","components/wrappers/DashboardWrapper.js","components/wrappers/FormWrapper.js","components/wrappers/Wrapper.js","components/wrappers/Wrappers.js","components/errors/EffectError.js","components/elements/form-elements/FormTitle.js","screens/Administration/CreateAdministratorForm.js","screens/Administration/CreateAdministratorScreen.js","components/elements/tabs/RoundTabs.js","core/AuthorizeComponentByUserId.js","screens/User/components/User2faForm.js","screens/Company/views/employees/edit-employee/Change2faSection.js","screens/User/components/UserPasswordForm.js","screens/Company/views/employees/edit-employee/ChangePasswordSection.js","components/elements/images/RoundedImage.js","components/elements/form-elements/ProfilePictureUploader.js","screens/User/components/UserProfilePictureForm.js","screens/Company/views/employees/edit-employee/ChangePictureSection.js","screens/Administration/views/user/AdministratorEditForm.js","screens/Administration/views/user/AdministratorEditScreen.js","components/elements/form-elements/Link.js","hooks/_shared/usePromises.js","components/elements/sidebar/SidebarTitle.js","screens/Administration/views/user/components/AdminDetailSideBar.js","screens/Administration/views/user/components/filterActionsTypes.js","screens/Administration/views/user/components/RoleCell.js","screens/Administration/views/user/components/UserFilter.js","screens/Administration/views/user/CreateAdministratorWizard.js","components/elements/buttons/ActionButton.js","screens/Administration/views/user/AdministratorListing.js","assets/pwa/filters.svg","assets/pwa-right.svg","assets/pwa/pwa-close.svg","assets/pwa/no-image.svg","assets/pwa/scan.svg","assets/pwa/no-data.svg","assets/pwa/edit.svg","assets/pwa/delete.svg","screens/pwa/components/StyledSvg.js","screens/pwa/components/StyledElements.js","screens/User/components/UserDetailSideBar.js","screens/Administration/views/user/components/CertificateStatusCell.js","screens/Administration/views/user/UserListing.js","screens/Administration/views/user/RecentUserListing.js","screens/Administration/views/user/UserStatisticsDashboard.js","components/elements/buttons/BackButton.js","screens/Administration/UserCertificateScreen.js","screens/Administration/UserAdministrationScreen.js","data/menu/companyAdminMenuItems.js","screens/Clients/columns/ClientsBreadcrumbs.js","core/env.js","screens/Clients/columns/StarCell.js","screens/Clients/columns/ClientsColumns.js","components/maps/components/MapBounds.js","components/maps/components/LocationMarker.js","components/maps/DaikinMap.js","screens/Clients/views/components/details/DetailsStyling.js","screens/Clients/views/components/details/ClientDetails.js","screens/Clients/views/components/LocationsFilter.js","screens/Clients/views/components/details/WizardClientDetails.js","screens/Clients/views/components/wizard/ClientLocationWizard.js","screens/Clients/views/components/wizard/UnitWizardAdd.js","screens/Clients/views/components/ClientLocationsListing.js","components/gallery/ImageGalleryPopup.js","components/gallery/ImageGallery.js","screens/Equipment/components/QRWrapper.js","screens/Equipment/components/TagTitle.js","screens/Clients/views/components/sidebar/UnitsDetailSideBar.js","screens/Clients/views/components/UnitsFilter.js","screens/Clients/views/components/wizard/UnitWizardEdit.js","screens/Clients/views/components/wizard/UnitWizardReTag.js","screens/Clients/views/components/ClientLocationsUnitListing.js","screens/Clients/views/components/ClientsFilter.js","screens/Clients/views/components/sidebar/ClientDetailSideBar.js","screens/Clients/views/components/wizard/ClientWizard.js","screens/Clients/views/components/ClientsListing.js","screens/Clients/views/ClientsSection.js","screens/Clients/ClientsScreen.js","screens/Company/views/employees/EmployeeEditForm.js","screens/Company/views/company/wizard/AddCertificateWizard.js","screens/Company/views/employees/EmployeeEditScreen.js","components/data/DataCellImage.js","screens/Company/views/employees/components/EmployeeDetailSideBar.js","screens/Company/views/employees/components/wizard/NewEmployeeWizard.js","components/elements/general/vspace.js","screens/Company/views/employees/EmployeeList.js","screens/Company/views/company/CompanyCertificateScreen.js","components/notifications/FullScreenNotification.js","hooks/_shared/useTimeoutFn.js","screens/Company/views/company/CompanyEditForm.js","screens/Company/views/company/CompanyEditScreen.js","screens/Company/views/company/details/WizardCompanyDetails.js","screens/Company/views/company/wizard/IBANWizard.js","assets/mangopay.svg","screens/Company/views/company/PaymentsScreen.js","screens/Company/views/company/wizard/KYCWizard.js","components/elements/general/SimpleTable.js","core/enums/KYCDocumentType.js","components/modal/ModalContainer.js","components/modal/components/WizardSummaryFieldStyle.js","components/modal/components/WizardSummaryField.js","screens/Company/views/company/wizard/UboDeclarationWizard.js","screens/Company/views/company/UboDetailSideBar.js","screens/Company/views/company/UboOwnerCell.js","screens/Company/views/company/UboScreen.js","screens/Company/views/company/KycScreen.js","screens/Company/views/employees/ProfileScreen.js","screens/Company/views/company/CompanyScreen.js","components/modules/Module.js","components/modules/ModuleCards.js","screens/pwa/BottomMenu.js","assets/pwa/my-stock.svg","assets/pwa/company-stock.svg","assets/pwa/cylinders.svg","assets/pwa/analyzers.svg","assets/pwa/units.svg","assets/pwa/logout.svg","screens/pwa/components/PwaMenuItems.js","assets/pwa/close-arrow.svg","screens/pwa/LeftMenu.js","core/enums/GradeStatus.js","assets/pwa/clear-filters.svg","assets/pwa/dark-close.svg","screens/pwa/FilterMenu.js","screens/pwa/components/CompanyStockListing.js","screens/pwa/components/ExtractionListing.js","assets/orange-info.svg","screens/pwa/components/ExtractionDetails.js","screens/pwa/CompanyStock.js","core/enums/CylinderType.js","screens/pwa/components/CylinderStockListing.js","screens/pwa/actions/components/EditCylinderWizard.js","screens/pwa/components/CylinderDetails.js","screens/pwa/CylinderStock.js","screens/pwa/components/AnalyzerStockListing.js","screens/pwa/components/AnalyzerDetails.js","screens/pwa/AnalyzerStock.js","screens/pwa/components/ClientListing.js","screens/pwa/components/ClientLocationListing.js","screens/pwa/components/LocationUnitListing.js","screens/pwa/actions/components/EditUnitWizard.js","screens/Equipment/components/StyledQR.js","screens/pwa/components/UnitDetails.js","screens/pwa/UnitStock.js","screens/pwa/components/TechnicianStockListing.js","assets/no-file.svg","screens/pwa/components/InvalidUserCert.js","screens/pwa/TechnicianStock.js","components/elements/qr/QrScanner.js","screens/NewRefrigerant/views/new-refrigerant/components/PresumedGradeLabel.js","assets/pwa/new-extraction.svg","assets/pwa/analyzer-result.svg","screens/pwa/actions/components/ExtractionWizard.js","screens/pwa/actions/NewExtraction.js","assets/pwa/to-company-stock.svg","screens/pwa/actions/components/ToCompanyStockWizard.js","screens/pwa/actions/ToCompanyStock.js","screens/pwa/actions/components/ToMyStockWizard.js","screens/pwa/actions/ToMyStock.js","assets/pwa/add-new-unit.svg","screens/pwa/actions/components/AddUnitWizard.js","screens/pwa/actions/AddUnit.js","assets/pwa/add-new-cylinder.svg","screens/pwa/actions/components/AddCylinderWizard.js","screens/pwa/actions/AddCylinder.js","assets/pwa/add-new-analyzer.svg","screens/pwa/actions/components/AddAnalyzerWizard.js","screens/pwa/actions/AddAnalyzer.js","components/elements/form-elements/RadioList.js","assets/pwa/collect-gas.svg","screens/pwa/actions/components/CollectGasWizard.js","screens/pwa/actions/Collect.js","assets/pwa/start_recycling.svg","screens/pwa/actions/components/RecycleWizard.js","screens/pwa/actions/RecycleCylinder.js","assets/pwa/finish_recycling.svg","screens/pwa/actions/components/FinishRecyclingWizard.js","screens/pwa/actions/FinishRecycling.js","screens/pwa/actions/components/CollectCylinderWizard.js","screens/pwa/actions/CollectCylinder.js","screens/Dashboard/MobileDashboard.js","assets/rtr-white-logo.svg","assets/life.svg","components/layout/split/one-two/LayoutOneTwo.js","screens/Login/components/LoginForm.js","screens/Login/components/SelectCompanyForm.js","screens/Login/LoginScreen.js","screens/Dashboard/DashboardScreen.js","components/sidebar/CylinderBlock.js","screens/Equipment/components/CylinderDetailSideBar.js","screens/Equipment/components/CylinderFilter.js","screens/Equipment/components/wizard/CylinderWizardAdd.js","components/file-processing/FileDisplayWithAction.js","screens/Equipment/components/wizard/CylinderWizardEdit.js","screens/Equipment/components/wizard/WizardCylinderIssue.js","screens/Equipment/CylindersList.js","components/sidebar/AnalyzerBlock.js","screens/Equipment/components/EquipmentDetailSideBar.js","screens/Equipment/components/wizard/EquipmentWizard.js","screens/Equipment/EquipmentList.js","screens/Equipment/EquipmentScreen.js","services/ForgottenPassword/ForgottenPasswordService.js","screens/ForgottenPassword/ForgottenPasswordScreen.js","services/ResetPassword/ResetPasswordService.js","screens/ForgottenPassword/ResetPasswordForm.js","assets/warning-circle.svg","screens/ForgottenPassword/ResetPasswordScreen.js","components/dateTime/SingleDatePicker.js","screens/Register/RegisterForm.js","screens/Register/RegisterScreen.js","screens/Register/RegistrationConfirmedScreen.js","core/enums/OfferStatus.js","components/data/DateCellWithExpiration.js","components/tooltip/StatusTooltip.js","components/elements/general/TransactionStatus.js","screens/SalesCenter/views/components/BidGradePriceCell.js","components/data/TooltipCell.js","components/data/PurchasePrice.js","assets/handling-costs.svg","assets/no-handling-costs.svg","components/data/HandlingCell.js","screens/SalesCenter/views/columns/MyOffersColumns.js","components/bids/BidsListing.js","screens/Services/views/components/wizard/WIzardPayForCleaning.js","components/bids/BidGrade.js","screens/SalesCenter/views/components/wizard/WizardRejectBid.js","screens/SalesCenter/views/components/SingleBidDetailSideBar.js","screens/SalesCenter/views/components/MyOffersDetailSideBar.js","screens/SalesCenter/views/components/TransactionDetails.js","components/modal/PlainModal.js","screens/SalesCenter/views/components/wizard/WizardDispute.js","screens/SalesCenter/views/MyOffersListing.js","core/enums/BidStatus.js","screens/SalesCenter/views/columns/MyBidsColumns.js","screens/SalesCenter/views/components/MyBidDetailSideBar.js","screens/SalesCenter/views/components/QualityTestWizard.js","screens/Stock/views/stock/components/TagInput.js","screens/Stock/views/stock/components/CollectableTags.js","screens/Stock/views/stock/components/CollectStep.js","screens/Stock/views/stock/components/CollectableCompaniesList.js","screens/Stock/views/stock/components/CollectWizardClientData.js","screens/Stock/views/stock/components/CollectCylinderWizard.js","screens/SalesCenter/views/MyBidsListing.js","screens/pwa/components/AccordionMenu.js","screens/pwa/components/GasTypeItemsWithGrades.js","screens/pwa/GasMenuWithGrades.js","screens/SalesCenter/views/SalesDashboard.js","screens/SalesCenter/views/components/wizard/WizardAddReclaimOffer.js","core/enums/ReclaimedOfferStatus.js","screens/SalesCenter/views/ReclaimedMarketOffers.js","screens/SalesCenter/views/components/ReclaimedTransactionDetails.js","screens/SalesCenter/views/ReclaimedMarketPurchases.js","screens/SalesCenter/SalesCenterScreen.js","screens/NewRefrigerant/views/new-refrigerant/components/GradeCheckboxes.js","screens/NewRefrigerant/views/new-refrigerant/components/NewExtractionWizard.js","screens/Stock/views/stock/components/InstallerStockFilter.js","screens/Stock/views/stock/components/MoveToStockWizard.js","screens/Stock/views/stock/components/ExtractionDetailSideBar.js","screens/Stock/views/stock/components/StockDetailSideBar.js","screens/Stock/views/stock/InstallerStockListing.js","screens/SalesCenter/views/components/StockListFooterActions.js","screens/SalesCenter/views/components/StockListHeaderActions.js","core/enums/MarketplaceStatus.js","screens/Stock/views/stock/components/StockFilter.js","screens/Stock/views/stock/StockListing.js","screens/Stock/views/stock/StockDashboard.js","screens/Stock/StockScreen.js","screens/User/ActivateUserScreen.js","screens/User/ChangeEmailScreen.js","screens/Finance/views/components/PayoutWizard.js","screens/Finance/views/components/MyWallets.js","core/enums/TransactionFlowType.js","screens/Finance/views/components/TransactionRow.js","screens/Finance/views/components/wizard/WizardDepositMoney.js","screens/Finance/views/components/TransactionDetails.js","screens/Finance/views/TransactionsDashboard.js","screens/Finance/views/components/DocumentsFilter.js","screens/Finance/views/components/InvoiceDetailsSidebar.js","core/enums/DocumentType.js","core/enums/MangoTransferType.js","screens/Finance/views/DocumentListing.js","assets/list-view.svg","assets/hierarchy-view.svg","core/enums/TransactionStatus.js","core/enums/MangoPaymentTypeForDisplay.js","screens/Finance/views/components/TransactionsFilter.js","screens/Finance/views/components/TransactionDetailsSidebar.js","screens/Finance/views/components/FilterSummary.js","screens/Finance/views/TransactionsView.js","core/enums/TransactionParentType.js","core/enums/TransactionParentStatus.js","screens/Finance/views/components/TransactionGroupFilter.js","screens/Finance/views/HierarchyView.js","screens/Finance/FinanceScreen.js","screens/Services/views/columns/InstaDisposalColumns.js","screens/Services/views/components/DisposalFIlter.js","screens/Services/views/components/DisposalBidDetailSideBar.js","screens/Services/views/components/DisposalDetailSideBar.js","screens/Services/views/components/TransactionDetails.js","screens/Services/views/InstallerDisposalListing.js","screens/Services/views/components/DisposalFilterDist.js","screens/Services/views/DistributorDisposalBids.js","screens/Services/views/components/DistDisposalDetailSideBar.js","screens/Services/views/components/wizard/WizardPlaceDisposalBid.js","screens/Services/views/DistributorDisposalMarket.js","screens/Services/views/components/CleaningDetailsSidebar.js","screens/Services/views/components/CleaningFilter.js","screens/Services/views/components/wizard/WizardPlaceCleaningBid.js","screens/Services/views/CleaningMarketplace.js","core/state/clean-refrigerant/cleanRefrigerantListingStateModule.js","screens/Services/views/columns/CleaningOffersColumns.js","screens/Services/views/CleaningOffers.js","screens/Services/views/columns/CleaningBidsColumns.js","screens/Services/views/CleaningBidsListing.js","screens/Services/ServicesScreen.js","screens/SalesCenter/views/components/createDisputeSteps.js","screens/SalesCenter/views/components/DisputesDetailSideBar.js","screens/SalesCenter/views/components/wizard/WizardDiputeSettle.js","screens/SalesCenter/views/components/wizard/WizardDisputeConfirm.js","screens/Disputes/views/DisputesListing.js","screens/Disputes/DisputesScreen.js","screens/Register/SignupScreen.js","screens/Administration/ServicesStatisticsScreen.js","routes.js","screens/Company/views/company/wizard/AccountWizard.js","screens/Company/views/company/SetupAccountScreen.js","themes/default.js","App.js","hooks/_shared/useMatchMedia.js","index.js"],"names":["module","exports","ApiRouteError","msg","getMessages","fieldError","localizationKey","message","redirectUrl","name","Error","captureStackTrace","stack","ApiRouteCustomError","data","messages","join","ret","forEach","split","ex","push","trim","stackTrace","key","type","getApiUrl","window","location","protocol","host","baseUrl","requestsCounter","showApiLoader","visible","loaderEl","document","getElementById","classList","add","remove","instance","axios","create","baseURL","interceptors","request","use","config","localStorage","getItem","url","headers","response","successHandler","error","handledErrorResponse","status","Promise","reject","errorHandler","lang","apiResult","promise","then","catch","errors","length","createAuthRefreshInterceptor","failedRequest","defaults","post","tokenRefreshResponse","setItem","token","refreshToken","resolve","LoginService","login","username","password","api","verifyTwoFactor","code","twoFactorAuthToken","logout","removeItem","replace","origin","refresh","a","success","impersonate","result","stopImpersonation","getSSOTokens","id","get","listeners","state","setState","newState","branch","undefined","listener","cb","useSharedState","initialState","newListener","useState","useEffect","filter","ListingPageContext","React","createContext","listingActionTypes","ListingPageProvider","children","useReducer","action","selectedRows","find","row","payload","Object","assign","tableInstance","dispatch","Provider","value","GlobalStyles","createGlobalStyle","props","theme","fontFamily","bgIvory","baseFontSize","p","secondaryColor","primaryColor","useImmerReducer","reducer","cachedReducer","useMemo","produce","registration","resendConfirmation","confirmRegistration","values","forgottenPassword","resetPassword","activateUser","getUserData","setUserData","getUserByUsername","getUserById","changeEmail","confirmEmail","setUserCertificate","setUserPicture","deleteUserPicture","setUserPassword","getCountries","companyUpdate","updateCompanyProfile","getCompanyData","getCompanyDataByUserID","setCompanyCertificate","getCompaniesWithAdmin","getDistributors","getCompanyEquipment","getCompanyCylinders","getCompanyAnalyzers","getCompanyEquipmentById","createCompanyEquipment","updateCompanyEquipment","getCompanyEmployees","getCompanyEmployeeById","getAdministrators","getNonAdministrators","createAdministrator","getAdminRoles","createCompanyEmployee","updateCompanyEmployee","setCompanyEmployeeCertificate","getCompanyRoles","deleteEquipment","deleteUser","deleteCompany","deleteLicence","getRefrigerantTypes","getMarketPlaceStatuses","getLocationStatuses","addToMyStock","getMyCompanyStock","analyzeImage","updateLocationStatus","unpublishFromMarketplace","publishSkus","getMySellingItems","getAllItemsForSale","addBid","getBids","acceptBid","rejectBid","getOffersWithMyBids","getMyBids","revokeBid","payForBid","getOffers","enableDisableUser","extractedFGas","extractedFGasAdmin","extractions","extractionsAdmin","dashboardCompanyStock","dashBoardTechnicianStock","dashBoardMarketPlaceTrades","dashBoardMarketPlaceTradesPerDate","dashBoardMarketPlaceAverages","dashBoardMarketPlaceAveragesAdmin","getMarketplaceCounts","getUserCounts","getUserOnboarding","getCompanyOnboarding","getCompaniesCounts","enableDisableEmployee","qualityTest","shipToBuyer","offerSold","offerSoldByBuyer","addBuyerAnalysis","rejectBidDueToExpiration","dispute","getDisputes","getDisputeDetails","addDisputeDetails","finishDispute","getClients","getClientById","setClient","updateClient","deleteClient","getClientLocations","getClientLocationById","addClientLocation","updateClientLocation","deleteClientLocation","getUnits","getUnitById","getUnitManufacturers","addUnit","updateUnit","deleteUnit","generateQr","requestQR","tagsLookup","tagsIdentify","getCompanyCylinderById","createCompanyCylinder","updateCylinder","deleteCylinder","getMyGasAnalyzerById","getMyGasAnalyzerByTag","createGasAnalyzer","updateGasAnalyzer","deleteGasAnalyzer","getMyBankAccounts","createBankAccount","deactivateBankAccount","getMyKYCDocuments","getMyUbos","addUbo","updateUbo","deleteUbo","submitUbo","submitKYC","addKYCDocument","getMyWallets","getTransactionDetails","getTransactionDetailsById","getMyTransactions","getMyGroupedTransactions","payout","getTransactionsFromMango","downloadMyTransactions","getOffersForCollection","payAClass","topUp","getMyInvoices","getMyDocuments","downloadMyDocuments","getNationalities","getCompaniesByUserId","updateCompanyForCurrentUser","getCountryNames","getAnalysesZip","transactionDetails","sendToRecycling","emptyCylinder","collectEmptyCylinder","isFGasLicenceMandatory","cleaningServiceListing","cleaningServiceListingInstaller","addReclaimOffer","getDistributorReclaimedOffers","getInstallationCompanyReclaimedOffers","unpublishReclaimedOffer","getReclaimedOfferById","acceptReclaimOffer","cancelReclaimedOffer","getReclaimTransactionDetails","myEmployeesCertificates","myCompanyCertificates","addCompanyCertificate","addUserCertificate","employeesCertificates","companyCertificates","updateCertificateStatus","updateShowWarningsSetting","addCylinderIssue","addSupportMessage","getSpocDetails","setPartnerStatus","getPartnerStatus","defaultDebounceDelay","CompanyService","companyID","res","getCompanyDataAsync","setCompanyDataAsync","formData","setCompanyData","getCompanyByUserID","uploadCompanyCertificate","filters","req","cylinderId","getCompanyCylinderByIdAsync","skipCompanyCheck","equipmentId","getCompanyEquipmentByIdAsync","createCompanyCylinderAsync","createGasAnalyzerAsync","updateGasAnalyzerAsync","deleteGasAnalyzerAsync","gasAnalyzerId","shouldDisconnectTag","getMyGasAnalyzerByIdAsync","getMyGasAnalyzerByTagAsync","createCompanyEquipmentAsync","updateEquipment","updateEquipmentAsync","employeeId","createCompanyEmployeeAsync","updateCompanyEmployeeCertificate","deleteEmployee","userId","deleteCylinderAsync","updateCylinderAsync","getMyEmployeesCertificates","page","pageSize","getMyCompanyCertificates","getEmployeesCertificates","companyId","getCompanyCertificates","certId","certificateId","certificateStatus","applyPlugins","stateConfig","plugins","plugin","types","initialCreateCreators","creators","initialCreators","pluginCreators","actions","initialCreateActions","initialActions","pluginActions","initialReducerCreator","createReducer","pluginReducer","initialReducer","createStateModule","stateConfigWithPlugins","actionTypes","toUpperCase","stateNamespace","toLowerCase","generateActionTypes","stateModule","initialStateKeys","keys","creatorActionKeys","stateKey","creatorActionKey","namespace","validateConfig","createListStateModule","itemsPropertyName","detailsPropertyName","loadItemsMethodName","loadDetailMethodName","deleteMethodName","updateMethodName","createMethodName","itemsDataMethod","detailDataMethod","deleteDataMethod","updateDataMethod","createDataMethod","defaultItemsData","isLoading","isCompleted","RESET_STATE","createData","updateData","deleteData","details","LOADING","ERROR","SUCCESS","DETAIL_LOADING","DETAIL_ERROR","DETAIL_SUCCESS","DELETE_LOADING","DELETE_ERROR","DELETE_SUCCESS","UPDATE_ITEM_LOADING","UPDATE_ITEM_ERROR","UPDATE_ITEM_SUCCESS","CREATE_ITEM_LOADING","CREATE_ITEM_ERROR","CREATE_ITEM_SUCCESS","loading","errorCreator","items","detailsLoading","detailsError","detailsSuccess","item","resetState","deleteLoading","deleteError","deleteSuccess","updateLoading","updateError","err","updateSuccess","createLoading","createError","createSuccess","parameters","dataItems","params","companiesListStateModule","jwtDecode","require","_userRoles","UserService","getUserDetailsFromToken","activate","getUserDetails","setUserDetails","setUserDetailsAsync","getIsFullyRegistered","userDetails","CompanyId","IsFullyRegistered","setUserCertificateAsync","getUserRoles","array1","array2","roles","Array","isArray","every","index","isInRole","role","indexOf","createAdministratorAsync","getAdminRolesAsync","setUserEnabled","enabled","enable","setEmployeeEnabled","email","newEmail","adminRolesStatePlugin","rolesData","rolesLoading","ROLES_LOADING","rolesError","ROLES_ERROR","rolesSuccess","ROLES_SUCCESS","loadRoles","adminUsersListStateModule","usersListStateModule","MarketplaceService","getBuyingItemById","ids","getBuyingItems","offeredPriceGradeA","gradeA","offeredPriceGradeB","gradeB","offeredPriceGradeC","gradeC","offerIds","administrationCosts","transportationCosts","disposalBid","cleaningBid","offerId","bidId","paymentMethod","cleaningServiceType","rejectionReason","doQualityTest","tagIds","addDisputeSettle","getOffersForCollectionAsync","isCleaning","addReclaimedOffer","StockService","getRefrigerantTypesAsync","getStockItems","getStockItem","getStockItemAsync","moveToCompanyStock","tagId","locationStatus","moveToCompanyStockAsync","moveToInstallerStock","moveToInstallerStockAsync","publishToMarketplace","skuIds","description","marketplaceStatus","getCleaningListing","isInstaller","options","getCleaningListingData","gasTypesStatePlugin","gasTypesData","gasTypes","GASTYPES_LOADING","GASTYPES_ERROR","GASTYPES_SUCCESS","gasTypesLoading","gasTypesError","gasTypesSuccess","loadGasTypes","unpublishOfferPlugin","unpublishData","unpublishLoading","UNPUBLISH_LOADING","unpublishError","UNPUBLISH_ERROR","unpublishSuccess","UNPUBLISH_SUCCESS","unpublishOffers","marketplaceListingStateModule","SellRefrigerantService","getSellingItemById","getSellingItemByIdAsync","getSellingItems","myBidsListingStateModule","ClientsService","clientId","getClientByIdAsync","updateClientAsync","createClient","createClientAsync","getClientsLocations","filterState","createClientLocationAsync","updateClientLocationAsync","getClientLocationByIdAsync","locationId","getLocationById","getUnitManufacturersAsync","unitId","deleteClientLocationUnit","deleteClientLocationUnitAsync","createClientLocationUnit","getUnitsAsync","updateUnitAsync","getUnitByIdAsync","CountryService","getCountriesAsync","countriesStatePlugin","countryData","countries","COUNTRY_LOADING","COUNTRY_ERROR","COUNTRY_SUCCESS","countryLoading","countryError","countrySuccess","loadCountries","clientsListStateModule","clients","clientsLocationListStateModule","locations","clientsLocation","createClientLocation","clientsUnitsListStateModule","clientUnits","updateClientLocationUnit","RegistrationService","register","registerAsync","resendConfirmationAsync","verifyEmail","verifyEmailAsync","companyData","updateCompanyData","UPDATE_LOADING","UPDATE_ERROR","UPDATE_SUCCESS","RESEND_CONFIRMATION_LOADING","RESEND_CONFIRMATION_SUCCESS","RESEND_CONFIRMATION_ERROR","company","resendConfirmationLoading","resendConfirmationError","resendConfirmationSuccess","loadCompany","updateCompany","e","resendValidationEmail","userEmail","cylinderListStateModule","cylinder","companyRolesStatePlugin","employeeListStateModule","employee","equipmentListStateModule","equipment","SET_BREADCRUMBS","setBreadcrumbs","menuItems","activePath","isVisible","SET_LEFTMENU","SET_ACTIVE_PATH","SET_IS_VISIBLE","setLeftMenu","setActivePath","path","setIsVisible","sellRefrigerantListingStateModule","installerStockListingStateModule","stockListingStateModule","userStateConfig","isAuthenticated","isFullyRegistered","userCompanies","twoFactor","isRequired","twoFactorVerify","loginState","userData","isLoaded","profilePictureUrl","firstName","lastName","userProfilePictureUpdate","userProfilePictureDelete","Username","impersonatedByUsername","ImpersonatedByUsername","activation","menuState","isOpened","userUpdateData","LOGIN_LOADING","LOGIN_ERROR","CLEAR_LOGIN_ERROR","LOGIN_SUCCESS","LOGIN_TWOFACTOR_NEEDED","VERIFY_LOADING","VERIFY_SUCCESS","VERIFY_ERROR","CLEAR_VERIFY_ERROR","LOGOUT","FULLY_REGISTER","USERDATA_LOADING","USERDATA_ERROR","USERDATA_SUCCESS","UPDATEUSERPICTURE_LOADING","UPDATEUSERPICTURE_ERROR","UPDATEUSERPICTURE_SUCCESS","DELETEUSERPICTURE_LOADING","DELETEUSERPICTURE_ERROR","DELETEUSERPICTURE_SUCCESS","UPDATEUSERPICTURE_LEAVE","ACTIVATE_LOADING","ACTIVATE_ERROR","ACTIVATE_SUCCESS","CHANGEPASSWORD_LOADING","CHANGEPASSWORD_ERROR","CHANGEPASSWORD_SUCCESS","CHANGEPASSWORD_LEAVE","SETMENUOPEN","UPDATEUSERDATA_LOADING","UPDATEUSERDATA_ERROR","UPDATEUSERDATA_SUCCESS","UPDATEUSERDATA_RESETSTATE","loginLoading","loginError","clearLoginError","loginSuccess","userDataLoading","userDataError","userDataSuccess","updateUserPictureLoading","updateUserPictureError","updateUserPictureSuccess","deleteUserPictureLoading","deleteUserPictureError","deleteUserPictureSuccess","fullyRegister","activateLoading","activateError","activateSuccess","changePasswordLoading","changePasswordError","changePasswordSuccess","changePasswordResetState","updateUserPictureResetState","toggleMenu","isOpen","updateUserLoading","updateUserError","updateUserSuccess","updateUserResetState","loginTwoFactorNeeded","verifyLoading","verifySuccess","companies","verifyError","clearVerifyError","loginResult","verifyResult","loadUserData","userApiData","updateUserPicture","activateResponse","changePassword","newPassword","updateMyData","clearLoginErrors","rootReducer","modules","i","currentModule","createRootInitialState","createRootReducer","userStateModule","breadcrumbsStateModule","companyStateModule","leftNavigationStateModule","history","createBrowserHistory","withDevTools","process","devTool","__REDUX_DEVTOOLS_EXTENSION__","connect","GlobalStore","GlobalStateProvider","_mockState","rootReducerWithDevTools","nextState","send","dispatchBase","useCallback","method","args","routerMiddleware","asyncer","useStateModule","partialStateObject","useContext","partialState","boundActions","bindAction","apply","arguments","bindActions","globalVars","isMobile","maxListingItemsPerPage","Math","floor","innerHeight","useLeftMenu","leftMenu","globals","useBreadcrumbs","breadcrumbItems","i18n","useTranslation","newItems","setNewItems","memoItems","language","update","BreadcrumbsWrapper","styled","div","BreadcrumbsItem","span","BreadcrumbsNavLink","NavLink","Breadcrumbs","map","bc","text","to","className","CompanyType","All","InstallationCompany","Distributor","RouteCreator","home","admin","edit","users","root","nonAdmins","admins","createAdmin","statistics","certificates","list","companyType","marketplaceStatistics","marketplace","reclaimedMarketplace","services","disposal","cleaning","hangfire","qrTags","cylinders","analyzers","user","forgotPassword","verifyLogin","profile","payments","kyc","editEmployee","salesCenter","myBids","myOffers","transactions","finance","myWallets","myTransactions","disputes","reclaimedMarketOffers","reclaimedMarketPurchases","stock","installer","confirm","units","pwa","editUser","extraction","toCompanyStock","toMyStock","addCylinder","addAnalyzer","collect","recycleCylinder","finishRecycling","collectEmptyCilinder","hierarchy","invoices","documents","disposalBids","cleaningBids","reclaimed","_extends","target","source","prototype","hasOwnProperty","call","this","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createElement","y1","x2","y2","gradientUnits","offset","stopColor","d","fill","_ref","svgRef","title","width","height","viewBox","ref","ForwardRef","forwardRef","x1","xlinkHref","transform","LogoWrapper","heightHeader","Color","headerBorderColor","lighten","string","BigLogo","LogoBig","SmallLogo","LogoSmall","HeaderLogo","useLocation","t","forceBigLogo","pathname","startsWith","defaultEvents","useClickAway","onClickAway","events","savedCallback","useRef","current","handler","event","el","isModal","querySelector","isGallery","contains","eventName","addEventListener","removeEventListener","Button","button","buttonsBorderRadius","widthButtonMin","paddingInlineButton","buttonShadow","heightButtonSmall","primaryColorBorder","primaryColorText","primaryActionColor","primaryActionColorBorder","bgWhite","borderColorDisabled","secondaryColorBorder","borderColorError","secondaryNegativeColor","buttonShadowNegative","tertiaryNegativeColor","bgDisabled","textDisabled","animFade","keyframes","StyledModalContainer","device","mobile","StyledModalOverlay","bgOverlay","fade","StyledHeader","StyledTitle","ModalContent","HR","ModalButtonsWrapper","DialogButton","useModal","onConfirm","onCancel","modalButtons","showCloseButton","confirmText","cancelText","cancelFirst","isNegativeAction","modalVariant","style","onAlternative","onAlternativeDisabled","alternativeText","setIsOpen","modalModel","setModalModel","toggleOpen","modal","open","modalProps","closeModal","ModalDialog","opaque","singleButton","threeButtons","CancelButton","onClick","ev","ConfirmButton","AlternativeButton","disabled","ReactDOM","createPortal","stopPropagation","body","getDateFormat","currentLanguage","Intl","DateTimeFormat","day","month","year","getTimeFormat","hour","minute","formatDateForExportDocument","date","Date","getDay","formattedDay","toString","getFullYear","getMonth","getHours","getMinutes","isValidDate","dateValue","ShortDateCell","cell","format","time","DateTimeCell","datetime","hour12","getDateTimeFormat","GetShortDate","DateCell","timeZoneCompensation","getTimezoneOffset","monthNames","helpers","dateToIsoDateString","localDate","getTime","toISOString","getMonthName","yearAndMonth","parseInt","slice","getWeekName","isoString","dateParsed","getWeek","getWeekYear","minDate","dates","x","_","min","maxDate","max","toLocalDateIgnoreTime","getFormData","object","mappings","FormData","File","file","append","substr","parsedDate","setMinutes","getFileUploadFormik","formik","handleFileUpload","setFieldValue","currentTarget","files","handleChange","fileChangeFormikObject","handleFGasCertificate","setter","checker","fileFieldName","fGasCheckChangeHandler","fGasCheckFormikObject","getInitialFormValues","defaultInitialValues","results","initialValues","obj","JSON","parse","stringify","k","v","debounce","func","wait","immediate","timeout","context","later","callNow","clearTimeout","setTimeout","getInitials","fullName","names","initials","substring","splitQRTag","tag","splitTag","start","end","replaceAll","formatCurrency","amount","currency","sign","NumberFormat","signDisplay","currencyDisplay","downloadFile","filename","mime","blob","Blob","navigator","msSaveBlob","blobURL","URL","createObjectURL","tempLink","display","href","setAttribute","download","appendChild","click","removeChild","revokeObjectURL","downloadFileViaDirectUrl","calculatePurchasedPrice","qualityPrice","realQuantity","withVAT","vat","Globals","VATPercentage","calculatePriceWithVat","price","StyledLogoutButton","variantCancelBgHover","secondaryColorText","errorColor","LogoutButton","variant","stroke","strokeWidth","rx","y","strokeLinecap","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","set","StyledReset","ResetSvg","ClearableInput","enableSpinButton","defaultValue","rest","inputEl","inputVal","setInputVal","inputChanged","setInputChanged","hasValue","position","padding","inpEvt","Event","bubbles","dispatchEvent","onChange","Form","form","FormField","checkedStyles","css","checkBoxActiveBgColor","uncheckedStyles","primaryInputBorderColor","StyledCheckbox","checked","checkBoxDefaultBgColor","CheckboxContainer","CheckboxHeader","HiddenCheckbox","input","attrs","CheckboxWrapper","Description","labelText","header","labelClassName","touched","defaultChecked","htmlFor","for","desc","Fragment","useFileDrop","onDrop","isDragging","setIsDragging","dragCounter","onDragEnter","preventDefault","dataTransfer","onDragLeave","onDragOver","clearData","getUploaderProps","StyledInput","inputBgColor","inputBorderRadius","heightInputBig","inputFontSize","inputPlaceholder","hasAction","mask","filtersBorderRadius","heightInputSmall","StyledShowPass","ShowPassIcon","StyledHidePass","HidePassIcon","StyledPrefix","PlaceholderChars","Input","isPassword","hiddenPass","setHiddemPass","toggleHidden","oldState","pcChars","placeholderChars","char","repeat","num","inputProps","prefix","maxLength","onKeyPress","evt","onlyNumbers","ASCIICode","which","keyCode","onlyNumbersKey","GalleryInput","GalleryInputWrapper","StyledThumbWrapper","autoHeight","StyledThumb","img","desktop","StyledThumbAction","Thumbnail","thumb","reader","FileReader","onloadend","readAsDataURL","imageThumbnailUrl","isImage","imageUrl","prev","src","alt","GalleryUploader","images","setImages","inputRef","createEvent","initUIEvent","handleThumbChange","some","f","filtered","placeholder","newFiles","from","single","multiple","accept","StyledInputSubmit","paddingButton","heightButtonBig","primaryColorHover","tertiaryColor","tertiaryColorBorder","InputSubmit","StyledLabel","label","textColor","labelFontSize","Label","Container","CheckMark","RadioLabel","RadioGroup","RadioWrapper","Radio","abs","containerProps","secondary","top","restProps","classes","wrapperVariant","cx","cy","r","SvgSearch","SearchSvg","SearchButton","StylizedDrop","direction","hasDefault","Wrapper","SearchInput","pwaBig","searchFn","isSelected","setResults","handleSearch","wrapperClass","selected","dataset","itemSelected","data-test","option","idx","data-value","data-idx","InputWrapper","extraLargeDevices","bidA","bidB","bidC","MoneyContent","hr","StyledPlus","PlusSvg","StylizedSelect","darken","isDefault","CustomSelect","dropdown","selectEl","selectDropEl","dropEl","actionEl","drop","setDrop","toggleDrop","toggleState","Boolean","onWindowClick","clickOnAction","clickOnDrop","onEsc","useDropdown","dropOpen","setIndex","handleInputChange","dispatchChangeEvent","newIndex","selectedIdx","Number","dangerouslySetInnerHTML","__html","Select","handleBlur","defaultItem","defaultFirstOption","isTouched","selectOptions","unshift","onBlur","isFieldError","TextArea","textarea","heightInputBigPx","col","opacity","fillRule","points","enableBackground","xmlSpace","UploadInput","StyledUpload","UploadSvg","UploadInputWrapper","Uploader","imageRef","defVal","String","skipUrl","setFiles","backgroundImage","fileNames","data-text","MouseEvent","ErrorPlaceholder","FieldErrorSpan","errorTextColor","MobileFiledError","StyledErrorSpan","StyledIcon","ValidationError","shouldRender","errorIsOpen","setErrorIsOpen","toggleError","onMouseEnter","onMouseLeave","SingleFileUploader","setFile","fileName","newFile","handleReset","Heading1","h1","h1FontSize","h1TitleFontSize","h1TitleFontSizeSmall","H1","Heading2","h2","h2FontSize","h2TitleFontSize","H2","Heading3","h3","Headings","H3","StyledQR","SubTitle","Section","Instructions","Num","StepWrapper","Step","TechnicianTools","isIos","setIsIos","appLocation","hostname","port","marginBottom","textAlign","fontWeight","minHeight","marginTop","marginLeft","size","Menu","UL","ul","Avatar","UserInfo","menuRef","opened","links","buildUrl","link","avatarUrl","avatar","companyEditEnabled","Roles","userLink","alignItems","userFullName","companyLink","color","external","rel","fontSize","cursor","UserWrapper","UserAction","textWhite","HeaderUserArea","menuIsOpened","setMenuIsOpened","UserId","CompanyName","DaikinInfo","LangWrapper","Action","languages","LanguageSwitch","isInHeader","info","centered","actionClass","lng","changeLanguage","strokeLinejoin","preserveAspectRatio","useAuthorization","allowedRoles","allowedUserId","overrideUserIdRoles","userRoles","currentUserId","includes","AuthorizeComponent","disable","disableForOtherRoles","canAccess","cloneElement","filterUnits","dx","dy","stdDeviation","floodOpacity","operator","in2","in","Content","bgTooltip","Tooltip","tooltip","StyledKycValid","KycValid","Link","KycWrapper","StatusAction","KycSemaphore","tooltipVisible","setTooltipVisible","isValid","IsKYCValidated","statusText","toolTipText","CertWrapper","CertSemaphore","globalState","hasValidCompanyCertificate","InputElement","autoComplete","pattern","noLabel","elementStyle","Element","onKeyUp","data-password","TagsService","lookupEmptyCylinderTags","searchText","IsForCollectEmpty","lookupCylinderTags","isForEquipmentScreen","lookupExistingCylinderTags","isForNewExtraction","lookupUnassignedTags","isUnassigned","lookupUnassignedTagsAsync","lookupUnitTags","existing","isExistingUnitTag","lookupTagForEquipmentScreen","lookupTagForEquipmentScreenAsync","lookupTagForAnalyzerAsync","isAnalyzer","lookupInstallerStockTag","isInInstallerStock","lookupCompanyStockTag","moveType","isInCompanyStock","isInOtherCompany","identifyTag","identifyTagAsync","addCylinderIssueAsync","addSupportMessageAsync","getSpocDetailsAsync","getDaikinSerial","serial","StyledBg","StyledForm","StyledBackIcon","BackSvg","BackLink","InfoBlock","Title","SpocBlock","SpocImg","SpocIni","SpocInfo","Sep","RequestSupportForm","closeCb","spocData","setSpocData","urgent","setUrgent","getSpocData","finish","sendData","submitData","messageText","isUrgent","spocInitials","Header","bgHeader","SupportBlock","SupportSvg","SvgImper","ImperSvg","Separator","ImperText","AreaWrapper","AppHeader","supportRef","companyDetailsRouteMatch","useRouteMatch","strict","isAdminEdit","toggleModalOpen","showHeaderLogo","toggleSupportForm","toggle","isAdmin","spockName","toast","flex","Main","main","FlexContainer","justifyContent","flexWrap","mediumDevices","useActiveNavigationPath","newPath","IconWrapper","Icon","IconActive","svg","ListItem","li","SubMenuItem","textActive","TopItem","bgMenuActive","DisabledItem","LeftMenuListItem","isMouseOver","setMouseOver","menuIsClosed","loc","isActive","currPath","activePaths","matchPath","exact","iconInlineStyle","icon","iconClassName","activeSrc","activeClassName","srcHover","subItem","showForRoles","shouldshow","MenuListWrapper","MenuList","MenuBody","MenuElem","leftMenuWidth","MenuLogoWrapper","MenuToggle","MenuToggleIcon","LeftMenu","hovered","setHovered","handleMenuItemHover","hide","MainContainer","LeftMainArea","RightMainArea","MainLayout","Loader","StyledLogo","Logo","image","setImage","prevstate","prevState","GrayBack","ModalContentWrapper","FooterWrapper","ModalCloseButton","closeButtonBorderRadius","bgActive","FormTitle","CircleWrapper","numSteps","Circle","Stepper","ol","__instance","Renderer","updateFieldsCB","pop","ModalWizard","handleStepRender","wizard","steps","currentStep","onStepRender","propertyBag","updatePropertyBag","formikInstances","disableSubmit","draft","handleStepSubmit","formikBag","setSubmitting","fieldNames","mergedValues","field","onStepSubmit","setValues","isSubmitting","onSubmit","__submitFailed","__hidePrompt","__hide","handlePrev","handleNext","circles","onStateChange","wizardState","logo","bind","updateFields","__show","prevProps","snapshot","step","validationSchema","validation","handleSubmit","fields","wizStep","submitting","wide","classNames","footerContent","dataTest","left","data-start","data-step","stepName","modalContent","finishButtonText","renderCount","forms","separator","valuesOnly","temp","prop","parts","callbackFn","Component","StyledToastContainer","ToastContainer","notifierShadow","Notifier","transition","Slide","hideProgressBar","rotate360","SpinnerImage","Spinnerwrapper","Spinner","SecurityStatus","RouteRenderer","match","canAccessResult","routeRoles","userLoaded","component","isDistributor","PrivateRoute","render","globalAdminMenuItems","isTop","useListingPageContext","addSelectedRow","removeSelectedRow","rowId","setTableInstance","PaginationWrapper","PagePrevNext","Page","bgPagination","textPagination","Pagination","numButtons","pageCount","currentPageIndex","canNextPage","nextPage","canPreviousPage","previousPage","gotoPage","minIdx","showMore","first","last","newMinIdx","rew","pages","pageNum","visiblePages","cidx","fwd","IndeterminateCheckbox","indeterminate","inTable","defaultRef","resolvedRef","clNames","DataListingContainer","DataListingContent","StyledTable","table","tableInputBorderColor","tableActiveBorder","NoDataWrapper","SvgNoData","NoDataSvg","StyledSortIcon","SortIconSvg","DataTable","columns","onSelect","getRowClassName","shouldShowSelection","shouldEnableSelectionForRow","enableSelection","enablePaging","showHeaders","renderRowSubComponent","showSelectAll","controlledPageCount","onPageChange","onSortByChange","currentSortBy","enableSorting","getRowId","numPageButtons","listingPageState","listingPageActions","initialTableState","pageIndex","sortBy","selectedRowIds","dataMissing","tableConfig","manualPagination","disableMultiSort","manualSortBy","disableSortBy","disableSortRemove","autoResetSelectedRows","useTable","useSortBy","useExpanded","usePagination","useRowSelect","hooks","getToggleAllRowsSelectedProps","selectedFlatRows","rows","cellListingPageActions","Cell","cellListingPageState","getToggleRowSelectedProps","getTableProps","getTableBodyProps","headerGroups","prepareRow","setPageSize","toggleAllRowsSelected","headerGroup","getHeaderGroupProps","column","getHeaderProps","getSortByToggleProps","isSorted","isSortedDesc","getRowProps","isExpanded","cells","getCellProps","colSpan","Item","FilterGroup","FilterItem","FilterTitle","Filters","Group","FlexColumn","flexGrow","flexBasis","FlexRow","center","Flex","Column","Row","LayoutInnerContainer","SideBar","bgSideBar","sidebarWrapperBorderColor","SidebarOverlay","CloseButton","SideBarContent","SideBarHeader","detailIsOpened","closeSideBar","sidebarId","parent","data-id","ActionsWrapper","HeaderActionsWrapper","DataCard","bgDataCard","cardsBorderRadius","DataColumn","bgInactive","activeColor","DataCardList","filterColumns","cardClasses","cardColumns","indexState","accessor","toggleRowSelected","j","original","DataCardsContainer","LoadingCards","LoadingTable","HeaderTabsWrapper","HeaderWrapper","ListingPageWrapper","employees","transparentHeader","filterComponent","footerActions","filterTitle","filterTitleOnTop","showTitle","headerActions","headerTabs","translation","headerVariant","hwClassNames","noHeader","ListingPage","mode","tableState","detailViewVariant","headerViewVariant","detailView","detailViewId","detailViewIsOpened","detailViewKey","noDataText","detailSideBarTitle","variants","paging","sorting","tableColumns","tableData","sideBarRef","detailIsOpen","NullableCell","usePageChange","Bar","Actions","up","HamburgerMenu","onTouchStart","onTouchEnd","HamburgerMenuAction","ActionsCell","companyCreatorId","userStatus","reloadCompanies","onDelete","deleteIsLoading","disableDelete","partnerStatus","partnerAction","companyName","setLoading","isActivated","changetPartnerStatus","SidebarFieldWrapper","SidebarLabel","SidebarValue","NumSection","NumInfo","SidebarField","multipleValues","dangerousHtml","valueVariant","labelvariant","fieldValue","val","SidebarLicence","licence","hasLicence","lastLicence","expDateString","expDate","licenceExpiryDate","licenceNumber","licenceStatus","paddingLeft","SidebarUsers","hasUsers","inner","noBorder","AccordionElement","AccordionTitle","titleVariant","AccordionWrapper","onToggle","expanded","useAccordionGroup","setOpen","s","section","CompanyDetailSideBar","vatNumber","iban","address","city","postalCode","region","countryName","phoneNumber","contactPersonFirstName","contactPersonLastName","licences","companyUsers","activatedByUser","activationDate","registrationCompletedDate","openAccordion","setOpenAccordion","statusString","PendingConfirmation","FullyRegistered","ConfirmationSent","compLicences","lic","number","appDate","approvalDate","approver","sort","b","minValidDate","userLicences","aDate","licNum","useDebouncedCallback","callback","delay","maxWait","maxWaitHandler","maxWaitArgs","leading","trailing","leadingCall","functionTimeoutHandler","isComponentUnmounted","debouncedFunction","cancelDebouncedCallback","debouncedCallback","shouldCallFunction","callPending","SET_PAGING","SET_SORT","SEARCH_EMAIL","SEARCH_FULLNAME","SEARCH_COMPANYNAME","SEARCH_VAT","SEARCH_LICENCENUMBER","SEARCH_STATUS","SEARCH_STATUS_RESET","SEARCH_PARTNER_STATUS","SEARCH_PARTNER_STATUS_RESET","SET_COUNTRY","RESET_COUNTRY","CompanyFilter","emailChanged","companyNameChanged","vatChanged","licenceChanged","activationStatus","country","localName","entries","StatusCell","StyledFlag","FlagSvg","PartnerStatusCell","requestedDaikinId","useQueryString","parsedQuery","qs","search","ignoreQueryPrefix","ValidationRule","isStringRule","emailRule","required","regexMatchRule","commonRegex","VATRegExp","usernameRegExp","firstNameRegExp","lastNameRegExp","VATMatch","UUID","buildValidation","rules","Yup","skipValidation","rule","invalidMessage","typeError","invalidMailMessage","oneOf","invalidNumberMsg","moreThanMsg","moreThan","minValueMsg","maxValueMsg","minValue","maxValue","invalidMin","invalidMax","numberOfChars","regex","matches","nullable","test","referenceField","requiredMessage","compareWithField","compareRule","fieldType","when","is","otherwise","notRequired","fileType","mixed","notOneOf","InfoWrapper","KeyText","ValueText","VSpace","RoundInfo","InfoTitle","InfoText","ErrorMessage","CheckList","validateInput","yup","daikinPartnerStatus","sapNumber","existsInSap","hasVip4Set","PartnerStatusWizard","autocomplete","filterReducer","fullname","orderColumn","descending","countryId","CompanyListing","loadCompanies","loadCompanyById","activeStatus","setDetailViewIsOpened","setDetailViewKey","companyState","changePartnerStatus","partnerInitialValues","sendEmailNotification","show","hidePrompt","selectRow","pageChange","Helmet","totalPages","totalRows","currentPage","initialDataState","useDataReducer","dataMethod","preserveData","dataReducer","dataState","executeAction","currentRender","useDataReducerImmediate","loadData","StatisticsService","getUsersCounts","companyStock","technicianStock","tradedRefrigerants","tradedRefrigerantsAverages","tradedRefrigerantsAveragesAdmin","tradedQuantityPerDate","ChartHeaderWrapper","TitleWrapper","TooltipWrapper","ChartHeader","subtitle","DASHBOARD_CONSTANTS","COLORS","FONT_COLOR","PERIODS","WEEK","MONTH","DAY","SET_FILTERS","RESET_FILTERS","SET_COMPANY_ID","lineChartColor","PRESUMED_GRADES","ChartHeaderContainer","RelativeDiv","LeftContainer","DashboardStyles","RightContainer","LineChartContainer","Legend","right","BarChart","MarginSides","Margin","bottom","MiddleContainer","DashboardTheme","PrimaryBarColor","SecondaryBarColor","ThirdBarColor","FourthBarColor","borderColor","FontColor","ProgressStyles","List","Text","LegendList","LegendItem","CustomLegend","suffix","Surface","Symbols","ChartWrapper","ChartPieGasQuality","unit","isInt","total","parseFloat","reduce","sum","totalFormatted","toFixed","PieChart","margin","Pie","innerRadius","outerRadius","paddingAngle","dataKey","ProgressBar","bgcolor","completed","containerStyles","backgroundColor","borderRadius","fillerStyles","ListWrapper","TitleContainer","CountWrapper","ColumnContainer","Detail","Metric","ChildrenItems","data-info","count","MenuItems","hasChildren","AdminDashboardMenu","dataFunctions","getExtractedFGasData","extractedFGasState","rawData","groupBy","refrigerantId","refrigerantGasTypeCode","quantity","sumBy","firstExtractionDate","lastExtractionDate","orderBy","StyledDatePickerWrapper","StyledDatePicker","ReactDatePicker","ChartDatePicker","setCurrentDate","iniValue","currentDate","today","getDate","filterDate","dateFormat","showMonthDropdown","showYearDropdown","dropdownMode","locale","i18next","placeholderText","showTimeSelect","popperPlacement","popperModifiers","preventOverflow","escapeWithReference","boundariesElement","FilterWrapper","ChartDates","selectedPeriodGrouping","setSelectedPeriodGrouping","handleDateFromFilterChange","handleDateToFilterChange","GetDateGroupingButtonClass","group","paddingTop","TooltipContainer","ItemList","TooltipItemList","ValueList","ValueElement","LabelContainer","Total","ViewDetails","ListItems","SummaryLine","CustomTooltip","active","colors","showDrillDown","ChartDataSidebar","valueLabel","countLabel","shouldShow","NoData","paddingRight","ChartContainer","FilterableLineChart","isEmpty","onChangeFilter","selectedDataPoint","setSelectedDataPoint","selectedDetailTitle","setSelectedDetailTitle","setSidebarOpened","filterData","tempFilterData","applyFilters","groupAndTransformSubItems","arr","currentItem","chartData","dataPerDay","period","dataPerMonth","getValuesPerMonth","dataPerWeek","getValuesPerWeek","ResponsiveContainer","ComposedChart","activePayload","activeLabel","stopOpacity","CartesianGrid","strokeOpacity","vertical","XAxis","axisLine","tickLine","YAxis","labelFormatter","content","Area","fillOpacity","activeDot","RenderChart","ProgressList","ListText","ProgressWrapper","ProgressLabel","NameLabel","ListTextWrapper","ListProgressWrapper","ChartProgress","hideUnit","percent","CompanyStatus","DashboardWrapper","CompanyContainer","CertificateContainer","CompanyOnboardingContainer","CompanysStatisticsDashboard","companyUnit","companyCountsDataState","onboardedState","loadOnboarded","buildUrlWithActiveStatus","buildUrlWithStatus","baseUrlInstaller","baseUrlDistributor","CompanyTypes","numberOfInstallerServices","numberOfFGasDistributors","legendType","barSize","barGap","radius","tick","iconType","verticalAlign","align","wrapperStyle","LeftColumn","numberOfCompaniesWithFGasCertificate","numberOfCompanies","numberOfCompaniesWithoutFGasCertificate","paddingBottom","renderFGasCertificates","DisputesSection","itemsProgress","numberOfActiveDisputes","numberOfInactiveDisputes","activeItem","resolved","FGasAnalyzerSection","numberOfCompaniesWithFGasAnalyzer","numberOfCompaniesWithoutFGasAnalyzer","MiddleBottomSection","numberOfActiveCompanies","numberOfActiveInstallerCompanies","numberOfActiveDistributorCompanies","numberOfDisabledInstallerCompanies","numberOfDisabledDistributorCompanies","numberOfDisabledCompanies","numberOfDeletedCompanies","getCompaniesMenu","numberOfCompaniesInPendingStatus","numberOfCompaniesInConfirmationSentStatus","getOnboardingMenu","AdminCertSidebar","processedDate","certificateHolder","ECertificateStatus","ContentWrapper","GreenInfo","ColoredText","Spacer","HolderCell","holder","licenceStatusName","employeeBreadcrumbs","Map","CompanyCertificateScreen","userCerts","setUserCerts","companyCerts","setCompanyCerts","userName","setUserName","useParams","sidebarOpen","setSidebarOpen","userSidebarOpen","setUserSidebarOpen","selectedRow","setSelectedRow","updateBreadcrumbs","getCertsAsync","resUsers","resCompany","grp","certColumns","licenceId","licenceCertificateFile","certs","onSelectUser","onCloseUserSidebar","CompanyAdministrationScreen","installerListingComponent","distributorListingComponent","companyListingComponent","ListingWrapper","MarketplaceStatisticsDashboard","marketplaceCountsDataState","extractedGasPerType","publishedGasPerType","averageAcceptedGradeAPricePerGasType","averageAcceptedGradeBPricePerGasType","averageAcceptedGradeCPricePerGasType","AmountContainer","DatePeriod","DateFrom","DateTo","CurrencyLabel","UnitLabel","LineChartWrapper","ChartAveragePrice","normalizedData","horizontal","Line","dot","SvgBullet","MenuBulletSvg","GasCode","GasItem","GasContent","GasDetail","GasQuantity","GasTypeItems","handleClick","selectedGasType","selectedClass","ClearableLookup","setItemSelected","isFilter","setIsFilter","focus","SearchContainer","CompanyLookup","companySelect","sel","MenuColumnContainer","GasMenu","MidContainer","ExtractionsContainer","QualityContainer","largeDevices","QualityPieContainer","ProgressContainer","MarketplaceAdminDashboard","menuData","setMenuData","setCompanyId","qualityData","setQualityData","loadExtractedFGasState","extractionsState","loadExtractions","averagesState","loadAverages","companyResult","companyLookup","getCompanyId","itm","setSelectedGasType","firstMenu","filteredData","totalQuantity","grade","sumQuantity","presumedGrade","getSelectedFilter","companyIdFilter","averagePrice","bidHistory","maxHeight","tgt","refrigerantCode","gasInfo","selectedCompanyName","StyledDot","DotSvg","DotWrapper","SliderWrapper","SLiderTitle","SlideContent","Slider","captions","prevEnabled","nextEnabled","firstRender","selector","sliedEl","scrollIntoView","behavior","capt","MarketplaceDetailSideBar","offer","toggleBidModal","bidAlreadyPlaced","gradeNames","numberOfCylinders","maximumQuantity","hasAnalysis","buyingItemData","skUs","sku","cnt","exCnt","str","dataCollectionDateTime","dataFile","extractedQuantity","saIsContaminated","saIsMixture","saHasR22","street","contactPerson","phone","hasCertificateRights","allowedKeys","MoneyInputElement","positive","currencyLabel","isFinite","onKeyDown","data-grade","BidWrapper","BidItem","BidsWrapper","TotalBids","Calculate","CalcGrade","GradeInfo","textNeutral","TotalPrice","borderSeparator","Bids","disabledGrades","gradeLabels","buyersDeposit","withVat","handlingStep","disableInputs","percString","VATPercString","vatInfo","setVatInfo","A","B","C","AVat","BVat","CVat","handling","prices","setPrices","vatPercentage","userCountryId","offererCountryId","calculatePrice","CVatHandling","formikWithGradeHandling","formikWithCostsHandling","cost","otherCost","bidItemsNum","gasType","OfferBids","offers","AnalysisStatus","false","true","clipPath","SvgCalendar","CalendarSvg","DateTimePicker","native","minPickerId","maxPickerId","dateToInputString","minPickerEl","maxPickerEl","handleNativeChange","DatePicker","memo","screen","tabIndex","showMeasurement","SET_GAS_QUANTITY_TO","RESET_GAS_QUANTITY_TO","quantityToChanged","SET_GAS_QUANTITY_FROM","RESET_GAS_QUANTITY_FROM","quantityFromChanged","showHideOffers","hideWithBids","showWithBids","hideMyOffers","SET_HIDEMYOFFERS","RESET_HIDEMYOFFERS","hideOffersWithMyBid","SET_HIDEWITHBIDS","RESET_HIDEWITHBIDS","offerCreationDateTimeTo","extractFrom","RESET_OFFER_CREATION__DATE_FROM","SET_OFFER_CREATION__DATE_FROM","offerCreationDateTimeFrom","extractTo","RESET_OFFER_CREATION__DATE_TO","SET_OFFER_CREATION__DATE_TO","hasOffers","SET_HASOFFERS","RESET_HASOFFERS","bidDealExpirationTo","bidDealExpirationFrom","RESET_EXPIRATION_DATE_FROM","SET_EXPIRATION_DATE_FROM","RESET_EXPIRATION_DATE_TO","SET_EXPIRATION_DATE_TO","gas","SET_GAS_TYPE","RESET_GAS_TYPE","gasQuantityFrom","gasQuantityTo","presumedQuality","RESET_PRESUMED_QUALITY","SET_PRESUMED_QUALITY","RESET_QUALITY_ASSURANCE","SET_QUALITY_ASSURANCE","validGrades","WizardPlaceBid","bidIsLoading","enableHandlingCosts","chargeSeller","handleChargeSellerCheck","GradeCell","tips","setTooltip","handleHover","tooltipIsVisible","StyledGreenCell","GreenCell","StyledLink","TabLinks","RESET_GAS_QUANTITY","SET_DEAL_EXPIRATION_FROM","RESET_DEAL_EXPIRATION_FROM","SET_DEAL_EXPIRATION_TO","RESET_DEAL_EXPIRATION_TO","RESET_SORT","tabItems","isMasterAdmin","tabs","marketplaceReducer","dealExpirationFrom","dealExpirationTo","MarketplaceListing","buyingItems","loadBuyingItems","loadBuyingItemsById","selectedOffer","setSelectedOffer","model","setCurrentOfferTranslations","offererId","openPlaceBid","bidViewIsOpened","setBidViewIsOpened","setOffers","bidSideBarRef","closeBidSidebar","setSelectedRows","shouldShowCheckbox","currentOffer","setCurrentOffer","offerNumber","showTotalOffers","pressumedGradeName","analysisDone","acc","currentRow","toggleMultipleBids","SET_OFFER_STATUS","dateFrom","dateTo","reclaimedOfferStatus","useReclaimedMarketFilterState","setGasTypes","sortChange","getGasTypes","ReclaimedMarketSidebar","purchaseAction","showCancel","cancelAction","buyer","cylinderNetWeight","PaymentService","bankAccountId","addMyUbo","put","KYCDocumentIds","documentIds","responseType","downloadTransactionsFromMango","paidFor","transactionId","reclaimedOfferId","PaymentType","NavigationLink","MainWalletToTransaction","WizardPayForOffer","offerInfo","offerer","customTitle","contentTitle","customInfo","bidCompanyCountryId","vatPercString","vatOnly","wallets","walletBalance","mainWallet","w","remainingBalance","walletBalanceExceeded","float","ReclaimedMarketplace","filterDispatch","filterActions","setSelected","setTableState","purchaseOffer","submitFailed","tabColumns","ppk","of","offerStatus","MarketplaceStatisticsScreen","Anchor","HTMLAnchor","QRViewWrapper","ExportSection","ExportButton","QRGenerationView","selectedValues","setSelectedValues","selectedType","setSelectedType","selectableAmounts","selectableTypes","downloadUrl","onDownload","QRTagsScreen","DataEntry","renderForm","validateOnChange","validateOnBlur","useFormik","enableReinitialize","fieldRef","oldHandleChenge","oldHandleSubmit","formRendered","keyEvent","charCode","Wrappers","FormWrapper","clearErrors","onlyNotification","errorLocalizationMessagePairs","translatedMessages","redirectUrlBtnText","getStandardErrorMessage","getStandardErrorMessages","nextProps","CreateAdministratorForm","useHistory","goBack","roleId","getAdminValidation","commonValidation","CreateAdministratorScreen","TabsWrapper","numTabs","tabHeight","activeFn","data-i","activeValue","AuthorizeComponentByUserId","fullAccessRoles","expires","User2faForm","defVals","passwordExpiration","twoFactorEnabled","Change2faSection","defaultValues","twoFAValidation","UserPasswordForm","passwordDefaultValues","repeatPassword","ChangePasswordSection","handlePasswordSubmit","passwordValidation","shouldBeEqual","getPasswordValidation","ImagePlaceholder","RoundedImage","dragging","UploaderWrapper","RealUploader","ProfilePictureUploader","inputHover","setInputHover","setFileName","otherUserData","autoSubmit","realUserData","nameLabel","fileInput","onFileUpload","triggerFileInput","UserProfilePictureForm","submitEl","profilePicDefaultValues","profilePicture","ChangePictureSection","isProfilePictureLoading","profilePicValidation","getProfilePicValidation","handleProfilePicSubmit","profilePictureFile","handleProfilePicDelete","AdministratorEditForm","TabContent","defaultEditEmployeeValues","tabIndices","validationEditEmployee","AdministratorEditScreen","setTabIndexState","ownProfile","loadEmployeeById","submittedValues","setSubmittedValues","setErrors","setStatus","resetForm","updateValues","handle2FASubmit","employeeData","twoFAValues","initializedValues","StyledAnchor","isAray","constructor","usePromises","tasks","selectorFn","deps","all","SidebarTitle","AdminDetailSideBar","adminUser","adminData","roleNames","sideBarRoles","RESET_SEARCH_EMAIL","RESET_SEARCH_FULLNAME","SEARCH_ROLE","RESET_SEARCH_ROLE","RoleCell","showFgasFilter","showStatusFilter","isAdminList","fullNameChanged","hasFilterObject","hasCertificate","SEARCH_CERTIFICATE","CreateAdministratorWizard","widthActionButtonMin","minWidth","ActionButton","iconSize","as","AdministratorListing","adminUsers","loadAdminUsers","loadUserById","adminRoles","adminId","createNewAdmin","SvgScan","ScanSvg","SvgEdit","EditSvg","SvgDelete","DeleteSvg","SvgNoImage","NoImageSvg","StyledFilter","FilterSvg","StyledBack","ArrowSvg","StyledClose","CloseSvg","StyledArrow","primarColor","ScanButton","ScreenWrapper","ScreenHeader","ListTitle","FlexForm","FilterClear","Box16A9","KeyVal","LevelWrapper","UserDetailSideBar","hasUser","uLicences","CertificateStatusCell","UserListing","loadUsers","selectedUserId","setSelectedUserId","RecentUserListing","UserContainer","UserOnboardingContainer","RecentUsersContainer","UserStatisticsDashboard","userUnit","userCountsDataState","onboardedUserState","loadOnboardedUsers","numberOfUsersWithFGasCertificate","numberOfUsers","numberOfUsersWithoutFGasCertificate","numberOfMasterAdministrators","numberOfAdministrators","numberOfTechnicians","renderUserRoles","numberOfActiveUsers","numberOfInactiveUsers","numberOfDeletedUsers","getUserMenu","StyledBackButton","Background","BackButton","dummy","onGoBack","returnTo","data-ctrl","UserCertificateScreen","URLSearchParams","myCerts","cert","getUserName","UserAdministrationScreen","returnUrl","isDashboard","pathName","cache","lastGlobalState","companyAdminMenuItems","showServicesSection","showGasAnalyzers","ClientsBreadcrumbs","getBreadcrumbs","level","client","env","isProduction","Star","StarCell","tip","locationTypeName","ClientsColumns","getColumns","clientsColumns","toggleClientEdit","toggleClientDelete","locationColumns","toggleClientLocationEdit","onLocationDelete","createNewUnit","unitsColumns","editUnit","onUnitDelete","MapBounds","markers","useGoogleMap","google","bounds","maps","LatLngBounds","extend","getPosition","setCenter","getCenter","addListenerOnce","getZoom","setZoom","fitBounds","LocationMarker","withBounds","infoOpen","setInfoOpen","markerClick","onCloseClick","latLng","lat","latitude","longitude","boundsMarkers","Marker","locationName","containerStyle","MapWrapper","onMapLoad","setMap","onLoad","onUnmount","disableDefaultUI","mapContainerStyle","zoom","DetailsWrapper","Details","DetailSection","SectionTitle","SectionContent","ClientDetails","clientsLocations","currentLocationData","usedMapDetails","clientName","LocationsFilter","SET_LOCATION_FILTER","RESET_LOCATION_FILTER","locationChanged","SET_ADDRESS_FILTER","RESET_ADDRESS_FILTER","addressChanged","SET_CITY_FILTER","RESET_CITY_FILTER","cityChanged","SET_POSTAL_CODE_FILTER","RESET_POSTAL_CODE_FILTER","postalCodeChanged","WizardClientDetails","clientData","currentClientData","validAddress","ClientLocationWizard","isEdit","SiteInfo","SiteTitle","SiteSubTitle","SerialInfo","validUnit","manufacturerId","applicationType","capacity","isNumber","validTagId","isUUID","serialNumber","serialFound","applicationTypes","UnitWizardAdd","manufacturers","refrigerants","clientlocationData","locationData","rfg","refrigerantType","mfc","kWh","SET_COUNTRY_FILTER","RESET_COUNTRY_FILTER","SET_CLIENT_ID","RESET_CLIENT_ID","ListingHeader","locationsReducer","ClientLocationsListing","selectedLocation","setSelectedLocation","locationsIsLoading","locationsError","loadClientsLocations","wizardData","locationsState","locationsDispatch","queryUnitsTags","tags","clientLocationData","asFormData","locationsPageChange","currentLocationsSortBy","onLocationSelect","selectLocationRow","locationsFilterAction","showLocationDetails","afterMixin","Gallery","Overlay","ImageWrapper","Image","CloseButtonWrapper","ControlsWrapper","ArrowControls","EditControls","DownloadImage","DeleteImage","ImageDots","Dot","ImageGalleryPopup","imageGallery","handleClose","currentImage","currentImageObject","currentImagePosition","findIndex","previousVisible","nextVisible","currentObject","setCurrentObject","togglePreviousImage","toggleNextImage","toggleCircle","circleIndex","keyPress","showRows","ImageGallery","setImageGallery","isGalleryVisible","setIsGalleryVisible","imageId","QRWrapper","TagTitle","UnitsDetailSideBar","unitData","clientsLocationUnitsData","tagParts","manufacturerName","applicationTypeName","UnitsFilter","SET_MANUFACTURER_FILTER","RESET_MANUFACTURER_FILTER","manufacturerChange","manufacturer","RESET_APPLICATION_TYPE_FILTER","SET_APPLICATION_TYPE_FILTER","UnitWizardEdit","tagCheck","validTagCheck","UnitWizardReTag","validateTagCheck","handleTagCheck","SET_LOCATION_ID","RESET_LOCATION_ID","unitsReducer","ClientLocationsUnitListing","selectedUnit","setSelectedUnit","clientsLocationUnits","loadClientsLocationUnits","loadClientsLocationsUnitsById","0","1","2","unitsState","newImages","oldImages","toDelete","oldImg","deleteImages","reTagUnit","allValues","unitsDispatch","unitsPageChange","unitsFilterAction","currentUnitsSortBy","onUnitsSelect","selectUnitsRow","ClientsFilter","SET_NAME_FILTER","RESET_NAME_FILTER","nameChanged","unitName","ClientDetailSideBar","topTenLocations","clientsData","N","validCompany","ClientWizard","clientsReducer","ClientsListing","selectedClient","setSelectedClient","loadClients","locationsListing","clientsState","clientsDispatch","clientsFilterAction","clientsPageChange","onClientSelect","currentClientsSortBy","ClientsSection","useLoadScript","googleMapsApiKey","ClientsScreen","ButtonLink","EmployeeEditForm","handleUsernameChange","canEdit","licenceValidation","fGasCertificate","licenceExpirationDate","licenceNeverExpires","AddCertificateWizard","certType","certValidForever","handleLicenceCheck","isNot","EmployeeEditScreen","initialTab","updateEmployee","getRoleNamesFromRoleId","getRoleIdFromRoleName","usernameError","setUsernameError","usernameRequested","setUsernameRequested","newEmailRef","schema","validate","toggleUsernameModal","changeUsernameModalProps","detail","addNewCertificate","DataImageWrapper","DataCellImage","EmployeeDetailSideBar","hasEmployee","getUserValidation","adminRoleId","licenceCheck","NewEmployeeWizard","validateCert","LongTextCell","EmployeeList","loadEmployees","deleteThisEmployee","userCompanyId","NotificationWrapper","NotificationContainer","smallDevices","NotificationImage","NotificationText","FullScreenNotification","redirectTo","redirect","redirectTime","executeFn","counter","setCounter","fn","ms","ready","isReady","clear","useTimeoutFn","timer","setInterval","clearInterval","nationalityLookupResult","nationalityLookup","nationality","countryLookupResult","countryLookup","getAllCountries","CompanyEditForm","unregisterListener","lastPrompt","nextLocation","shouldLeave","isFirstTime","listen","isWarning","dirty","promptDate","handleBlockedNavigation","maxWidth","getNationalId","c","getCountryId","LinerNotesDialog","companyNumber","legalRepresentativeFirstName","legalRepresentativeLastName","legalRepresentativeNationality","legalRepresentativeNationalitySelected","legalRepresentativeNationalityId","legalRepresentativeEmail","legalRepresentativeCountryOfResidence","legalRepresentativeCountryOfResidenceId","legalRepresentativeCountryOfResidenceSelected","legalRepresentativeBirthDate","legalRepresentativeAddress","legalRepresentativeCity","legalRepresentativePostalCode","legalRepresentativeRegion","CompanyEditScreen","yupValidation","getCompanyValidation","handleCompanySubmit","IsLegalRepresentativeChanged","finalizeSubmit","delete","newValues","WizardCompanyDetails","currentCompanyData","IBAN","validForm","isIBAN","IBANWizard","extendedValues","Information","LinkWrapper","MangoWrapper","StyledMango","MangoSvg","PaymentsScreen","bankAccount","setBankAccount","myBankAccounts","loadMyBankAccounts","ibanColumns","archived","deactivateIban","toggleOpenDeactivateIban","modalPropsDeactivateIban","toggleOpenCannotDeactivateIban","modalPropsCannotDeactivateIban","KYCValidation","StyledHtml","StyledDiv","markup","Bullet","RequirementContainer","RequirementRow","RequirementLabel","RequirementDescription","KYCWizard","documentType","showGuide","docName","TableWrapper","SimpleTable","shouldScrollInfoView","radioSelect","elemId","block","inline","colIdx","KYCDocumentType","IDENTITY_PROOF","ARTICLES_OF_ASSOCIATION","REGISTRATION_PROOF","UBO_DECLARATION","ModalOverlay","ModalContainer","bgColor","zIndex","FieldWrapper","FieldLabel","FieldValue","WizardSummaryField","StyledInfoWrapper","SectionSummaryTitleWrapper","SectionSummaryFieldsWrapper","SummaryInfoTitle","SummaryInfoWrapper","validUboStep1","addressLine1","addressCountry","validUboStep2","birthday","birthplaceCity","birthplaceCountry","UboDeclarationWizard","UboDetailSideBar","ubo","order","Value","UboOwnerCell","CreateUboButton","SubmitList","ValidationStatus","UboTableContainer","UboScreen","myUboDocuments","loadMyUboDocuments","declaration","canSubmit","canCreateNewDeclaration","canAddNew","ubos","numberOfUbos","selectedUbo","setSelectedUbo","handleCreateUbo","declarationId","handleCreateNewUboDeclaration","handleEditUbo","uboId","submitModal","createNewDeclarationModal","uboDeclarationColumns","green","typeTranslation","uboColumns","ownerLabel","StyledList","ImgWrapper","SecondInfoWrapper","CloseMango","StatusTItle","StatusTitleWrapper","StatusLimits","LightSeparator","GridWrap","KycScreen","mangoOpen","setMangoOpen","selectedKycDocument","setSelectedKycDocument","uboValidated","docs","reason","showWarning","shareholders","toggleshareholdersKYC","myKYCDocuments","loadMyKYCDocuments","KYCColumns","creationDate","statusTranslation","refusedReasonType","showCreate","showMenu","showShDownload","kycHistoryColumns","documentTitle","docIDs","getSubmitDocList","doc","toggleSubmitKYC","submitKYCprops","shareholdersKYCprops","submitEnabled","ProfileScreen","CompanyDetails","CompanyEmployees","CompanyCertificates","PaymentSettings","Kyc","CompanyScreen","companyCertsRouteMatch","companyPaymentsRouteMatch","companyQRRouteMatch","kycRouteMatch","employeeEditRouteMatch","noTabsRouteMatch","CompanyQR","setTabIndex","Card","bgModuleCards","CardPopup","Tippy","CardLink","CardTitle","CardDesc","CardImage","CardSplitter","Module","placement","animation","trigger","duration","popupEnabled","ModuleWrapper","ModuleCards","modulesToShow","m","shouldShowModule","MenuBack","Space","useBottomMenu","BottomMenu","setMenuState","shownItems","IconLogout","LogoutSvg","IconUnits","UnitsSvg","IconAnalyzers","AnylizersSvg","IconMyStock","MyStockSvg","IconCompanytock","CompanyStockSvg","IconCylinders","CylindersSvg","PwaMenuItems","HeaderSection","UserSection","UserName","ItemName","headerState","setHeaderState","menuIndex","handleUserEdit","pwaMenuItems","hasValidUserCertificate","getElementsByTagName","GradeStatus","StyledClear","ClearSvg","ClearButton","ApplyButton","control","hasFilters","filterItems","applyFn","clearFn","wrapRef","quantityTo","quantityFrom","CompanyStockListing","stockItems","loadStockItems","locationStatusName","filterMenuControl","clearFilters","clearFilter","curFilters","KeyValue","dynamicSort","property","asc","sortOrder","ExtractionListing","raw","initialQuantity","extState","setExtState","extractDate","extractionDateTime","setHours","firstItem","getInitialQuantity","inQuantity","curr","extractedByCompanyId","getExtractionData","cylSize","cylinderSize","uniqueClientNames","StyledInfo","InfoSvg","SmallInfo","ExtractionDetails","tagPartsUnit","unitDetails","pressumedGradeValue","isAnalysisReceived","refrigerantTypeCode","locationDetails","ScreeWrapper","CompanyStock","cyl","ext","skuId","CylinderType","recovery","cylinderType","cylinderSizeFrom","cylinderSizeTo","CylinderStockListing","loadCylinders","marketplaceStatusName","reset","validSize","EditCylinderWizard","HeaderActions","CylinderDetails","toggleOpenDelete","onGotoStart","modalPropsDelete","filledQuantity","imageFile","deleteImage","showCylinderEdit","ownerCompanyName","CylinderStock","macAddress","AnalyzerStockListing","loadEquipment","loadEquipmentById","alwaysShowMask","AnalyzerDetails","analyzer","AnalyzerStock","SearchWrapper","ClientListing","onSearch","Address","ClientLocationListing","LocationUnitListing","validUnitInfo","EditUnitWizard","UnitDetails","setUnit","reload","setReload","getdata","showUnitEdit","UnitStock","changeLevel","TechnicianStockListing","InvalidCertWrapper","InvalidUserCert","TechnicianStock","StyledQrReader","ImgNoData","InfoNoData","FSWrapper","HeaderTitle","QrScanner","lookupResult","setLookupResult","TagService","tagData","unknown","cylData","analyzerId","analData","lookup","onClose","onError","console","onScan","RadioTitle","FlexCenter","Half","SvgExtract","ExtractSvg","SvgAnalyzer","AnalyzerSvg","ScanWrapper","showUnitScanner","showAnalyzerScanner","isValidUnitTag","showCylinderScanner","isValidCylinderTag","pressumedGrade","unitTagId","cylinderTagId","refrigerantName","cylinderFull","unitGasType","cylQualityMatch","assessment","getRealGrade","validUnitTag","validCylinderTag","validUnitTagId","validCylinderTagId","validExtraction","analyzerTagId","boolean","roundToNearestMinute","round","ExtractionWizard","cylinderSearchFn","analyzerSearchFn","handleUnitScan","handleAnalyzerScan","handleCylinderScan","tagResult","log","unitResult","application","notes","zip","tagDetails","currentCylinder","cylinderResult","cylinderData","quality","refrigerantGradeName","cylQuantity","P","NewExtraction","queryUnitTags","queryCylinderTags","queryAnalyzerTags","toggleExtractionModal","extractionModalProps","isContaminated","isMixture","hasR22","analyzerData","SvgToStock","ToStockSvg","ToCompanyStocknWizard","ToCompanyStock","ToCompanyStockWizard","ToMyStockWizard","ToMyStock","SvgWizardImage","WizardImage","ClientsList","ClientTitle","showTagScanner","isValidUnusedTag","unusedTagId","ClientListItem","validUnusedTagId","validLocationId","AddUnitWizard","unusedTagSearchFn","clientsSearchFn","handleUnusedTagScan","AddUnit","clientLocations","queryClientLocations","queryUnusedTags","validUnusedTagAndSize","ownerCompanyId","AddCylinderWizard","cylOwners","ownerOptions","own","AddCylinder","showWizard","validAnalyzer","AddAnalyzerWizard","AddAnalyzer","RadioList","CollectGasSvg","collectedCylinders","numCylinders","minCylinders","splitAt","validClient","CollectGasWizard","offerCollection","availableCylinders","companyDetails","getCompanyDetails","getCollectableCylinders","gasTypeCode","handleCylinderChange","Collect","RecycleWizard","inUnfinishedOffer","RecycleCylinder","FinishRecyclingWizard","FinishRecycling","CollectCylinderWizard","CollectCylinder","ImageButton","PwaScreen","MobileDashboard","scanState","setScanState","leftMenuState","setLeftMenuState","bottomMenuState","setBottomMenuState","hasCompanyCert","hasUserCert","restricredUsage","LogoSvg","Flag","LayoutOneTwo","overflow","hideInfo","QuestMark","TwoFAInfo","Digit","DigitsWrapper","TwoFaLabel","LoginForm","errorText","verifyOnSubmit","userPassword","loginValidator","twoFaDigits","verifyFormik","kex","onInput","nextEl","handle2FaInput","flexDirection","HSpace","Desc","FlexCol","OrangeInfo","BigTitle","SelectCompanyForm","setCompany","handleBack","LoggedInOverlay","KYCWarn","KYCInfo","LoginState","LoginScreen","queryUsername","verifyToken","ssoFailed","curState","setCurState","chkWarning","setChkWarning","certToggleOpen","certModalProps","showCertificateWarning","hamdleNoCertWarning","CompanyLink","DashboardScreen","firstLogin","KYCWarning","setKYCWarning","IssueWrapper","CylinderBlock","owner","reportIssue","CylinderDetailSideBar","openAccordionId","useImperativeHandle","updateAccordionId","accId","SET_CYLINDER_SIZE_TO","RESET_CYLINDER_SIZE_TO","sizeToChanged","SET_CYLINDER_SIZE_FROM","RESET_CYLINDER_SIZE_FROM","sizeFromChanged","cylindersSizeFrom","cylindersSizeTo","validNetWeightNumber","isNewTag","CylinderWizardAdd","textUploader","RemoveIcon","FileDisplayWithAction","filePath","handleFileDelete","shouldDelete","setShouldDelete","CylinderWizardEdit","handleImageDelete","validIssueType","issueType","validIssueDesc","issueDescription","WizardCylinderIssue","Qr","CylTypeCell","KeyValueCell","SET_SIZE","RESET_SIZE","SET_CYL_TYPE","RESET_CYL_TYPE","CylindersList","sidebarRef","loadCylinderById","setOpenAccordionId","selectedCylinder","setSelectedCylinder","createNewCylinder","editCylinder","typeName","AnalyzerBlock","EquipmentDetailSideBar","equipmentData","defaultInitialValuesEdit","defaultInitialValuesAdd","EquipmentWizard","preFill","pageReducer","EquipmentList","selectedEquipment","setSelectedEquipment","createNewEquipment","eqNum","equipmentState","editEquipment","initialData","createdDate","EquipmentScreen","ForgottenPasswordService","sendRequest","sendRequestAsync","ForgottenPasswordForm","ForgottenPasswordScreen","enteredUsername","timeoutFn","requestSent","setRequestSent","FormValidation","requestPassReset","requestResend","ResetPasswordService","InputWrap","PassInfo","ResetPasswordForm","marginT","WarningIcon","WarningSvg","LinksWrapper","PasswordExpiredNote","ResetPasswordScreen","getFormValidation","resetType","gasBottle","SingleDatePicker","licenceDate","setLicenceDate","timeIntervals","timeFormat","RegistrationConfirmedScreen","userToken","confirmData","setConfirmData","verify","OfferStatus","offered","withdrawn","waitingForOffererFunds","offererEscrowedFunds","buyerEscrowedFunds","buyerClaimedBottles","qualityTested","disputed","sold","disposeAccepted","disposed","CustomDateCellWithExpiration","hoverTitle","DateCellWithExpiration","onHold","StatusTooltip","StatusItemWrapper","StatusItem","StatusWrapper","Dispute","TransactionItem","html","TransactionStatus","inDispute","BidGradePriceCellInfo","priceA","priceB","priceC","BidGradePriceCell","accepted","acceptedBid","acceptedBidInfo","TooltipCell","tooltipPosition","PurchasePrice","totalPrice","buyerCylindersAnalysis","cylindersAnalysis","gradeName","StyledHandling","HandlingSvg","StyledNoHandling","NoHandlingSvg","HandlingCell","accordionId","createSteps","bidCompanyName","MyOffersColumns","acceptedColumns","handlingCosts","dateTimeNow","dealExpiration","rejectToggleOpen","pendingColumns","totalOffers","qualityColumns","sellToggleOpen","soldColumns","BidCompanyName","BidsListing","toggleBidView","bidsState","loadBids","bidStatus","SpaceBetween","InsetDiv","ServicePrice","serviceType","WizardPayForCleaning","withVatA","withVatB","handleServiceTypeChange","selectedService","balanceExceeded","mainWalletBalance","priceWithVAT","priceVATonly","init","BidGradeWrapper","StyledBidGrade","BidGrade","showQuantity","BigHandlingCosts","administrativeCosts","isBuyer","totalCdeposit","validReason","maxCharactersRule","WizardRejectBid","bid","ButtonWrapper","SingleBidDetailSideBar","closeSingleBidSideBar","closeOfferSideBar","MyOffersListing","refreshNeeded","acceptCleaningBid","gasGradeNames","setBidStatus","bidStatusName","bidCompanyVAT","bidCompanyAddress","bidCompanyCity","bidCompanyRegion","bidCompanyPostalCode","bidCompanyCountry","bidCompanyContactPerson","bidCompanyEmail","bidCompanyPhone","bidDateTime","DownloadWrapper","DownloadLink","MyOffersDetailSideBar","disputeToggleOpen","singleBidViewIsOpened","setSingleBidviewIsOpened","singleBidData","setSingleBidData","closeSingleBidSidebar","bidRef","numQualityTests","qualityTestDone","getFileName","qualityTestUrl","RowWrapper","MainTitle","ContentRow","FooterContent","FooterContentRow","Pipe","TransactionDetails","paymentType","receivingCompanyCountryId","payingCompany","bankAccountOwnerName","bankAccountOwnerAddressLine1","bankAccountOwnerAddressLine2","bankAccountOwnerCity","bankAccountOwnerPostalCode","bankAccountOwnerCountryCode","bankAccountOwnerIBAN","bankAccountOwnerBIC","wireReference","quantitySum","ButtonsWrapper","usePlainModal","closeText","PlainModal","validDispute","WizardDispute","buyerAnalysis","analysis","getBuyerAnalysisForCylinder","analysisId","SET_CONFIRMED_GAS_QUANTITY_TO","RESET_CONFIRMED_GAS_QUANTITY_TO","SET_CONFIRMED_GAS_QUANTITY_FROM","RESET_CONFIRMED_GAS_QUANTITY_FROM","SET_CONFIRMED_QUALITY","RESET_CONFIRMED_QUALITY","SET_CONFIRMED_GAS_TYPE","RESET_CONFIRMED_GAS_TYPE","RESET_EXPIRATION_DATE_TOM","Wrong","myOffersReducer","offerStatuses","confirmedGasType","confirmedGasQuantityTo","confirmedGasQuantityFrom","confirmedQuality","sellingItems","loadSellingItems","loadSellingItemById","setActiveTab","tab","currentRowData","setCurrentRowData","currentBid","bids","calcWrong","second","printValue","sellModalProps","rejectModalProps","openDisputeWizard","groupValues","disputeThisResult","setTransactionDetails","toggleTransactionDetails","transactionDetailsProps","statuses","sellingItemData","BidStatus","rejected","revoked","seller","MyBidsColumns","setSelectedBid","toggleOpenRevoke","hasMangoTransaction","maxQuantitySum","payForAGrade","qualityTestColumns","showQualityTestForm","togglePayPresumedQuality","paymentCompletedColumns","rejectedRevokedColumns","RejectReason","MyBidDetailSideBar","bidDetails","isDisposal","validTest","SellerInfo","QualityTestWizard","TagInput","filterTagFromList","filterAvailableTags","CollectableTags","visibleTag","setVisibleTag","offerTags","setOfferTags","customError","setCustomError","availableTag","handleTags","currentTagPosition","CollectStep","clientTags","Subtitle","CollectableCompaniesList","handleCompanySelect","selectableCompanies","mockCompanies","flat","CollectWizardClientData","totalTags","validTagLength","tagDiff","cId","filterCompany","clientCylinders","tagObj","collectTags","myBidsReducer","bidStatuses","qualityGrades","MyBidsListing","loadMyBids","loadBidById","selectedBid","myBidsDataState","getMyBidsForOffer","revokeModalProps","buyPresumedQualityProps","setOfferDetails","getOfferDetails","asyncEvery","predicate","gradeIdx","tabIndexSuccess","showQRButton","tabIndexFail","listingKey","collectCompanies","setCollectCompanies","toggleCollectInfoModal","collectInfoModalProps","GasGradeCode","GasItemWrapper","GasGradeItem","GasTitle","GasGradeContent","GasGradeDetail","AccordionMenu","selectedItem","parentIndex","accordionIsActive","setAccordionIsActive","handleClickInternal","subIndex","ParentListWrapper","GasTypeItemsWithGrades","SwitchWrapper","GasMenuWithGrades","isChecked","handleChecked","uncheckedIcon","checkedIcon","RightColumn","SecondContainerRow","STATUS_COLORS","PRESUMED_GRADE_COLORS","SalesDashboard","setSelectedItem","isSales","setIsSales","setAveragePrice","tradedRefrigerantState","tradesPerDate","loadTradesPerDate","distributionData","setDistributionData","statusTranslationsSales","statusTranslationPurchases","bidsData","setBidsData","isSalesValue","gases","tradedQuantitiesPerStatus","sales","purchases","setMenuAndSelect","firstGas","selectedTitle","gasTitle","selectedSalesTitle","selectedAverageTitle","selectedDistributionTitle","menuItem","validateAmount","qualities","WizardAddReclaimOffer","q","ReclaimedOfferStatus","Offered","Withdrawn","WaitingForBuyerFunds","Sold","ReclaimedMarketOffers","offStatus","publishOffer","unpublishTogle","unpublishProps","cancelTogle","cancelProps","setDate","disableCancel","offerDateTime","ReclaimedTransactionDetails","ReclaimedMarketPurchases","SalesCenterScreen","REclaimedMarketPurchases","ReclaimetMarketplace","Props","cylinderSizeExceeded","unitError","validCylinder","NewExtractionWizard","currentUnit","filteredManufacturer","filteredRefrigerant","cylinderGasQuality","SEARCH_USER","RESET_EXTRACTION_DATE_FROM","SET_EXTRACTION_DATE_FROM","RESET_EXTRACTION_DATE_TO","SET_EXTRACTION_DATE_TO","validQR","StockListHeaderActions","MoveToStockWizard","currentSkuId","ClientService","cylinderImage","FlexDiv","ExtractionDetailSideBar","skuDetails","stockItem","extractionDetails","skuCylinderTagId","ClientName","StockDetailSideBar","reportCylinderIssue","isCompanyStock","extractionViewIsOpened","setExtractionViewIsOpened","setExtraction","handleCloseExtraction","extractionRef","getExtraction","extractionId","extractionColumns","confirmedAmount","StockActions","InstallerStockListing","loadStockById","employeesLoading","employeesError","stockActions","splice","queryInstallerTag","queryCompanyTag","currentStockItem","setCurrentStockItem","stockData","showMoveToStockWizard","toInstallerStock","StockListFooterActions","filteredStockItems","gasSelectionIsValid","footerButton","publishMultipleToMarketplace","shouldAllowPublish","shouldShowDisposeButton","currentTranslations","setCurrentTranslations","getTranslations","translationValues","MarketplaceStatus","OnStock","Recycling","RecyclePending","StockFilter","RESET_MARKETPLACE_STATUS","SET_MARKETPLACE_STATUS","StockListing","currentStockSkuId","setCurrentStockSkuId","evaluation","marketplaceStatusValue","toggleCleaning","toggleDisposal","toggleRecycle","toggleFinishRecycle","publishState","publishSelectedItems","firstRow","disposalProps","cleaninglProps","recycleProps","finishRecyclingProps","TechnicianChartWrapper","TechnicianStockChartHeaderContainer","ExtractionsWrapper","ExtractionChartContainer","StockDashboard","companyStockState","loadCompanyStock","technicianStockState","loadTechnicianStock","selectedGasFilter","RenderCustomGasGradeLegend","barChartMargin","legendWrapperStyle","selectedGasLabel","entry","RenderQualityofSelectedGasPieChart","RenderCompanyStockForSelectedGasBarChart","getExtractionsPerDay","getExtractionsPerMonth","getExtractionsPerWeek","RenderExtractionsLineChart","technicianId","technicianName","quantityA","quantityB","quantityC","RenderTechnicianStockForSelectedGasBarChart","StockScreen","ActivateUserScreen","userID","companyLoading","filterCountry","ChangeEmailScreen","usernameChanged","setUsernameChanged","validatePayout","inputAmount","numberRange","PayoutWizard","account","Wallet","walletTransaction","TotalTitle","FirstColumn","SecondColumn","ActionColumn","WalletTitle","WalletInfo","ActionWrapper","KycStatus","Warning","PayButton","MyWallets","handlePayout","isTotal","handleDeposit","isMain","walletValues","TransactionFlowType","3","4","5","Accordion","HighlightCell","TransactionRow","onRowClick","textTransform","parentType","GroupParent","flowType","isExecuted","WizardDepositMoney","WalletsWrapper","Activity","WalletSection","Wallets","SET_STATUS","RESET_STATUS","SET_PAYMENT_TYPE","RESET_PAYMENT_TYPE","SET_DATE_FROM","RESET_DATE_FROM","SET_DATE_TO","RESET_DATE_TO","groupTransactionsReducer","SET_FLOW_TYPE","RESET_FLOW_TYPE","SET_PARENT_TYPE","RESET_PARENT_TYPE","SET_PARENT_STATUS","RESET_PARENT_STATUS","RESET_GROUP_FILTER","TransactionsDashboard","loadMyWallets","myGroupTransactionsState","myGroupedTransactions","loadMyGroupedTransactions","payoutTriggered","setPayoutTriggered","payoutInitialValues","totalWalletAmount","setTotalWalletAmount","wallet","hasData","DocumentsFilter","SET_BUYER","RESET_BUYER","buyerChanged","SET_MANGOTRANSACTION_ID","RESET_MANGOTRANSACTION_ID","transactionIdChanged","SET_AMOUNT_FROM","RESET_AMOUNT_FROM","amountFromChanged","SET_AMOUNT_TO","RESET_AMOUNT_TO","amountToChanged","mangoTransactionId","amountFrom","amountTo","InvoiceDetailsSidebar","transDesc","transferType","showDesc","DocumentType","invoice","receipt","payInOrder","MangoTransferType","SET_DOCUMENT_TYPE","RESET_DOCUMENT_TYPE","SET_AMOUNT","RESET_AMOUNT","documentsReducer","findAcceptedBid","DocumentListing","myDocuments","loadMyDocuments","invoiceOffer","loadInvoiceOffer","bidData","setBidData","selectedDocument","setSelectedDocument","downloadSelected","documentId","fileNamePrefix","transferTypeTranslation","offerAndBidData","MangoPaymentTypeForDisplay","TransactionsFilter","creationDateFrom","creationDateTo","RESET_CREATION_DATE_FROM","SET_CREATION_DATE_FROM","RESET_CREATION_DATE_TO","SET_CREATION_DATE_TO","executionDateFrom","executionDateTo","RESET_EXECUTION_DATE_FROM","SET_EXECUTION_DATE_FROM","RESET_EXECUTION_DATE_TO","SET_EXECUTION_DATE_TO","TransactionDetailsSidebar","transactionTypeDescription","showBuyer","buyerSeller","FilterContainer","FilterRow","FilterLabel","FilterValue","TotalContainer","FilterSummary","SwitchButton","TableTitleContainer","Highlight","TOGGLE_WALLET","transactionsReducer","walletBreadcrumbs","TransactionsView","myTransactionsState","myTransactionsDispatch","paymentTypeTranslation","transactionTranslation","loadMyTransactions","transaction","setTransaction","getDetails","exportModal","filteredItems","getFiltersForExport","TransactionParentType","TransactionParentStatus","TransactionGroupFilter","RESET_TRANSACTION_FILTER","HierarchyView","openDetailId","myGroupTransactionsDispatch","groupPageChange","FinanceScreen","InstaDisposalColumns","DisposalBidDetailSideBar","InstallerDisposalListing","toggleOpenDecline","modalPropsDecline","showDisposals","DisposalDetailSideBar","RESSET_OFFER_CREATION__DATE_TO","DisposalBidsColumns","DistributorDisposalBids","DistDisposalDetailSideBar","toggleRevokeBid","getActiveBidStatus","activeBidStatus","WizardPlaceDisposalBid","SET_GAS_QUANTITY","showOnlyMyBids","disposalColumns","DistributorDisposalMarket","activeBids","CleaningDetailSideBar","CleaningFilter","WizardPlaceCleaningBid","CleaningMarketplace","cleaningItems","setCleaningItems","fetchCleaningItems","setDetails","CleaningDetailsSidebar","cleanRefrigerantListingStateModule","cleaningServiceProvider","CleaningOffersColumns","cleaningServicePrice","CleaningOffers","fetchGridData","CleaningBidsColumns","CleaningBidsListing","ServicesScreen","createDisputeSteps","DisputesDetailSideBar","selectedDispute","ba","customQuantityAndPrice","o","SettleWrapper","WizardDisputeSettle","disputeDetailId","buyerCylinderDetails","sellerCylinderDetails","gasCode","netQuantity","disputeDetailView","disputeReason","WizardDisputeConfirm","SET_ACTIVETAB","disputesReducer","DisputesListing","setSellingItems","myDisputeSettle","bidCompanyId","handleDisputeSettle","handleDisputeConfirm","disputeId","submitted","DisputesScreen","StepsWrapper","NavContainer","GreenCircle","Email","FlexNoWrap","fGasCertificateCheck","createDaikinId","vatMaxLength","CZ","HU","SK","signupValidator","originalValue","SignupScreen","currStep","setCurrStep","setCountries","twoLetterCode","advance","handleSignup","onBack","fGasFile","letterSpacing","signupSteps","marginRight","ServicesStatisticsScreen","unprotected","validRepresentative","validPerson","userLastName","userFirstName","validCert","userlicenceNumber","userlicenceExpiryDate","userlicenceCertificateFile","CertificateWrapper","FlexRowBetween","StepInfo","TermsWrapper","AccountWizard","getLocalizedPdfLink","docType","acceptTerms","acceptMangoPay","acceptData","handleTermsCheck","handleDataCheck","handleMangoCheck","SetupAccountScreen","toJSON","updateUserData","userPhoneNumber","updateUserCert","showSetup","updCompany","updUser","updCert","$error","bgFileUploader","bgUserActionElem","bgUserActionButton","bgMenuHover","bgTableActive","bgTabs","bgTabsActive","bgCloseMenuButton","bgCloseSlideButton","bgStatusIconDefault","bgStatusIconFinished","attentionColor","walletMain","secondaryNegativeColorBorder","sidebarFieldBorderColor","secondaryInputBorderColor","tabsBorderColor","borderModalDialogColor","primaryLinkColor","secondaryColorHover","variantCancelBg","variantCancelColor","actionButtonBorderRadius","walletBorderRadius","modalShadow","closeMenuShadow","closeSideBarShadow","walletShadow","superExtraLargeDevices","tablet","registerLocale","sk","cz","hu","on","setDefaultLocale","initReactI18next","resources","en","common","common_en","forms_en","screens","screens_en","exceptions","exceptions_en","moduleCards","moduleCards_en","sidebar","sidebar_en","header_en","actions_en","navigation","navigation_en","filters_en","table_en","seo","seo_en","header_sk","navigation_sk","screens_sk","actions_sk","common_sk","exceptions_sk","filters_sk","forms_sk","moduleCards_sk","sidebar_sk","table_sk","seo_sk","header_hu","navigation_hu","screens_hu","actions_hu","common_hu","exceptions_hu","filters_hu","forms_hu","moduleCards_hu","sidebar_hu","table_hu","seo_hu","header_cz","navigation_cz","screens_cz","actions_cz","common_cz","exceptions_cz","filters_cz","forms_cz","moduleCards_cz","sidebar_cz","table_cz","seo_cz","fallbackLng","interpolation","escapeValue","transSupportBasicHtmlNodes","App","ssoLoginId","getSsoData","showDisposalSection","setGlobalState","CountryId","getCompanyCertificateAsync","validCerts","isUserCertValid","l","query","mediaQueryList","matchMedia","setMatch","handleMatchChange","addListener","removeListener","useMatchMedia","defaultTheme","titleTemplate","defaultTitle","routes"],"mappings":"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AAD,CACIzrG,MAAOsB,EACH,mCAEJopD,MAAM,IACNx8C,OACIwiH,EACKhoB,gBACAriH,mBAETwzD,SACI62E,EACKhoB,gBACA97C,gBAETwN,oBACIs2D,EACKhoB,gBACAtuC,sBAGb,kBAAC,GAAD,CACIp6D,MAAOsB,EACH,qCAEJopD,MAAM,IACNx8C,OACIwiH,EACKhoB,gBACAniH,mBAETszD,SACI62E,EAAgB9jE,gBAEpBwN,oBACIs2D,EACKhoB,gBACAtuC,sBAGZs2D,EAAgBhoB,iBACb,kBAAC,GAAD,CACIt4F,MACIsgH,EACKhoB,gBACAjiH,mBAETozD,SACI62E,EAAgB9jE,gBAEpBk/C,oBACI4kB,EACKhoB,gBACA9hH,oBAETC,oBACI6pI,EACKhoB,gBACA7hH,oBAETuzE,oBACIs2D,EACKhoB,gBACAtuC,oBAETp6D,MAAOsB,EACH,mCAOpB,oCACI,kBAACmqG,GAAD,KACI,kBAAC,GAAD,CACI/gD,MAAM,IACNx8C,OACIwiH,EACKhoB,gBACAriH,mBAETwzD,SACI62E,EAAgB9jE,gBAEpBwN,oBACIs2D,EACKhoB,gBACAtuC,sBAGb,kBAAC,GAAD,CACI1P,MAAM,IACNx8C,OACIwiH,EACKhoB,gBACAniH,mBAETszD,SACI62E,EAAgB9jE,gBAEpBwN,oBACIs2D,EACKhoB,gBACAtuC,sBAGb,kBAAC,GAAD,CACI1P,MAAM,IACNx8C,OACIwiH,EACKhoB,gBACAjiH,mBAETozD,SACI62E,EAAgB9jE,gBAEpBwN,oBACIs2D,EACKhoB,gBACAtuC,uBAIhBs2D,EAAgBhoB,iBACb,kBAAC,GAAD,CACIt4F,MACIsgH,EACKhoB,gBACAjiH,mBAETozD,SACI62E,EAAgB9jE,gBAEpBk/C,oBACI4kB,EACKhoB,gBACA9hH,oBAETC,oBACI6pI,EACKhoB,gBACA7hH,oBAETuzE,oBACIs2D,EACKhoB,gBACAtuC,oBAETp6D,MAAOsB,EACH,mCAQvBirD,GAASA,EAAMM,aACZ,kBAAC,GAAD,CACI7sD,MAAOsB,EACH,qCAEJ70B,GAAG,8BACHmoB,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","file":"static/js/main.e9ccda16.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGEAAACXCAYAAAAFzTWnAAAABHNCSVQICAgIfAhkiAAADG9JREFUeF7tnX9wFOUZx7/PXn6AFgX8QcUREX8WtCR3pyN1OmqnDsVpp0AmSO7Qpmr2wtiO4lh/4HSItv74wxYtliYXVKxeiEaCYKc6/iOdVh3l7hJULLXSAaG2aksQUCS5229nkxIg5O727na5vbt3/73ned7n+X723dt33933FThwhAK+WyEyF8BVDoQvVMiNBFeHI7Gn7U5A7A6oB/wtIlhmd1y3xCOMJeFI/FE787EdQijop50Jui0WwT3hSGyCnXnZCqEpUFOjSUWPnQm6MVZbJGqrbrYGa17kv4rEa24Uzs6cRHB167PRjXbFVBByUFJByEE0u10UBLsVzSFeUUMg8adwR9T1Ywc94N8ogitT8VEQcjhzs3VRELJVzAF7BcEBUbMNqSBkq5gD9gqCA6JmG1JByFYxB+wVBAdEzTZkUUAIBWunk57ZEEwRciIgEwicJMLxgMzMtujis+dmQPoI7AXYB8pugNuTMNY/0dGzI9t6LD87urnh4kmajLkLwjqBTMm2oXKxJ7lViHWJxFePPNG1ZbeVujNCWFI/a+wXlQOm+D8TyAlWgiobwJx3EAO/4DisCIdjA+k0SQuheaG/lh6+BMiZStjcFCDxAZMDP2h/bvMHKR+DpPqhKXDpd0WM9dmd/eakWsbOlVs1RexFYrcYydltnT3R0coYVbFQwH8DBLZPaBexjsOpk4RIDicaccAQ1LVHoi+P1OGYaKEG/zXQ+AogWi6ikUAuOebSVmF88ujt5EFDkt9uj/RuOjL3oyCEAjXnUzw9AjkxvwLzSDS/hh3ztuvkIvlZhaH5VnZu2nko2WEIiwOXTDBQHYVgmqVKiAMA3iUYA2UzhB9ompT0mxZH6kImPYA2HcRMCmoF4rWk26ARN5/QXzVredebpoaH/0VDAd8qiNyUKRDNiyLktycOVN55KEgmn3L4vbGxZnx1v+cxiNxgpV4SD4Y7ovcOQ9AX+c4QQz6CoCJtAGKnCBpaI9HXrTRUjjZNQf8cIZ4SwaT0WnL/warkWatX9+4ZvBzpAf/jIrglnROJLYn9+2Y9ueFv+8pR3Gxqvql+xkRP5Zi4iJyd3o/3t0Viy6S+Hp4JVb7P0/4ZE4kkDd+qNfF3skmmnG2bg/4rDPLPkvZ+lp+2RWKTpKnh0is1jWlfZCKNe8Md8QfLWdRcateD/uUC3JbeNzlD9KDvIYHcncqQZGzyBbHLWlpg5JJIOfs0Nk4dU9V/ynsicm5KfWEskVDQb47gvpfKyABuao9EnyxnMfOpPRT03QNIyqsIwaclFPT1ppsDIPmdcEes5N8vzUfodL6hoPc6QOtM3RP4qgnhE0BOT2UkycQ5rZ29251KstTjhhbW+uHxHPWY4siaCb5rXo7SjnLtfg281EUfWV/z9d88nUbVJ6nr5qcKgsNnhTlmqKga+9+UzZB9GSGQaHE4z5IOL5CxEN5lAULpPfV0O1mCQw/uiMw9we3FFH1+5OeiB/ws7UkYl2MiDkgo4DPn61yeaQmnZ0JQPaHAgAd7Qol/d1xgiTM3T+4fhDD0T60uSZkVs9dicI4SR40TCHJUEPfZ23R5RSONsSLanSOrlsHpeAGsDNbUY4v8ThpbRswKgoKQnwIu8FY9QUFwgQIuSEH1BAXBBQq4IAXVExQEFyjgghRUT1AQXKCAC1JQPUFBcIECLkhB9QQFwQUKuCAF1RMUBBco4IIUVE9QEFyggAtSUD1BQXCBAi5IQfUEBcEFCrgghZLvCeu33jgu+UXFyoS3r3GBdCVdoPkxKZQ8hO6Y/gBElhK8o84b/pWCcJwVWBfVzzU0vC+QKprv+FdoF8yf2frpcU4jY3Ml3RPWxvROEbnukAoE2+q84eaMqhxng5KFsK5Hn0vKuiP1JJmsELn8h962UdeZO87aDzdXkhCeZ72nomeiudDJ9JHCEnyjzhu+olCCj9ZuSULojofMS87vUgttNMz3tqf8gv54Ayo5COYtaeLLim0COS2VmAR3jB1XfeG15684eLwFL4ue0B0PPQwg9TfBwyrwnvnesGlb8KOkesKL8dB0A4gDqM6oLLE3If3nLfA+9VlGW4cNSgpCdyz0KAS3WtWM5H11vnDBVyMoGQjr3715UqJf2y4iY6xCgLlguPSfM6929R7rPvZblgyEtXG9VSChbCVyQ28oCQjr4zdOTrDyQxGMzRYCgL7EaSecueCs5YOLwBbiKAkI3XH9bkAeylVAivy4rrZ1da7++foVPQRzgfbuuG7+F+S8cwnJt+p84cvzFTNX/6KH8EJUv0jT5K+5CjDkR9JjTKmbuWpXfnFy8y56CGtj+m0isjy38g97FfKSVPQQumP6MxBZlC8EgL+Z7w1bHmPk397hCMUPIa5vBCTllrxWxSL5XJ0vvNCqvZ12RQ8h1/HBSBELOV4ofgg9zY1CPpX3mUnMme9reyXvODkEKHoI5uOKZL9nV8Z9HdKIQ+JAcszu8QtmdPXnoGHeLkUPwVSgO66vBuRHOatBPDbf15Zh5faco2d0LAkIa99ZPE0Gkr0QGZex4hEGBHcnqytmLJix8t/Z+tplXxIQTDFeiDXN1iDdkCy2nST2ikeumVfT+rZdguYSp2QgDILobZqhGdrzo03wjyLOm2Lw+nn+8LZchLPTp6QgmMJEo3rlTg0/J7EYIqceKxY/EZGH5tacsUKkxRWbbpQchEOiky3ahp5/eRMiFwuNrwtlFzTjvbk17ZtF4Kq93koWgp2XC6djKQhOK2whvoJgQSSnTRQEpxW2EF9BsCCS0yYKgtMKW4ivIFgQyWkTBcFphS3EVxAsiOS0iYLgtMIW4isIFkRy2kRBcFphC/EVBAsiOW2iIDitsIX4CoIFkZw2URCcVthCfAXBgkhOmygITitsIb4tEABstNCWMkmtQCWA1KsMDG/xpXYCLshJdMRmd77Bfe/UUSgF+KWEAv7/785cqCTKvN3BXWiDPqp9Nwt4IqitgAso/qGmyaGtgGl+Jqk2xj7uREzdIdij9mM+7tIPNTiov7kTLdE3CoSj71dFcHWB8iyJZpNInqTRs/5wMSPGA2orYOc52zJiVlsB5wfKEgQ96NsvkBNTNeXplzNWdm0q2Jcu+UlQeO9QsHY64NmSKhOCH5mDtW0QTEtlZADXtkeiLxe+nOLMIBT0LgK0Z1JmT7xtQngDglmpS+TStkgs51VWilM6+7LWA/5fi2BJ6p6ADaIHfOtEZG5KI7Ir3BFbYF9a5RVJD/g3iiDlqgQkwqIHvEtFtAfSkPoKCV4cfi5W8O+/ig2fvsjnFWITIFpKfQ02yeJF/gsNYmu6AknGJl8Qu6ylBa74DqwYYDQ2Th1T3X/qlnT/t+ajiuTAV6cOPsPWgz5z9fVvpC+Oy9oisfuLQQA35KgH/I+L4JYMuWxsi0SvHoIQ8OoiWlum5AljSTgSfzSTXbn/rgf99wrwy0w60OC88JrYi4MQ6uvhmVjlN+9lL8zkCOB1T1IaVnZu2mnBtqxMzEt70mBERHyZCicYD0dig3bDU2pNQe88DVp3JmfzdwL7YPD28JrYKiv2pW7T0gLt47/77xDyfohkXsEYgJFMXNHe2fvGURCGLkv+NSKwvDiTuYMHZPBPfasAO0jzsWC5HNQEmEbgIjGvICJfs1o5ieXhjujth+yPmlz+6Zzzqg9OPHmTQC6xGlDZZacAyb/0DcSu6urC8EZMx8zw69f7piApPSKYmF14ZZ1RAWJnYuBAzRNdW3YfaTvqaxZ6g+8iEXkVgrMyBlYGlhQguVUzknNaO3u3j3RI+a7LLTdcdspA0tggwLcstVImRoT5ckqWrwiRf/QMHLhuZdf7+0eTKW0089Z1QpW3WaDdB+CUMtHZtjJJfgzB0nAk9vuhm8rRD0tI9XrfyaiUZRD+RCDma33qSKcAcYDgI9iHh8Mvxb7MJJYlCIeCDM0SVV9LaN8HOFsg4zM1UC6/k/wPIC9rNP5QqVW+siLy1l6rtWcFYWRQ807KSPC8Cg3nGtQmgzxHtDwWDbSadYHtaPBp0fAPA7JLY/JDGTC2tXZt/meuaeUFYWSjzYv8V5F4LddkisXPfAOl9dmobW+rKwg5kDeYqG3v6O3NwXVUF1shNDbWjK8eqOizKzm3xrH7DRRbIZii6QGfuenE2W4VMN+8SO4Id8Sm5hvnSH/7ITT45op29OakdiZcyFjmA0tNk7l2/h+Y9dgOwQzavLBmqqFVNApYw1K4jRVuB2W7ZiRWj/bYId8T439oLwES88q3pAAAAABJRU5ErkJggg==\"","export default {\r\n InstallerCompanyAdmin: \"InstallerCompanyAdmin\",\r\n InstallerCompanyUser: \"InstallerCompanyUser\",\r\n InstallerCompanyTechnician: \"InstallerCompanyTechnician\",\r\n Admin: \"Admin\",\r\n MasterAdmin: \"MasterAdmin\"\r\n};\r\n","export default class ApiRouteError extends Error {\r\n constructor(msg) {\r\n super(msg);\r\n\r\n this.name = 'ApiRouteError';\r\n\r\n if (\"captureStackTrace\" in Error) {\r\n Error.captureStackTrace(this, ApiRouteError);\r\n } else {\r\n this.stack = (new Error()).stack;\r\n }\r\n }\r\n\r\n getMessages = () => {\r\n return [\r\n {\r\n fieldError: null,\r\n localizationKey: null,\r\n message: this.message,\r\n redirectUrl: this.redirectUrl\r\n }\r\n ];\r\n }\r\n\r\n}\r\n","import ApiRouteError from './ApiRouteError';\r\n\r\nexport default class ApiRouteCustomError extends ApiRouteError {\r\n constructor(data) {\r\n data.messages = data.messages || [];\r\n super(data.messages.join(','));\r\n this.name = 'ApiRouteCustomError';\r\n\r\n this.messages = data.messages;\r\n this.localizationKey = data.localizationKey;\r\n this.stackTrace = data.stackTrace;\r\n this.key = data.key;\r\n this.name = data.name;\r\n this.type = data.type;\r\n this.redirectUrl = data.redirectUrl;\r\n }\r\n\r\n getMessages = () => {\r\n let ret = [];\r\n\r\n if (this.localizationKey === 'exception.ValidationException') {\r\n this.messages.forEach(message => {\r\n let fieldError = message.split(':')[0];\r\n let exceptions = message.split(':')[1];\r\n let multipleExceptions = exceptions.split('|');\r\n\r\n multipleExceptions.forEach(ex => {\r\n\r\n ret.push(\r\n {\r\n fieldError,\r\n localizationKey: 'exceptions:' + ex.trim(),\r\n }\r\n );\r\n });\r\n });\r\n\r\n } else {\r\n ret = [\r\n {\r\n fieldError: null,\r\n localizationKey: 'exceptions:' + this.localizationKey,\r\n message: this.messages[0],\r\n redirectUrl: this.redirectUrl\r\n }\r\n ];\r\n }\r\n\r\n\r\n return ret;\r\n }\r\n\r\n}\r\n","import axios from \"axios\";\r\nimport createAuthRefreshInterceptor from \"axios-auth-refresh\";\r\nimport ApiRouteCustomError from \"../core/exceptions/ApiRouteCustomError\";\r\n\r\nexport const getApiUrl =\r\n process.env.NODE_ENV !== \"production\"\r\n ? window.location.protocol === \"http\"\r\n ? \"http://localhost:51872/api\"\r\n : \"https://localhost:44394/api\"\r\n : window.location.protocol + \"//\" + window.location.host + \"/api\";\r\n\r\nconst baseUrl = getApiUrl;\r\n\r\nlet requestsCounter = 0;\r\n\r\nconst showApiLoader = (visible) => {\r\n const loaderEl = document.getElementById(\"apiLoader\");\r\n if (!loaderEl) return;\r\n visible\r\n ? loaderEl.classList.add(\"show\")\r\n : loaderEl.classList.remove(\"show\");\r\n};\r\n\r\nconst errorHandler = (error) => {\r\n const INTERNAL_SERVER_ERROR = 500;\r\n const BAD_REQUEST = 400;\r\n const NOT_FOUND = 404;\r\n let handledErrorResponse = error;\r\n if (\r\n error &&\r\n error.response &&\r\n (error.response.status === INTERNAL_SERVER_ERROR ||\r\n (error.response.status === NOT_FOUND && error.response.data) ||\r\n (error.response.status === BAD_REQUEST &&\r\n error.response.data &&\r\n error.response.data.localizationKey ===\r\n \"exception.ValidationException\"))\r\n ) {\r\n let data = error.response.data;\r\n handledErrorResponse = new ApiRouteCustomError({\r\n messages: data.messages || data.error || [],\r\n localizationKey: data.localizationKey,\r\n stackTrace: data.stackTrace,\r\n key: data.key,\r\n name: data.name,\r\n type: data.type,\r\n redirectUrl: data.redirectUrl,\r\n });\r\n }\r\n if (--requestsCounter === 0) {\r\n showApiLoader(false);\r\n }\r\n return Promise.reject(handledErrorResponse);\r\n};\r\n\r\nconst successHandler = (response) => {\r\n // Handle responses\r\n if (--requestsCounter === 0) {\r\n showApiLoader(false);\r\n }\r\n return response;\r\n};\r\n\r\nlet instance = axios.create({\r\n baseURL: baseUrl,\r\n});\r\n\r\ninstance.interceptors.request.use((config) => {\r\n const token = localStorage.getItem(\"token\");\r\n if (token && config.url !== \"/Authentication/refresh\") {\r\n config.headers[\"Authorization\"] = `Bearer ${localStorage.getItem(\r\n \"token\"\r\n )}`;\r\n }\r\n return config;\r\n});\r\n\r\ninstance.interceptors.response.use(\r\n (response) => successHandler(response),\r\n (error) => errorHandler(error)\r\n);\r\n\r\n//Progress Bar\r\ninstance.interceptors.request.use((config) => {\r\n if (requestsCounter === 0) {\r\n showApiLoader(true);\r\n }\r\n requestsCounter++;\r\n return config;\r\n});\r\n\r\ninstance.interceptors.request.use((config) => {\r\n const lang = localStorage.getItem(\"lang\");\r\n if (lang) {\r\n config.headers[\"Accept-Language\"] = lang;\r\n }\r\n return config;\r\n});\r\n\r\n// Function that will be called to refresh authorization\r\nconst refreshAuthLogic = (failedRequest) => {\r\n instance.defaults.headers[\"Authorization\"] =\r\n \"Bearer \" + localStorage.getItem(\"refreshToken\");\r\n return instance\r\n .post(\"/Authentication/refresh\")\r\n .then((tokenRefreshResponse) => {\r\n localStorage.setItem(\"token\", tokenRefreshResponse.data.token);\r\n localStorage.setItem(\r\n \"refreshToken\",\r\n tokenRefreshResponse.data.refreshToken\r\n );\r\n instance.defaults.headers[\"Authorization\"] =\r\n \"Bearer \" + tokenRefreshResponse.data.token;\r\n failedRequest.response.config.headers[\"Authorization\"] =\r\n \"Bearer \" + tokenRefreshResponse.data.token;\r\n return Promise.resolve();\r\n });\r\n};\r\n\r\n// Instantiate the interceptor (you can chain it as it returns the axios instance)\r\ninstance = createAuthRefreshInterceptor(instance, refreshAuthLogic);\r\n\r\nexport function apiResult(promise) {\r\n return promise\r\n .then((response) => {\r\n return { status: response.status, data: response.data };\r\n })\r\n .catch((error) => {\r\n if (error.getMessages) {\r\n const errors = error.getMessages();\r\n if (errors.length > 0)\r\n error.message = errors[0].localizationKey;\r\n }\r\n return { data: null, error };\r\n });\r\n}\r\n\r\nexport default instance;\r\n","import api from \"../getAxios\";\r\n\r\nconst LoginService = {\r\n login: (username, password) => {\r\n return api.post(\"/Authentication/request\", { username, password });\r\n },\r\n verifyTwoFactor: (username, code) => {\r\n return api.post(\"/Authentication/verify\", { username, twoFactorAuthToken: code });\r\n },\r\n logout: () => {\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"refreshToken\");\r\n api.defaults.headers[\"Authorization\"] = \"\";\r\n window.location.replace(window.location.origin);\r\n },\r\n refresh: async () => {\r\n api.defaults.headers[\"Authorization\"] = \"Bearer \" + localStorage.getItem(\"refreshToken\");\r\n\r\n return await api.post(\"/Authentication/refresh\").then((tokenRefreshResponse) => {\r\n localStorage.setItem(\"token\", tokenRefreshResponse.data.token);\r\n localStorage.setItem(\"refreshToken\", tokenRefreshResponse.data.refreshToken);\r\n\r\n api.defaults.headers[\"Authorization\"] = \"Bearer \" + tokenRefreshResponse.data.token;\r\n return { success: true };\r\n });\r\n },\r\n impersonate: async (username) => {\r\n const result = await api.post(\"/Authentication/impersonate\", { username });\r\n return result.data || null;\r\n },\r\n stopImpersonation: async () => {\r\n const result = await api.post(\"/Authentication/stopImpersonation\");\r\n return result.data || null;\r\n },\r\n getSSOTokens: async (id) => {\r\n const result = await api.get(`/Authentication/getSsoTokensById?id=${id}`);\r\n return result?.data;\r\n },\r\n};\r\n\r\nexport default LoginService;\r\n","import { useEffect, useState } from \"react\";\r\n\r\nlet listeners = {};\r\nlet state = {};\r\n\r\n\r\nconst getSharedState = (branch) => state[branch];\r\n\r\nconst setState = (newState, branch) => {\r\n state[branch] = { ...state[branch], ...newState };\r\n if (listeners[branch] === undefined) listeners[branch] = [];\r\n \r\n listeners[branch].forEach((listener) => {\r\n listener.cb(state[branch]);\r\n });\r\n};\r\n\r\nconst useSharedState = (branch, initialState={}, name) => {\r\n if (state[branch] === undefined) state[branch] = initialState;\r\n if (listeners[branch] === undefined) listeners[branch] = [];\r\n\r\n const newListener = {cb:useState()[1], name};\r\n useEffect(() => {\r\n listeners[branch].push(newListener);\r\n return () => {\r\n listeners[branch] = listeners[branch].filter(\r\n (listener) => listener.cb !== newListener.cb\r\n );\r\n };\r\n }, []);\r\n\r\n return [state[branch], (newState) => setState(newState, branch)];\r\n};\r\n\r\n\r\nexport default useSharedState;\r\nexport {setState as setSharedState, getSharedState};","import React, { useReducer } from 'react';\r\n\r\nexport const ListingPageContext = React.createContext({});\r\n\r\nexport const listingActionTypes = {\r\n ADD_SELECTEDROW: \"ADD_SELECTEDROW\",\r\n REMOVE_SELECTEDROW: \"REMOVE_SELECTEDROW\",\r\n SET_TABLEINSTANCE: \"SET_TABLEINSTANCE\"\r\n}\r\nconst ListingPageProvider = ({ children }) => {\r\n const [state, dispatch] = useReducer(\r\n (state, action) => {\r\n switch (action.type) {\r\n case listingActionTypes.ADD_SELECTEDROW:\r\n if(!state.selectedRows.find(row => row.id === action.payload.id)) {\r\n state.selectedRows.push(action.payload);\r\n }\r\n return Object.assign({}, state);\r\n case listingActionTypes.REMOVE_SELECTEDROW:\r\n state.selectedRows = state.selectedRows.filter(row => row.id !== action.payload);\r\n return Object.assign({}, state);\r\n case \"RESET_STATE\":\r\n return {\r\n selectedRows: [],\r\n tableInstance: {}\r\n };\r\n case listingActionTypes.SET_TABLEINSTANCE:\r\n state.tableInstance = action.payload;\r\n return Object.assign({}, state);\r\n default:\r\n return state;\r\n }\r\n },\r\n {\r\n selectedRows: [],\r\n tableInstance: {}\r\n }\r\n );\r\n\r\n return \r\n {children}\r\n ;\r\n};\r\n\r\nexport default ListingPageProvider;\r\n","import { createGlobalStyle } from \"styled-components\";\r\n\r\nconst GlobalStyles = createGlobalStyle`\r\n\r\n @font-face {\r\n font-family: \"pass\";\r\n font-style: normal;\r\n font-weight: 400;\r\n src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAATsAA8AAAAAB2QAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAcg9+z70dERUYAAAF0AAAAHAAAAB4AJwANT1MvMgAAAZAAAAA/AAAAYH7AkBhjbWFwAAAB0AAAAFkAAAFqZowMx2N2dCAAAAIsAAAABAAAAAQAIgKIZ2FzcAAAAjAAAAAIAAAACAAAABBnbHlmAAACOAAAALkAAAE0MwNYJ2hlYWQAAAL0AAAAMAAAADYPA2KgaGhlYQAAAyQAAAAeAAAAJAU+ATJobXR4AAADRAAAABwAAAAcCPoA6mxvY2EAAANgAAAAEAAAABAA5gFMbWF4cAAAA3AAAAAaAAAAIAAKAE9uYW1lAAADjAAAARYAAAIgB4hZ03Bvc3QAAASkAAAAPgAAAE5Ojr8ld2ViZgAABOQAAAAGAAAABuK7WtIAAAABAAAAANXulPUAAAAA1viLwQAAAADW+JM4eNpjYGRgYOABYjEgZmJgBEI2IGYB8xgAA+AANXjaY2BifMg4gYGVgYVBAwOeYEAFjMgcp8yiFAYHBl7VP8wx/94wpDDHMIoo2DP8B8kx2TLHACkFBkYA8/IL3QB42mNgYGBmgGAZBkYGEEgB8hjBfBYGDyDNx8DBwMTABmTxMigoKKmeV/3z/z9YJTKf8f/X/4/vP7pldosLag4SYATqhgkyMgEJJnQFECcMOGChndEAfOwRuAAAAAAiAogAAQAB//8AD3jaY2BiUGJgYDRiWsXAzMDOoLeRkUHfZhM7C8Nbo41srHdsNjEzAZkMG5lBwqwg4U3sbIx/bDYxgsSNBRUF1Y0FlZUYBd6dOcO06m+YElMa0DiGJIZUxjuM9xjkGRhU2djZlJXU1UDQ1MTcDASNjcTFQFBUBGjYEkkVMJCU4gcCKRTeHCk+fn4+KSllsJiUJEhMUgrMUQbZk8bgz/iA8SRR9qzAY087FjEYD2QPDDAzMFgyAwC39TCRAAAAeNpjYGRgYADid/fqneL5bb4yyLMwgMC1H90HIfRkCxDN+IBpFZDiYGAC8QBbSwuceNpjYGRgYI7594aBgcmOAQgYHzAwMqACdgBbWQN0AAABdgAiAAAAAAAAAAABFAAAAj4AYgI+AGYB9AAAAAAAKgAqACoAKgBeAJIAmnjaY2BkYGBgZ1BgYGIAAUYGBNADEQAFQQBaAAB42o2PwUrDQBCGvzVV9GAQDx485exBY1CU3PQgVgIFI9prlVqDwcZNC/oSPoKP4HNUfQLfxYN/NytCe5GwO9/88+/MBAh5I8C0VoAtnYYNa8oaXpAn9RxIP/XcIqLreZENnjwvyfPieVVdXj2H7DHxPJH/2/M7sVn3/MGyOfb8SWjOGv4K2DRdctpkmtqhos+D6ISh4kiUUXDj1Fr3Bc/Oc0vPqec6A8aUyu1cdTaPZvyXyqz6Fm5axC7bxHOv/r/dnbSRXCk7+mpVrOqVtFqdp3NKxaHUgeod9cm40rtrzfrt2OyQa8fppCO9tk7d1x0rpiQcuDuRkjjtkHt16ctbuf/radZY52/PnEcphXpZOcofiEZNcQAAeNpjYGIAg///GBgZsAF2BgZGJkZmBmaGdkYWRla29JzKggxD9tK8TAMDAxc2D0MLU2NjENfI1M0ZACUXCrsAAAABWtLiugAA)\r\n format(\"woff\");\r\n }\r\n\r\n font-family: ${(props) => props.theme.fontFamily};\r\n background-color: ${(props) => props.theme.bgIvory};\r\n font-size: ${(props) => props.theme.baseFontSize};\r\n display: flex;\r\n min-height: 100%;\r\n height: 100%;\r\n flex-direction: column;\r\n margin: 0;\r\n\r\n html, body {\r\n height: 100%;\r\n background-color: #F5F5F5;\r\n }\r\n #root {\r\n height: 100%;\r\n min-height: 100%;\r\n }\r\n input:focus, select:focus, textarea:focus {\r\n outline:none !important;\r\n border-color: ${(p) => p.theme.secondaryColor};\r\n }\r\n\r\n @media (min-width:769px) {\r\n ::-webkit-scrollbar-track\r\n {\r\n /* box-shadow: inset 0 0 6px rgba(0,0,0,0.3); */\r\n background-color: transparent;\r\n border-radius: 12px;\r\n }\r\n\r\n ::-webkit-scrollbar\r\n {\r\n width: 12px;\r\n height: 10px;\r\n background-color: transparent;\r\n border-radius: 10px;\r\n \r\n }\r\n\r\n ::-webkit-scrollbar-thumb\r\n {\r\n background-color: rgba(180,180,180,0.3);\r\n border-radius:6px;\r\n max-height:200px;\r\n /* box-shadow: 0 0 6px rgba(97,138,46,0.9); */\r\n border-bottom: 1px solid rgba(0,0,0,0.2);\r\n border-top: 1px solid rgba(0,0,0,0.2);\r\n\r\n }\r\n\r\n ::-webkit-scrollbar-button:single-button { \r\n background-color: transparent;\r\n height: 0px; \r\n width: 12px; \r\n } \r\n }\r\n \r\n .hidden {\r\n display: none;\r\n }\r\n\r\n .react-datepicker {\r\n border: none;\r\n box-shadow: 0px 0px 7px 1px rgba(0, 0, 0, 0.25);\r\n display:flex;\r\n }\r\n .react-datepicker-wrapper {\r\n width: 100%;\r\n }\r\n\r\n .react-datepicker-popper {\r\n z-index: 10;\r\n top: -10px !important;\r\n }\r\n\r\n .react-datepicker__header {\r\n border-bottom: none;\r\n background-color: #f2f2f2;\r\n padding-bottom: 5px;\r\n }\r\n\r\n .react-datepicker-popper[data-placement^=\"bottom\"]\r\n .react-datepicker__triangle,\r\n .react-datepicker-popper[data-placement^=\"bottom\"]\r\n .react-datepicker__triangle::before {\r\n border-top: none;\r\n border-bottom-color: #e7f2d9;\r\n }\r\n\r\n .react-datepicker__header__dropdown.react-datepicker__header__dropdown--scroll {\r\n padding-top: 10px;\r\n }\r\n\r\n .react-datepicker__year-read-view--selected-year {\r\n font-weight: bold;\r\n font-size: 0.944rem;\r\n }\r\n\r\n .react-datepicker__navigation--previous {\r\n left: 10px;\r\n border-right-color: #48b05e;\r\n }\r\n\r\n .react-datepicker__year-read-view--down-arrow,\r\n .react-datepicker__month-read-view--down-arrow,\r\n .react-datepicker__month-year-read-view--down-arrow {\r\n border-top-color: #48b05e;\r\n top: 5px;\r\n }\r\n\r\n .react-datepicker__navigation--next {\r\n right: 10px;\r\n border-left-color: #48b05e;\r\n }\r\n .react-datepicker__year-dropdown {\r\n background-color: #ffffff;\r\n padding: 10px 0px;\r\n }\r\n\r\n .react-datepicker__year-option {\r\n line-height: 25px;\r\n }\r\n\r\n .react-datepicker__day--keyboard-selected,\r\n .react-datepicker__month-text--keyboard-selected,\r\n .react-datepicker__quarter-text--keyboard-selected,\r\n .react-datepicker__year-text--keyboard-selected {\r\n border-radius: 0.3rem;\r\n background-color: #ececec;\r\n color: #000;\r\n }\r\n\r\n .react-datepicker__day--selected,\r\n .react-datepicker__day--in-selecting-range,\r\n .react-datepicker__day--in-range,\r\n .react-datepicker__month-text--selected,\r\n .react-datepicker__month-text--in-selecting-range,\r\n .react-datepicker__month-text--in-range,\r\n .react-datepicker__quarter-text--selected,\r\n .react-datepicker__quarter-text--in-selecting-range,\r\n .react-datepicker__quarter-text--in-range,\r\n .react-datepicker__year-text--selected,\r\n .react-datepicker__year-text--in-selecting-range,\r\n .react-datepicker__year-text--in-range {\r\n border-radius: 0.3rem;\r\n background-color: ${(props) => props.theme.primaryColor};\r\n color: #fff;\r\n }\r\n \r\n .react-datepicker__day--keyboard-selected, .react-datepicker__month-text--keyboard-selected, .react-datepicker__quarter-text--keyboard-selected, .react-datepicker__year-text--keyboard-selected {\r\n background-color: #ffffff;\r\n}\r\n\r\n .react-datepicker__day--selected:hover, .react-datepicker__day--in-selecting-range:hover, .react-datepicker__day--in-range:hover, .react-datepicker__month-text--selected:hover, .react-datepicker__month-text--in-selecting-range:hover, .react-datepicker__month-text--in-range:hover, .react-datepicker__quarter-text--selected:hover, .react-datepicker__quarter-text--in-selecting-range:hover, .react-datepicker__quarter-text--in-range:hover, .react-datepicker__year-text--selected:hover, .react-datepicker__year-text--in-selecting-range:hover, .react-datepicker__year-text--in-range:hover {\r\n background-color: #41a198;\r\n }\r\n\r\n .react-datepicker__month-year-dropdown {\r\n background-color: #fff;\r\n position: absolute;\r\n width: 80%;\r\n left: 10%;\r\n top: 30px;\r\n z-index: 1;\r\n text-align: center;\r\n border-radius: 0.3rem;\r\n border: 1px solid #aeaeae;\r\n max-height: 226px;\r\n overflow-y: scroll;\r\n }\r\n\r\n .react-datepicker__month-select, .react-datepicker__year-select {\r\n height: 24px;\r\n border: 1px solid #eee;\r\n border-radius: 5px;\r\n margin-top: 6px;\r\n }\r\n\r\n p {\r\n white-space: pre-line;\r\n }\r\n`;\r\n\r\nexport default GlobalStyles;\r\n","import produce from \"immer\";\r\nimport { useMemo, useReducer } from \"react\";\r\n\r\n/**\r\n * Creates wrapped `useReducer`.\r\n *\r\n * @param {Any} initialState\r\n * @returns {[Any, Function]}\r\n */\r\n\r\nconst useImmerReducer = (reducer, initialState) => {\r\n const cachedReducer = useMemo(() => {\r\n return produce(reducer);\r\n }, [reducer]);\r\n return useReducer(cachedReducer, initialState);\r\n};\r\n\r\nexport default useImmerReducer;\r\n","export const config = {\r\n apiUrl: {\r\n login: \"/Authentication/request\",\r\n registration: \"/Users/register\",\r\n resendConfirmation: \"/Users/resendConfirmation\",\r\n confirmRegistration: \"/Users/confirmRegistration\",\r\n values: \"/Values\",\r\n forgottenPassword: \"/Users/forgot\",\r\n resetPassword: \"/Users/reset\",\r\n activateUser: \"/Users/activate\",\r\n getUserData: \"/Users/currentUser\",\r\n setUserData: \"/Users/updateCurrentUser\",\r\n getUserByUsername: \"Users\",\r\n getUserById: \"/Users/getUserById\",\r\n changeEmail: \"/Users/changeEmail\",\r\n confirmEmail: \"/Users/confirmEmail\",\r\n setUserCertificate: \"/users/updateCurrentUserCertificate\",\r\n setUserPicture: \"/users/updateMyProfilePicture\",\r\n deleteUserPicture: \"/users/DeleteMyProfilePicture\",\r\n setUserPassword: \"/users/updateMyPassword\",\r\n getCountries: \"/Countries/countries\",\r\n companyUpdate: \"/Companies/update\",\r\n updateCompanyProfile: \"/Companies/updateProfile\",\r\n getCompanyData: \"/Companies\",\r\n getCompanyDataByUserID: \"/Companies/getCompanyByUserId\",\r\n setCompanyCertificate: \"/companies/updateMyCompanyCertificate\",\r\n getCompaniesWithAdmin: \"/companies/companiesWithAdmin\",\r\n getDistributors: \"/Companies/distributors\",\r\n getCompanyEquipment: \"/Companies/myCompanyEquipment\",\r\n getCompanyCylinders: \"/Companies/myCompanyCylinders\",\r\n getCompanyAnalyzers: \"/Companies/myCompanyGasAnalyzers\",\r\n getCompanyEquipmentById: \"/Equipment/getMyEquipmentById\",\r\n createCompanyEquipment: \"/Equipment/addMyEquipment\",\r\n updateCompanyEquipment: \"/Equipment/updateMyEquipment\",\r\n getCompanyEmployees: \"/Companies/myCompanyUsers\",\r\n getCompanyEmployeeById: \"/Users/getUserById\",\r\n getAdministrators: \"/Users/adminUsers\",\r\n getNonAdministrators: \"/Users/nonAdminUsers\",\r\n createAdministrator: \"/Users/addAdminUser\",\r\n getAdminRoles: \"/Roles/adminRoles\",\r\n createCompanyEmployee: \"/Users/addMyEmployee\",\r\n updateCompanyEmployee: \"/Users/updateMyEmployee\",\r\n setCompanyEmployeeCertificate: \"/Users/updateCertificateByUserId\",\r\n getCompanyRoles: \"/Roles/employeeRoles\",\r\n deleteEquipment: \"/Equipment/delete\",\r\n deleteUser: \"/Users/delete\",\r\n deleteCompany: \"/Companies/delete\",\r\n deleteLicence: \"/Licences/delete\",\r\n getRefrigerantTypes: \"/Stock/refrigerants\",\r\n getMarketPlaceStatuses: \"/Stock/marketplaceStatuses\",\r\n getLocationStatuses: \"/Stock/marketplaceStatuses\",\r\n addToMyStock: \"/Stock/addToMyStock\",\r\n getMyCompanyStock: \"/Stock/myCompanyStock\",\r\n analyzeImage: \"/Stock/getOCRData\",\r\n updateLocationStatus: \"/Stock/updateLocationStatus\",\r\n unpublishFromMarketplace: \"/Marketplace/unpublishOffer\",\r\n publishSkus: \"/Marketplace/publishSKUs\",\r\n getMySellingItems: \"/Marketplace/myOffers\",\r\n getAllItemsForSale: \"/Marketplace/allOffers\",\r\n addBid: \"/Marketplace/addBid\",\r\n getBids: \"/Marketplace/getBids\",\r\n acceptBid: \"/Marketplace/acceptBid\",\r\n rejectBid: \"/Marketplace/rejectBid\",\r\n getOffersWithMyBids: \"/Marketplace/getOffersWithMyBids\",\r\n getMyBids: \"/Marketplace/getMyBids\",\r\n revokeBid: \"/Marketplace/revokeBid\",\r\n payForBid: \"/Marketplace/payBid\",\r\n getOffers: \"/Marketplace/getoffers\",\r\n enableDisableUser: \"/Users/enableDisableUser\",\r\n extractedFGas: \"/StockDashBoard/extractedFGas\",\r\n extractedFGasAdmin: \"/StockDashBoard/extractedFGasAdmin\",\r\n extractions: \"/StockDashBoard/extractions\",\r\n extractionsAdmin: \"/StockDashBoard/extractionsAdmin\",\r\n dashboardCompanyStock: \"/StockDashBoard/companyStock\",\r\n dashBoardTechnicianStock: \"/StockDashBoard/technicianStock\",\r\n dashBoardMarketPlaceTrades: \"/MarketplaceDashboard/tradedRefrigerants\",\r\n dashBoardMarketPlaceTradesPerDate: \"/MarketplaceDashboard/tradedRefrigerantsPerDate\",\r\n dashBoardMarketPlaceAverages: \"/MarketplaceDashboard/refrigerantAverages\",\r\n dashBoardMarketPlaceAveragesAdmin: \"/MarketplaceDashboard/refrigerantAveragesAdmin\",\r\n getMarketplaceCounts: \"/Statistics/getMarketplaceCounts\",\r\n getUserCounts: \"/Statistics/getUsersCounts\",\r\n getUserOnboarding: \"/Statistics/getUserOnboardingPerDate\",\r\n getCompanyOnboarding: \"/Statistics/GetCompanyOnboardingPerDate\",\r\n getCompaniesCounts: \"/Statistics/getCompaniesCounts\",\r\n enableDisableEmployee: \"/Users/enableDisableEmployee\",\r\n qualityTest: \"/Marketplace/qualityTest\",\r\n shipToBuyer: \"/Marketplace/shipToBuyer\",\r\n offerSold: \"/Marketplace/offerSold\",\r\n offerSoldByBuyer: \"/Marketplace/offerSoldBuyer\",\r\n addBuyerAnalysis: \"/Marketplace/addBuyerAnalysis\",\r\n rejectBidDueToExpiration: \"/Marketplace/rejectBidDueToExpiration\",\r\n dispute: \"/Marketplace/addDispute\",\r\n getDisputes: \"/Marketplace/disputes\",\r\n getDisputeDetails: \"Marketplace/getDisputeDetails\",\r\n addDisputeDetails: \"Marketplace/addDisputeDetails\",\r\n finishDispute: \"Marketplace/finishDispute\",\r\n getClients: \"/Clients/clients\",\r\n getClientById: \"/Clients\",\r\n setClient: \"/Clients/add\",\r\n updateClient: \"/Clients/update\",\r\n deleteClient: \"/Clients/deleteClient\",\r\n getClientLocations: \"/Clients/locations\",\r\n getClientLocationById: \"/Clients/location\",\r\n addClientLocation: \"/Clients/addLocation\",\r\n updateClientLocation: \"/Clients/updateLocation\",\r\n deleteClientLocation: \"/Clients/deleteLocation\",\r\n getUnits: \"/Clients/units\",\r\n getUnitById: \"/Clients/unit\",\r\n getUnitManufacturers: \"/Clients/manufacturers\",\r\n addUnit: \"/Clients/addUnit\",\r\n updateUnit: \"/Clients/updateUnit\",\r\n deleteUnit: \"/Clients/deleteUnit\",\r\n generateQr: \"/tags/generate\",\r\n requestQR: \"/tags/request\",\r\n tagsLookup: \"/tags/lookup\",\r\n tagsIdentify: \"/tags/identify\",\r\n getCompanyCylinderById: \"/Equipment/getMyCylinderById\",\r\n createCompanyCylinder: \"/Equipment/addMyCylinder\",\r\n updateCylinder: \"/Equipment/updateMyCylinder\",\r\n deleteCylinder: \"/Equipment/deleteCylinder\",\r\n getMyGasAnalyzerById: \"/Equipment/getMyGasAnalyzerById\",\r\n getMyGasAnalyzerByTag: \"/Equipment/getMyGasAnalyzerByTag\",\r\n createGasAnalyzer: \"/Equipment/addMyGasAnalyzer\",\r\n updateGasAnalyzer: \"/Equipment/updateMyGasAnalyzer\",\r\n deleteGasAnalyzer: \"/Equipment/deleteGasAnalyzer\",\r\n getMyBankAccounts: \"/Mango/myBankAccounts\",\r\n createBankAccount: \"/Mango/createBankAccount\",\r\n deactivateBankAccount: \"/Mango/deactivateBankAccount\",\r\n getMyKYCDocuments: \"/Mango/myKYCDocuments\",\r\n getMyUbos: \"/Mango/myUbos\",\r\n addUbo: \"/Mango/createUBODeclaration\",\r\n updateUbo: \"/Mango/updateUBO\",\r\n deleteUbo: \"/Mango/deleteUBO\",\r\n submitUbo: \"/Mango/submitUBO\",\r\n submitKYC: \"/Mango/submitKYCDocument\",\r\n addKYCDocument: \"/Mango/addKYCDocument\",\r\n getMyWallets: \"/Mango/myWallets\",\r\n getTransactionDetails: \"/Mango/getTransactionDetails\",\r\n getTransactionDetailsById: \"/Mango/getTransactionDetailsById\",\r\n getMyTransactions: \"/Mango/myTransactions\",\r\n getMyGroupedTransactions: \"/Mango/myGroupedTransactions\",\r\n payout: \"/Mango/createPayout\",\r\n getTransactionsFromMango: \"/Mango/myMangoTransactions\",\r\n downloadMyTransactions: \"/Mango/download\",\r\n getOffersForCollection: \"/Marketplace/getOffersForCollection\",\r\n payAClass: \"/Marketplace/payAClass\",\r\n topUp: \"/Mango/topUp\",\r\n getMyInvoices: \"/Mango/myInvoices\",\r\n getMyDocuments: \"/Documents/myDocumentList\",\r\n downloadMyDocuments: \"/Documents/documentsZip\",\r\n getNationalities: \"/Countries/nationalities\",\r\n getCompaniesByUserId: \"/Users/getCompaniesByUserId\",\r\n updateCompanyForCurrentUser: \"/Users/updateCompanyForCurrentUser\",\r\n getCountryNames: \"/Countries/countryNames\",\r\n getAnalysesZip: \"/Marketplace/getAnalysesZip\",\r\n transactionDetails: \"/Mango/transactionDetails\",\r\n sendToRecycling: \"/Stock/sendToRecycling\",\r\n emptyCylinder: \"/Stock/emptyCylinder\",\r\n collectEmptyCylinder: \"/Stock/collectEmptyCylinder\",\r\n isFGasLicenceMandatory: \"Users/isFGasLicenceMandatory \",\r\n cleaningServiceListing: \"/Stock/cleaningServiceListing\",\r\n cleaningServiceListingInstaller: \"/Stock/cleaningServiceListingInstaller\",\r\n addReclaimOffer: \"/Marketplace/addReclaimOffer\",\r\n getDistributorReclaimedOffers: \"/Marketplace/getDistributorReclaimedOffers\",\r\n getInstallationCompanyReclaimedOffers: \"/Marketplace/getInstallationCompanyReclaimedOffers\",\r\n unpublishReclaimedOffer: \"/Marketplace/unpublishReclaimedOffer\",\r\n getReclaimedOfferById: \"/Marketplace/getReclaimedOfferById\",\r\n acceptReclaimOffer: \"/Marketplace/acceptReclaimOffer\",\r\n cancelReclaimedOffer: \"/Marketplace/cancelReclaimedOffer\",\r\n getReclaimTransactionDetails: \"/Mango/getReclaimTransactionDetails\",\r\n myEmployeesCertificates: \"/Certificates/myEmployeesCertificates\",\r\n myCompanyCertificates: \"/Certificates/myCompanyCertificates\",\r\n addCompanyCertificate: \"/Certificates/addCompanyCertificate\",\r\n addUserCertificate: \"/Certificates/addUserCertificate\",\r\n employeesCertificates: \"/Certificates/employeesCertificates\",\r\n companyCertificates: \"/Certificates/companyCertificates\",\r\n updateCertificateStatus: \"/Certificates/updateCertificateStatus\",\r\n updateShowWarningsSetting: \"/Users/updateShowWarningsSetting\",\r\n addCylinderIssue: \"/Support/addCylinderIssue\",\r\n addSupportMessage: \"/Support/addMessage\",\r\n getSpocDetails: \"/Support/getSpocDetails\",\r\n setPartnerStatus: \"/Companies/updatePartnerStatus\",\r\n getPartnerStatus: \"/Companies/partnerStatus\",\r\n },\r\n settings: {\r\n defaultDebounceDelay: 500,\r\n },\r\n};\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, { apiResult } from \"../getAxios\";\r\n\r\nconst CompanyService = {\r\n getCompanyData: async (companyID) => {\r\n let res = await api.get(config.apiUrl.getCompanyData + \"/\" + companyID);\r\n return res.data.data[0];\r\n },\r\n getCompanyDataAsync: async (companyID) => {\r\n return apiResult(api.get(config.apiUrl.getCompanyData + \"/\" + companyID));\r\n },\r\n setCompanyDataAsync: (formData) => {\r\n return apiResult(api.post(config.apiUrl.companyUpdate, formData));\r\n },\r\n setCompanyData: (formData) => {\r\n return api.post(config.apiUrl.companyUpdate, formData);\r\n },\r\n updateCompanyProfile: (formData) => {\r\n return api.post(config.apiUrl.updateCompanyProfile, formData);\r\n },\r\n getCompanyByUserID: async (values) => {\r\n let res = await api.get(config.apiUrl.getCompanyDataByUserID + \"/\" + values);\r\n return res.data;\r\n },\r\n setCompanyCertificate: async (formData) => {\r\n let res = await api.post(config.apiUrl.setCompanyCertificate, formData);\r\n return res;\r\n },\r\n uploadCompanyCertificate: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.setCompanyCertificate, formData));\r\n },\r\n getCompaniesWithAdmin: async (filters = {}) => {\r\n return (await api.post(config.apiUrl.getCompaniesWithAdmin, filters)).data;\r\n },\r\n getCompanyEquipment: async () => {\r\n return (await api.get(config.apiUrl.getCompanyEquipment)).data;\r\n },\r\n getCompanyCylinders: async (req = {}) => {\r\n return (await api.post(config.apiUrl.getCompanyCylinders, req)).data;\r\n },\r\n getCompanyCylinderById: async (cylinderId) => {\r\n let res = await api.get(config.apiUrl.getCompanyCylinderById + \"/\" + cylinderId);\r\n return res.data;\r\n },\r\n getCompanyCylinderByIdAsync: async (cylinderId, skipCompanyCheck = false) => {\r\n return apiResult(\r\n api.get(\r\n config.apiUrl.getCompanyCylinderById +\r\n \"/\" +\r\n cylinderId +\r\n `?skipCompanyCheck=${skipCompanyCheck}`\r\n )\r\n );\r\n },\r\n getCompanyAnalyzers: async (req = {}) => {\r\n return (await api.post(config.apiUrl.getCompanyAnalyzers, req)).data;\r\n },\r\n getCompanyEquipmentById: async (equipmentId) => {\r\n let res = await api.get(config.apiUrl.getCompanyEquipmentById + \"/\" + equipmentId);\r\n return res.data;\r\n },\r\n getCompanyEquipmentByIdAsync: async (equipmentId) => {\r\n return api.get(config.apiUrl.getCompanyEquipmentById + \"/\" + equipmentId);\r\n },\r\n createCompanyEquipment: (formData) => {\r\n return api.post(config.apiUrl.createCompanyEquipment, formData);\r\n },\r\n createCompanyCylinder: (formData) => {\r\n return api.post(config.apiUrl.createCompanyCylinder, formData);\r\n },\r\n createCompanyCylinderAsync: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.createCompanyCylinder, formData));\r\n },\r\n createGasAnalyzerAsync: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.createGasAnalyzer, formData));\r\n },\r\n updateGasAnalyzerAsync: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.updateGasAnalyzer, formData));\r\n },\r\n deleteGasAnalyzerAsync: async ({ gasAnalyzerId, shouldDisconnectTag = false }) => {\r\n return apiResult(\r\n api.post(config.apiUrl.deleteGasAnalyzer, { gasAnalyzerId, shouldDisconnectTag })\r\n );\r\n },\r\n getMyGasAnalyzerByIdAsync: async (equipmentId) => {\r\n return api.get(config.apiUrl.getMyGasAnalyzerById + \"/\" + equipmentId);\r\n },\r\n getMyGasAnalyzerByTagAsync: async (equipmentId) => {\r\n return api.get(config.apiUrl.getMyGasAnalyzerByTag + \"/\" + equipmentId);\r\n },\r\n createCompanyEquipmentAsync: (formData) => {\r\n return apiResult(api.post(config.apiUrl.createCompanyEquipment, formData));\r\n },\r\n updateEquipment: (formData) => {\r\n return api.post(config.apiUrl.updateCompanyEquipment, formData);\r\n },\r\n updateEquipmentAsync: (formData) => {\r\n return apiResult(api.post(config.apiUrl.updateCompanyEquipment, formData));\r\n },\r\n getCompanyEmployees: async (filters) => {\r\n return (await api.post(config.apiUrl.getCompanyEmployees, filters)).data;\r\n },\r\n getCompanyEmployeeById: async (employeeId) => {\r\n let res = await api.get(config.apiUrl.getCompanyEmployeeById + \"?userId=\" + employeeId);\r\n return res.data;\r\n },\r\n createCompanyEmployee: (formData) => {\r\n return api.post(config.apiUrl.createCompanyEmployee, formData);\r\n },\r\n createCompanyEmployeeAsync: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.createCompanyEmployee, formData));\r\n },\r\n updateCompanyEmployee: (values) => {\r\n return api.post(config.apiUrl.updateCompanyEmployee, values);\r\n },\r\n updateCompanyEmployeeCertificate: (formData) => {\r\n return api.post(config.apiUrl.setCompanyEmployeeCertificate, formData);\r\n },\r\n getCompanyRoles: async () => {\r\n return (await api.get(config.apiUrl.getCompanyRoles)).data.data;\r\n },\r\n deleteEquipment: async (id) => {\r\n return (await api.post(config.apiUrl.deleteEquipment, { equipmentId: id })).data.data;\r\n },\r\n deleteEmployee: async (id) => {\r\n return (await api.post(config.apiUrl.deleteUser, { userId: id })).data.data;\r\n },\r\n deleteCompany: async (id) => {\r\n return (await api.post(config.apiUrl.deleteCompany, { id: id })).data.data;\r\n },\r\n deleteCylinder: async (id) => {\r\n return (await api.post(config.apiUrl.deleteCylinder, { cylinderId: id })).data.data;\r\n },\r\n deleteCylinderAsync: async (id) => {\r\n return apiResult(api.post(config.apiUrl.deleteCylinder, { cylinderId: id }));\r\n },\r\n updateCylinderAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.updateCylinder, values));\r\n },\r\n getNationalities: async (filter) => {\r\n if (!filter || filter.length < 3) return [];\r\n return apiResult(api.post(config.apiUrl.getNationalities, { filter }));\r\n },\r\n getDistributors: async () => {\r\n return apiResult(api.post(config.apiUrl.getDistributors, {}));\r\n },\r\n getMyEmployeesCertificates: async (userId = \"\") => {\r\n return apiResult(\r\n api.post(config.apiUrl.myEmployeesCertificates, {\r\n filter: { userId: userId },\r\n page: 0,\r\n pageSize: 100,\r\n })\r\n );\r\n },\r\n getMyCompanyCertificates: async (filter = {}) => {\r\n return apiResult(\r\n api.post(config.apiUrl.myCompanyCertificates, {\r\n filter: filter,\r\n page: 0,\r\n pageSize: 100,\r\n })\r\n );\r\n },\r\n addCompanyCertificate: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.addCompanyCertificate, formData));\r\n },\r\n addUserCertificate: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.addUserCertificate, formData));\r\n },\r\n getEmployeesCertificates: async (userId, companyId = \"\") => {\r\n return apiResult(\r\n api.post(config.apiUrl.employeesCertificates, {\r\n filter: { userId: userId, companyId: companyId },\r\n page: 0,\r\n pageSize: 100,\r\n })\r\n );\r\n },\r\n getCompanyCertificates: async (companyId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.companyCertificates, {\r\n filter: { companyId: companyId },\r\n page: 0,\r\n pageSize: 100,\r\n })\r\n );\r\n },\r\n updateCertificateStatus: async (certId, status) => {\r\n return apiResult(\r\n api.post(config.apiUrl.updateCertificateStatus, {\r\n certificateId: certId,\r\n certificateStatus: status,\r\n })\r\n );\r\n },\r\n};\r\n\r\nexport default CompanyService;\r\n","const validateConfig = (stateConfig, stateModule) => {\r\n const initialStateKeys = Object.keys(stateConfig.initialState);\r\n const creatorActionKeys = Object.keys({...stateModule.creators, ...stateModule.actions});\r\n\r\n for(let stateKey of initialStateKeys){\r\n for(let creatorActionKey of creatorActionKeys){\r\n if(stateKey === creatorActionKey){\r\n throw new Error(`There is a key named \"${stateKey}\" in your state and an action or creator named \"${creatorActionKey}\" in the state module \"${stateConfig.namespace}\". Please make sure that no keys in the state, creator, or actions have the same name`);\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst createStateModule = (stateConfig, plugins) => {\r\n const stateConfigWithPlugins = applyPlugins(stateConfig, plugins)\r\n\r\n const generateActionTypes = () => {\r\n const actionTypes = {};\r\n\r\n for (let key of stateConfigWithPlugins.types) {\r\n actionTypes[key.toUpperCase()] = `${\r\n stateConfigWithPlugins.stateNamespace\r\n }_${key.toLowerCase()}`;\r\n }\r\n\r\n return actionTypes;\r\n };\r\n\r\n const types = generateActionTypes();\r\n const creators = stateConfigWithPlugins.creators(types);\r\n const actions = stateConfigWithPlugins.actions ? stateConfigWithPlugins.actions(creators) : {};\r\n const reducer = stateConfigWithPlugins.createReducer(types);\r\n reducer.initialState = stateConfigWithPlugins.initialState;\r\n\r\n const stateModule = {\r\n types,\r\n creators,\r\n actions,\r\n reducer,\r\n stateNamespace: stateConfigWithPlugins.stateNamespace\r\n };\r\n validateConfig(stateConfigWithPlugins, stateModule);\r\n\r\n return {\r\n types,\r\n creators,\r\n actions,\r\n reducer,\r\n stateNamespace: stateConfigWithPlugins.stateNamespace\r\n };\r\n};\r\n\r\nconst applyPlugins = (stateConfig, plugins) => {\r\n if (!plugins) {\r\n return stateConfig;\r\n }\r\n plugins.forEach(plugin => {\r\n stateConfig.initialState = {\r\n ...stateConfig.initialState,\r\n ...plugin.initialState\r\n };\r\n stateConfig.types = [...stateConfig.types, ...plugin.types];\r\n\r\n const initialCreateCreators = stateConfig.creators;\r\n stateConfig.creators = types => {\r\n const initialCreators = initialCreateCreators(types);\r\n const pluginCreators = plugin.creators(types);\r\n\r\n return {\r\n ...initialCreators,\r\n ...pluginCreators\r\n };\r\n };\r\n\r\n if (plugin.actions) {\r\n const initialCreateActions = stateConfig.actions;\r\n stateConfig.actions = creators => {\r\n const initialActions = initialCreateActions(creators);\r\n const pluginActions = plugin.actions(creators);\r\n\r\n return {\r\n ...initialActions,\r\n ...pluginActions\r\n };\r\n };\r\n }\r\n\r\n const initialReducerCreator = stateConfig.createReducer;\r\n stateConfig.createReducer = types => {\r\n const pluginReducer = plugin.createReducer(types);\r\n const initialReducer = initialReducerCreator(types);\r\n\r\n return (state, action) => {\r\n initialReducer(state, action);\r\n pluginReducer(state, action);\r\n };\r\n };\r\n });\r\n\r\n return stateConfig;\r\n};\r\n\r\nexport default createStateModule;\r\n","import createStateModule from \"./createStateModule\";\r\n\r\n/**\r\n * Creates a state module for a basic listing\r\n * @param {string} stateNamespace - the namespace of the state module\r\n * @param {string} itemsPropertyName - the name of the data property that will be exposed by the module\r\n * @param {string} detailsPropertyName - the name of the detail data property that will be exposed by the module in the \"details\" object\r\n * @param {string} loadItemsMethodName - the name of the method for loading data that will be exposed by useStateModule - default value \"loadItems\"\r\n * @param {string} loadDetailMethodName - the name of the method for loading item detail data - default value \"loadDetail\"\r\n * @param {function} itemsDataMethod - the method that will be called to load the data\r\n * @param {function} detailDataMethod - the method that will be called to load the item details data\r\n * @example\r\n * // creating the state module\r\n * const employeeListStateModule = createListStateModule({\r\n * stateNamespace: \"employees\",\r\n * itemsPropertyName: \"employees\",\r\n * detailsPropertyName: \"employeeData\",\r\n * loadItemsMethodName: \"loadEmployees\",\r\n * itemsDataMethod: CompanyService.getCompanyEmployees,\r\n * detailDataMethod: CompanyService.getCompanyEmployeeDetail,\r\n * loadDetailMethodName: \"loadEmployeeDetails\"\r\n * });\r\n * // Using the state module - note that \"employees\" here is the itemsPropertyName parameter and \"loadEmployees\" is\r\n * // the loadItemsMethodName parameter\r\n * const {employees, isLoading, error, loadEmployees, loadEmployeeDetails, details} = useStateModule(employeeListStateModule);\r\n *\r\n * useEffect(() => {\r\n * loadEmployees();\r\n * }, [loadEmployees]);\r\n *\r\n * // Later in code\r\n *\r\n * loadEmployeeDetails(employeeId) // loads employee data into details.employeeData\r\n */\r\nconst createListStateModule = ({\r\n stateNamespace,\r\n itemsPropertyName,\r\n detailsPropertyName = \"data\",\r\n loadItemsMethodName = \"loadItems\",\r\n loadDetailMethodName = \"loadDetail\",\r\n deleteMethodName = \"deleteItem\",\r\n updateMethodName = \"updateItem\",\r\n createMethodName = \"createItem\",\r\n itemsDataMethod,\r\n detailDataMethod,\r\n deleteDataMethod,\r\n updateDataMethod,\r\n createDataMethod,\r\n defaultItemsData = [],\r\n plugins\r\n}) => {\r\n const initialState = {\r\n [itemsPropertyName]: defaultItemsData,\r\n isLoading: false,\r\n error: null,\r\n details: {\r\n isLoading: false,\r\n error: null,\r\n [detailsPropertyName]: {\r\n id: null\r\n }\r\n },\r\n deleteData: {\r\n isLoading: false,\r\n error: null,\r\n isCompleted: false\r\n },\r\n updateData: {\r\n isLoading: false,\r\n error: null,\r\n isCompleted: false\r\n },\r\n createData: {\r\n isLoading: false,\r\n error: null,\r\n isCompleted: false\r\n }\r\n };\r\n const listStateConfig = {\r\n stateNamespace: stateNamespace,\r\n types: [\r\n \"LOADING\",\r\n \"ERROR\",\r\n \"SUCCESS\",\r\n \"DETAIL_LOADING\",\r\n \"DETAIL_ERROR\",\r\n \"DETAIL_SUCCESS\",\r\n \"RESET_STATE\",\r\n \"DELETE_LOADING\",\r\n \"DELETE_ERROR\",\r\n \"DELETE_SUCCESS\",\r\n \"UPDATE_ITEM_LOADING\",\r\n \"UPDATE_ITEM_ERROR\",\r\n \"UPDATE_ITEM_SUCCESS\",\r\n \"CREATE_ITEM_LOADING\",\r\n \"CREATE_ITEM_ERROR\",\r\n \"CREATE_ITEM_SUCCESS\"\r\n ],\r\n initialState: initialState,\r\n createReducer: types => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.RESET_STATE:\r\n state.createData = initialState.createData;\r\n state.updateData = initialState.updateData;\r\n state.deleteData = initialState.deleteData;\r\n state.details = initialState.details;\r\n state[itemsPropertyName] = defaultItemsData;\r\n state.isLoading = false;\r\n state.error = null;\r\n break;\r\n case types.LOADING:\r\n //state[itemsPropertyName] = defaultItemsData;\r\n state.isLoading = true;\r\n state.error = null;\r\n break;\r\n case types.ERROR:\r\n state.isLoading = false;\r\n state.error = action.payload;\r\n break;\r\n case types.SUCCESS:\r\n state.isLoading = false;\r\n state.error = null;\r\n state[itemsPropertyName] = action.payload;\r\n break;\r\n case types.DETAIL_LOADING:\r\n state.details.isLoading = true;\r\n state.details.error = null;\r\n state.details[detailsPropertyName] = {\r\n [detailsPropertyName]: {\r\n id: null\r\n }\r\n };\r\n break;\r\n case types.DETAIL_ERROR:\r\n state.details.isLoading = false;\r\n state.details.error = action.payload;\r\n state.details[detailsPropertyName] = {\r\n isLoading: false,\r\n error: null,\r\n [detailsPropertyName]: {\r\n id: null\r\n }\r\n };\r\n break;\r\n case types.DETAIL_SUCCESS:\r\n state.details.isLoading = false;\r\n state.details.error = null;\r\n state.details[detailsPropertyName] = action.payload;\r\n break;\r\n case types.DELETE_LOADING:\r\n state.deleteData.isLoading = true;\r\n state.deleteData.error = null;\r\n state.deleteData.isCompleted = false;\r\n break;\r\n case types.DELETE_ERROR:\r\n state.deleteData.isLoading = false;\r\n state.deleteData.error = action.payload;\r\n state.deleteData.isCompleted = false;\r\n break;\r\n case types.DELETE_SUCCESS:\r\n state.deleteData.isLoading = false;\r\n state.deleteData.error = null;\r\n state.deleteData.isCompleted = true;\r\n break;\r\n case types.UPDATE_ITEM_LOADING:\r\n state.updateData.isLoading = true;\r\n state.updateData.error = null;\r\n state.updateData.isCompleted = false;\r\n break;\r\n case types.UPDATE_ITEM_ERROR:\r\n state.updateData.isLoading = false;\r\n state.updateData.error = action.payload;\r\n state.updateData.isCompleted = false;\r\n break;\r\n case types.UPDATE_ITEM_SUCCESS:\r\n state.updateData.isLoading = false;\r\n state.updateData.error = null;\r\n state.updateData.isCompleted = true;\r\n break;\r\n case types.CREATE_ITEM_LOADING:\r\n state.createData.isLoading = true;\r\n state.createData.error = null;\r\n state.createData.isCompleted = false;\r\n break;\r\n case types.CREATE_ITEM_ERROR:\r\n state.createData.isLoading = false;\r\n state.createData.error = action.payload;\r\n state.createData.isCompleted = false;\r\n break;\r\n case types.CREATE_ITEM_SUCCESS:\r\n state.createData.isLoading = false;\r\n state.createData.error = null;\r\n state.createData.isCompleted = true;\r\n break;\r\n default:\r\n return state;\r\n }\r\n };\r\n },\r\n creators: types => ({\r\n loading: () => ({ type: types.LOADING }),\r\n errorCreator: error => ({ type: types.ERROR, payload: error }),\r\n success: items => ({ type: types.SUCCESS, payload: items }),\r\n detailsLoading: () => ({ type: types.DETAIL_LOADING }),\r\n detailsError: error => ({\r\n type: types.DETAIL_ERROR,\r\n payload: error\r\n }),\r\n detailsSuccess: item => ({\r\n type: types.DETAIL_SUCCESS,\r\n payload: item\r\n }),\r\n resetState: () => ({ type: types.RESET_STATE }),\r\n deleteLoading: () => ({ type: types.DELETE_LOADING }),\r\n deleteError: error => ({\r\n type: types.DELETE_ERROR,\r\n payload: error\r\n }),\r\n deleteSuccess: () => ({ type: types.DELETE_SUCCESS }),\r\n updateLoading: () => ({ type: types.UPDATE_ITEM_LOADING }),\r\n updateError: err => ({\r\n type: types.UPDATE_ITEM_ERROR,\r\n payload: err\r\n }),\r\n updateSuccess: res => ({\r\n type: types.UPDATE_ITEM_SUCCESS,\r\n payload: res\r\n }),\r\n createLoading: () => ({ type: types.CREATE_ITEM_LOADING }),\r\n createError: err => ({\r\n type: types.CREATE_ITEM_ERROR,\r\n payload: err\r\n }),\r\n createSuccess: res => ({\r\n type: types.CREATE_ITEM_SUCCESS,\r\n payload: res\r\n })\r\n }),\r\n actions: creators => ({\r\n [loadItemsMethodName]: parameters => {\r\n return async dispatch => {\r\n dispatch(creators.loading());\r\n try {\r\n const dataItems = await itemsDataMethod(parameters);\r\n dispatch(creators.success(dataItems));\r\n } catch (e) {\r\n dispatch(creators.errorCreator(e));\r\n }\r\n };\r\n },\r\n [loadDetailMethodName]: params => {\r\n return async dispatch => {\r\n dispatch(creators.detailsLoading());\r\n try {\r\n const item = await detailDataMethod(params);\r\n dispatch(creators.detailsSuccess(item));\r\n } catch (e) {\r\n dispatch(creators.detailsError(e));\r\n }\r\n };\r\n },\r\n [deleteMethodName]: params => {\r\n return async dispatch => {\r\n dispatch(creators.deleteLoading());\r\n try {\r\n await deleteDataMethod(params);\r\n dispatch(creators.deleteSuccess());\r\n } catch (e) {\r\n dispatch(creators.deleteError(e));\r\n }\r\n };\r\n },\r\n [updateMethodName]: params => {\r\n return async dispatch => {\r\n dispatch(creators.updateLoading());\r\n try {\r\n const response = await updateDataMethod(params);\r\n dispatch(creators.updateSuccess(response));\r\n } catch (e) {\r\n dispatch(creators.updateError(e));\r\n }\r\n };\r\n },\r\n [createMethodName]: params => {\r\n return async dispatch => {\r\n dispatch(creators.createLoading());\r\n try {\r\n const response = await createDataMethod(params);\r\n dispatch(creators.createSuccess(response));\r\n } catch (e) {\r\n dispatch(creators.createError(e));\r\n }\r\n };\r\n }\r\n })\r\n };\r\n\r\n const listStateModule = createStateModule(listStateConfig, plugins);\r\n return listStateModule;\r\n};\r\n\r\n\r\n\r\nexport default createListStateModule;\r\n","import CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport createListStateModule from \"../../createListStateModule\";\r\n\r\nconst companiesListStateModule = createListStateModule({\r\n stateNamespace: \"companies\",\r\n itemsPropertyName: \"companies\",\r\n detailsPropertyName: \"companyData\",\r\n loadItemsMethodName: \"loadCompanies\",\r\n loadDetailMethodName: \"loadCompanyById\",\r\n itemsDataMethod: CompanyService.getCompaniesWithAdmin,\r\n detailDataMethod: async id => {\r\n return await CompanyService.getCompanyData(id);\r\n },\r\n deleteMethodName: \"deleteCompany\",\r\n deleteDataMethod: CompanyService.deleteCompany,\r\n defaultItemsData: {data:[]}\r\n});\r\n\r\nexport default companiesListStateModule;\r\n","import api, { apiResult } from \"../getAxios\";\r\nimport { config } from \"../Config/config.prod\";\r\n\r\nlet jwtDecode = require(\"jwt-decode\");\r\nlet _userRoles = [];\r\n\r\nconst compareArrays = (array1, array2) => {\r\n return (\r\n array1.length === array2.length &&\r\n array1.every(function (value, index) {\r\n return value === array2[index];\r\n })\r\n );\r\n};\r\n\r\nconst UserService = {\r\n getUserDetailsFromToken: () => {\r\n const token = localStorage.getItem(\"token\");\r\n if (token) {\r\n return jwtDecode(token);\r\n }\r\n },\r\n activate: (values) => {\r\n return api.post(config.apiUrl.activateUser, values);\r\n },\r\n getUserDetails: async () => {\r\n let res = await api.get(config.apiUrl.getUserData);\r\n if (res.data && res.data.data) {\r\n return res.data.data[0];\r\n }\r\n return {};\r\n },\r\n setUserDetails: (values) => {\r\n return api.post(config.apiUrl.setUserData, values);\r\n },\r\n setUserDetailsAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.setUserData, values));\r\n },\r\n getUserById: async (id) => {\r\n let res = await api.get(config.apiUrl.getUserById + \"?userId=\" + id);\r\n return res.data.data[0];\r\n },\r\n getAdministrators: async (filters = {}) => {\r\n return (await api.post(config.apiUrl.getAdministrators, filters)).data;\r\n },\r\n getNonAdministrators: async (filters = {}) => {\r\n return (await api.post(config.apiUrl.getNonAdministrators, filters))\r\n .data;\r\n },\r\n getIsFullyRegistered() {\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n if (userDetails && userDetails.CompanyId) {\r\n return userDetails.IsFullyRegistered === \"True\";\r\n } else if (userDetails && !userDetails.CompanyId) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n setUserCertificate: (formData) => {\r\n return api.post(config.apiUrl.setUserCertificate, formData);\r\n },\r\n setUserCertificateAsync: async (formData) => {\r\n return apiResult(api.post(config.apiUrl.setUserCertificate, formData));\r\n },\r\n getUserRoles: () => {\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n if (userDetails) {\r\n let roles = Array.isArray(userDetails)\r\n ? userDetails[\r\n \"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"\r\n ]\r\n : [\r\n userDetails[\r\n \"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"\r\n ],\r\n ];\r\n if (!compareArrays(_userRoles, roles)) _userRoles = roles;\r\n }\r\n return _userRoles;\r\n },\r\n isInRole: (role) => {\r\n return UserService.getUserRoles().indexOf(role) >= 0;\r\n },\r\n createAdministrator: (values) => {\r\n return api.post(config.apiUrl.createAdministrator, values);\r\n },\r\n createAdministratorAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.createAdministrator, values));\r\n },\r\n getAdminRoles: async () => {\r\n return (await api.get(config.apiUrl.getAdminRoles)).data.data;\r\n },\r\n getAdminRolesAsync: async () => {\r\n return apiResult(api.get(config.apiUrl.getAdminRoles));\r\n },\r\n setUserPicture: async (formData) => {\r\n return await api.post(config.apiUrl.setUserPicture, formData);\r\n },\r\n deleteUserPicture: async () => {\r\n return await api.post(config.apiUrl.deleteUserPicture);\r\n },\r\n setUserPassword: (password) => {\r\n return api.post(config.apiUrl.setUserPassword, password);\r\n },\r\n deleteUser: async (id) => {\r\n return (await api.post(config.apiUrl.deleteUser, { userId: id })).data\r\n .data;\r\n },\r\n deleteLicence: async (id) => {\r\n return (await api.post(config.apiUrl.deleteLicence, { id: id })).data\r\n .data;\r\n },\r\n setUserEnabled: async ({ id, enabled }) => {\r\n return await api.post(config.apiUrl.enableDisableUser, {\r\n enable: enabled,\r\n userId: id,\r\n });\r\n },\r\n setEmployeeEnabled: async ({ id, enabled }) => {\r\n return await api.post(config.apiUrl.enableDisableEmployee, {\r\n enable: enabled,\r\n userId: id,\r\n });\r\n },\r\n changeEmail: async ({ email, newEmail }) => {\r\n return await api.post(config.apiUrl.changeEmail, { email, newEmail });\r\n },\r\n confirmEmail: async ({ username, newEmail, token }) => {\r\n return await api.post(config.apiUrl.confirmEmail, {\r\n username,\r\n newEmail,\r\n token,\r\n });\r\n },\r\n getCompaniesByUserId: async () => {\r\n return (await api.get(config.apiUrl.getCompaniesByUserId)).data.data;\r\n },\r\n updateCompanyForCurrentUser: async (companyId) => {\r\n return await api.post(config.apiUrl.updateCompanyForCurrentUser, {\r\n companyId,\r\n });\r\n },\r\n\r\n isFGasLicenceMandatory: async (companyId) => {\r\n return await api.post(config.apiUrl.isFGasLicenceMandatory, {});\r\n },\r\n updateShowWarningsSetting: (value) => {\r\n return apiResult(\r\n api.post(config.apiUrl.updateShowWarningsSetting, {\r\n value: value,\r\n })\r\n );\r\n },\r\n};\r\n\r\nexport default UserService;\r\n","import UserService from \"../../../services/User/UserService\";\r\n\r\nconst adminRolesStatePlugin = {\r\n types: [\"ROLES_LOADING\", \"ROLES_SUCCESS\", \"ROLES_ERROR\"],\r\n initialState: {\r\n rolesData: {\r\n roles: [],\r\n isLoading: false,\r\n error: null\r\n }\r\n },\r\n creators: types => ({\r\n rolesLoading: () => ({ type: types.ROLES_LOADING }),\r\n rolesError: err => ({ type: types.ROLES_ERROR, payload: err }),\r\n rolesSuccess: res => ({\r\n type: types.ROLES_SUCCESS,\r\n payload: res\r\n })\r\n }),\r\n actions: creators => ({\r\n loadRoles: () => {\r\n return async dispatch => {\r\n dispatch(creators.rolesLoading());\r\n try {\r\n const response = await UserService.getAdminRoles();\r\n dispatch(creators.rolesSuccess(response));\r\n } catch (e) {\r\n dispatch(creators.rolesError(e));\r\n }\r\n };\r\n }\r\n }),\r\n createReducer : (types) => {\r\n return (state, action) => {\r\n switch(action.type){\r\n case types.ROLES_LOADING:\r\n state.rolesData.roles = [];\r\n state.rolesData.isLoading = true;\r\n state.rolesData.error = null;\r\n break;\r\n case types.ROLES_ERROR:\r\n state.rolesData.roles = [];\r\n state.rolesData.isLoading = false;\r\n state.rolesData.error = action.payload;\r\n break;\r\n case types.ROLES_SUCCESS:\r\n state.rolesData.roles = action.payload;\r\n state.rolesData.isLoading = false;\r\n state.rolesData.error = null;\r\n break;\r\n default:\r\n return state;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default adminRolesStatePlugin;\r\n","import UserService from \"../../../../services/User/UserService\";\r\nimport createListStateModule from \"../../createListStateModule\";\r\nimport adminRolesStatePlugin from \"../../plugins/adminRolesStatePlugin\";\r\n\r\nconst adminUsersListStateModule = createListStateModule({\r\n stateNamespace: \"adminusers\",\r\n itemsPropertyName: \"adminUsers\",\r\n detailsPropertyName: \"adminData\",\r\n loadItemsMethodName: \"loadAdminUsers\",\r\n loadDetailMethodName: \"loadUserById\",\r\n itemsDataMethod: UserService.getAdministrators,\r\n detailDataMethod: UserService.getUserById,\r\n deleteDataMethod: UserService.deleteUser,\r\n deleteMethodName: \"deleteUser\",\r\n createDataMethod: UserService.createAdministrator,\r\n createMethodName: \"createAdministrator\",\r\n defaultItemsData: {data: []},\r\n plugins: [\r\n adminRolesStatePlugin\r\n ]\r\n});\r\n\r\nexport default adminUsersListStateModule;\r\n","import UserService from \"../../../../services/User/UserService\";\r\nimport createListStateModule from \"../../createListStateModule\";\r\n\r\n\r\nconst usersListStateModule = createListStateModule({\r\n stateNamespace: \"users\",\r\n itemsPropertyName: \"users\",\r\n loadItemsMethodName: \"loadUsers\",\r\n loadDetailMethodName: \"loadUserById\",\r\n detailsPropertyName: \"userData\",\r\n detailDataMethod: UserService.getUserById,\r\n itemsDataMethod: UserService.getNonAdministrators,\r\n deleteMethodName: \"deleteUser\",\r\n defaultItemsData: {data: []},\r\n deleteDataMethod: UserService.deleteUser\r\n});\r\n\r\nexport default usersListStateModule;\r\n","import {config} from \"../Config/config.prod\";\r\nimport api, {apiResult} from \"../getAxios\";\r\n\r\nconst MarketplaceService = {\r\n getBuyingItemById: async (id) => {\r\n return (await api.post(config.apiUrl.getOffers, {ids: [id]})).data\r\n .data[0][0];\r\n },\r\n getBuyingItems: async (params) => {\r\n return (await api.post(config.apiUrl.getAllItemsForSale, params)).data;\r\n },\r\n addBid: async (params) => {\r\n return apiResult(\r\n api.post(config.apiUrl.addBid, {\r\n offeredPriceGradeA: params.gradeA,\r\n offeredPriceGradeB: params.gradeB,\r\n offeredPriceGradeC: params.gradeC,\r\n offerIds: params.offerIds,\r\n administrationCosts: params.administrationCosts || 0,\r\n transportationCosts: params.transportationCosts || 0,\r\n disposalBid: params.disposalBid ? params.disposalBid : false,\r\n cleaningBid: params.cleaningBid ? params.cleaningBid : false,\r\n })\r\n );\r\n },\r\n getBids: async (offerId) => {\r\n return (await api.post(config.apiUrl.getBids, {offerId: offerId}))\r\n .data.data;\r\n },\r\n acceptBid: async (bidId, paymentMethod, cleaningServiceType=null) => {\r\n return apiResult(api.post(config.apiUrl.acceptBid, {bidId: bidId, paymentMethod: paymentMethod, cleaningServiceType:cleaningServiceType}));\r\n },\r\n revokeBid: async (bidId) => {\r\n return apiResult(api.post(config.apiUrl.revokeBid, {bidId: bidId}));\r\n },\r\n rejectBid: async (bidId, rejectionReason) => {\r\n return apiResult(api.post(config.apiUrl.rejectBid, { bidId, rejectionReason}));\r\n },\r\n payForBid: async (bidId) => {\r\n return apiResult(api.post(config.apiUrl.payForBid, {bidId: bidId}));\r\n },\r\n getOffersWithMyBids: async (params) => {\r\n return (await api.post(config.apiUrl.getOffersWithMyBids, params)).data;\r\n },\r\n getMyBids: async (params) => {\r\n return (await api.post(config.apiUrl.getMyBids, params)).data.data;\r\n },\r\n doQualityTest: async (offerIds) => {\r\n return (\r\n await api.post(config.apiUrl.qualityTest, {offerIds: offerIds})\r\n ).data.data;\r\n },\r\n shipToBuyer: async (tagIds) => {\r\n return apiResult(api.post(config.apiUrl.shipToBuyer, {tagIds}));\r\n },\r\n offerSold: async (offerIds) => {\r\n return apiResult(api.post(config.apiUrl.offerSold, {offerIds}));\r\n },\r\n offerSoldByBuyer: async (offerIds) => {\r\n return apiResult(\r\n api.post(config.apiUrl.offerSoldByBuyer, {offerIds})\r\n );\r\n },\r\n addBuyerAnalysis: async (data) => {\r\n return apiResult(api.post(config.apiUrl.addBuyerAnalysis, data));\r\n },\r\n rejectBidDueToExpiration: async (bidId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.rejectBidDueToExpiration, bidId)\r\n );\r\n },\r\n dispute: async (params) => {\r\n return apiResult(api.post(config.apiUrl.dispute, params));\r\n },\r\n getDisputes: async (params) => {\r\n return apiResult(api.post(config.apiUrl.getDisputes, params));\r\n },\r\n getDisputeDetails: async (id) => {\r\n return apiResult(api.post(config.apiUrl.getDisputeDetails, {id}));\r\n },\r\n addDisputeSettle: async (values) => {\r\n return apiResult(api.post(config.apiUrl.addDisputeDetails, values));\r\n },\r\n finishDispute: async (values) => {\r\n return apiResult(api.post(config.apiUrl.finishDispute, values));\r\n },\r\n getOffersForCollection: async () => {\r\n return (await api.post(config.apiUrl.getOffersForCollection, {})).data\r\n .data;\r\n },\r\n getOffersForCollectionAsync: async () => {\r\n return apiResult(api.post(config.apiUrl.getOffersForCollection, {}));\r\n },\r\n payAClass: async (bidId, paymentMethod, isCleaning=false) => {\r\n return apiResult(api.post(config.apiUrl.payAClass, {bidId: bidId, paymentMethod: paymentMethod, isCleaning:isCleaning}));\r\n },\r\n getAnalysesZip: async (offerId) => {\r\n return apiResult(api.get(config.apiUrl.getAnalysesZip+\"/\"+offerId));\r\n },\r\n addReclaimedOffer: async (props) => {\r\n return apiResult(\r\n api.post(config.apiUrl.addReclaimOffer, props)\r\n );\r\n },\r\n getDistributorReclaimedOffers: async (props) => {\r\n return apiResult(\r\n api.post(config.apiUrl.getDistributorReclaimedOffers, props)\r\n );\r\n },\r\n getInstallationCompanyReclaimedOffers: async (props) => {\r\n return apiResult(\r\n api.post(config.apiUrl.getInstallationCompanyReclaimedOffers, props)\r\n );\r\n },\r\n unpublishReclaimedOffer: async (offerIds) => {\r\n return apiResult(\r\n api.post(config.apiUrl.unpublishReclaimedOffer, offerIds)\r\n );\r\n },\r\n getReclaimedOfferById: async (offerId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.getReclaimedOfferById, offerId)\r\n );\r\n },\r\n acceptReclaimOffer: async (offerId, paymentMethod) => {\r\n return apiResult(\r\n api.post(config.apiUrl.acceptReclaimOffer, {offerIds:[offerId], paymentMethod})\r\n );\r\n },\r\n cancelReclaimedOffer: async (offerId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.cancelReclaimedOffer, {offerIds:[offerId]})\r\n );\r\n },\r\n};\r\n\r\nexport default MarketplaceService;\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, { apiResult } from \"../getAxios\";\r\n\r\nconst StockService = {\r\n getRefrigerantTypes: async () => {\r\n return (await api.get(config.apiUrl.getRefrigerantTypes)).data.data;\r\n },\r\n getRefrigerantTypesAsync: async () => {\r\n return apiResult(api.get(config.apiUrl.getRefrigerantTypes));\r\n },\r\n getStockItems: async (params) => {\r\n return (await api.post(config.apiUrl.getMyCompanyStock, params)).data;\r\n },\r\n getStockItem: async (id) => {\r\n return (await api.get(\"/Stock/\" + id)).data.data[0];\r\n },\r\n getStockItemAsync: async (id) => {\r\n return apiResult(api.get(\"/Stock/\" + id));\r\n },\r\n addToMyStock: async (values) => {\r\n return apiResult(api.post(config.apiUrl.addToMyStock, values));\r\n },\r\n analyzeImage: async (formData) => {\r\n return (await api.post(config.apiUrl.analyzeImage, formData)).data;\r\n },\r\n moveToCompanyStock: async (tagId) => {\r\n return (\r\n await api.post(config.apiUrl.updateLocationStatus, {\r\n tagId: tagId,\r\n locationStatus: 1,\r\n })\r\n ).data.data;\r\n },\r\n moveToCompanyStockAsync: async (tagId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.updateLocationStatus, {\r\n tagId: tagId,\r\n locationStatus: 1,\r\n })\r\n );\r\n },\r\n moveToInstallerStock: async (tagId, userId) => {\r\n let res = (\r\n await api.post(config.apiUrl.updateLocationStatus, {\r\n tagId: tagId,\r\n locationStatus: 0,\r\n userId: userId,\r\n })\r\n ).data.data;\r\n return res;\r\n },\r\n moveToInstallerStockAsync: async (tagId, userId) => {\r\n let res = apiResult(\r\n api.post(config.apiUrl.updateLocationStatus, {\r\n tagId: tagId,\r\n locationStatus: 0,\r\n userId: userId,\r\n })\r\n );\r\n return res;\r\n },\r\n publishToMarketplace: async (skuIds, description = \"\", isCleaning=0) => {\r\n return apiResult(\r\n api.post(config.apiUrl.publishSkus, {\r\n skuIds: skuIds,\r\n marketplaceStatus: 1,\r\n description: description,\r\n isCleaning:isCleaning\r\n })\r\n );\r\n },\r\n unpublishFromMarketplace: async (params) => {\r\n return apiResult(\r\n api.post(config.apiUrl.unpublishFromMarketplace, params)\r\n );\r\n },\r\n sendToRecycling: async (tagId) => {\r\n return apiResult(api.post(config.apiUrl.sendToRecycling, { tagId }));\r\n },\r\n emptyCylinder: async (tagId) => {\r\n return apiResult(api.post(config.apiUrl.emptyCylinder, { tagId }));\r\n },\r\n collectEmptyCylinder: async (tagId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.collectEmptyCylinder, { tagId })\r\n );\r\n },\r\n getCleaningListing: async ({ isInstaller, options = {} }) => {\r\n return apiResult(\r\n api.post(\r\n isInstaller\r\n ? config.apiUrl.cleaningServiceListingInstaller\r\n : config.apiUrl.cleaningServiceListing,\r\n options\r\n )\r\n );\r\n },\r\n getCleaningListingData: async ({ isInstaller, options = {} }) => {\r\n const res = await apiResult(\r\n api.post(\r\n isInstaller\r\n ? config.apiUrl.cleaningServiceListingInstaller\r\n : config.apiUrl.cleaningServiceListing,\r\n options\r\n )\r\n );\r\n return res.data;\r\n },\r\n};\r\n\r\nexport default StockService;\r\n","import StockService from \"../../../services/Stock/StockService\";\r\n\r\nconst gasTypesStatePlugin = {\r\n types: [\"GASTYPES_LOADING\", \"GASTYPES_SUCCESS\", \"GASTYPES_ERROR\"],\r\n initialState: {\r\n gasTypesData: {\r\n gasTypes: [],\r\n isLoading: false,\r\n error: null\r\n }\r\n },\r\n createReducer: types => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.GASTYPES_LOADING:\r\n state.gasTypesData.gasTypes = [];\r\n state.gasTypesData.isLoading = true;\r\n state.gasTypesData.error = null;\r\n break;\r\n case types.GASTYPES_ERROR:\r\n state.gasTypesData.gasTypes = [];\r\n state.gasTypesData.isLoading = false;\r\n state.gasTypesData.error = action.payload;\r\n break;\r\n case types.GASTYPES_SUCCESS:\r\n state.gasTypesData.gasTypes = action.payload;\r\n state.gasTypesData.isLoading = false;\r\n state.gasTypesData.error = null;\r\n break;\r\n default:\r\n return state;\r\n }\r\n };\r\n },\r\n creators: (types) => ({\r\n gasTypesLoading: () => ({ type: types.GASTYPES_LOADING }),\r\n gasTypesError: err => ({ type: types.GASTYPES_ERROR, payload: err }),\r\n gasTypesSuccess: res => ({\r\n type: types.GASTYPES_SUCCESS,\r\n payload: res\r\n })\r\n }),\r\n actions: (creators)=> ({\r\n loadGasTypes: () => {\r\n return async dispatch => {\r\n dispatch(creators.gasTypesLoading());\r\n try {\r\n const response = await StockService.getRefrigerantTypes();\r\n dispatch(creators.gasTypesSuccess(response));\r\n } catch (e) {\r\n dispatch(creators.gasTypesError(e));\r\n }\r\n }\r\n }\r\n })\r\n};\r\n\r\nexport default gasTypesStatePlugin;\r\n","import StockService from \"../../../services/Stock/StockService\";\r\n\r\nconst unpublishOfferPlugin = {\r\n types: [\"UNPUBLISH_LOADING\", \"UNPUBLISH_ERROR\", \"UNPUBLISH_SUCCESS\"],\r\n initialState: {\r\n unpublishData: {\r\n isLoading: false,\r\n error: null,\r\n data: null\r\n }\r\n },\r\n creators: types => ({\r\n unpublishLoading: () => ({ type: types.UNPUBLISH_LOADING }),\r\n unpublishError: err => ({ type: types.UNPUBLISH_ERROR, payload: err }),\r\n unpublishSuccess: data => ({\r\n type: types.UNPUBLISH_SUCCESS,\r\n payload: data\r\n })\r\n }),\r\n actions: creators => ({\r\n unpublishOffers: offerIds => {\r\n return async dispatch => {\r\n dispatch(creators.unpublishLoading());\r\n try {\r\n const data = await StockService.unpublishFromMarketplace({\r\n offerIds: offerIds\r\n });\r\n dispatch(creators.unpublishSuccess(data));\r\n } catch (err) {\r\n dispatch(creators.unpublishError(err));\r\n }\r\n };\r\n }\r\n }),\r\n createReducer: types => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.UNPUBLISH_LOADING:\r\n state.unpublishData.isLoading = true;\r\n state.unpublishData.error = null;\r\n state.unpublishData.data = null;\r\n break;\r\n case types.UNPUBLISH_ERROR:\r\n state.unpublishData.isLoading = false;\r\n state.unpublishData.error = action.payload;\r\n state.unpublishData.data = null;\r\n break;\r\n case types.UNPUBLISH_SUCCESS:\r\n state.unpublishData.isLoading = false;\r\n state.unpublishData.error = null;\r\n state.unpublishData.data = action.payload;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n }\r\n};\r\n\r\nexport default unpublishOfferPlugin;\r\n","import MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\nimport unpublishOfferPlugin from \"../sell-refrigerant/sellRefrigerantListingPlugins\";\r\n\r\nconst marketplaceListingStateModule = createListStateModule({\r\n stateNamespace: \"marketplace\",\r\n itemsPropertyName: \"buyingItems\",\r\n loadItemsMethodName: \"loadBuyingItems\",\r\n itemsDataMethod: MarketplaceService.getBuyingItems,\r\n loadDetailMethodName: \"loadBuyingItemsById\",\r\n detailDataMethod: MarketplaceService.getBuyingItemById,\r\n detailsPropertyName: \"buyingItemData\",\r\n updateMethodName: \"updateBuyingItem\",\r\n updateDataMethod: () => {},\r\n createMethodName: \"createBuyingItem\",\r\n createDataMethod: () => {},\r\n defaultItemsData: {data: []},\r\n plugins: [gasTypesStatePlugin, unpublishOfferPlugin]\r\n});\r\n\r\nexport default marketplaceListingStateModule;\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, {apiResult} from '../getAxios';\r\n\r\nconst SellRefrigerantService = {\r\n getSellingItemById: async (id) => {\r\n return (await api.post(config.apiUrl.getOffers, {ids :[id]})).data.data[0][0];\r\n },\r\n getSellingItemByIdAsync: async (id) => {\r\n return apiResult(api.post(config.apiUrl.getOffers, {ids :[id]}));\r\n },\r\n getSellingItems: async (params) => {\r\n const res = (await api.post(config.apiUrl.getMySellingItems, params)).data;\r\n return res;\r\n }\r\n};\r\n\r\nexport default SellRefrigerantService;\r\n","import MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport SellRefrigerantService from \"../../../services/SellRefrigerant/SellRefrigerantService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\n\r\nconst myBidsListingStateModule = createListStateModule({\r\n stateNamespace: \"mybids\",\r\n itemsPropertyName: \"myBids\",\r\n loadItemsMethodName: \"loadMyBids\",\r\n itemsDataMethod: MarketplaceService.getOffersWithMyBids,\r\n loadDetailMethodName: \"loadBidById\",\r\n detailDataMethod: SellRefrigerantService.getSellingItemById,\r\n detailsPropertyName: \"bidDetails\",\r\n updateMethodName: \"updateBid\",\r\n updateDataMethod: () => {},\r\n createMethodName: \"createBid\",\r\n createDataMethod: () => {},\r\n defaultItemsData: {data: []},\r\n plugins: [gasTypesStatePlugin]\r\n});\r\n\r\nexport default myBidsListingStateModule;\r\n","import api, {apiResult} from \"../getAxios\";\r\nimport {config} from \"../Config/config.prod\";\r\n\r\nconst ClientsService = {\r\n getClients: async (filters = {}) => {\r\n let res = await api.post(config.apiUrl.getClients, filters);\r\n return res.data;\r\n },\r\n getClientById: async (clientId) => {\r\n let res = await api.get(config.apiUrl.getClientById + \"/\" + clientId);\r\n return res.data.data[0];\r\n },\r\n getClientByIdAsync: async (clientId) => {\r\n return apiResult(api.get(config.apiUrl.getClientById + \"/\" + clientId));\r\n },\r\n deleteClient: async (clientId) => {\r\n let res = (await api.post(config.apiUrl.deleteClient, {clientId: clientId}));\r\n return res;\r\n },\r\n updateClient: (values) => {\r\n return api.post(config.apiUrl.updateClient, values);\r\n },\r\n updateClientAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.updateClient, values));\r\n },\r\n createClient: (values) => {\r\n let res = api.post(config.apiUrl.setClient, values);\r\n return res;\r\n },\r\n createClientAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.setClient, values));\r\n },\r\n getClientsLocations: async (filterState = {}) => {\r\n const data = (\r\n await api.post(config.apiUrl.getClientLocations, filterState)\r\n ).data;\r\n\r\n return data;\r\n },\r\n createClientLocationAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.addClientLocation, values));\r\n },\r\n updateClientLocationAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.updateClientLocation, values));\r\n },\r\n getClientLocationByIdAsync: async (locationId) => {\r\n return apiResult(\r\n api.get(config.apiUrl.getClientLocationById + \"/\" + locationId)\r\n );\r\n },\r\n getLocationById: async (locationId) => {\r\n let res = await api.get(config.apiUrl.getClientLocationById + \"/\" + locationId)\r\n return res.data.data[0];\r\n },\r\n getUnitManufacturersAsync: async (locationId) => {\r\n return apiResult(\r\n api.get(config.apiUrl.getUnitManufacturers)\r\n );\r\n },\r\n deleteClientLocation: async (locationId) => {\r\n let res = (await api.post(config.apiUrl.deleteClientLocation, {locationId: locationId}))\r\n return res;\r\n },\r\n getUnitById: async (unitId) => {\r\n let res = await api.get(config.apiUrl.getUnitById + \"/\" + unitId);\r\n return res.data.data[0];\r\n },\r\n deleteClientLocationUnit: async (unitId) => {\r\n let res = (await api.post(config.apiUrl.deleteUnit, {unitId: unitId}));\r\n return res;\r\n },\r\n deleteClientLocationUnitAsync: async (unitId) => {\r\n return apiResult ( api.post(config.apiUrl.deleteUnit, {unitId: unitId}));\r\n },\r\n createClientLocationUnit: async (values) => {\r\n return apiResult(api.post(config.apiUrl.addUnit, values));\r\n },\r\n getUnits: async (filterState = {}) => {\r\n return (await api.post(config.apiUrl.getUnits, filterState)).data;\r\n },\r\n getUnitsAsync: async (filterState = {}) => {\r\n return apiResult(api.post(config.apiUrl.getUnits, filterState));\r\n },\r\n addUnit: async (values) => {\r\n return apiResult(api.post(config.apiUrl.addUnit, values));\r\n },\r\n updateUnitAsync: async (values) => {\r\n return apiResult(api.post(config.apiUrl.updateUnit, values));\r\n },\r\n getUnitByIdAsync: async (unitId) => {\r\n return apiResult(api.get(config.apiUrl.getUnitById + \"/\" + unitId));\r\n },\r\n};\r\n\r\nexport default ClientsService;\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, { apiResult } from \"../getAxios\";\r\n\r\nconst CountryService = {\r\n getCountries: async () => {\r\n const res = await api.get(config.apiUrl.getCountries);\r\n return res.data.data;\r\n },\r\n\r\n getCountriesAsync: async () => {\r\n return apiResult(api.get(config.apiUrl.getCountries));\r\n },\r\n\r\n getCountryNames: async (filter) => {\r\n if (!filter || filter.length < 3) return [];\r\n return apiResult(api.post(config.apiUrl.getCountryNames, { filter }));\r\n }\r\n};\r\n\r\nexport default CountryService;\r\n","import CountryService from \"../../../services/User/CountryService\";\r\n\r\nconst countriesStatePlugin = {\r\n types: [\"COUNTRY_LOADING\", \"COUNTRY_SUCCESS\", \"COUNTRY_ERROR\"],\r\n initialState: {\r\n countryData: {\r\n countries: [],\r\n isLoading: false,\r\n error: null\r\n }\r\n },\r\n createReducer: types => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.COUNTRY_LOADING:\r\n state.countryData.countries = [];\r\n state.countryData.isLoading = true;\r\n state.countryData.error = null;\r\n break;\r\n case types.COUNTRY_ERROR:\r\n state.countryData.countries = [];\r\n state.countryData.isLoading = false;\r\n state.countryData.error = action.payload;\r\n break;\r\n case types.COUNTRY_SUCCESS:\r\n state.countryData.countries = action.payload;\r\n state.countryData.isLoading = false;\r\n state.countryData.error = null;\r\n break;\r\n default:\r\n return state;\r\n }\r\n };\r\n },\r\n creators: (types) => ({\r\n countryLoading: () => ({ type: types.COUNTRY_LOADING }),\r\n countryError: err => ({ type: types.COUNTRY_ERROR, payload: err }),\r\n countrySuccess: res => ({\r\n type: types.COUNTRY_SUCCESS,\r\n payload: res\r\n })\r\n }),\r\n actions: (creators)=> ({\r\n loadCountries: () => {\r\n return async dispatch => {\r\n dispatch(creators.countryLoading());\r\n try {\r\n const response = await CountryService.getCountries();\r\n dispatch(creators.countrySuccess(response));\r\n } catch (e) {\r\n dispatch(creators.countryError(e));\r\n }\r\n }\r\n }\r\n })\r\n};\r\n\r\nexport default countriesStatePlugin;\r\n","import ClientsService from \"../../../services/Clients/ClientsService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport countriesStatePlugin from \"../plugins/countriesStatePlugin\";\r\n\r\nconst clientsListStateModule = createListStateModule({\r\n stateNamespace: \"clients\",\r\n itemsPropertyName: \"clients\",\r\n loadItemsMethodName: \"loadClients\",\r\n itemsDataMethod: ClientsService.getClients,\r\n loadDetailMethodName: \"loadClientById\",\r\n detailDataMethod: async (id) => {\r\n const clients = await ClientsService.getClientById(id);\r\n return clients\r\n },\r\n detailsPropertyName: \"clientsData\",\r\n deleteDataMethod: ClientsService.deleteClient,\r\n deleteMethodName: \"deleteClient\",\r\n updateDataMethod: ClientsService.updateClient,\r\n updateMethodName: \"updateClient\",\r\n createDataMethod: ClientsService.createClient,\r\n createMethodName: \"createClientItem\",\r\n defaultItemsData: {data: []},\r\n plugins: [countriesStatePlugin]\r\n});\r\n\r\nexport default clientsListStateModule;\r\n","import ClientsService from \"../../../services/Clients/ClientsService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport countriesStatePlugin from \"../plugins/countriesStatePlugin\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\n\r\nconst clientsLocationListStateModule = createListStateModule({\r\n stateNamespace: \"clientsLocations\",\r\n itemsPropertyName: \"clientsLocations\",\r\n loadItemsMethodName: \"loadClientsLocations\",\r\n itemsDataMethod: async (filterState) => {\r\n const locations = await ClientsService.getClientsLocations(filterState);\r\n return locations;\r\n },\r\n loadDetailMethodName: \"loadClientsLocationsById\",\r\n detailDataMethod: async (id) => {\r\n const clientsLocation = await ClientsService.getClientLocationByIdAsync(id);\r\n return clientsLocation\r\n },\r\n detailsPropertyName: \"clientsLocationData\",\r\n deleteMethodName: \"deleteClientLocation\",\r\n deleteDataMethod: ClientsService.deleteClientLocation,\r\n updateMethodName: \"updateClientLocation\",\r\n updateDataMethod: ClientsService.updateClientLocation,\r\n createDataMethod: \"createClientLocationItem\",\r\n createMethodName: ClientsService.createClientLocation,\r\n defaultItemsData: {data: []},\r\n plugins: [countriesStatePlugin, gasTypesStatePlugin]\r\n});\r\n\r\nexport default clientsLocationListStateModule;\r\n","import ClientsService from \"../../../services/Clients/ClientsService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\n\r\nconst clientsUnitsListStateModule = createListStateModule({\r\n stateNamespace: \"clientsLocationUnits\",\r\n itemsPropertyName: \"clientsLocationUnits\",\r\n loadItemsMethodName: \"loadClientsLocationUnits\",\r\n itemsDataMethod: ClientsService.getUnits,\r\n loadDetailMethodName: \"loadClientsLocationsUnitsById\",\r\n detailDataMethod: async (id) => {\r\n const clientUnits = await ClientsService.getUnitById(id);\r\n return clientUnits\r\n },\r\n detailsPropertyName: \"clientsLocationUnitsData\",\r\n deleteMethodName: \"deleteClientLocationUnit\",\r\n deleteDataMethod: ClientsService.deleteClientLocationUnit,\r\n updateMethodName: \"updateClientLocationUnits\",\r\n updateDataMethod: ClientsService.updateClientLocationUnit,\r\n createDataMethod: \"createClientLocationUnitsItem\",\r\n createMethodName: ClientsService.createClientLocationUnit,\r\n defaultItemsData: {data: []},\r\n plugins: [gasTypesStatePlugin]\r\n});\r\n\r\nexport default clientsUnitsListStateModule;\r\n","import api, { apiResult } from \"../getAxios\";\r\nimport { config } from \"../Config/config.prod\";\r\n\r\nconst RegistrationService = {\r\n register: (formData) => {\r\n return api.post(config.apiUrl.registration, formData);\r\n },\r\n registerAsync: (formData) => {\r\n return apiResult(api.post(config.apiUrl.registration, formData));\r\n },\r\n resendConfirmation: async (email) => {\r\n return (await api.post(config.apiUrl.resendConfirmation, { email: email })).data;\r\n },\r\n resendConfirmationAsync: async (email) => {\r\n return apiResult(api.post(config.apiUrl.resendConfirmation, { email: email }));\r\n },\r\n verifyEmail: async (username, token) => {\r\n return (await api.post(config.apiUrl.confirmRegistration, { username, token })).data;\r\n },\r\n verifyEmailAsync: async (username, token) => {\r\n return apiResult(api.post(config.apiUrl.confirmRegistration, { username, token }));\r\n },\r\n setPartnerStatus: async (data) => {\r\n return apiResult(api.post(config.apiUrl.setPartnerStatus, data));\r\n },\r\n getPartnerStatus: (companyId) => {\r\n return apiResult(api.get(config.apiUrl.getPartnerStatus+\"/\"+companyId));\r\n },\r\n};\r\n\r\nexport default RegistrationService;\r\n","import CompanyService from \"../../../services/Company/CompanyService\";\r\nimport RegistrationService from \"../../../services/Registration/RegistrationService\";\r\nimport createStateModule from \"../createStateModule\";\r\nimport countriesStatePlugin from \"../plugins/countriesStatePlugin\";\r\n\r\nconst companyStateModule = {\r\n stateNamespace: 'company',\r\n types: [\r\n \"LOADING\",\r\n \"ERROR\",\r\n \"SUCCESS\",\r\n \"UPDATE_LOADING\",\r\n \"UPDATE_ERROR\",\r\n \"UPDATE_SUCCESS\",\r\n \"RESET_STATE\",\r\n \"RESEND_CONFIRMATION_LOADING\",\r\n \"RESEND_CONFIRMATION_SUCCESS\",\r\n \"RESEND_CONFIRMATION_ERROR\"\r\n ],\r\n initialState: {\r\n companyData: {\r\n isLoading: false,\r\n error: null,\r\n data: {\r\n id: null\r\n }\r\n },\r\n updateCompanyData: {\r\n isLoading: false,\r\n error: null,\r\n isCompleted: false,\r\n response: null\r\n },\r\n resendConfirmation: {\r\n isLoading: false,\r\n data: null,\r\n error: null,\r\n isCompleted: false\r\n }\r\n },\r\n createReducer: types => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.LOADING:\r\n state.companyData.isLoading = true;\r\n state.companyData.error = false;\r\n state.companyData.data = [];\r\n break;\r\n case types.ERROR:\r\n state.companyData.isLoading = false;\r\n state.companyData.error = action.payload;\r\n break;\r\n case types.SUCCESS:\r\n state.companyData.isLoading = false;\r\n state.companyData.error = false;\r\n state.companyData.data = action.payload;\r\n break;\r\n case types.UPDATE_LOADING:\r\n state.updateCompanyData.isLoading = true;\r\n state.updateCompanyData.error = null;\r\n state.updateCompanyData.isCompleted = false;\r\n state.updateCompanyData.response = null;\r\n break;\r\n case types.UPDATE_ERROR:\r\n state.updateCompanyData.isLoading = false;\r\n state.updateCompanyData.error = action.payload;\r\n state.updateCompanyData.isCompleted = false;\r\n state.updateCompanyData.response = null;\r\n break;\r\n case types.UPDATE_SUCCESS:\r\n state.updateCompanyData.isLoading = false;\r\n state.updateCompanyData.error = null;\r\n state.updateCompanyData.isCompleted = true;\r\n state.updateCompanyData.response = action.payload;\r\n break;\r\n case types.RESET_STATE:\r\n state.updateCompanyData = {\r\n isLoading: false,\r\n error: null,\r\n isCompleted: false,\r\n response: null\r\n };\r\n state.companyData = {\r\n isLoading: false,\r\n error: null,\r\n data: {\r\n id: null\r\n }\r\n };\r\n break;\r\n case types.RESEND_CONFIRMATION_LOADING:\r\n state.resendConfirmation.isLoading = true;\r\n state.resendConfirmation.data = null;\r\n state.resendConfirmation.error = null;\r\n state.resendConfirmation.isCompleted = false;\r\n break;\r\n case types.RESEND_CONFIRMATION_SUCCESS:\r\n state.resendConfirmation.isLoading = false;\r\n state.resendConfirmation.data = action.payload;\r\n state.resendConfirmation.error = null;\r\n state.resendConfirmation.isCompleted = true;\r\n break;\r\n case types.RESEND_CONFIRMATION_ERROR:\r\n state.resendConfirmation.isLoading = false;\r\n state.resendConfirmation.data = null;\r\n state.resendConfirmation.error = action.payload;\r\n state.resendConfirmation.isCompleted = false;\r\n break;\r\n default:\r\n return state;\r\n }\r\n }\r\n },\r\n creators: types => ({\r\n loading: () => ({type: types.LOADING}),\r\n error: error => ({type: types.ERROR, payload: error}),\r\n success: company => ({type: types.SUCCESS, payload: company}),\r\n updateLoading: () => ({type: types.UPDATE_LOADING}),\r\n updateError: error => ({type: types.UPDATE_ERROR, payload: error}),\r\n updateSuccess: res => ({type: types.UPDATE_SUCCESS, payload: res}),\r\n resetState: () => ({type: types.RESET_STATE}),\r\n resendConfirmationLoading: () => ({type: types.RESEND_CONFIRMATION_LOADING}),\r\n resendConfirmationError: err => ({type: types.RESEND_CONFIRMATION_ERROR, payload: err}),\r\n resendConfirmationSuccess: res => ({type: types.RESEND_CONFIRMATION_SUCCESS, payload: res})\r\n }),\r\n actions: creators => ({\r\n loadCompany: companyId => {\r\n return async function (dispatch) {\r\n dispatch(creators.loading());\r\n try {\r\n const res = await CompanyService.getCompanyData(companyId);\r\n dispatch(creators.success(res));\r\n } catch (e) {\r\n dispatch(creators.error())\r\n }\r\n }\r\n },\r\n updateCompany: params => {\r\n return async dispatch => {\r\n dispatch(creators.updateLoading());\r\n try {\r\n const res = CompanyService.updateCompanyProfile(params);\r\n dispatch(creators.updateSuccess(res));\r\n } catch (e) {\r\n dispatch(creators.updateError(e));\r\n }\r\n }\r\n },\r\n resendValidationEmail: userEmail => {\r\n return async function (dispatch) {\r\n dispatch(creators.resendConfirmationLoading());\r\n try {\r\n const res = await RegistrationService.resendConfirmation(userEmail);\r\n dispatch(creators.resendConfirmationSuccess(res));\r\n } catch (err) {\r\n dispatch(creators.resendConfirmationError(err));\r\n }\r\n }\r\n\r\n }\r\n })\r\n};\r\n\r\nexport default createStateModule(companyStateModule, [countriesStatePlugin]);\r\n","\r\nimport CompanyService from \"../../../services/Company/CompanyService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\n\r\nconst cylinderListStateModule = createListStateModule({\r\n stateNamespace: \"cylinder\",\r\n itemsPropertyName: \"cylinders\",\r\n loadItemsMethodName: \"loadCylinders\",\r\n itemsDataMethod: CompanyService.getCompanyCylinders,\r\n loadDetailMethodName: \"loadCylinderById\",\r\n detailDataMethod: async (id) => {\r\n const cylinder = await CompanyService.getCompanyCylinderById(id);\r\n return cylinder.data[0]\r\n },\r\n detailsPropertyName: \"cylinderData\",\r\n deleteMethodName: 'deleteCylinder',\r\n deleteDataMethod: CompanyService.deleteCylinder,\r\n updateMethodName: 'updateCylinder',\r\n updateDataMethod: CompanyService.updateCylinder,\r\n createMethodName: 'createCylinderItem',\r\n defaultItemsData: {data: []},\r\n createDataMethod: CompanyService.createCompanyCylinder,\r\n plugins: [gasTypesStatePlugin]\r\n});\r\n\r\nexport default cylinderListStateModule;\r\n","import CompanyService from \"../../../services/Company/CompanyService\";\r\n\r\nconst companyRolesStatePlugin = {\r\n types: [\"ROLES_LOADING\", \"ROLES_SUCCESS\", \"ROLES_ERROR\"],\r\n initialState: {\r\n rolesData: {\r\n roles: [],\r\n isLoading: false,\r\n error: null\r\n }\r\n },\r\n creators: types => ({\r\n rolesLoading: () => ({ type: types.ROLES_LOADING }),\r\n rolesError: err => ({ type: types.ROLES_ERROR, payload: err }),\r\n rolesSuccess: res => ({\r\n type: types.ROLES_SUCCESS,\r\n payload: res\r\n })\r\n }),\r\n actions: creators => ({\r\n loadRoles: () => {\r\n return async dispatch => {\r\n dispatch(creators.rolesLoading());\r\n try {\r\n const response = await CompanyService.getCompanyRoles();\r\n dispatch(creators.rolesSuccess(response));\r\n } catch (e) {\r\n dispatch(creators.rolesError(e));\r\n }\r\n };\r\n }\r\n }),\r\n createReducer : (types) => {\r\n return (state, action) => {\r\n switch(action.type){\r\n case types.ROLES_LOADING:\r\n state.rolesData.roles = [];\r\n state.rolesData.isLoading = true;\r\n state.rolesData.error = null;\r\n break;\r\n case types.ROLES_ERROR:\r\n state.rolesData.roles = [];\r\n state.rolesData.isLoading = false;\r\n state.rolesData.error = action.payload;\r\n break;\r\n case types.ROLES_SUCCESS:\r\n state.rolesData.roles = action.payload;\r\n state.rolesData.isLoading = false;\r\n state.rolesData.error = null;\r\n break;\r\n default:\r\n return state;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default companyRolesStatePlugin;\r\n","import CompanyService from \"../../../services/Company/CompanyService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport companyRolesStatePlugin from \"../plugins/companyRolesStatePlugin\";\r\n\r\nconst employeeListStateModule = createListStateModule({\r\n stateNamespace: \"employees\",\r\n itemsPropertyName: \"employees\",\r\n loadItemsMethodName: \"loadEmployees\",\r\n itemsDataMethod: CompanyService.getCompanyEmployees,\r\n loadDetailMethodName: \"loadEmployeeById\",\r\n detailDataMethod: async (id) => {\r\n const employee = await CompanyService.getCompanyEmployeeById(id);\r\n return employee.data[0];\r\n },\r\n detailsPropertyName: \"employeeData\",\r\n deleteMethodName: 'deleteEmployee',\r\n deleteDataMethod: CompanyService.deleteEmployee,\r\n updateMethodName: 'updateEmployee',\r\n updateDataMethod: CompanyService.updateCompanyEmployee,\r\n createMethodName: 'createEmployee',\r\n createDataMethod: CompanyService.createCompanyEmployee,\r\n defaultItemsData: {data: []},\r\n plugins: [companyRolesStatePlugin]\r\n});\r\n\r\nexport default employeeListStateModule;\r\n","import CompanyService from \"../../../services/Company/CompanyService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\n\r\nconst equipmentListStateModule = createListStateModule({\r\n stateNamespace: \"equipment\",\r\n itemsPropertyName: \"equipment\",\r\n loadItemsMethodName: \"loadEquipment\",\r\n itemsDataMethod: CompanyService.getCompanyAnalyzers,\r\n loadDetailMethodName: \"loadEquipmentById\",\r\n detailDataMethod: async (id) => {\r\n const equipment = await CompanyService.getMyGasAnalyzerByIdAsync(id);\r\n return equipment.data.data[0]\r\n },\r\n detailsPropertyName: \"equipmentData\",\r\n deleteMethodName: 'deleteEquipment',\r\n deleteDataMethod: CompanyService.deleteGasAnalyzerAsync,\r\n updateMethodName: 'updateEquipment',\r\n updateDataMethod: CompanyService.updateGasAnalyzerAsync,\r\n createMethodName: 'createEquipmentItem',\r\n defaultItemsData: {data: []},\r\n createDataMethod: CompanyService.createCompanyEquipment\r\n});\r\n\r\nexport default equipmentListStateModule;\r\n","import createStateModule from \"../createStateModule\";\r\n\r\nconst breadcrumbsStateConfig = {\r\n stateNamespace: \"breadcrumbs\",\r\n types: [\"SET_BREADCRUMBS\"],\r\n initialState: {\r\n items: []\r\n },\r\n createReducer: types => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.SET_BREADCRUMBS:\r\n state.items = action.payload;\r\n break;\r\n default:\r\n return state;\r\n }\r\n }\r\n },\r\n creators: types => ({\r\n setBreadcrumbs: (items) => ({type: types.SET_BREADCRUMBS, payload: items})\r\n })\r\n};\r\n\r\nexport default createStateModule(breadcrumbsStateConfig);\r\n","import createStateModule from \"../createStateModule\";\r\n\r\nconst leftNavigationStateModule = {\r\n stateNamespace: \"leftNavigation\",\r\n types: [\r\n \"SET_LEFTMENU\",\r\n \"SET_ACTIVE_PATH\",\r\n \"SET_IS_VISIBLE\"\r\n ],\r\n initialState: {\r\n menuItems: [],\r\n activePath: null,\r\n isVisible: true\r\n },\r\n createReducer: types => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.SET_LEFTMENU:\r\n state.menuItems = action.payload;\r\n break;\r\n case types.SET_ACTIVE_PATH:\r\n state.activePath = action.payload;\r\n break;\r\n case types.SET_IS_VISIBLE:\r\n state.isVisible = action.payload;\r\n break;\r\n default:\r\n return state;\r\n }\r\n }\r\n },\r\n creators: types => ({\r\n setLeftMenu: (menuItems) => ({type: types.SET_LEFTMENU, payload: menuItems}),\r\n setActivePath: (path) => ({type: types.SET_ACTIVE_PATH, payload: path}),\r\n setIsVisible: (isVisible) => ({type: types.SET_IS_VISIBLE, payload: isVisible})\r\n })\r\n};\r\n\r\nexport default createStateModule(leftNavigationStateModule);\r\n","import SellRefrigerantService from \"../../../services/SellRefrigerant/SellRefrigerantService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\nimport unpublishOfferPlugin from \"./sellRefrigerantListingPlugins\";\r\n\r\nconst sellRefrigerantListingStateModule = createListStateModule({\r\n stateNamespace: \"sellrefrigerant\",\r\n itemsPropertyName: \"sellingItems\",\r\n loadItemsMethodName: \"loadSellingItems\",\r\n itemsDataMethod: SellRefrigerantService.getSellingItems,\r\n loadDetailMethodName: \"loadSellingItemById\",\r\n detailDataMethod: SellRefrigerantService.getSellingItemById,\r\n detailsPropertyName: \"sellingItemData\",\r\n updateMethodName: \"updateSellingItem\",\r\n updateDataMethod: () => {},\r\n createMethodName: 'createSellingItem',\r\n createDataMethod: () => {},\r\n defaultItemsData: {data:[]},\r\n plugins: [unpublishOfferPlugin, gasTypesStatePlugin]\r\n});\r\n\r\nexport default sellRefrigerantListingStateModule;\r\n","import StockService from \"../../../services/Stock/StockService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport countriesStatePlugin from \"../plugins/countriesStatePlugin\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\n\r\nconst installerStockListingStateModule = createListStateModule({\r\n stateNamespace: \"installer-stock\",\r\n itemsPropertyName: \"stockItems\",\r\n loadItemsMethodName: \"loadStockItems\",\r\n itemsDataMethod: StockService.getStockItems,\r\n loadDetailMethodName: \"loadStockById\",\r\n detailDataMethod: StockService.getStockItem,\r\n detailsPropertyName: \"stockData\",\r\n updateMethodName: \"updateRefrigerant\",\r\n updateDataMethod: () => {},\r\n createMethodName: 'createStockItem',\r\n defaultItemsData: {data: []},\r\n createDataMethod: StockService.addToMyStock,\r\n\r\n plugins: [countriesStatePlugin, gasTypesStatePlugin]\r\n});\r\n\r\nexport default installerStockListingStateModule;\r\n\r\n","import StockService from \"../../../services/Stock/StockService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport countriesStatePlugin from \"../plugins/countriesStatePlugin\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\n\r\nconst stockListingStateModule = createListStateModule({\r\n stateNamespace: \"stock\",\r\n itemsPropertyName: \"stockItems\",\r\n loadItemsMethodName: \"loadStockItems\",\r\n itemsDataMethod: StockService.getStockItems,\r\n loadDetailMethodName: \"loadStockById\",\r\n detailDataMethod: StockService.getStockItem,\r\n detailsPropertyName: \"stockData\",\r\n updateMethodName: \"updateRefrigerant\",\r\n updateDataMethod: () => {},\r\n createMethodName: 'createStockItem',\r\n defaultItemsData: {data: []},\r\n createDataMethod: StockService.addToMyStock,\r\n\r\n plugins: [countriesStatePlugin, gasTypesStatePlugin]\r\n});\r\n\r\nexport default stockListingStateModule;\r\n","import LoginService from \"../../../services/Login/LoginService\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport createStateModule from \"../createStateModule\";\r\n\r\nconst userStateConfig = {\r\n stateNamespace: \"user\",\r\n types: [\r\n \"LOGIN_LOADING\",\r\n \"LOGIN_SUCCESS\",\r\n \"CLEAR_LOGIN_ERROR\",\r\n \"LOGIN_ERROR\",\r\n \"LOGIN_TWOFACTOR_NEEDED\",\r\n \"VERIFY_LOADING\",\r\n \"VERIFY_SUCCESS\",\r\n \"VERIFY_ERROR\",\r\n \"CLEAR_VERIFY_ERROR\",\r\n \"LOGOUT\",\r\n \"FULLY_REGISTER\",\r\n \"USERDATA_LOADING\",\r\n \"USERDATA_SUCCESS\",\r\n \"USERDATA_ERROR\",\r\n \"UPDATEUSERPICTURE_LOADING\",\r\n \"UPDATEUSERPICTURE_ERROR\",\r\n \"UPDATEUSERPICTURE_SUCCESS\",\r\n \"DELETEUSERPICTURE_LOADING\",\r\n \"DELETEUSERPICTURE_ERROR\",\r\n \"DELETEUSERPICTURE_SUCCESS\",\r\n \"UPDATEUSERPICTURE_LEAVE\",\r\n \"ACTIVATE_LOADING\",\r\n \"ACTIVATE_ERROR\",\r\n \"ACTIVATE_SUCCESS\",\r\n \"CHANGEPASSWORD_LOADING\",\r\n \"CHANGEPASSWORD_ERROR\",\r\n \"CHANGEPASSWORD_SUCCESS\",\r\n \"CHANGEPASSWORD_LEAVE\",\r\n \"SETMENUOPEN\",\r\n \"UPDATEUSERDATA_LOADING\",\r\n \"UPDATEUSERDATA_SUCCESS\",\r\n \"UPDATEUSERDATA_ERROR\",\r\n \"UPDATEUSERDATA_RESETSTATE\",\r\n ],\r\n initialState: {\r\n isAuthenticated: !!localStorage.getItem(\"token\"),\r\n isFullyRegistered: UserService.getIsFullyRegistered(),\r\n roles: UserService.getUserRoles(),\r\n userCompanies:[],\r\n twoFactor: {\r\n isRequired: false,\r\n isLoading: false,\r\n error: null,\r\n },\r\n twoFactorVerify: {\r\n isLoading: false,\r\n error: null,\r\n data: null,\r\n },\r\n loginState: {\r\n isLoading: false,\r\n error: null,\r\n },\r\n userData: {\r\n isLoading: false,\r\n isLoaded: false,\r\n profilePictureUrl: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n },\r\n userProfilePictureUpdate: {\r\n isLoading: false,\r\n isCompleted: false,\r\n error: null,\r\n },\r\n userProfilePictureDelete: {\r\n isLoading: false,\r\n isCompleted: false,\r\n error: null,\r\n },\r\n username:\r\n UserService.getUserDetailsFromToken() &&\r\n UserService.getUserDetailsFromToken().Username,\r\n impersonatedByUsername :UserService.getUserDetailsFromToken() &&\r\n UserService.getUserDetailsFromToken().ImpersonatedByUsername,\r\n activation: {\r\n isLoading: false,\r\n isCompleted: false,\r\n error: null,\r\n },\r\n password: {\r\n isLoading: false,\r\n isCompleted: false,\r\n error: null,\r\n },\r\n menuState: {\r\n isOpened: true,\r\n },\r\n userUpdateData: {\r\n isLoading: false,\r\n isCompleted: false,\r\n error: null,\r\n response: null,\r\n },\r\n },\r\n createReducer: (types) => {\r\n return (state, action) => {\r\n switch (action.type) {\r\n case types.LOGIN_LOADING:\r\n state.loginState.isLoading = true;\r\n state.loginState.error = null;\r\n break;\r\n case types.LOGIN_ERROR:\r\n state.loginState.isLoading = false;\r\n state.loginState.error = action.payload;\r\n break;\r\n case types.CLEAR_LOGIN_ERROR:\r\n state.loginState.error = null;\r\n break;\r\n case types.LOGIN_SUCCESS:\r\n state.loginState.isLoading = false;\r\n state.loginState.error = null;\r\n state.isFullyRegistered = UserService.getIsFullyRegistered();\r\n state.roles = UserService.getUserRoles();\r\n state.username = action.payload.username;\r\n state.userCompanies = action.payload.userCompanies;\r\n state.isAuthenticated = state.userCompanies.length === 0;\r\n state.userData.isLoaded = false;\r\n break;\r\n case types.LOGIN_TWOFACTOR_NEEDED:\r\n state.isAuthenticated = false;\r\n state.loginState.isLoading = false;\r\n state.loginState.error = null;\r\n state.twoFactor.isRequired = true;\r\n state.twoFactor.isLoading = false;\r\n state.twoFactor.error = null;\r\n state.username = action.payload;\r\n break;\r\n case types.VERIFY_LOADING:\r\n state.twoFactorVerify.isLoading = true;\r\n state.twoFactorVerify.error = null;\r\n state.twoFactorVerify.data = null;\r\n break;\r\n case types.VERIFY_SUCCESS:\r\n state.twoFactorVerify.isLoading = false;\r\n state.twoFactorVerify.error = null;\r\n state.twoFactorVerify.data = action.payload.data;\r\n state.isFullyRegistered = UserService.getIsFullyRegistered();\r\n state.roles = UserService.getUserRoles();\r\n state.userCompanies = action.payload.userCompanies;\r\n state.isAuthenticated = state.userCompanies.length === 0;\r\n state.userData.isLoaded = false;\r\n break;\r\n case types.VERIFY_ERROR:\r\n state.twoFactorVerify.isLoading = false;\r\n state.twoFactorVerify.error = action.payload;\r\n state.twoFactorVerify.data = null;\r\n break;\r\n case types.CLEAR_VERIFY_ERROR:\r\n state.twoFactorVerify.error = null;\r\n break;\r\n case types.LOGOUT:\r\n LoginService.logout();\r\n state.isAuthenticated = false;\r\n state.isFullyRegistered = UserService.getIsFullyRegistered();\r\n state.roles = [];\r\n state.userData = {\r\n isLoading: false,\r\n isLoaded: false,\r\n profilePictureUrl:\r\n \"/images/shared/default_employee.png\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n };\r\n state.twoFactor.isRequired = false;\r\n break;\r\n case types.FULLY_REGISTER:\r\n state.isFullyRegistered = true;\r\n state.roles = UserService.getUserRoles();\r\n break;\r\n case types.USERDATA_LOADING:\r\n state.userData.isLoading = true;\r\n break;\r\n case types.USERDATA_ERROR:\r\n state.userData.isLoading = false;\r\n state.userData.error = action.payload;\r\n break;\r\n case types.USERDATA_SUCCESS:\r\n state.userData = action.payload;\r\n state.userData.error = null;\r\n state.userData.isLoading = false;\r\n state.userData.isLoaded = true;\r\n break;\r\n case types.UPDATEUSERPICTURE_LOADING:\r\n state.userProfilePictureUpdate.isLoading = true;\r\n state.userProfilePictureUpdate.isCompleted = false;\r\n break;\r\n case types.UPDATEUSERPICTURE_ERROR:\r\n state.userProfilePictureUpdate.isLoading = false;\r\n state.userProfilePictureUpdate.error = action.payload;\r\n break;\r\n case types.UPDATEUSERPICTURE_SUCCESS:\r\n state.userProfilePictureUpdate.isLoading = false;\r\n state.userProfilePictureUpdate.isCompleted = true;\r\n state.userProfilePictureUpdate.error = null;\r\n state.userData.profilePictureUrl =\r\n state.userData.profilePictureUrl + \"?refresh=true\";\r\n break;\r\n case types.DELETEUSERPICTURE_LOADING:\r\n state.userProfilePictureDelete.isLoading = true;\r\n break;\r\n case types.DELETEUSERPICTURE_ERROR:\r\n state.userProfilePictureDelete.isLoading = false;\r\n state.userProfilePictureDelete.error = action.payload;\r\n break;\r\n case types.DELETEUSERPICTURE_SUCCESS:\r\n state.userProfilePictureDelete.isLoading = false;\r\n state.userProfilePictureDelete.isCompleted = true;\r\n state.userProfilePictureDelete.error = null;\r\n state.userData.profilePictureUrl =\r\n state.userData.profilePictureUrl + \"?refresh=true\";\r\n break;\r\n case types.UPDATEUSERPICTURE_LEAVE:\r\n state.userProfilePictureUpdate.isLoading = false;\r\n state.userProfilePictureUpdate.isCompleted = false;\r\n state.userProfilePictureUpdate.error = null;\r\n break;\r\n case types.ACTIVATE_LOADING:\r\n state.activation.isLoading = true;\r\n state.activation.isCompleted = false;\r\n state.activation.error = null;\r\n break;\r\n case types.ACTIVATE_ERROR:\r\n state.activation.isLoading = false;\r\n state.activation.isCompleted = false;\r\n state.activation.error = action.payload;\r\n break;\r\n case types.ACTIVATE_SUCCESS:\r\n state.activation.isLoading = false;\r\n state.activation.error = null;\r\n state.activation.isCompleted = action.payload;\r\n break;\r\n case types.CHANGEPASSWORD_LOADING:\r\n state.password.isLoading = true;\r\n state.password.isCompleted = false;\r\n state.password.error = null;\r\n break;\r\n case types.CHANGEPASSWORD_ERROR:\r\n state.password.isLoading = false;\r\n state.password.isCompleted = false;\r\n state.password.error = action.payload;\r\n break;\r\n case types.CHANGEPASSWORD_SUCCESS:\r\n state.password.isLoading = false;\r\n state.password.error = null;\r\n state.password.isCompleted = action.payload;\r\n break;\r\n case types.CHANGEPASSWORD_LEAVE:\r\n state.password.isLoading = false;\r\n state.password.error = null;\r\n state.password.isCompleted = false;\r\n break;\r\n case types.SETMENUOPEN:\r\n state.menuState.isOpened = action.payload;\r\n break;\r\n case types.UPDATEUSERDATA_LOADING:\r\n state.userUpdateData.isLoading = true;\r\n state.userUpdateData.isCompleted = false;\r\n state.userUpdateData.error = null;\r\n state.userUpdateData.response = null;\r\n break;\r\n case types.UPDATEUSERDATA_ERROR:\r\n state.userUpdateData.isLoading = false;\r\n state.userUpdateData.isCompleted = false;\r\n state.userUpdateData.error = action.payload;\r\n state.userUpdateData.response = null;\r\n break;\r\n case types.UPDATEUSERDATA_SUCCESS:\r\n state.userUpdateData.isLoading = false;\r\n state.userUpdateData.isCompleted = true;\r\n state.userUpdateData.error = null;\r\n state.userUpdateData.response = action.payload;\r\n break;\r\n case types.UPDATEUSERDATA_RESETSTATE:\r\n state.userUpdateData = {\r\n isLoading: false,\r\n isCompleted: false,\r\n error: null,\r\n response: null,\r\n };\r\n break;\r\n default:\r\n return state;\r\n }\r\n };\r\n },\r\n creators: (types) => ({\r\n loginLoading: () => ({ type: types.LOGIN_LOADING }),\r\n loginError: (error) => ({ type: types.LOGIN_ERROR, payload: error }),\r\n clearLoginError: (error) => ({ type: types.CLEAR_LOGIN_ERROR }),\r\n loginSuccess: (username, userCompanies) => ({\r\n type: types.LOGIN_SUCCESS,\r\n payload: {username,userCompanies},\r\n }),\r\n logout: () => {\r\n return {\r\n type: types.LOGOUT,\r\n };\r\n },\r\n userDataLoading: () => ({ type: types.USERDATA_LOADING }),\r\n userDataError: (error) => ({\r\n type: types.USERDATA_ERROR,\r\n payload: error,\r\n }),\r\n userDataSuccess: (userData) => ({\r\n type: types.USERDATA_SUCCESS,\r\n payload: userData,\r\n }),\r\n updateUserPictureLoading: () => ({\r\n type: types.UPDATEUSERPICTURE_LOADING,\r\n }),\r\n updateUserPictureError: (error) => ({\r\n type: types.UPDATEUSERPICTURE_ERROR,\r\n payload: error,\r\n }),\r\n updateUserPictureSuccess: () => ({\r\n type: types.UPDATEUSERPICTURE_SUCCESS,\r\n }),\r\n deleteUserPictureLoading: () => ({\r\n type: types.DELETEUSERPICTURE_LOADING,\r\n }),\r\n deleteUserPictureError: (error) => ({\r\n type: types.DELETEUSERPICTURE_ERROR,\r\n payload: error,\r\n }),\r\n deleteUserPictureSuccess: () => ({\r\n type: types.DELETEUSERPICTURE_SUCCESS,\r\n }),\r\n fullyRegister: () => ({ type: types.FULLY_REGISTER }),\r\n activateLoading: () => ({ type: types.ACTIVATE_LOADING }),\r\n activateError: (error) => ({\r\n type: types.ACTIVATE_ERROR,\r\n payload: error,\r\n }),\r\n activateSuccess: (response) => ({\r\n type: types.ACTIVATE_SUCCESS,\r\n payload: response,\r\n }),\r\n changePasswordLoading: () => ({\r\n type: types.CHANGEPASSWORD_LOADING,\r\n }),\r\n changePasswordError: (error) => ({\r\n type: types.CHANGEPASSWORD_ERROR,\r\n payload: error,\r\n }),\r\n changePasswordSuccess: (res) => ({\r\n type: types.CHANGEPASSWORD_SUCCESS,\r\n payload: res,\r\n }),\r\n changePasswordResetState: () => ({\r\n type: types.CHANGEPASSWORD_LEAVE,\r\n }),\r\n updateUserPictureResetState: () => ({\r\n type: types.UPDATEUSERPICTURE_LEAVE,\r\n }),\r\n toggleMenu: (isOpen) => ({\r\n type: types.SETMENUOPEN,\r\n payload: isOpen,\r\n }),\r\n updateUserLoading: () => ({ type: types.UPDATEUSERDATA_LOADING }),\r\n updateUserError: (error) => ({\r\n type: types.UPDATEUSERDATA_ERROR,\r\n payload: error,\r\n }),\r\n updateUserSuccess: (res) => ({\r\n type: types.UPDATEUSERDATA_SUCCESS,\r\n payload: res,\r\n }),\r\n updateUserResetState: () => ({ type: types.UPDATEUSERDATA_RESETSTATE }),\r\n loginTwoFactorNeeded: (username) => ({\r\n type: types.LOGIN_TWOFACTOR_NEEDED,\r\n payload: username,\r\n }),\r\n verifyLoading: () => ({ type: types.VERIFY_LOADING }),\r\n verifySuccess: (res,companies) => ({ type: types.VERIFY_SUCCESS, payload: {data:res, userCompanies:companies} }),\r\n verifyError: (err) => ({ type: types.VERIFY_ERROR, payload: err }),\r\n clearVerifyError: (err) => ({ type: types.CLEAR_VERIFY_ERROR }),\r\n }),\r\n actions: (creators) => ({\r\n login: (username, password) => {\r\n return async function (dispatch) {\r\n dispatch(creators.loginLoading());\r\n try {\r\n const loginResult = await LoginService.login(\r\n username,\r\n password\r\n );\r\n if (!loginResult.data.twoFactor) {\r\n localStorage.setItem(\"token\", loginResult.data.token);\r\n localStorage.setItem(\r\n \"refreshToken\",\r\n loginResult.data.refreshToken\r\n );\r\n const userCompanies = await UserService.getCompaniesByUserId();\r\n dispatch(creators.loginSuccess(username, userCompanies));\r\n } else {\r\n dispatch(creators.loginTwoFactorNeeded(username));\r\n }\r\n } catch (e) {\r\n dispatch(creators.loginError(e));\r\n }\r\n };\r\n },\r\n verifyTwoFactor: (username, code) => {\r\n return async function (dispatch) {\r\n dispatch(creators.verifyLoading());\r\n try {\r\n const verifyResult = await LoginService.verifyTwoFactor(\r\n username,\r\n code\r\n );\r\n localStorage.setItem(\"token\", verifyResult.data.token);\r\n localStorage.setItem(\r\n \"refreshToken\",\r\n verifyResult.data.refreshToken\r\n );\r\n const userCompanies = await UserService.getCompaniesByUserId();\r\n dispatch(creators.verifySuccess(username,userCompanies));\r\n } catch (e) {\r\n dispatch(creators.verifyError(e));\r\n }\r\n };\r\n },\r\n loadUserData: () => {\r\n return async function (dispatch) {\r\n dispatch(creators.userDataLoading());\r\n try {\r\n const userApiData = await UserService.getUserDetails();\r\n dispatch(creators.userDataSuccess(userApiData));\r\n } catch (e) {\r\n dispatch(creators.userDataError(e));\r\n }\r\n };\r\n },\r\n updateUserPicture: (formData) => {\r\n return async function (dispatch) {\r\n dispatch(creators.updateUserPictureLoading());\r\n try {\r\n await UserService.setUserPicture(formData);\r\n dispatch(creators.updateUserPictureSuccess());\r\n } catch (e) {\r\n dispatch(creators.updateUserPictureError(e));\r\n }\r\n };\r\n },\r\n deleteUserPicture: () => {\r\n return async function (dispatch) {\r\n dispatch(creators.deleteUserPictureLoading());\r\n try {\r\n await UserService.deleteUserPicture();\r\n dispatch(creators.deleteUserPictureSuccess());\r\n } catch (e) {\r\n dispatch(creators.deleteUserPictureError(e));\r\n }\r\n };\r\n },\r\n activateUser: (data) => {\r\n return async function (dispatch) {\r\n dispatch(creators.activateLoading());\r\n try {\r\n const activateResponse = await UserService.activate(data);\r\n dispatch(creators.activateSuccess(activateResponse));\r\n } catch (e) {\r\n dispatch(creators.activateError(e));\r\n }\r\n };\r\n },\r\n changePassword: (newPassword) => {\r\n return async function (dispatch) {\r\n dispatch(creators.changePasswordLoading());\r\n try {\r\n const res = await UserService.setUserPassword(newPassword);\r\n dispatch(creators.changePasswordSuccess(res));\r\n } catch (e) {\r\n dispatch(creators.changePasswordError(e));\r\n }\r\n };\r\n },\r\n updateMyData: (userData) => {\r\n return async function (dispatch) {\r\n dispatch(creators.updateUserLoading());\r\n try {\r\n const res = await UserService.setUserDetails(userData);\r\n dispatch(creators.updateUserSuccess(res));\r\n } catch (e) {\r\n dispatch(creators.updateUserError(e));\r\n }\r\n };\r\n },\r\n clearLoginErrors: () => {\r\n return async function (dispatch) {\r\n dispatch(creators.clearLoginError());\r\n dispatch(creators.clearVerifyError());\r\n };\r\n },\r\n }),\r\n};\r\n\r\nexport default createStateModule(userStateConfig);\r\n","import companiesListStateModule from \"./admin/companies/companiesListStateModule\";\r\nimport adminUsersListStateModule from './admin/users/adminUsersListStateModule';\r\nimport usersListStateModule from \"./admin/users/usersListStateModule\";\r\nimport marketplaceListingStateModule from './buy-refrigerant/marketplaceListingStateModule';\r\nimport myBidsListingStateModule from \"./buy-refrigerant/myBidsListingStateModule\";\r\nimport clientsListStateModule from \"./clients/clientsListStateModule\";\r\nimport clientsLocationListStateModule from \"./clients/clientsLocationsListStateModule\";\r\nimport clientsUnitsListStateModule from \"./clients/clientsUnitsListStateModule\";\r\nimport companyStateModule from \"./company/companyStateModule\";\r\nimport cylinderListStateModule from \"./company/cylinderListStateModule\";\r\nimport employeeListStateModule from \"./company/employeeListStateModule\";\r\nimport equipmentListStateModule from \"./company/equipmentListStateModule\";\r\nimport breadcrumbsStateModule from \"./navigation/breadcrumbsStateModule\";\r\nimport leftNavigationStateModule from \"./navigation/leftNavigationStateModule\";\r\nimport sellRefrigerantListingStateModule from \"./sell-refrigerant/sellRefrigerantListingStateModule\";\r\nimport installerStockListingStateModule from \"./stock/installerStockListingStateModule\";\r\nimport stockListingStateModule from \"./stock/stockListingStateModule\";\r\nimport userStateModule from \"./user/userStateModule\";\r\n\r\nconst registeredModules = [\r\n companiesListStateModule,\r\n userStateModule,\r\n adminUsersListStateModule,\r\n usersListStateModule,\r\n equipmentListStateModule,\r\n employeeListStateModule,\r\n breadcrumbsStateModule,\r\n stockListingStateModule,\r\n companyStateModule,\r\n sellRefrigerantListingStateModule,\r\n marketplaceListingStateModule,\r\n myBidsListingStateModule,\r\n leftNavigationStateModule,\r\n installerStockListingStateModule,\r\n clientsListStateModule,\r\n clientsLocationListStateModule,\r\n clientsUnitsListStateModule,\r\n cylinderListStateModule\r\n];\r\n\r\nconst createRootInitialState = (modules) => {\r\n let initialState = {};\r\n for (let i = 0; i < modules.length; i++) {\r\n const currentModule = modules[i];\r\n initialState[currentModule.stateNamespace] = currentModule.reducer.initialState;\r\n }\r\n\r\n return initialState;\r\n};\r\n\r\nconst createRootReducer = (modules) => {\r\n const initialState = createRootInitialState(modules);\r\n\r\n const rootReducer = (state, action) => {\r\n for (let i = 0; i < modules.length; i++) {\r\n const currentModule = modules[i];\r\n currentModule.reducer(state[currentModule.stateNamespace], action);\r\n }\r\n }\r\n rootReducer.initialState = initialState;\r\n\r\n return rootReducer;\r\n};\r\n\r\nconst rootReducer = createRootReducer(registeredModules);\r\nexport default rootReducer;\r\n","import { createBrowserHistory } from \"history\";\r\nimport React, { useCallback } from \"react\";\r\nimport useImmerReducer from \"../../hooks/_shared/useImmerReducer\";\r\nimport rootReducer from \"./rootReducer\";\r\n\r\nconst history = createBrowserHistory();\r\nconst routerMiddleware = (history, dispatch) => action => {\r\n if (action.type !== \"@@router/CALL_HISTORY_METHOD\") {\r\n return dispatch(action);\r\n }\r\n\r\n const {\r\n payload: {method, args}\r\n } = action;\r\n history[method](...args);\r\n};\r\n\r\nconst asyncer = (dispatch, state) => action =>\r\n typeof action === \"function\" ? action(dispatch, state) : dispatch(action);\r\n\r\nconst withDevTools = name => {\r\n return (\r\n name &&\r\n process.env.NODE_ENV === \"development\" &&\r\n typeof window !== \"undefined\" &&\r\n window.__REDUX_DEVTOOLS_EXTENSION__\r\n );\r\n};\r\nlet devTool = null;\r\nif (withDevTools) {\r\n if (window.__REDUX_DEVTOOLS_EXTENSION__)\r\n devTool = window.__REDUX_DEVTOOLS_EXTENSION__.connect();\r\n}\r\n\r\n// Reducer to handle devtools actions.\r\nconst devToolReducer = reducer => (state, action) => {\r\n const nextState = reducer(state, action);\r\n if (withDevTools && devTool) {\r\n devTool.send(action, state);\r\n }\r\n return nextState;\r\n};\r\n\r\nexport const GlobalStore = React.createContext({});\r\n\r\nexport const GlobalStateProvider = ({children, _mockState}) => {\r\n const rootReducerWithDevTools = devToolReducer(rootReducer);\r\n\r\n const [state, dispatchBase] = useImmerReducer(\r\n rootReducerWithDevTools,\r\n rootReducer.initialState\r\n );\r\n\r\n const dispatch = useCallback(\r\n routerMiddleware(history, asyncer(dispatchBase, state)),\r\n []\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useGlobalStore = () => React.useContext(GlobalStore);\r\n","import { useEffect, useMemo } from \"react\";\r\nimport bindActions from \"./bindActions\";\r\nimport { useGlobalStore } from \"./GlobalStore\";\r\n\r\nconst useStateModule = (partialStateObject) => {\r\n const { state, dispatch } = useGlobalStore();\r\n const partialState = useMemo(() => state[partialStateObject.stateNamespace], [state, partialStateObject]);\r\n const boundActions = useMemo(() => {\r\n return bindActions({...partialStateObject.creators, ...partialStateObject.actions}, dispatch);\r\n }, [partialStateObject, dispatch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if(boundActions.resetState) {\r\n boundActions.resetState();\r\n }\r\n }\r\n }, [boundActions]);\r\n\r\n return {...partialState, ...boundActions};\r\n}\r\n\r\n\r\nexport default useStateModule;\r\n","export default function bindActions(actions, dispatch) {\r\n\tconst bindAction = (action, dispatch) => {\r\n\t\treturn function() {\r\n\t\t\treturn dispatch(action.apply(null, arguments));\r\n\t\t};\r\n\t}\r\n\t// if it's a single action\r\n\tif (typeof actions === 'function') {\r\n\t\treturn bindAction(actions, dispatch);\r\n\t}\r\n\tif (typeof actions !== 'object' || actions === null) {\r\n\t\tthrow new Error(\r\n\t\t\t`bindActions expected an object or a function, instead received ${\r\n\t\t\t\tactions === null ? 'null' : typeof actions\r\n\t\t\t}. `\r\n\t\t)\r\n\t}\r\n\tconst boundActions = {};\r\n\tfor (const key in actions) {\r\n\t\tconst action = actions[key];\r\n\t\tif (typeof action === 'function') {\r\n\t\t\tboundActions[key] = bindAction(action, dispatch);\r\n\t\t}\r\n\t}\r\n\treturn boundActions;\r\n};\r\n","const globalVars={\r\n isMobile:false,\r\n maxListingItemsPerPage:Math.floor((window.innerHeight - 320)/48),\r\n countries:[]\r\n};\r\n\r\nexport default globalVars;\r\n","import { useEffect } from \"react\";\r\nimport useStateModule from \"../useStateModule\";\r\nimport leftNavigationStateModule from \"./leftNavigationStateModule\";\r\nimport globals from \"../../../globalVars\";\r\n\r\nconst useLeftMenu = (leftMenu) => {\r\n const { menuItems, setLeftMenu, isVisible, setIsVisible } = useStateModule(\r\n leftNavigationStateModule\r\n );\r\n\r\n useEffect(() => {\r\n if (leftMenu) {\r\n setIsVisible(true);\r\n setLeftMenu(leftMenu);\r\n }\r\n return () => setLeftMenu(menuItems);\r\n }, [setLeftMenu, leftMenu, globals.isMobile, setIsVisible]);\r\n\r\n return { menuItems, isVisible, setIsVisible };\r\n};\r\n\r\nexport default useLeftMenu;\r\n","import { useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useStateModule from \"../useStateModule\";\r\nimport breadcrumbsStateModule from \"./breadcrumbsStateModule\";\r\n\r\nconst useBreadcrumbs = (breadcrumbItems) => {\r\n const { i18n } = useTranslation();\r\n const {items, setBreadcrumbs} = useStateModule(breadcrumbsStateModule);\r\n const [newItems, setNewItems] = useState(breadcrumbItems);\r\n\r\n const memoItems = useMemo(() => {\r\n return newItems;\r\n }, [i18n.language, newItems]);\r\n\r\n useEffect(() => {\r\n if (memoItems) {\r\n setBreadcrumbs(memoItems);\r\n }\r\n return () => setBreadcrumbs([]);\r\n }, [setBreadcrumbs, memoItems]);\r\n\r\n return {items, update:setNewItems};\r\n}\r\n\r\nexport default useBreadcrumbs;\r\n","import React from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport useBreadcrumbs from \"../../core/state/navigation/useBreadcrumbs\";\r\n\r\nconst BreadcrumbsWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n color: #675B34;\r\n font-size: 14px;\r\n /* font-family: 'Open Sans', sans-serif; */\r\n text-transform: uppercase;\r\n letter-spacing: 0.0625rem;\r\n padding: 4px 0px 0px 60px;\r\n\r\n &.company {\r\n padding-left: 198px;\r\n }\r\n`;\r\n\r\nconst BreadcrumbsItem = styled.span`\r\n margin: 0 24px 0 0;\r\n\r\n &.separator {\r\n position: relative;\r\n\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n border: 3px solid #675B34;\r\n border-radius: 50%;\r\n top: 50%;\r\n left: -14px;\r\n transform: translateY(-50%);\r\n }\r\n }\r\n\r\n &:last-child {\r\n color:${p => p.theme.secondaryColor} !important;\r\n font-weight: 600 !important;\r\n }\r\n\r\n`;\r\n\r\nconst BreadcrumbsNavLink = styled(NavLink)`\r\n margin: 0 24px 0 0;\r\n color: inherit;\r\n\r\n text-decoration: none;\r\n\r\n &.separator {\r\n position: relative;\r\n\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n border: 3px solid #675B34;\r\n border-radius: 50%;\r\n top: 50%;\r\n left: -14px;\r\n transform: translateY(-50%);\r\n }\r\n }\r\n\r\n &:last-child {\r\n color:${p => p.theme.primaryColor} !important;\r\n font-weight: 600 !important;\r\n }\r\n`;\r\n\r\nconst Breadcrumbs = (props) => {\r\n const {items} = useBreadcrumbs();\r\n\r\n return (\r\n \r\n {\r\n items &&\r\n items.map((bc, i) => {\r\n if (bc.url) {\r\n return (\r\n bc.text && \r\n {bc.text}\r\n \r\n )\r\n } else {\r\n return (\r\n bc.text && \r\n {bc.text}\r\n \r\n )\r\n }\r\n })\r\n }\r\n \r\n )\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","const CompanyType = {\r\n All : -1,\r\n InstallationCompany : 0,\r\n Distributor : 1\r\n};\r\n\r\nexport default CompanyType;\r\n","import CompanyType from \"./enums/CompanyType\";\r\n\r\nconst RouteCreator = {\r\n home: () => {\r\n return \"/\";\r\n },\r\n admin: {\r\n edit: (userId) => {\r\n return `${RouteCreator.admin.users.root()}/edit/${userId}`;\r\n },\r\n users: {\r\n root: () => {\r\n return \"/admin/users\";\r\n },\r\n nonAdmins: () => {\r\n return `${RouteCreator.admin.users.root()}/users`;\r\n },\r\n admins: () => {\r\n return `${RouteCreator.admin.users.root()}/administrators`;\r\n },\r\n createAdmin: () => {\r\n return `${RouteCreator.admin.users.admins()}/create`;\r\n },\r\n statistics: () => {\r\n return `${RouteCreator.admin.users.nonAdmins()}/statistics`;\r\n },\r\n certificates: (userId) => {\r\n return `${RouteCreator.admin.users.root()}/info/${userId}`;\r\n },\r\n },\r\n companies: {\r\n root: () => {\r\n return \"/admin/companies\";\r\n },\r\n list: (companyType) => {\r\n if (companyType === CompanyType.InstallationCompany) {\r\n return `${RouteCreator.admin.companies.root()}/list/installers`;\r\n } else if (companyType === CompanyType.Distributor) {\r\n return `${RouteCreator.admin.companies.root()}/list/distributors`;\r\n }\r\n return `${RouteCreator.admin.companies.root()}/list`;\r\n },\r\n statistics: () => {\r\n return `${RouteCreator.admin.companies.root()}/statistics`;\r\n },\r\n certificates: () => {\r\n return `${RouteCreator.admin.companies.root()}/certificates/:companyId`;\r\n },\r\n },\r\n marketplaceStatistics: () => {\r\n return \"/admin/sales-center\";\r\n },\r\n marketplace: () => {\r\n return \"/admin/sales-center/marketplace\";\r\n },\r\n reclaimedMarketplace: () => {\r\n return \"/admin/sales-center/reclaimedMarketplace\";\r\n },\r\n services: {\r\n root: () => {\r\n return \"/admin/services\";\r\n },\r\n disposal: () => {\r\n return `${RouteCreator.admin.services.root()}/disposal`;\r\n },\r\n cleaning: () => {\r\n return `${RouteCreator.admin.services.root()}/cleaning`;\r\n },\r\n },\r\n hangfire: () => {\r\n return \"/admin/hangfire\";\r\n },\r\n qrTags: () => {\r\n return \"/admin/qr\";\r\n },\r\n },\r\n equipment: {\r\n root: () => {\r\n return \"/equipment\";\r\n },\r\n cylinders: () => {\r\n return `${RouteCreator.equipment.root()}/cylinders`;\r\n },\r\n analyzers: () => {\r\n return `${RouteCreator.equipment.root()}/analyzers`;\r\n },\r\n edit: (id) => {\r\n return `${RouteCreator.equipment.root()}/edit/${id}`;\r\n },\r\n create: () => {\r\n return `${RouteCreator.equipment.root()}/create`;\r\n },\r\n },\r\n user: {\r\n login: () => {\r\n return \"/login\";\r\n },\r\n register: () => {\r\n return \"/register\";\r\n },\r\n forgotPassword: () => {\r\n return \"/forgot\";\r\n },\r\n resetPassword: () => {\r\n return \"/reset\";\r\n },\r\n activate: () => {\r\n return \"/activate\";\r\n },\r\n verifyLogin: () => {\r\n return \"/verify-login\";\r\n },\r\n changeEmail: () => {\r\n return \"/changeEmail\";\r\n },\r\n profile: () => {\r\n return \"/profile\";\r\n },\r\n },\r\n company: {\r\n root: () => {\r\n return \"/company\";\r\n },\r\n details: () => {\r\n return `${RouteCreator.company.root()}/details`;\r\n },\r\n certificates: () => {\r\n return `${RouteCreator.company.root()}/certificates`;\r\n },\r\n requestQR: () => {\r\n return `${RouteCreator.company.root()}/qr`;\r\n },\r\n payments: () => {\r\n return `${RouteCreator.company.root()}/payments`;\r\n },\r\n kyc: () => {\r\n return `${RouteCreator.company.root()}/kyc`;\r\n },\r\n },\r\n employee: {\r\n list: () => {\r\n return `${RouteCreator.company.root()}/employees`;\r\n },\r\n edit: (userId) => {\r\n return `${RouteCreator.company.root()}/employees/edit/${userId}`;\r\n },\r\n editEmployee: () => {\r\n return `${RouteCreator.company.root()}/employees/edit/:id`;\r\n },\r\n },\r\n salesCenter: {\r\n root: () => {\r\n return \"/sales-center\";\r\n },\r\n marketplace: () => {\r\n return `${RouteCreator.salesCenter.root()}/marketplace`;\r\n },\r\n myBids: () => {\r\n return `${RouteCreator.salesCenter.root()}/my-bids`;\r\n },\r\n myOffers: () => {\r\n return `${RouteCreator.salesCenter.root()}/my-offers`;\r\n },\r\n transactions: () => {\r\n return `${RouteCreator.finance.root()}/transactions`;\r\n },\r\n myWallets: () => {\r\n return `${RouteCreator.salesCenter.root()}/transactions/my-wallets`;\r\n },\r\n myTransactions: () => {\r\n return `${RouteCreator.salesCenter.root()}/transactions/my-transactions`;\r\n },\r\n disputes: () => {\r\n return `${RouteCreator.salesCenter.root()}/disputes`;\r\n },\r\n reclaimedMarketOffers: () => {\r\n return `${RouteCreator.salesCenter.root()}/reclaimedMarketOffers`;\r\n },\r\n reclaimedMarketplace: () => {\r\n return `${RouteCreator.salesCenter.root()}/reclaimedMarketplace`;\r\n },\r\n reclaimedMarketPurchases: () => {\r\n return `${RouteCreator.salesCenter.root()}/reclaimedMarketPurchases`;\r\n },\r\n },\r\n disputes: {\r\n root: () => \"/disputes\",\r\n },\r\n stock: {\r\n root: () => {\r\n return \"/stock\";\r\n },\r\n company: () => {\r\n return `${RouteCreator.stock.root()}/company`;\r\n },\r\n installer: () => {\r\n return `${RouteCreator.stock.root()}/technician`;\r\n },\r\n },\r\n confirm: {\r\n company: () => {\r\n return `/confirm`;\r\n },\r\n },\r\n clients: {\r\n root: () => {\r\n return \"/clients\";\r\n },\r\n locations: (clientId) => {\r\n return `${RouteCreator.clients.root()}/${clientId}/locations`;\r\n },\r\n units: (clientId, locationId) => {\r\n return `${RouteCreator.clients.root()}/${clientId}/locations/${locationId}/units`;\r\n },\r\n },\r\n pwa: {\r\n root: () => {\r\n return \"/pwa\";\r\n },\r\n stock: () => {\r\n return `${RouteCreator.pwa.root()}/stock`;\r\n },\r\n equipment: () => {\r\n return `${RouteCreator.pwa.root()}/equipment`;\r\n },\r\n analyzers: () => {\r\n return `${RouteCreator.pwa.root()}/analyzers`;\r\n },\r\n cylinders: () => {\r\n return `${RouteCreator.pwa.root()}/cylinders`;\r\n },\r\n editUser: (userId) => {\r\n return `${RouteCreator.pwa.root()}/edit/${userId}`;\r\n },\r\n extraction: () => {\r\n return `${RouteCreator.pwa.root()}/extraction`;\r\n },\r\n toCompanyStock: () => {\r\n return `${RouteCreator.pwa.root()}/moveToCompanyStock`;\r\n },\r\n toMyStock: () => {\r\n return `${RouteCreator.pwa.root()}/moveToMyStock`;\r\n },\r\n addUnit: () => {\r\n return `${RouteCreator.pwa.root()}/addUnit`;\r\n },\r\n addCylinder: () => {\r\n return `${RouteCreator.pwa.root()}/addCylinder`;\r\n },\r\n addAnalyzer: () => {\r\n return `${RouteCreator.pwa.root()}/addAnalyzer`;\r\n },\r\n collect: () => {\r\n return `${RouteCreator.pwa.root()}/collect`;\r\n },\r\n recycleCylinder: () => {\r\n return `${RouteCreator.pwa.root()}/recycleCylinder`;\r\n },\r\n finishRecycling: () => {\r\n return `${RouteCreator.pwa.root()}/finishRecycling`;\r\n },\r\n collectEmptyCilinder: () => {\r\n return `${RouteCreator.pwa.root()}/collectEmptyCilinder`;\r\n },\r\n },\r\n finance: {\r\n root: () => {\r\n return \"/finance\";\r\n },\r\n transactions: () => {\r\n return `${RouteCreator.finance.root()}/transactions`;\r\n },\r\n hierarchy: () => {\r\n return `${RouteCreator.finance.root()}/hierarchy`;\r\n },\r\n invoices: () => {\r\n return `${RouteCreator.finance.root()}/invoices`;\r\n },\r\n documents: () => {\r\n return `${RouteCreator.finance.root()}/documents`;\r\n },\r\n },\r\n services: {\r\n root: () => {\r\n return \"/services\";\r\n },\r\n disposal: () => {\r\n return `${RouteCreator.services.root()}/disposal`;\r\n },\r\n disposalBids: () => {\r\n return `${RouteCreator.services.root()}/disposal/bids`;\r\n },\r\n cleaning: () => {\r\n return `${RouteCreator.services.root()}/cleaning`;\r\n },\r\n cleaningBids: () => {\r\n return `${RouteCreator.services.root()}/cleaning/bids`;\r\n },\r\n reclaimed: () => {\r\n return `${RouteCreator.services.root()}/reclaimed`;\r\n },\r\n },\r\n};\r\n\r\nexport default RouteCreator;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n y1: 0.501,\n x2: 1,\n y2: 0.501,\n gradientUnits: \"objectBoundingBox\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2193d1\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5db031\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1282\",\n \"data-name\": \"Group 1282\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_823\",\n \"data-name\": \"Path 823\",\n d: \"M13.274,11.858a5.31,5.31,0,0,0,2.242-4.543,5.393,5.393,0,0,0-2.3-4.6h0A9.227,9.227,0,0,0,7.67,1.18H0V19.705H4.366V13.333H6.9l4.9,6.372h5.31l-5.428-7.021A10.068,10.068,0,0,0,13.274,11.858ZM10.5,8.732a5.145,5.145,0,0,1-2.832.649h-3.3V5.192h3.3a5.287,5.287,0,0,1,2.832.649,1.716,1.716,0,0,1,.708,1.475A1.758,1.758,0,0,1,10.5,8.732ZM27.2,7.08a6.769,6.769,0,0,0-4.366-1.357A6.531,6.531,0,0,0,17.876,7.67a6.876,6.876,0,0,0-1.829,4.9v.354a6.772,6.772,0,0,0,1.829,4.956,6.666,6.666,0,0,0,5.015,1.947,7.219,7.219,0,0,0,4.248-1.239,4.872,4.872,0,0,0,1.77-2.3l.236-.649L24.9,14.749a1.372,1.372,0,0,1-.413.649,1.731,1.731,0,0,1-1,.354,2.212,2.212,0,0,1-.649.059,2.408,2.408,0,0,1-1.77-.649,2.32,2.32,0,0,1-.531-1h8.732v-1.77a10.161,10.161,0,0,0-.236-2.3A4.662,4.662,0,0,0,27.2,7.08ZM20.531,11.5a2.039,2.039,0,0,1,.59-1.239,2.36,2.36,0,0,1,1.711-.649,2.447,2.447,0,0,1,1.475.472,1.448,1.448,0,0,1,.649,1c0,.118.059.295.059.413Zm17.522,4.307a3.907,3.907,0,0,1-.885.059,1,1,0,0,1-.531-.118c-.059-.059-.177-.177-.177-.649V10.147h3.481V6.077H36.46V2.36H32.153V6.077H30.324v4.071h1.829v5.015a4.529,4.529,0,0,0,1.357,3.422,5.051,5.051,0,0,0,3.658,1.3,6.778,6.778,0,0,0,1.947-.236l1.593-.413-.826-3.894ZM48.732,5.959a2.613,2.613,0,0,0-2.478,1V6.077H41.888V19.646h4.307V13.569a7.087,7.087,0,0,1,.236-2.478v-.059a2.391,2.391,0,0,1,.295-.531l.059-.059h0l.177-.177a2.55,2.55,0,0,1,1.652-.354h.059c.413.059,1.3.177,1.77.295V6.254a9.315,9.315,0,0,0-1.711-.295Zm12.507.354a6.142,6.142,0,0,0-.944-.354,8.438,8.438,0,0,0-6.136.649,4.028,4.028,0,0,0-1.947,2.6l-.118.59,4.071.826.236-.413a.454.454,0,0,1,.118-.177l.118-.118c.059-.059.177-.059.295-.118.059,0,.118-.059.177-.059a3.453,3.453,0,0,1,.767-.118h0c.177,0,1.829-.118,2.006.885,0,0-5.251.118-7.375,2.36a3.76,3.76,0,0,0-1,2.3c-.177,2.773,2.832,4.838,5.9,4.543a3.939,3.939,0,0,0,2.124-.826v.708h4.484V10.324A4.533,4.533,0,0,0,61.239,6.313Zm-1.3,8.791a10.39,10.39,0,0,1-1.357.826,4.015,4.015,0,0,1-1.416.472H57.05c-.885,0-1.416-.767-1-1.475a2.763,2.763,0,0,1,1.711-1.062,20.577,20.577,0,0,1,2.183-.354ZM74.4,6.018a5.2,5.2,0,0,0-1.947-.354,6.531,6.531,0,0,0-4.956,1.947,6.876,6.876,0,0,0-1.829,4.9v.354a6.772,6.772,0,0,0,1.829,4.956,6.666,6.666,0,0,0,5.015,1.947,4.312,4.312,0,0,0,1.947-.472v.354h4.307V.118H74.454v5.9Zm.118,5.546a4.847,4.847,0,0,1,.118,1.357,5.812,5.812,0,0,1-.118,1c-.059.177-.059.354-.118.531a2.062,2.062,0,0,1-2.006,1.357h-.177a2.291,2.291,0,0,1-1.534-.59,3.1,3.1,0,0,1-.708-2.242v-.354a3.356,3.356,0,0,1,.708-2.3,2.21,2.21,0,0,1,1.593-.649h.177a1.152,1.152,0,0,1,.413.059,2.024,2.024,0,0,1,1.593,1.475A.748.748,0,0,0,74.513,11.563ZM91.386,7.08a6.769,6.769,0,0,0-4.366-1.357A6.531,6.531,0,0,0,82.065,7.67a6.876,6.876,0,0,0-1.829,4.9v.354a6.772,6.772,0,0,0,1.829,4.956,6.666,6.666,0,0,0,5.015,1.947,7.219,7.219,0,0,0,4.248-1.239,4.872,4.872,0,0,0,1.77-2.3l.236-.649-4.189-.885a1.372,1.372,0,0,1-.413.649,1.731,1.731,0,0,1-1,.354,2.212,2.212,0,0,1-.649.059,2.408,2.408,0,0,1-1.77-.649,2.32,2.32,0,0,1-.531-1H93.51v-1.77a10.162,10.162,0,0,0-.236-2.3A5,5,0,0,0,91.386,7.08ZM84.779,11.5a2.039,2.039,0,0,1,.59-1.239,2.36,2.36,0,0,1,1.711-.649,2.447,2.447,0,0,1,1.475.472,1.448,1.448,0,0,1,.649,1c0,.118.059.295.059.413Zm20.059-5.192a6.141,6.141,0,0,0-.944-.354,8.438,8.438,0,0,0-6.136.649,4.028,4.028,0,0,0-1.947,2.6l-.118.59,4.071.826.236-.413a.454.454,0,0,1,.118-.177l.118-.118c.059-.059.177-.059.295-.118.059,0,.118-.059.177-.059a3.453,3.453,0,0,1,.767-.118h0c.177,0,1.829-.118,2.006.885,0,0-5.251.118-7.375,2.36a3.76,3.76,0,0,0-1,2.3c-.177,2.773,2.832,4.838,5.9,4.543a3.939,3.939,0,0,0,2.124-.826v.708h4.484V10.324A4.533,4.533,0,0,0,104.838,6.313ZM103.481,15.1a10.389,10.389,0,0,1-1.357.826,4.015,4.015,0,0,1-1.416.472h-.118c-.885,0-1.416-.767-1-1.475a2.763,2.763,0,0,1,1.711-1.062,20.577,20.577,0,0,1,2.183-.354Zm12.448-9.381a4.984,4.984,0,0,0-1.947.354V.177h-4.307V19.764h4.307V19.41a4.312,4.312,0,0,0,1.947.472,6.757,6.757,0,0,0,5.015-1.947,7.022,7.022,0,0,0,1.829-4.956v-.354a6.569,6.569,0,0,0-6.844-6.9Zm2.419,7.257a3.194,3.194,0,0,1-.708,2.242,2.137,2.137,0,0,1-1.534.59h-.177a2.084,2.084,0,0,1-2.006-1.357,1.178,1.178,0,0,1-.118-.531,5.812,5.812,0,0,1-.118-1,9.684,9.684,0,0,1,.118-1.357c.059-.118.059-.295.118-.413a2.119,2.119,0,0,1,1.593-1.475c.118,0,.236-.059.413-.059h.177a2.21,2.21,0,0,1,1.593.649,3.16,3.16,0,0,1,.708,2.3v.413Zm9.735,2.3V0h-4.307V14.985a4.529,4.529,0,0,0,1.357,3.422,4.679,4.679,0,0,0,2.419,1.18l1.475.295s1.475-3.186,1.534-3.3H130.5C128.024,16.4,128.083,15.28,128.083,15.28Zm13.687-8.2A6.769,6.769,0,0,0,137.4,5.723a6.531,6.531,0,0,0-4.956,1.947,6.876,6.876,0,0,0-1.829,4.9v.354a6.772,6.772,0,0,0,1.829,4.956,6.666,6.666,0,0,0,5.015,1.947,7.219,7.219,0,0,0,4.248-1.239,4.872,4.872,0,0,0,1.77-2.3l.236-.649-4.189-.885a1.372,1.372,0,0,1-.413.649,1.731,1.731,0,0,1-1,.354,2.212,2.212,0,0,1-.649.059,2.408,2.408,0,0,1-1.77-.649,2.32,2.32,0,0,1-.531-1h8.732v-1.77a10.161,10.161,0,0,0-.236-2.3A5,5,0,0,0,141.77,7.08ZM135.162,11.5a2.039,2.039,0,0,1,.59-1.239,2.36,2.36,0,0,1,1.711-.649,2.447,2.447,0,0,1,1.475.472,1.448,1.448,0,0,1,.649,1c0,.118.059.295.059.413Zm21.77,1.652a4.778,4.778,0,0,0-1.475-1.416h0c-.118-.059-.295-.118-.413-.177a11.279,11.279,0,0,0-2.773-.708c-.177,0-.295-.059-.472-.059h-.177a8.463,8.463,0,0,1-1.3-.236,1.294,1.294,0,0,1-.472-.177,2.248,2.248,0,0,1,.354-.295c.059-.059.118-.059.236-.118a4.105,4.105,0,0,1,.944-.118h.295a1.989,1.989,0,0,1,1,.295h.059a1.883,1.883,0,0,1,.354.413l3.953-1-.059-.236A4.1,4.1,0,0,0,155.1,6.667a7.837,7.837,0,0,0-5.9-.649c-.295.118-.649.236-.944.354-1.947,1-3.422,3.245-2.3,5.6a5.346,5.346,0,0,0,.649.944c.059.059.177.118.236.236a4.133,4.133,0,0,0,.59.472,13.833,13.833,0,0,0,3.835,1.121c.354.059.767.118,1.121.177a3.481,3.481,0,0,1,.885.295c-.236.708-1.652.708-1.829.708a6.534,6.534,0,0,1-1.121-.118,1.939,1.939,0,0,1-.944-.413,2.1,2.1,0,0,1-.236-.531l-.059-.354-4.071,1,.177.708c.531,2.3,2.891,3.717,6.313,3.776,2.36,0,5.192-1,5.959-3.776A4.075,4.075,0,0,0,156.932,13.156Z\",\n fill: \"url(#linear-gradient)\"\n}));\n\nvar SvgLogoBigRtr = function SvgLogoBigRtr(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Retradeables_Logo_einzeilig\",\n width: 157.564,\n height: 20,\n viewBox: \"0 0 157.564 20\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogoBigRtr, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo-big-rtr.47c00f08.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n x1: -14.296,\n y1: 0.908,\n x2: -16.692,\n y2: 1.492,\n gradientUnits: \"objectBoundingBox\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5ca31e\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n x1: 1.539,\n y1: 0.264,\n x2: -0.407,\n y2: 0.706,\n xlinkHref: \"#linear-gradient\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 2.514,\n y1: 0.5,\n x2: 0.106,\n y2: 0.5,\n xlinkHref: \"#linear-gradient\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-4\",\n x1: 0.846,\n y1: 0.5,\n x2: -1.561,\n y2: 0.5,\n xlinkHref: \"#linear-gradient\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1303\",\n \"data-name\": \"Group 1303\",\n transform: \"translate(1044.396 -14.179)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_2\",\n \"data-name\": \"Group 2\",\n transform: \"translate(-1023.212 28.057)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1\",\n \"data-name\": \"Group 1\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1\",\n \"data-name\": \"Path 1\",\n d: \"M-799.433,173.9H-807.7a2.446,2.446,0,0,0,.976,1.432,3.122,3.122,0,0,0,1.815.5,3.729,3.729,0,0,0,1.416-.244,4.148,4.148,0,0,0,1.207-.8l2.1,2.309a6,6,0,0,1-4.847,1.954,7.386,7.386,0,0,1-3.5-.8,5.766,5.766,0,0,1-2.34-2.22,6.266,6.266,0,0,1-.829-3.219,6.292,6.292,0,0,1,.808-3.186,5.786,5.786,0,0,1,2.235-2.209,6.455,6.455,0,0,1,3.211-.8,6.417,6.417,0,0,1,3.085.744,5.482,5.482,0,0,1,2.193,2.153,6.608,6.608,0,0,1,.808,3.341Q-799.37,172.9-799.433,173.9Zm-7.544-3.73a2.546,2.546,0,0,0-.787,1.51h4.659a2.551,2.551,0,0,0-.787-1.51,2.227,2.227,0,0,0-1.542-.555A2.225,2.225,0,0,0-806.977,170.172Z\",\n transform: \"translate(811.709 -166.62)\",\n fill: \"url(#linear-gradient)\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_3\",\n \"data-name\": \"Group 3\",\n transform: \"translate(-1036.614 40.91)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2\",\n \"data-name\": \"Path 2\",\n d: \"M-956.944,314.722a.876.876,0,0,1-.268.105,1.484,1.484,0,0,1-.337.037,1.071,1.071,0,0,1-.748-.238.915.915,0,0,1-.261-.711v-.835h-.363v-.651h.363v-.647h.871v.647h.569v.651h-.569v.826a.293.293,0,0,0,.071.209.249.249,0,0,0,.19.076.461.461,0,0,0,.266-.078Z\",\n transform: \"translate(958.921 -311.42)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_3\",\n \"data-name\": \"Path 3\",\n d: \"M-932.35,317.51a1.315,1.315,0,0,1,.489-.085v.784a1.793,1.793,0,0,0-.2-.014.607.607,0,0,0-.438.151.614.614,0,0,0-.158.463v1.142h-.872v-2.486h.83v.3A.811.811,0,0,1-932.35,317.51Z\",\n transform: \"translate(935.839 -316.549)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_4\",\n \"data-name\": \"Path 4\",\n d: \"M-910.923,317.707a1.083,1.083,0,0,1,.326.865v1.38h-.812v-.321a.748.748,0,0,1-.734.362,1.15,1.15,0,0,1-.5-.1.74.74,0,0,1-.319-.273.722.722,0,0,1-.108-.392.637.637,0,0,1,.271-.548,1.438,1.438,0,0,1,.835-.195h.5q-.023-.395-.528-.394a1.212,1.212,0,0,0-.362.057.963.963,0,0,0-.312.158l-.294-.592a1.626,1.626,0,0,1,.5-.213,2.38,2.38,0,0,1,.594-.076A1.4,1.4,0,0,1-910.923,317.707Zm-.711,1.662a.408.408,0,0,0,.165-.215v-.216h-.376q-.381,0-.381.252a.222.222,0,0,0,.087.183.375.375,0,0,0,.238.069A.482.482,0,0,0-911.634,319.369Z\",\n transform: \"translate(917.244 -316.549)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_5\",\n \"data-name\": \"Path 5\",\n d: \"M-878.242,307.8v3.4h-.83v-.248a.9.9,0,0,1-.729.289,1.236,1.236,0,0,1-.619-.158,1.144,1.144,0,0,1-.443-.452,1.376,1.376,0,0,1-.163-.679,1.364,1.364,0,0,1,.163-.677,1.132,1.132,0,0,1,.443-.447,1.251,1.251,0,0,1,.619-.156.9.9,0,0,1,.688.257V307.8Zm-1,2.594a.619.619,0,0,0,.147-.438.61.61,0,0,0-.145-.431.486.486,0,0,0-.374-.156.494.494,0,0,0-.376.156.6.6,0,0,0-.147.431.618.618,0,0,0,.147.438.49.49,0,0,0,.376.158A.485.485,0,0,0-879.246,310.4Z\",\n transform: \"translate(888.117 -307.803)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_6\",\n \"data-name\": \"Path 6\",\n d: \"M-843.325,318.929h-1.807a.505.505,0,0,0,.213.3.712.712,0,0,0,.4.1.856.856,0,0,0,.31-.051.907.907,0,0,0,.264-.165l.459.477a1.351,1.351,0,0,1-1.06.4,1.692,1.692,0,0,1-.766-.165,1.231,1.231,0,0,1-.511-.459,1.239,1.239,0,0,1-.181-.665,1.244,1.244,0,0,1,.177-.658,1.233,1.233,0,0,1,.489-.456,1.477,1.477,0,0,1,.7-.165,1.468,1.468,0,0,1,.674.154,1.171,1.171,0,0,1,.48.445,1.308,1.308,0,0,1,.176.69Q-843.312,318.723-843.325,318.929Zm-1.649-.77a.517.517,0,0,0-.172.312h1.018a.519.519,0,0,0-.172-.312.5.5,0,0,0-.337-.115A.5.5,0,0,0-844.974,318.159Z\",\n transform: \"translate(856.288 -316.549)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_7\",\n \"data-name\": \"Path 7\",\n d: \"M-812.119,317.707a1.083,1.083,0,0,1,.326.865v1.38h-.812v-.321a.748.748,0,0,1-.734.362,1.15,1.15,0,0,1-.5-.1.74.74,0,0,1-.319-.273.723.723,0,0,1-.108-.392.636.636,0,0,1,.271-.548,1.438,1.438,0,0,1,.835-.195h.5q-.023-.395-.528-.394a1.214,1.214,0,0,0-.362.057.964.964,0,0,0-.312.158l-.293-.592a1.625,1.625,0,0,1,.5-.213,2.38,2.38,0,0,1,.594-.076A1.4,1.4,0,0,1-812.119,317.707Zm-.711,1.662a.408.408,0,0,0,.165-.215v-.216h-.376q-.381,0-.381.252a.222.222,0,0,0,.087.183.376.376,0,0,0,.239.069A.481.481,0,0,0-812.83,319.369Z\",\n transform: \"translate(827.435 -316.549)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_8\",\n \"data-name\": \"Path 8\",\n d: \"M-778.881,308.835a1.136,1.136,0,0,1,.44.447,1.364,1.364,0,0,1,.163.677,1.376,1.376,0,0,1-.163.679,1.148,1.148,0,0,1-.44.452,1.224,1.224,0,0,1-.617.158.9.9,0,0,1-.734-.289v.248h-.83v-3.4h.871v1.133a.927.927,0,0,1,.693-.257A1.238,1.238,0,0,1-778.881,308.835Zm-.424,1.562a.619.619,0,0,0,.147-.438.6.6,0,0,0-.147-.431.494.494,0,0,0-.376-.156.494.494,0,0,0-.376.156.6.6,0,0,0-.147.431.618.618,0,0,0,.147.438.49.49,0,0,0,.376.158A.49.49,0,0,0-779.305,310.4Z\",\n transform: \"translate(797.254 -307.803)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_9\",\n \"data-name\": \"Path 9\",\n d: \"M-746.045,307.8h.871v3.4h-.871Z\",\n transform: \"translate(765.425 -307.803)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_10\",\n \"data-name\": \"Path 10\",\n d: \"M-729.3,318.929h-1.807a.5.5,0,0,0,.213.3.711.711,0,0,0,.4.1.857.857,0,0,0,.31-.051.91.91,0,0,0,.264-.165l.459.477a1.351,1.351,0,0,1-1.06.4,1.691,1.691,0,0,1-.766-.165,1.232,1.232,0,0,1-.512-.459,1.24,1.24,0,0,1-.181-.665,1.246,1.246,0,0,1,.177-.658,1.232,1.232,0,0,1,.489-.456,1.477,1.477,0,0,1,.7-.165,1.468,1.468,0,0,1,.674.154,1.172,1.172,0,0,1,.479.445,1.307,1.307,0,0,1,.177.69Q-729.291,318.723-729.3,318.929Zm-1.649-.77a.517.517,0,0,0-.172.312h1.018a.518.518,0,0,0-.172-.312.5.5,0,0,0-.337-.115A.5.5,0,0,0-730.954,318.159Z\",\n transform: \"translate(752.648 -316.549)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_11\",\n \"data-name\": \"Path 11\",\n d: \"M-699.608,319.922a1.618,1.618,0,0,1-.486-.186l.262-.6a1.474,1.474,0,0,0,.4.167,1.806,1.806,0,0,0,.463.062.743.743,0,0,0,.3-.043.137.137,0,0,0,.089-.126q0-.082-.108-.117a2.242,2.242,0,0,0-.342-.066,3.354,3.354,0,0,1-.507-.1.78.78,0,0,1-.36-.22.63.63,0,0,1-.151-.449.68.68,0,0,1,.142-.424.942.942,0,0,1,.415-.293,1.778,1.778,0,0,1,.654-.108,2.644,2.644,0,0,1,.537.055,1.541,1.541,0,0,1,.445.156l-.261.592a1.45,1.45,0,0,0-.716-.184.711.711,0,0,0-.3.048.143.143,0,0,0-.1.126c0,.058.035.1.105.122a2.425,2.425,0,0,0,.349.071,3.858,3.858,0,0,1,.509.106.78.78,0,0,1,.351.218.62.62,0,0,1,.149.443.672.672,0,0,1-.142.42.924.924,0,0,1-.42.291,1.88,1.88,0,0,1-.667.105A2.682,2.682,0,0,1-699.608,319.922Z\",\n transform: \"translate(723.657 -316.549)\",\n fill: \"#0083ca\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4\",\n \"data-name\": \"Group 4\",\n transform: \"translate(-1036.616 24.072)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_12\",\n \"data-name\": \"Path 12\",\n d: \"M-948.5,139.262l-4.344-5.653h-2.243v5.653h-3.85V122.845h6.793a8.193,8.193,0,0,1,4.94,1.357h0a4.8,4.8,0,0,1,2.023,4.066,4.7,4.7,0,0,1-2,4.014,6.116,6.116,0,0,1-1.392.74l4.822,6.24Zm-6.588-9.185h2.943a4.448,4.448,0,0,0,2.517-.571,1.336,1.336,0,0,0,.6-1.219,1.465,1.465,0,0,0-.618-1.322,4.283,4.283,0,0,0-2.494-.587h-2.943Z\",\n transform: \"translate(958.938 -122.845)\",\n fill: \"url(#linear-gradient-2)\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_13\",\n \"data-name\": \"Path 13\",\n d: \"M-1037.78,94.922c-3.987-1.144-6.616-2.964-6.616-4.444v3.553c0,1.48,2.629,2.657,6.616,3.325Z\",\n transform: \"translate(0 -69.353)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_14\",\n \"data-name\": \"Path 14\",\n d: \"M-1029.885,18.8l-5.963-4.624v2.437c-5.048.908-8.548,2.8-8.548,4.509v3.553c0-1.708,3.5-2.829,8.548-3.313v2.063Z\",\n fill: \"url(#linear-gradient-3)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_15\",\n \"data-name\": \"Path 15\",\n d: \"M-664.621,307.517v2.773c2.56,1.082,4.135,2.43,4.135,3.576v-3.553C-660.486,309.168-662.061,308.2-664.621,307.517Z\",\n transform: \"translate(-345.201 -266.633)\",\n fill: \"#0083ca\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_16\",\n \"data-name\": \"Path 16\",\n d: \"M-778.6,344.1l5.963,4.624v-2.437c5.048-.908,8.548-2.8,8.548-4.509v-3.553c0,1.708-3.5,2.829-8.548,3.313v-2.063Z\",\n transform: \"translate(-241.602 -294.547)\",\n fill: \"url(#linear-gradient-4)\"\n}));\n\nvar SvgLogoSmallRtr = function SvgLogoSmallRtr(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 38.71,\n height: 40,\n viewBox: \"0 0 38.71 40\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogoSmallRtr, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo-small-rtr.c46477d2.svg\";\nexport { ForwardRef as ReactComponent };","import Color from \"color\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport leftNavigationStateModule from \"../../../../core/state/navigation/leftNavigationStateModule\";\r\nimport userStateModule from \"../../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport { ReactComponent as LogoBig } from \"../../../../assets/logo-big-rtr.svg\";\r\nimport { ReactComponent as LogoSmall } from \"../../../../assets/logo-small-rtr.svg\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nconst LogoWrapper = styled.div`\r\n height: ${(props) => props.theme.heightHeader};\r\n box-sizing: border-box;\r\n /* transition: padding 0.3s ease-in; */\r\n padding: 0 16px 0 10px;\r\n display: flex;\r\n align-items: center;\r\n \r\n position: relative;\r\n\r\n &.isOpened {\r\n }\r\n\r\n &.menu-visible {\r\n border-bottom: 1px solid\r\n ${(props) =>\r\n Color(props.theme.headerBorderColor).lighten(0.1).string()};\r\n }\r\n`;\r\n\r\n\r\nconst BigLogo = styled(LogoBig)`\r\n width: 165px;\r\n height: 24px;\r\n position: absolute;\r\n left: 15px;\r\n top: 16px;\r\n opacity: 0;\r\n pointer-events: none;\r\n \r\n transform: scaleX(0);\r\n transform-origin: top left;\r\n transition: all 0.2s ease-out, opacity 0.5s ease-out;\r\n &.active {\r\n opacity:1;\r\n \r\n transform: scaleX(1);\r\n pointer-events: all;\r\n }\r\n`;\r\n\r\nconst SmallLogo = styled(LogoSmall)`\r\n width: 50px;\r\n height: 45px;\r\n position: absolute;\r\n left: 3px;\r\n top: 8px;\r\n opacity: 0;\r\n pointer-events: none;\r\n transition: all 0.1s ease-out;\r\n &.active {\r\n opacity: 1;\r\n pointer-events: all;\r\n }\r\n`;\r\n\r\nconst HeaderLogo = () => {\r\n const location = useLocation();\r\n const { t } = useTranslation(\"header\");\r\n const { menuState } = useStateModule(userStateModule);\r\n const { menuItems, isVisible } = useStateModule(leftNavigationStateModule);\r\n const forceBigLogo = location.pathname.startsWith(\"/company/\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeaderLogo;\r\n","import { useEffect, useRef } from 'react';\r\n\r\nconst defaultEvents = ['mousedown', 'touchstart'];\r\nconst useClickAway = (ref, onClickAway, events = defaultEvents) => {\r\n const savedCallback = useRef(onClickAway);\r\n useEffect(() => {\r\n savedCallback.current = onClickAway;\r\n }, [onClickAway]);\r\n useEffect(() => {\r\n const handler = event => {\r\n const { current: el } = ref;\r\n const isModal = document.querySelector(\"#modal-open\");\r\n const isGallery = document.querySelector(\"#gallery-open\");\r\n !isModal && !isGallery && el && !el.contains(event.target) && savedCallback.current(event);\r\n };\r\n for (const eventName of events) {\r\n window.document.addEventListener(eventName, handler);\r\n }\r\n return () => {\r\n for (const eventName of events) {\r\n window.document.removeEventListener(eventName, handler);\r\n }\r\n };\r\n }, [events, ref]);\r\n};\r\nexport default useClickAway;\r\n","import Color from \"color\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Button = styled.button`\r\n cursor: pointer;\r\n transition: all 0.2s ease-in-out;\r\n border-radius: ${(props) => props.theme.buttonsBorderRadius};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n padding: ${(props) => props.theme.paddingInlineButton};\r\n box-shadow: ${(props) => props.theme.buttonShadow};\r\n height: ${(props) => props.theme.heightButtonSmall};\r\n line-height: ${(props) => props.theme.heightButtonSmall};\r\n vertical-align: middle;\r\n font-size: 0.875rem;\r\n\r\n &.primary {\r\n background: ${(props) => props.theme.primaryColor};\r\n border: 1px solid ${(props) => props.theme.primaryColorBorder};\r\n color: ${(props) => props.theme.primaryColorText};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n\r\n &:hover:enabled {\r\n background: ${(props) =>\r\n Color(props.theme.primaryColor).lighten(0.15).string()};\r\n }\r\n }\r\n\r\n &.primary--action {\r\n color: #fff;\r\n background: ${(props) => props.theme.primaryActionColor};\r\n border: 1px solid ${(props) => props.theme.primaryActionColorBorder};\r\n\r\n &:hover:enabled {\r\n background: ${(props) =>\r\n Color(props.theme.primaryActionColor).lighten(0.15).string()};\r\n }\r\n }\r\n\r\n &.primary--action:disabled {\r\n color: #fff;\r\n background: ${(props) => props.theme.primaryActionColor};\r\n border: 1px solid ${(props) => props.theme.primaryActionColorBorder};\r\n opacity: 0.25;\r\n }\r\n\r\n &.secondary {\r\n background: ${(props) => props.theme.bgWhite};\r\n border: 1px solid ${(props) => props.theme.primaryColorBorder};\r\n color: ${(props) => props.theme.primaryColorBorder};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n\r\n &:disabled {\r\n border-color: ${(props) => props.theme.borderColorDisabled};\r\n }\r\n }\r\n\r\n &.secondary--action {\r\n background: ${(props) => props.theme.secondaryColor};\r\n border: 1px solid ${(props) => props.theme.primaryColorBorder};\r\n color: #fff;\r\n\r\n &:disabled {\r\n border-color: ${(props) => props.theme.borderColorDisabled};\r\n }\r\n }\r\n\r\n &.blue--border {\r\n background: transparent;\r\n border: 1px solid ${(props) => props.theme.secondaryColorBorder};\r\n color: ${(props) => props.theme.secondaryColor};\r\n box-shadow: none;\r\n\r\n &:disabled {\r\n border-color: ${(props) => props.theme.borderColorDisabled};\r\n }\r\n }\r\n\r\n &.secondary--negative {\r\n border: 1px solid ${(props) => props.theme.borderColorError};\r\n background: ${(props) => props.theme.secondaryNegativeColor};\r\n color: #fff;\r\n\r\n &:hover {\r\n box-shadow: ${(props) => props.theme.buttonShadowNegative};\r\n }\r\n }\r\n\r\n &.decline {\r\n color: ${(props) => props.theme.secondaryNegativeColor};\r\n border: 1px solid transparent;\r\n background: transparent;\r\n box-shadow: none;\r\n font-weight: 700;\r\n\r\n &:hover {\r\n box-shadow: ${(props) => props.theme.buttonShadowNegative};\r\n }\r\n }\r\n\r\n &.tertiary {\r\n border: none;\r\n background: transparent;\r\n box-shadow: none;\r\n color: ${(props) => props.theme.primaryColor};\r\n padding: 0;\r\n min-width: initial;\r\n font-size: 1.125rem;\r\n font-weight: bold;\r\n\r\n &:disabled {\r\n cursor: default;\r\n background: transparent;\r\n }\r\n }\r\n\r\n &.tertiary--negative {\r\n color: ${(props) => props.theme.tertiaryNegativeColor};\r\n //margin-left: auto;\r\n }\r\n\r\n &.inline {\r\n min-width: auto;\r\n padding: ${(props) => props.theme.paddingInlineButton};\r\n margin: 0 0 4px 0;\r\n height: 24px;\r\n line-height: 24px;\r\n }\r\n\r\n &.horizontal-space {\r\n margin: 0 10px;\r\n }\r\n\r\n &.flat {\r\n box-shadow: none;\r\n }\r\n\r\n &.filter {\r\n outline: none;\r\n background: ${(p) => p.theme.primaryColor};\r\n border: 1px solid ${(p) => p.theme.primaryColor};\r\n height: 32px;\r\n line-height: 32px;\r\n color: #fff;\r\n box-shadow: none;\r\n font-size: 0.875rem;\r\n text-align: left;\r\n padding: 0 20px 0 37px;\r\n position: relative;\r\n border-radius: 16px;\r\n d &:before {\r\n content: \"+\";\r\n background: #fff;\r\n color: #675b34;\r\n border: 1px solid #fff;\r\n width: 23px;\r\n height: 23px;\r\n line-height: 23px;\r\n position: absolute;\r\n left: 5px;\r\n top: 3px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 1.25rem;\r\n }\r\n }\r\n\r\n &.filter.back:before {\r\n content: \"\\u2190\";\r\n }\r\n\r\n &.filter.open {\r\n background: #e94e4e;\r\n border: 1px solid #e94e4e;\r\n &:before {\r\n content: \"-\";\r\n }\r\n }\r\n\r\n &:disabled {\r\n cursor: default;\r\n background: ${(props) => props.theme.bgDisabled};\r\n border-color: ${(props) => props.theme.borderColorDisabled};\r\n color: ${(props) => props.theme.textDisabled};\r\n }\r\n\r\n & + button {\r\n margin: 0 0 0 60px;\r\n & + button {\r\n margin: 0 0 0 60px;\r\n }\r\n }\r\n\r\n &.sidebar {\r\n min-width: 148px;\r\n width: 148px;\r\n }\r\n\r\n &.big {\r\n height: 40px;\r\n width: auto;\r\n }\r\n\r\n &.centered {\r\n display: table;\r\n margin: 0 auto;\r\n }\r\n`;\r\n\r\nexport default Button;\r\n","import Color from \"color\";\r\nimport React, { useCallback, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled, { keyframes } from \"styled-components\";\r\nimport Button from \"../elements/buttons/Button\";\r\n\r\nconst animFade = keyframes`\r\n0% {\r\n opacity: 0.5;\r\n transform: translate(-50%, -50%) scale(0.9, 0.9);\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n transform: translate(-50%, -50%) scale(1, 1);\r\n }\r\n`;\r\n\r\nconst StyledModalContainer = styled.div`\r\n position: absolute;\r\n min-width: 624px;\r\n max-width: 624px;\r\n font-family: ${(props) => props.theme.fontFamily};\r\n background: white;\r\n margin: 0 auto;\r\n padding: 16px 40px 40px;\r\n z-index: 701;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n display: flex;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n transition: all 0.3s ease-in;\r\n font-family: ${(props) => props.theme.fontFamily};\r\n box-shadow: 0px 12px 20px 0px rgba(0, 0, 0, 0.16);\r\n border-radius: 14px;\r\n\r\n animation-duration: 0.3s;\r\n animation-name: ${animFade};\r\n animation-fill-mode: backwards;\r\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\r\n transform-style: preserve-3d;\r\n perspective: 1000px;\r\n\r\n &.wide {\r\n max-width: 900px;\r\n padding: 64px 52px 40px;\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n &,\r\n &.wide {\r\n min-width: 90%;\r\n width: 90%;\r\n max-width: 90%;\r\n padding: 30px 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledModalOverlay = styled.div`\r\n display: block;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${(props) =>\r\n Color(props.theme.bgOverlay).fade(0.5).string()};\r\n z-index: 700;\r\n\r\n &.opaque {\r\n background-color: ${(props) => Color(props.theme.bgOverlay).string()};\r\n }\r\n`;\r\n\r\nconst StyledHeader = styled.div`\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 14px;\r\n text-align: center;\r\n text-transform: uppercase;\r\n font-size: 18px;\r\n font-weight: 700;\r\n color: #000;\r\n background-color: #e94e4e;\r\n border-radius: 14px 14px 0px 0px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n &.info {\r\n background-color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n &.warning {\r\n background-color: #e98c13;\r\n }\r\n`;\r\n\r\nconst StyledTitle = styled.div`\r\n height: 88px;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: #e94e4e;\r\n text-align: left;\r\n padding: 32px 0px;\r\n text-transform: uppercase;\r\n\r\n &.info {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n &.warning {\r\n color: #e98c13;\r\n }\r\n @media ${(p) => p.theme.device.mobile} {\r\n height: 68px;\r\n font-size: 18px;\r\n text-align: center;\r\n padding: 20px 0px;\r\n }\r\n`;\r\n\r\nconst ModalContent = styled.div`\r\n margin: 30px 0px 30px;\r\n text-align: left;\r\n font-weight: 600;\r\n max-width: 100%;\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5 {\r\n color: ${(props) => props.theme.primaryColor};\r\n text-transform: uppercase;\r\n margin: 0 0 32px;\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n }\r\n\r\n p {\r\n margin: 0;\r\n font-size: 1.125rem;\r\n font-weight: 600;\r\n }\r\n\r\n p + p {\r\n margin-top: 10px;\r\n font-weight: 500;\r\n color: #707070;\r\n }\r\n\r\n p.list {\r\n margin-left: 10px !important;\r\n }\r\n\r\n p.bold {\r\n font-weight: 600 !important;\r\n color: #000 !important;\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n p {\r\n text-align: center;\r\n font-size: 14px !important;\r\n }\r\n }\r\n`;\r\n\r\nconst HR = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n border-top: 1px solid #eee;\r\n`;\r\n\r\nconst ModalButtonsWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n\r\n &.single {\r\n justify-content: center;\r\n }\r\n\r\n &.three {\r\n justify-content: space-between;\r\n }\r\n\r\n padding-top: 32px;\r\n button {\r\n margin: 0;\r\n & + button,\r\n & + a {\r\n margin: 0 60px 0 0;\r\n }\r\n }\r\n`;\r\n\r\nconst DialogButton = styled(Button)`\r\n min-width: 148px !important;\r\n margin: 0 !important;\r\n font-size: 14px;\r\n font-weight: 500;\r\n outline: none !important;\r\n\r\n &.cancel {\r\n background: transparent !important;\r\n box-shadow: none;\r\n border: none !important;\r\n font-size: 16px;\r\n font-weight: 700;\r\n :hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n &.danger {\r\n border: 0;\r\n color: #fff;\r\n background-color: #e94e4e;\r\n }\r\n\r\n &.warning {\r\n border: 0;\r\n color: #fff;\r\n background-color: #e98c13;\r\n }\r\n\r\n &.alternative {\r\n background-color: #e69221 !important;\r\n border: 0;\r\n color: #fff;\r\n }\r\n\r\n &.info {\r\n border: 0;\r\n color: #fff;\r\n background-color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n &.hidden {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const useModal = ({\r\n onConfirm,\r\n onCancel,\r\n modalButtons,\r\n showCloseButton = true,\r\n confirmText,\r\n cancelText,\r\n cancelFirst = true,\r\n isNegativeAction = true,\r\n modalVariant = \"\",\r\n title = \"\",\r\n type = \"danger\",\r\n style,\r\n onAlternative,\r\n onAlternativeDisabled,\r\n alternativeText,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [modalModel, setModalModel] = useState({});\r\n\r\n const toggleOpen = useCallback(\r\n (modal) => {\r\n setModalModel(modal);\r\n setIsOpen((open) => !open);\r\n },\r\n [setIsOpen, setModalModel]\r\n );\r\n\r\n return {\r\n toggleOpen: toggleOpen,\r\n modalProps: {\r\n isOpen,\r\n onConfirm,\r\n onCancel,\r\n modal: modalModel,\r\n modalButtons,\r\n showCloseButton,\r\n confirmText,\r\n cancelText,\r\n onAlternative,\r\n alternativeText,\r\n cancelFirst,\r\n closeModal: toggleOpen,\r\n isNegativeAction,\r\n onAlternativeDisabled,\r\n modalVariant,\r\n title,\r\n type,\r\n style,\r\n },\r\n };\r\n};\r\n\r\nconst ModalDialog = ({\r\n children,\r\n onConfirm,\r\n onCancel,\r\n onAlternative,\r\n isOpen,\r\n modal,\r\n modalButtons,\r\n showCloseButton = true,\r\n closeModal,\r\n confirmText,\r\n cancelText,\r\n alternativeText,\r\n cancelFirst,\r\n isNegativeAction,\r\n onAlternativeDisabled,\r\n modalVariant,\r\n title,\r\n type,\r\n style,\r\n opaque,\r\n}) => {\r\n const { t } = useTranslation(\"actions\");\r\n\r\n if (!isOpen) {\r\n return null;\r\n }\r\n\r\n const singleButton = !onCancel || !onConfirm;\r\n\r\n const threeButtons = onCancel && onConfirm && onAlternative;\r\n\r\n const CancelButton = () =>\r\n onCancel ? (\r\n {\r\n onCancel(modal);\r\n }}\r\n >\r\n {cancelText ? cancelText : t(\"cancel\")}\r\n \r\n ) : null;\r\n\r\n const ConfirmButton = () =>\r\n onConfirm ? (\r\n {\r\n onConfirm(modal);\r\n }}\r\n >\r\n {confirmText ? confirmText : t(\"confirm\")}\r\n \r\n ) : null;\r\n\r\n const AlternativeButton = () =>\r\n onAlternative ? (\r\n {\r\n onAlternative(modal);\r\n }}\r\n >\r\n {alternativeText ? alternativeText : t(\"alternative\")}\r\n \r\n ) : null;\r\n\r\n return ReactDOM.createPortal(\r\n <>\r\n \r\n {\r\n ev.stopPropagation();\r\n }}\r\n >\r\n {title && (\r\n <>\r\n \r\n {title}\r\n
\r\n \r\n )}\r\n {children}\r\n {title &&
}\r\n \r\n <>\r\n {onCancel && }\r\n {onAlternative && }\r\n {onConfirm && }\r\n \r\n {modalButtons && modalButtons()}\r\n \r\n \r\n ,\r\n document.body\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n","import i18next from \"i18next\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const getDateFormat = (currentLanguage) =>\r\n Intl.DateTimeFormat(currentLanguage, {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n\r\nexport const getTimeFormat = (currentLanguage) =>\r\n Intl.DateTimeFormat(currentLanguage, {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n });\r\n\r\nexport const getDateTimeFormat = (currentLanguage) =>\r\n Intl.DateTimeFormat(currentLanguage, {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false,\r\n });\r\n\r\nexport const formatDateForExportDocument = () => {\r\n const date = new Date();\r\n const day = date?.getDay();\r\n const formattedDay = day > 9 ? day.toString() : `0${day}`;\r\n return `${date?.getFullYear()}_${(\r\n date?.getMonth() + 1\r\n ).toString()}_${formattedDay}_${date?.getHours()}_${date?.getMinutes()}`;\r\n};\r\n\r\nconst isValidDate = (dateValue) => {\r\n const year = dateValue.getFullYear();\r\n return (year > 1900) & (year < 2500);\r\n};\r\n\r\nconst DateCell = ({ cell: { value } }) => {\r\n const { t } = useTranslation(\"common\");\r\n const currentLanguage = \"sk\"; //i18next.language || \"en\";\r\n\r\n if (value) {\r\n const dateValue = new Date(value);\r\n\r\n let date = getDateFormat(currentLanguage).format(dateValue);\r\n const time = getTimeFormat(currentLanguage).format(dateValue);\r\n\r\n const title = isValidDate(dateValue)\r\n ? `${t(\"dateTime.at\")} ${time}`\r\n : \"\";\r\n date = isValidDate(dateValue) ? date : \"-\";\r\n return {date};\r\n }\r\n return null;\r\n};\r\n\r\nconst ShortDateCell = ({ cell: { value } }) => {\r\n const currentLanguage = \"sk\"; //i18next.language || \"en\";\r\n\r\n if (value) {\r\n const dateValue = new Date(value);\r\n const date = getDateFormat(currentLanguage).format(dateValue);\r\n const time = getTimeFormat(currentLanguage).format(dateValue);\r\n return {`${date}`};\r\n }\r\n return null;\r\n};\r\n\r\nconst DateTimeCell = ({ cell: { value } }) => {\r\n const currentLanguage = \"sk\"; //i18next.language || \"en\";\r\n\r\n if (value) {\r\n const dateValue = new Date(value);\r\n const datetime = getDateTimeFormat(currentLanguage).format(dateValue);\r\n return {datetime};\r\n }\r\n return null;\r\n};\r\n\r\nconst GetShortDate = (dateValue) => {\r\n if (dateValue && typeof dateValue === \"string\")\r\n dateValue = new Date(dateValue);\r\n const currentLanguage = \"sk\"; //i18next.language || \"en\";\r\n return getDateFormat(currentLanguage).format(dateValue);\r\n};\r\n\r\nexport default DateCell;\r\nexport { ShortDateCell };\r\nexport { DateTimeCell };\r\nexport { GetShortDate };\r\n","import i18next from \"i18next\";\r\nimport { getWeek, getWeekYear} from \"date-fns\"\r\nimport { getDateFormat } from \"../components/data/DateCell\";\r\nimport { splitAt } from \"../screens/Equipment/components/splitAt\";\r\nimport Globals from \"../globalVars\";\r\nimport _ from 'lodash';\r\n\r\nconst timeZoneCompensation = new Date().getTimezoneOffset() * -1;\r\n\r\nconst monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\r\n\"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\r\n];\r\n\r\nconst helpers = {\r\n dateToIsoDateString(localDate) {\r\n var date = localDate ? new Date(localDate) : new Date();\r\n return new Date(\r\n date.getTime() - date.getTimezoneOffset() * 60000\r\n ).toISOString();\r\n },\r\n\r\n getMonthName(yearAndMonth) {\r\n const month = parseInt(yearAndMonth.slice(-2));\r\n return monthNames[month - 1];\r\n },\r\n\r\n getWeekName(isoString) {\r\n const dateParsed = new Date(isoString);\r\n return getWeek(dateParsed);\r\n },\r\n\r\n getWeekYear(isoString) {\r\n const dateParsed = new Date(isoString);\r\n return getWeekYear(dateParsed);\r\n },\r\n\r\n minDate(values) {\r\n let dates = values.map((x) => new Date(x));\r\n return _.min(dates);\r\n },\r\n\r\n maxDate(values) {\r\n let dates = values.map((x) => new Date(x));\r\n const maxDate = _.max(dates);\r\n return maxDate;\r\n },\r\n\r\n toLocalDateIgnoreTime(isoString) {\r\n if (isoString) {\r\n const dateParsed = new Date(isoString);\r\n\r\n let m = getDateFormat(\"sk\").format(dateParsed);\r\n\r\n return m;\r\n }\r\n return null;\r\n },\r\n\r\n getFormData: (object, mappings = {}) => {\r\n let formData = new FormData();\r\n for (let key in object) {\r\n let value = null;\r\n if (\r\n object[key] instanceof Array &&\r\n object[key].length > 0 &&\r\n object[key][0] instanceof File\r\n ) {\r\n for (var file of object[key]) {\r\n formData.append(\r\n key[0].toUpperCase() + key.substr(1, key.length - 1),\r\n file,\r\n file.name\r\n );\r\n }\r\n } else {\r\n if (object[key] instanceof Array) {\r\n for (var item of object[key]) {\r\n formData.append(\r\n key[0].toUpperCase() +\r\n key.substr(1, key.length - 1),\r\n item\r\n );\r\n }\r\n } else {\r\n if (object[key] instanceof Date) {\r\n const parsedDate = new Date(object[key]);\r\n\r\n parsedDate.setMinutes(\r\n parsedDate.getMinutes() + timeZoneCompensation\r\n );\r\n\r\n value = parsedDate.toISOString();\r\n } else {\r\n value = object[key];\r\n }\r\n\r\n if (!mappings[key]) {\r\n formData.append(\r\n key[0].toUpperCase() +\r\n key.substr(1, key.length - 1),\r\n value\r\n );\r\n } else {\r\n formData.append(mappings[key], value);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return formData;\r\n },\r\n getFileUploadFormik: (\r\n formik,\r\n file = \"fGasFile\",\r\n dependsOnAnotherField = false\r\n ) => {\r\n const handleFileUpload = (event) => {\r\n formik.setFieldValue(file, event.currentTarget.files[0]);\r\n return formik.handleChange(event);\r\n };\r\n\r\n const fileChangeFormikObject = Object.assign({}, formik, {\r\n handleChange: handleFileUpload,\r\n });\r\n\r\n return fileChangeFormikObject;\r\n },\r\n handleFGasCertificate: (\r\n formik,\r\n setter,\r\n checker,\r\n fileFieldName = \"fGasCertificate\"\r\n ) => {\r\n const handleFGasCertificate = (e) => {\r\n if (!checker) {\r\n formik.setFieldValue(fileFieldName, \"\");\r\n }\r\n setter(!checker);\r\n\r\n return formik.handleChange(e);\r\n };\r\n\r\n const fGasCheckChangeHandler = {\r\n handleChange: handleFGasCertificate,\r\n };\r\n\r\n const fGasCheckFormikObject = Object.assign(\r\n {},\r\n formik,\r\n fGasCheckChangeHandler\r\n );\r\n\r\n return fGasCheckFormikObject;\r\n },\r\n getInitialFormValues: (defaultInitialValues, results) => {\r\n let initialValues;\r\n /* this is to cover the case if the api call fails for some reason */\r\n if (!results) {\r\n return defaultInitialValues;\r\n } else {\r\n if (results.data && results.data.length > 0) {\r\n initialValues = { ...defaultInitialValues, ...results.data[0] };\r\n } else {\r\n initialValues = { ...defaultInitialValues, ...results };\r\n }\r\n\r\n const initializeValues = (obj) =>\r\n JSON.parse(\r\n JSON.stringify(obj, (k, v) => (v === null ? \"\" : v))\r\n );\r\n return initializeValues(initialValues);\r\n }\r\n },\r\n // Returns a function, that, as long as it continues to be invoked, will not\r\n // be triggered. The function will be called after it stops being called for\r\n // N milliseconds. If `immediate` is passed, trigger the function on the\r\n // leading edge, instead of the trailing.\r\n debounce: (func, wait, immediate) => {\r\n var timeout;\r\n return function () {\r\n var context = this,\r\n args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n },\r\n\r\n getInitials: (fullName) => {\r\n if (fullName !== \"\") {\r\n let names = fullName.split(\" \"),\r\n initials = names[0].substring(0, 1).toUpperCase();\r\n\r\n if (names.length > 1) {\r\n initials += names[names.length - 1]\r\n .substring(0, 1)\r\n .toUpperCase();\r\n }\r\n return initials;\r\n }\r\n },\r\n\r\n splitQRTag: (tag) => {\r\n if (tag) {\r\n const splitTag = (start, end) => (tag) => [tag.slice(start, end)];\r\n const firstPart = splitTag(0, 4)(tag);\r\n const secondPart = splitTag(4, 8)(tag);\r\n const rest = splitAt(9)(tag)[1];\r\n return [firstPart + \" \" + secondPart, rest.replaceAll(\"-\", \" - \")];\r\n }\r\n return [];\r\n },\r\n\r\n formatCurrency: (amount, currentLanguage, currency, sign=false) => {\r\n if (!currentLanguage) {\r\n currentLanguage = \"sk-SK\";\r\n }\r\n return Intl.NumberFormat(currentLanguage, {\r\n style: \"currency\",\r\n currency,\r\n signDisplay: sign ? \"exceptZero\" : \"never\",\r\n currencyDisplay: \"code\",\r\n }).format(amount);\r\n },\r\n\r\n // https://gist.github.com/davalapar/d0a5ba7cce4bc599f54800da22926da2\r\n downloadFile(data, filename, mime) {\r\n // It is necessary to create a new blob object with mime-type explicitly set\r\n // otherwise only Chrome works like it should\r\n const blob = new Blob([data], {\r\n type: mime || \"application/octet-stream\",\r\n });\r\n if (typeof window.navigator.msSaveBlob !== \"undefined\") {\r\n // IE doesn't allow using a blob object directly as link href.\r\n // Workaround for \"HTML7007: One or more blob URLs were\r\n // revoked by closing the blob for which they were created.\r\n // These URLs will no longer resolve as the data backing\r\n // the URL has been freed.\"\r\n window.navigator.msSaveBlob(blob, filename);\r\n return;\r\n }\r\n // Other browsers\r\n // Create a link pointing to the ObjectURL containing the blob\r\n const blobURL = window.URL.createObjectURL(blob);\r\n const tempLink = document.createElement(\"a\");\r\n tempLink.style.display = \"none\";\r\n tempLink.href = blobURL;\r\n tempLink.setAttribute(\"download\", filename);\r\n // Safari thinks _blank anchor are pop ups. We only want to set _blank\r\n // target if the browser does not support the HTML5 download attribute.\r\n // This allows you to download files in desktop safari if pop up blocking\r\n // is enabled.\r\n if (typeof tempLink.download === \"undefined\") {\r\n tempLink.setAttribute(\"target\", \"_blank\");\r\n }\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n document.body.removeChild(tempLink);\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(blobURL);\r\n }, 100);\r\n },\r\n downloadFileViaDirectUrl(url, filename) {\r\n const tempLink = document.createElement(\"a\");\r\n tempLink.style.display = \"none\";\r\n tempLink.href = url;\r\n tempLink.setAttribute(\"download\", filename);\r\n // Safari thinks _blank anchor are pop ups. We only want to set _blank\r\n // target if the browser does not support the HTML5 download attribute.\r\n // This allows you to download files in desktop safari if pop up blocking\r\n // is enabled.\r\n if (typeof tempLink.download === \"undefined\") {\r\n tempLink.setAttribute(\"target\", \"_blank\");\r\n }\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n document.body.removeChild(tempLink);\r\n },\r\n\r\n calculatePurchasedPrice(qualityPrice, realQuantity, withVAT = true) {\r\n const vat = withVAT ? Globals.VATPercentage : 1;\r\n\r\n return qualityPrice * realQuantity * vat;\r\n },\r\n\r\n calculatePriceWithVat(price) {\r\n return price? price * Globals.VATPercentage : 0;\r\n },\r\n \r\n};\r\n\r\nexport default helpers;\r\n","export const splitAt = (index) => (x) => [x.slice(0, index), x.slice(index)];\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from 'styled-components';\r\nimport userStateModule from '../../../core/state/user/userStateModule';\r\nimport useStateModule from '../../../core/state/useStateModule';\r\nimport Button from \"./Button\";\r\n\r\nconst StyledLogoutButton = styled(Button)`\r\n font-size: 0.875rem;\r\n border-radius: ${props => props.theme.buttonsBorderRadius};\r\n border: 0;\r\n cursor: pointer;\r\n\r\n &.cancel {\r\n background-color: white;\r\n color: black;\r\n transition: background-color 0.3s ease-out;\r\n\r\n &:enabled:hover {\r\n background-color: ${props => props.theme.variantCancelBgHover};\r\n }\r\n }\r\n\r\n &.forms {\r\n background: ${props => props.theme.secondaryColor};\r\n border: 1px solid ${props => props.theme.secondaryColorBorder || 'yellow'};\r\n color: ${props => props.theme.secondaryColorText};\r\n font-size: 1rem;\r\n padding: 10px 15px;\r\n margin-right: 5px;\r\n }\r\n\r\n &.list {\r\n display: inline;\r\n padding: 0;\r\n background: transparent;\r\n font-size: initial;\r\n min-width: auto;\r\n box-shadow: none;\r\n height: auto;\r\n line-height: initial;\r\n width:100%;\r\n text-align:left;\r\n }\r\n\r\n &:hover {\r\n color: ${props => props.theme.errorColor}\r\n }\r\n\r\n`;\r\nconst LogoutButton = (props) => {\r\n const {logout} = useStateModule(userStateModule);\r\n const {t} = useTranslation();\r\n\r\n return (\r\n logout()} className={props.variant}>\r\n {t(\"header:header.logOut\")}\r\n \r\n )\r\n};\r\n\r\n\r\nexport default LogoutButton;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_876\",\n \"data-name\": \"Group 876\",\n transform: \"translate(-137 -713)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_494\",\n \"data-name\": \"Rectangle 494\",\n transform: \"translate(137 713)\",\n fill: \"none\",\n stroke: \"#898989\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n rx: 3,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 13,\n height: 13,\n rx: 2.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_865\",\n \"data-name\": \"Group 865\",\n transform: \"translate(140.792 716.791)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_48\",\n \"data-name\": \"Line 48\",\n x2: 6.417,\n transform: \"translate(3.208) rotate(90)\",\n fill: \"none\",\n stroke: \"#898989\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_49\",\n \"data-name\": \"Line 49\",\n x2: 6.417,\n transform: \"translate(0 3.208)\",\n fill: \"none\",\n stroke: \"#898989\",\n strokeWidth: 1.5\n})));\n\nvar SvgIosAdd = function SvgIosAdd(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIosAdd, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ios_add.ea62bb76.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_870\",\n \"data-name\": \"Group 870\",\n transform: \"translate(-813 -563.293)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_498\",\n \"data-name\": \"Rectangle 498\",\n transform: \"translate(813 567.043)\",\n fill: \"none\",\n stroke: \"#898989\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 10.956,\n height: 10.956,\n rx: 2,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 9.956,\n height: 9.956,\n rx: 1.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_499\",\n \"data-name\": \"Rectangle 499\",\n width: 3.652,\n height: 5.478,\n transform: \"translate(816.652 566.435)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_869\",\n \"data-name\": \"Group 869\",\n transform: \"translate(816.592 564)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 7.304,\n transform: \"translate(1.826 0.033) rotate(90)\",\n fill: \"none\",\n stroke: \"#898989\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 1.826,\n y2: 1.826,\n transform: \"translate(3.785 1.826) rotate(180)\",\n fill: \"none\",\n stroke: \"#898989\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 1.826,\n x2: 1.826,\n transform: \"translate(1.826 1.826) rotate(180)\",\n fill: \"none\",\n stroke: \"#898989\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgIosShare = function SvgIosShare(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10.956,\n height: 14.707,\n viewBox: \"0 0 10.956 14.707\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIosShare, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ios_share.fddadb31.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_640\",\n \"data-name\": \"Group 640\",\n transform: \"translate(1.414 1.414)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n className: \"lines\",\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n x2: 8,\n y2: 8,\n fill: \"none\",\n stroke: \"#898989\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n className: \"lines\",\n id: \"Line_13\",\n \"data-name\": \"Line 13\",\n y1: 8,\n x2: 8,\n fill: \"none\",\n stroke: \"#898989\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}));\n\nvar SvgClose = function SvgClose(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10.828,\n height: 10.828,\n viewBox: \"0 0 10.828 10.828\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgClose, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/close.99028a07.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as ResetSvg } from \"../../../assets/close.svg\";\r\nimport { Input } from \"./index\";\r\n\r\nconst nativeInputValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n \"value\"\r\n).set;\r\n\r\nconst StyledReset = styled(ResetSvg)`\r\n position: absolute;\r\n left: 12px;\r\n top: 10px;\r\n width: 12px;\r\n height: 12px;\r\n transition: all 300ms ease;\r\n z-index: 2;\r\n\r\n &.clearable {\r\n top: 17px;\r\n width: 12px;\r\n height: 12px;\r\n }\r\n\r\n &.filters.big {\r\n top: 17px;\r\n }\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n &:hover .lines {\r\n stroke: #e94e4e;\r\n }\r\n`;\r\n\r\nconst ClearableInput = (props) => {\r\n let { enableSpinButton, value, defaultValue, ...rest } = props;\r\n if (defaultValue === undefined) defaultValue = \"\";\r\n const inputEl = useRef();\r\n const [inputVal, setInputVal] = useState(defaultValue);\r\n const [inputChanged, setInputChanged] = useState(0);\r\n\r\n useEffect(() => {\r\n setInputVal(defaultValue);\r\n nativeInputValueSetter.call(inputEl.current, defaultValue);\r\n }, [defaultValue]);\r\n\r\n const handleReset = (ev) => {\r\n nativeInputValueSetter.call(inputEl.current, \"\");\r\n setInputVal(\"\");\r\n setInputChanged(inputChanged + 1);\r\n let inpEvt = new Event(\"input\", { bubbles: true });\r\n inputEl.current.dispatchEvent(inpEvt);\r\n };\r\n\r\n const handleChange = (e) => {\r\n props.onChange && props.onChange(e);\r\n setInputVal(inputEl.current.value);\r\n //setInputChanged(inputChanged + 1);\r\n };\r\n\r\n const hasValue = inputEl.current && inputEl.current.value !== \"\";\r\n\r\n return (\r\n \r\n {hasValue && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ClearableInput;\r\n","import styled from 'styled-components';\r\n\r\nconst Form = styled.form`\r\n&.login {\r\n flex-grow:1;\r\n display:flex;\r\n align-items:center;\r\n padding:0px 30px;\r\n}\r\n`;\r\n\r\nexport default Form;\r\n","import styled from \"styled-components\";\r\n\r\nconst FormField = styled.div`\r\n display: inline-block;\r\n width: 100%;\r\n position: relative;\r\n `;\r\n\r\nexport default FormField;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { Label } from \"./index\";\r\n\r\nconst checkedStyles = css`\r\n background: ${(props) => props.theme.checkBoxActiveBgColor};\r\n border: 1px solid ${(props) => props.theme.primaryColor};\r\n\r\n &:after {\r\n content: \"\";\r\n background: url(\"/images/actions/checkbox.svg\") no-repeat center;\r\n background-size: 12px 10px;\r\n position: absolute;\r\n top: 0;\r\n left: -1px;\r\n width: 20px;\r\n height: 18px;\r\n }\r\n`;\r\n\r\nconst uncheckedStyles = css`\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor};\r\n`;\r\n\r\nconst StyledCheckbox = styled.div`\r\n display: inline-block;\r\n width: 20px;\r\n min-width: 20px;\r\n height: 20px;\r\n min-height: 20px;\r\n position: relative;\r\n background: ${(props) =>\r\n props.checked\r\n ? props.theme.checkBoxActiveBgColor\r\n : props.theme.checkBoxDefaultBgColor};\r\n border-radius: 4px;\r\n transition: all 150ms;\r\n margin: 0 5px 0 0;\r\n ${(props) => (props.checked ? checkedStyles : uncheckedStyles)};\r\n box-shadow: 2px 2px 4px 0 rgba(34, 34, 34, 0.29);\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n opacity: 0.25;\r\n `}\r\n\r\n & *:hover {\r\n cursor: pointer;\r\n }\r\n\r\n &.error {\r\n border-color: ${(props) => props.theme.error};\r\n }\r\n`;\r\n\r\nconst CheckboxContainer = styled.div`\r\n display: inline-block;\r\n vertical-align: middle;\r\n position: relative;\r\n\r\n &.flex {\r\n flex-basis: 100%;\r\n }\r\n\r\n &.form {\r\n margin: 0 0 20px;\r\n\r\n label {\r\n vertical-align: top;\r\n }\r\n }\r\n\r\n &.ml-10 {\r\n margin-left: 10px;\r\n }\r\n &.mt-20 {\r\n margin-top: 20px;\r\n }\r\n\r\n &.mb-20 {\r\n margin-bottom: 20px;\r\n }\r\n\r\n & *:hover {\r\n cursor: pointer;\r\n }\r\n &.indeterminate {\r\n ${StyledCheckbox} {\r\n position: relative;\r\n background: ${(props) => props.theme.checkBoxActiveBgColor};\r\n\r\n &:after {\r\n content: \"\";\r\n width: calc(100% - 8px);\r\n height: 2px;\r\n background-color: ${(props) => props.theme.primaryColor};\r\n position: absolute;\r\n top: 50%;\r\n left: 4px;\r\n transform: translateY(-50%);\r\n }\r\n }\r\n }\r\n\r\n &.intable {\r\n position: absolute;\r\n top: -11px;\r\n }\r\n\r\n &.centered > div {\r\n display: flex;\r\n flex-direction: row;\r\n }\r\n &.centered label {\r\n margin-top: 5px;\r\n }\r\n`;\r\n\r\nconst CheckboxHeader = styled.div`\r\n margin: 0px 0 12px 12px;\r\n transition: all 0.5s ease-in;\r\n color: #000000;\r\n display: inline-block;\r\n font-size: 0.875rem;\r\n font-weight: bold;\r\n`;\r\n\r\nconst HiddenCheckbox = styled.input.attrs({ type: \"checkbox\" })`\r\n position: absolute;\r\n width: 20px;\r\n height: 20px;\r\n top: 0;\r\n left: 0;\r\n z-index: 10;\r\n opacity: 0;\r\n\r\n &.centered {\r\n top: 30px;\r\n }\r\n\r\n &:hover:enabled {\r\n + ${StyledCheckbox} {\r\n border-color: ${(props) => props.theme.primaryColor};\r\n }\r\n }\r\n`;\r\n\r\nconst CheckboxWrapper = styled.div`\r\n width: 100%;\r\n display: flex;\r\n`;\r\n\r\nconst Description = styled.div`\r\n font-size: 0.75rem;\r\n color: #898989;\r\n flex-grow: 1;\r\n font-weight: normal;\r\n line-height: 1rem;\r\n position: relative;\r\n left: 40px;\r\n`;\r\n\r\nconst FormikCheckbox = (props, ref) => {\r\n let {\r\n className,\r\n id,\r\n labelText,\r\n values,\r\n name,\r\n handleChange,\r\n header,\r\n labelClassName = \"\",\r\n description,\r\n errors,\r\n touched,\r\n style,\r\n ...rest\r\n } = props;\r\n\r\n let value = values && values[name];\r\n let error = errors ? errors[name] : null;\r\n let checked = rest.checked || value;\r\n\r\n const stopPropagation = (e) => {\r\n e.stopPropagation();\r\n };\r\n\r\n return (\r\n \r\n {header && {header}}\r\n \r\n \r\n \r\n \r\n {labelText}\r\n \r\n \r\n\r\n {description && (\r\n \r\n {description.map((desc, i) => {\r\n return (\r\n \r\n {desc}
\r\n
\r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default React.forwardRef(FormikCheckbox);\r\n\r\nFormikCheckbox.propTypes = {\r\n name: PropTypes.any.isRequired,\r\n values: PropTypes.any.isRequired,\r\n handleChange: PropTypes.func.isRequired,\r\n};\r\n","import { useRef, useState } from \"react\";\r\n\r\nconst useFileDrop = onDrop => {\r\n const [isDragging, setIsDragging] = useState(false);\r\n const dragCounter = useRef(0);\r\n\r\n const handleDragEnter = e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n dragCounter.current++;\r\n if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {\r\n setIsDragging(true);\r\n }\r\n };\r\n const handleDragLeave = e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n dragCounter.current--;\r\n if (dragCounter.current === 0) {\r\n setIsDragging(false);\r\n }\r\n\r\n };\r\n\r\n const handleDragOver = e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n const handleDrop = e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\r\n onDrop(e.dataTransfer.files);\r\n e.dataTransfer.clearData();\r\n dragCounter.current = 0;\r\n setIsDragging(false);\r\n }\r\n };\r\n\r\n const props = {\r\n onDragEnter: handleDragEnter,\r\n onDragLeave: handleDragLeave,\r\n onDragOver: handleDragOver,\r\n onDrop: handleDrop\r\n };\r\n\r\n return { isDragging, getUploaderProps : () => props };\r\n};\r\n\r\nexport default useFileDrop;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Eye\",\n transform: \"translate(0 -6)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_820\",\n \"data-name\": \"Path 820\",\n d: \"M26.017,13.585C25.81,13.276,20.864,6,13.045,6,6.337,6,.35,13.244.1,13.552a.435.435,0,0,0,0,.55c.251.308,6.238,7.552,12.947,7.552s12.7-7.244,12.948-7.552A.436.436,0,0,0,26.017,13.585Zm-12.972,4.59a4.348,4.348,0,1,1,4.348-4.348A4.353,4.353,0,0,1,13.045,18.176Z\",\n transform: \"translate(0 0)\",\n fill: \"#898989\"\n}));\n\nvar SvgEye = function SvgEye(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26.09,\n height: 15.654,\n viewBox: \"0 0 26.09 15.654\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEye, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/Eye.97cbdeb9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invisible\",\n transform: \"translate(0 -3)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1279\",\n \"data-name\": \"Group 1279\",\n transform: \"translate(0 3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_821\",\n \"data-name\": \"Path 821\",\n d: \"M9,15.407A4.308,4.308,0,0,1,8.7,13.826a4.353,4.353,0,0,1,4.348-4.348,4.308,4.308,0,0,1,1.581.308l2.943-2.943A12.89,12.89,0,0,0,13.043,6C6.336,6,.35,13.243.1,13.551a.435.435,0,0,0,0,.55,27.759,27.759,0,0,0,5.369,4.843Z\",\n transform: \"translate(-0.001 -3.391)\",\n fill: \"#898989\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_822\",\n \"data-name\": \"Path 822\",\n d: \"M26.536,13.193a20.27,20.27,0,0,0-6.347-5.767l3.684-3.684a.435.435,0,0,0-.615-.615L4.128,22.257a.435.435,0,0,0,0,.615A.431.431,0,0,0,4.435,23a.437.437,0,0,0,.308-.127L7.91,19.705a12.306,12.306,0,0,0,5.655,1.556c6.708,0,12.695-7.243,12.946-7.551A.436.436,0,0,0,26.536,13.193Zm-12.97,4.59a4.305,4.305,0,0,1-2.736-1L16.916,10.7a4.305,4.305,0,0,1,1,2.736A4.353,4.353,0,0,1,13.565,17.782Z\",\n transform: \"translate(-0.522 -3)\",\n fill: \"#898989\"\n})));\n\nvar SvgInvisible = function SvgInvisible(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26.086,\n height: 20,\n viewBox: \"0 0 26.086 20\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgInvisible, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/Invisible.e58b16bb.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport InputMask from \"react-input-mask\";\r\nimport { ReactComponent as ShowPassIcon } from \"../../../assets/Eye.svg\";\r\nimport { ReactComponent as HidePassIcon } from \"../../../assets/Invisible.svg\";\r\n\r\nconst StyledInput = styled.input`\r\n appearance: none;\r\n box-sizing: border-box;\r\n position: relative;\r\n width: 100%;\r\n background: ${(props) => props.theme.inputBgColor};\r\n padding: 0 16px;\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor};\r\n border-radius: ${(props) => props.theme.inputBorderRadius};\r\n margin: 0 0 20px;\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n background: #f5f5f5;\r\n `};\r\n height: ${(props) => props.theme.heightInputBig};\r\n font-size: ${(props) => props.theme.inputFontSize};\r\n\r\n ::placeholder {\r\n color: ${(props) => props.theme.inputPlaceholder};\r\n }\r\n\r\n :focus::-webkit-input-placeholder {\r\n color: transparent;\r\n }\r\n :focus:-moz-placeholder {\r\n color: transparent;\r\n }\r\n :focus::-moz-placeholder {\r\n color: transparent;\r\n }\r\n :focus:-ms-input-placeholder {\r\n color: transparent;\r\n }\r\n\r\n ${(props) =>\r\n props.hasAction &&\r\n css`\r\n margin-bottom: 5px;\r\n `};\r\n\r\n ${(props) =>\r\n props.mask &&\r\n css`\r\n font-family: monospace;\r\n `};\r\n\r\n &.prefix {\r\n font-weight: 700;\r\n font-size: 14px;\r\n padding-left: 45px;\r\n font-family: Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace;\r\n letter-spacing: 4px;\r\n }\r\n\r\n &.file {\r\n width: auto;\r\n padding: 0;\r\n border: none;\r\n border-radius: initial;\r\n margin: 0;\r\n height: 40px;\r\n }\r\n\r\n &.clearable {\r\n padding: 0px 0px 0px 22px;\r\n }\r\n\r\n &.filters {\r\n border-radius: ${(props) => props.theme.filtersBorderRadius};\r\n padding: 0px 10px 0px 32px;\r\n height: ${(props) => props.theme.heightInputSmall};\r\n width: 210px;\r\n\r\n @media ${(props) => props.theme.device.mobile} {\r\n padding: 0px 10px 0px 12px;\r\n }\r\n }\r\n\r\n &.filters.group {\r\n width: 158px !important;\r\n max-width: 158px !important;\r\n /* width: auto !important; */\r\n }\r\n\r\n &.filters.group.left {\r\n margin: 0;\r\n }\r\n\r\n &.filters::placeholder {\r\n padding-left: 0px !important;\r\n }\r\n\r\n &.filters.left {\r\n border-radius: ${(props) => props.theme.filtersBorderRadius} 0 0\r\n ${(props) => props.theme.filtersBorderRadius};\r\n }\r\n\r\n &.filters.right {\r\n border-radius: 0 ${(props) => props.theme.filtersBorderRadius}\r\n ${(props) => props.theme.filtersBorderRadius} 0;\r\n }\r\n\r\n &.filters.big {\r\n height: 46px;\r\n padding: 0px 6px 0px 26px;\r\n width: 100%;\r\n }\r\n\r\n &.money {\r\n font-weight: bold;\r\n border: none;\r\n }\r\n\r\n &[type=\"date\"] {\r\n &::-webkit-calendar-picker-indicator {\r\n margin-left: 0px;\r\n }\r\n &::-webkit-datetime-edit {\r\n padding-top: 2px;\r\n }\r\n }\r\n\r\n &[type=\"password\"] {\r\n font-family: pass;\r\n font-size: 18px;\r\n letter-spacing: 2px;\r\n }\r\n\r\n &[data-password=\"true\"] {\r\n padding-right: 40px;\r\n }\r\n\r\n &.error {\r\n border-color: #e94e4e;\r\n }\r\n\r\n &[class*=\" disable-spin-button\"][type=\"number\"]::-webkit-inner-spin-button,\r\n &[class*=\" disable-spin-button\"][type=\"number\"]::-webkit-outer-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n\r\n &[class*=\" disable-spin-button\"][type=\"number\"] {\r\n -moz-appearance: textfield;\r\n }\r\n`;\r\n\r\nconst StyledShowPass = styled(ShowPassIcon)`\r\n position: absolute;\r\n right: 8px;\r\n top: 38px;\r\n cursor: pointer;\r\n`;\r\n\r\nconst StyledHidePass = styled(HidePassIcon)`\r\n position: absolute;\r\n right: 8px;\r\n top: 36px;\r\n cursor: pointer;\r\n`;\r\n\r\nconst StyledPrefix = styled.div`\r\n position: absolute;\r\n font-weight: 700;\r\n left: 20px;\r\n bottom: 34px;\r\n font-size: 14px;\r\n font-family: Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace;\r\n letter-spacing: 4px;\r\n pointer-events: none;\r\n`;\r\n\r\nconst PlaceholderChars = styled.div`\r\n position: absolute;\r\n font-weight: 700;\r\n left: 14px;\r\n bottom: 36px;\r\n font-size: 14px;\r\n padding-left: 32px;\r\n font-family: Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace;\r\n letter-spacing: 4px;\r\n pointer-events: none;\r\n`;\r\n\r\nconst Input = React.forwardRef((props, ref) => {\r\n const isPassword = props[\"data-password\"];\r\n const [hiddenPass, setHiddemPass] = useState({\r\n visible: false,\r\n type: props.type,\r\n });\r\n const toggleHidden = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setHiddemPass((oldState) => ({\r\n visible: !oldState.visible,\r\n type: oldState.visible ? \"password\" : \"text\",\r\n }));\r\n };\r\n\r\n const pcChars = props.placeholderChars\r\n ? props.placeholderChars.char.repeat(props.placeholderChars.num)\r\n : null;\r\n\r\n const onlyNumbersKey = (evt) => {\r\n if (!props.onlyNumbers) return true;\r\n // Only ASCII character in that range allowed\r\n const ASCIICode = evt.which ? evt.which : evt.keyCode;\r\n if (ASCIICode > 31 && (ASCIICode < 48 || ASCIICode > 57)) {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n if (props.mask)\r\n return (\r\n \r\n {(inputProps) => }\r\n \r\n );\r\n\r\n return (\r\n <>\r\n onlyNumbersKey(evt)}\r\n />\r\n {isPassword && !hiddenPass.visible && (\r\n toggleHidden(ev)} />\r\n )}\r\n {isPassword && hiddenPass.visible && (\r\n toggleHidden(ev)} />\r\n )}\r\n {props.prefix && {props.prefix}}\r\n {props.placeholderChars && {pcChars}}\r\n \r\n );\r\n});\r\n\r\nexport default Input;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport useFileDrop from \"./hooks/useFileDrop\";\r\nimport Input from \"./Input\";\r\n\r\nconst GalleryInput = styled(Input)`\r\n background: #000;\r\n`;\r\n\r\nconst GalleryInputWrapper = styled.div`\r\n position: relative;\r\n width: 100%;\r\n min-height: 44px;\r\n border: 2px dashed #e2e2e2;\r\n font-size: 16px;\r\n border-radius: 18px;\r\n\r\n &.dragging {\r\n border: 2px dashed #675b34;\r\n cursor: pointer;\r\n }\r\n\r\n &:hover .placeholder {\r\n text-decoration: underline;\r\n }\r\n\r\n & > .content {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n text-align: center;\r\n font-size: 16px;\r\n font-weight: 400;\r\n padding: 10px;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n & > .content .title {\r\n width: 100%;\r\n font-size: 20px;\r\n color: #000;\r\n font-weight: 700;\r\n line-height: 20px;\r\n padding-bottom: 4px;\r\n }\r\n\r\n & input {\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 99;\r\n height: 100%;\r\n margin: 0;\r\n padding: 0;\r\n display: block;\r\n cursor: pointer;\r\n width: 100%;\r\n }\r\n\r\n & input.hidden {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst StyledThumbWrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: row;\r\n margin-top: ${(p) => (p.autoHeight ? \"0\" : \"20px\")};\r\n justify-content: space-evenly;\r\n max-height: 250px;\r\n overflow-y: auto;\r\n @media ${(props) => props.theme.device.mobile} {\r\n height: ${(p) => (p.autoHeight ? \"auto\" : \"125px\")};\r\n max-height: 125px;\r\n }\r\n &::-webkit-scrollbar {\r\n width: 10px;\r\n background-color: #fff;\r\n }\r\n\r\n &::-webkit-scrollbar-track {\r\n border: 1px solid #e2e2e2;\r\n background-color: #fff;\r\n box-shadow: none;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n background-color: ${(p) => p.theme.primaryColor};\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst StyledThumb = styled.div`\r\n position: relative;\r\n background: url(${(props) => props.img}) no-repeat center center;\r\n background-size: cover;\r\n width: 30%;\r\n margin: 10px 0px;\r\n height: 100px;\r\n border: 1px solid #e2e2e2;\r\n border-radius: 4px;\r\n transition: all 0.3s ease-in-out;\r\n /* box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); */\r\n\r\n &.file {\r\n background-size: contain;\r\n }\r\n\r\n &.remove div {\r\n display: flex;\r\n }\r\n\r\n & img {\r\n width: 26%;\r\n height: auto;\r\n }\r\n\r\n & span {\r\n display: none;\r\n }\r\n @media ${(props) => props.theme.device.desktop} {\r\n &:hover {\r\n /* box-shadow: 0 0 14px -5px rgba(8, 8, 8, 0.5); */\r\n cursor: pointer;\r\n border-color: ${(p) => p.theme.primaryColor};\r\n\r\n div {\r\n display: flex;\r\n }\r\n\r\n img {\r\n opacity: 0.4;\r\n }\r\n }\r\n\r\n &.remove:hover img {\r\n opacity: 1;\r\n width: 20%;\r\n }\r\n\r\n &.remove:hover span {\r\n display: block;\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledThumbAction = styled.div`\r\n position: absolute;\r\n left: 0px;\r\n top: 0px;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(255, 255, 255, 0.8);\r\n color: #000;\r\n display: none;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nconst Thumbnail = ({ file, onChange }) => {\r\n const [state, setState] = useState({\r\n thumb: undefined,\r\n file: null,\r\n remove: false,\r\n });\r\n\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n if (file instanceof File) {\r\n let reader = new FileReader();\r\n reader.onloadend = () => {\r\n setState({ thumb: reader.result, file });\r\n };\r\n reader.readAsDataURL(file);\r\n } else {\r\n setState({ thumb: file.imageThumbnailUrl, file });\r\n }\r\n }, [file]);\r\n\r\n useEffect(() => {\r\n onChange && onChange(state.file, !state.remove);\r\n }, [state.remove]);\r\n\r\n const handleCLick = (ev) => {\r\n setState((prev) => ({ ...prev, remove: !prev.remove }));\r\n };\r\n\r\n const isEditMode = state.file && state.file.imageUrl ? true : false;\r\n\r\n const isImage = isEditMode\r\n ? true\r\n : state.file\r\n ? state.file.type.indexOf(\"image\") > -1\r\n : false;\r\n\r\n if (!state.thumb) return null;\r\n return (\r\n \r\n \r\n \"delete\"\r\n {t(\"forms:wizard.undo\")}\r\n \r\n \r\n );\r\n};\r\n\r\nconst GalleryUploader = (props) => {\r\n const [images, setImages] = useState(\r\n props.value && props.value instanceof Array ? props.value : []\r\n );\r\n const inputRef = useRef();\r\n\r\n const onChange = (e) => {\r\n if (e && e.currentTarget.files.length > 0) {\r\n const newFiles = Array.from(e.target.files).filter(\r\n (file) => !images.some((img) => img.name === file.name)\r\n );\r\n if (props.single) {\r\n props.setFieldValue(props.name, [...newFiles]);\r\n setImages((prev) => [...newFiles]);\r\n } else {\r\n props.setFieldValue(props.name, [\r\n ...props.values[props.name],\r\n ...newFiles,\r\n ]);\r\n setImages((prev) => [...prev, ...newFiles]);\r\n }\r\n }\r\n };\r\n\r\n const { isDragging, getUploaderProps } = useFileDrop((files) => {\r\n inputRef.current.files = files;\r\n\r\n let event = document.createEvent(\"UIEvents\");\r\n event.initUIEvent(\"change\", true, true);\r\n\r\n inputRef.current.dispatchEvent(event);\r\n });\r\n\r\n const handleThumbChange = (file, enabled) => {\r\n if (file === null) return;\r\n if (!enabled) {\r\n const filtered = props.values[props.name].filter((f) => f !== file);\r\n props.setFieldValue(props.name, filtered);\r\n } else {\r\n if (!props.values[props.name].some((f) => f === file)) {\r\n props.setFieldValue(props.name, [\r\n ...props.values[props.name],\r\n file,\r\n ]);\r\n }\r\n }\r\n };\r\n\r\n const thumbs = () =>\r\n images.map((file, i) => (\r\n \r\n ));\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {props.title &&
{props.title}
}\r\n {props.placeholder && (\r\n
{props.placeholder}
\r\n )}\r\n
\r\n\r\n \r\n inputRef.current.click()}\r\n />\r\n \r\n \r\n {thumbs()}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GalleryUploader;\r\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\nconst StyledInputSubmit = styled.input.attrs({ type: \"submit\" })`\r\n cursor: pointer;\r\n transition: all 0.3s ease-in-out;\r\n border-radius: ${(props) => props.theme.buttonsBorderRadius};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n padding: ${(props) => props.theme.paddingButton};\r\n box-shadow: ${(props) => props.theme.buttonShadow};\r\n height: ${(props) => props.theme.heightButtonBig};\r\n line-height: ${(props) => props.theme.heightButtonBig};\r\n vertical-align: middle;\r\n font-size: 0.875rem;\r\n\r\n &:hover {\r\n background: ${(props) => props.theme.primaryColorHover};\r\n }\r\n\r\n &.primary {\r\n background: ${(props) => props.theme.primaryColor};\r\n border: 1px solid ${(props) => props.theme.primaryColorBorder};\r\n color: ${(props) => props.theme.primaryColorText};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n\r\n &:hover {\r\n background: ${(props) => props.theme.primaryColorHover};\r\n }\r\n }\r\n\r\n &.secondary {\r\n background: ${(props) => props.theme.secondaryColor};\r\n border: 1px solid ${(props) => props.theme.secondaryColorBorder};\r\n color: ${(props) => props.theme.secondaryColorText};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n\r\n &:hover {\r\n background: ${(props) => props.theme.primaryColorHover};\r\n }\r\n }\r\n\r\n &.tertiary {\r\n background: ${(props) => props.theme.tertiaryColor};\r\n border: 1px solid ${(props) => props.theme.tertiaryColorBorder};\r\n color: ${(props) => props.theme.primaryColorText};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n\r\n &:hover {\r\n background: ${(props) => props.theme.primaryColorHover};\r\n }\r\n }\r\n\r\n &.fill {\r\n width: 100% !important;\r\n }\r\n\r\n &.link {\r\n background: transparent;\r\n height: 25px;\r\n box-shadow: none;\r\n border: none;\r\n line-height: 25px;\r\n font-size: 16px;\r\n padding: 0;\r\n text-align: left;\r\n color: ${(p) => p.theme.primaryColor};\r\n font-weight: 500;\r\n transition: all 0s;\r\n }\r\n &.anchor {\r\n background: #675b34;\r\n border: 1px solid #675b34;\r\n height: 32px;\r\n line-height: 32px;\r\n color: #fff;\r\n box-shadow: 4px 4px 8px 0 rgba(34, 34, 34, 0.29);\r\n font-size: 0.875rem;\r\n text-align: left;\r\n padding: 0 20px;\r\n position: relative;\r\n border-radius: 32px;\r\n text-align: center;\r\n }\r\n\r\n &.big {\r\n height: ${(props) => props.theme.heightButtonBig};\r\n line-height: ${(props) => props.theme.heightButtonBig};\r\n border-radius: ${(props) => props.theme.heightButtonBig};\r\n }\r\n\r\n &.link:hover {\r\n font-weight: 600;\r\n }\r\n\r\n &.inline {\r\n display: inline;\r\n width: auto;\r\n }\r\n\r\n &.horizontal-space {\r\n margin: 0 10px;\r\n }\r\n\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n cursor: disabled;\r\n filter: grayscale(1) opacity(0.3);\r\n `}\r\n`;\r\n\r\nconst InputSubmit = React.forwardRef((props, ref) => {\r\n return ;\r\n});\r\nexport default InputSubmit;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledLabel = styled.label`\r\n margin: 0 0 5px 10px;\r\n transition: all 0.5s ease-in;\r\n color: ${(props) => props.theme.textColor};\r\n display: inline-block;\r\n font-size: ${(props) => props.theme.labelFontSize};\r\n font-weight: bold;\r\n\r\n &.tight {\r\n font-size: 14px;\r\n font-weight: normal;\r\n }\r\n &.sidebar {\r\n margin: 0 7px 0 5px;\r\n font-weight: bold;\r\n }\r\n\r\n &.error {\r\n color: ${(props) => props.theme.errorColor};\r\n }\r\n\r\n &.checkbox {\r\n vertical-align: bottom;\r\n }\r\n\r\n &.spaced {\r\n margin-bottom: 10px;\r\n display: block;\r\n }\r\n &.sr-only {\r\n border: 0 !important;\r\n clip: rect(1px, 1px, 1px, 1px) !important; /* 1 */\r\n -webkit-clip-path: inset(50%) !important;\r\n clip-path: inset(50%) !important; /* 2 */\r\n height: 1px !important;\r\n margin: -1px !important;\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: absolute !important;\r\n width: 1px !important;\r\n white-space: nowrap !important;\r\n }\r\n\r\n &.grade {\r\n vertical-align: top;\r\n margin: -2px 0px 2px 5px;\r\n }\r\n\r\n &.center {\r\n margin: 0 8px;\r\n align-self: center;\r\n }\r\n`;\r\n\r\nconst Label = (props) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default Label;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Label } from \"./index\";\r\n\r\nconst Container = styled.label`\r\n display: flex;\r\n position: relative;\r\n padding-left: 25px;\r\n margin-bottom: 12px;\r\n cursor: pointer;\r\n user-select: none;\r\n text-align: left;\r\n font-size: 15px;\r\n line-height: 32px;\r\n font-weight: normal;\r\n align-items: center;\r\n &.top {\r\n align-items: flex-start;\r\n }\r\n &.list {\r\n border-bottom: 1px solid #eee;\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 0;\r\n padding: 10px 10px 10px 0px;\r\n height: auto;\r\n }\r\n\r\n & input {\r\n position: absolute;\r\n opacity: 0;\r\n cursor: pointer;\r\n }\r\n\r\n & input:checked ~ .checkmark:after {\r\n display: block;\r\n }\r\n\r\n & .checkmark:after {\r\n top: 2px;\r\n left: 2px;\r\n width: 12px;\r\n height: 12px;\r\n border-radius: 50%;\r\n background: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n &.wizard-table {\r\n margin-bottom: 0;\r\n }\r\n\r\n &.list .checkmark {\r\n top: calc(50% - 10px);\r\n left: initial;\r\n right: 10px;\r\n }\r\n &.secondary .checkmark:after {\r\n background: ${(p) => p.theme.secondaryColor};\r\n }\r\n &.secondary .checkmark {\r\n border-color: ${(p) => p.theme.secondaryColor};\r\n }\r\n &.space {\r\n margin-top: 24px;\r\n margin-bottom: 24px;\r\n }\r\n`;\r\n\r\nexport const CheckMark = styled.span`\r\n box-sizing: border-box;\r\n position: relative;\r\n margin-right: 15px;\r\n height: 20px;\r\n width: 20px;\r\n min-width: 20px;\r\n background-color: #fff;\r\n border-radius: 50%;\r\n border: 2px solid ${(p) => p.theme.primaryColor};\r\n\r\n &.checkbox {\r\n width: 22px;\r\n height: 22px;\r\n border-radius: 4px;\r\n }\r\n\r\n &.secondary {\r\n border-color: ${(p) => p.theme.secondaryColor};\r\n }\r\n\r\n &.abs {\r\n position: absolute;\r\n top: 7px;\r\n left: 0px;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n display: none;\r\n }\r\n\r\n &.disabled {\r\n border-color: ${(p) => p.theme.errorColor};\r\n }\r\n`;\r\n\r\nexport const RadioLabel = styled(Label)`\r\n padding: 5px 0 0 20px;\r\n`;\r\n\r\nexport const RadioGroup = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n\r\n &.row {\r\n flex-direction: row;\r\n justify-content: space-between;\r\n }\r\n\r\n &.flex-1 {\r\n flex-basis: 96%;\r\n margin: 0 2% 0 2%;\r\n flex-grow: 0;\r\n }\r\n\r\n &.col {\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nexport const RadioWrapper = styled.div`\r\n position: relative;\r\n\r\n & input {\r\n position: absolute;\r\n opacity: 0;\r\n cursor: pointer;\r\n top: 7px;\r\n left: 0;\r\n height: 20px;\r\n width: 20px;\r\n }\r\n & label {\r\n cursor: pointer;\r\n }\r\n\r\n & input:checked ~ .checkmark:after {\r\n display: block;\r\n }\r\n\r\n & .checkmark {\r\n pointer-events: none;\r\n margin-right: 25px;\r\n }\r\n\r\n & .checkmark:after {\r\n top: 2px;\r\n left: 2px;\r\n width: 12px;\r\n height: 12px;\r\n border-radius: 50%;\r\n background: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n & .checkmark.checkbox:after {\r\n top: 3px;\r\n left: 3px;\r\n width: 12px;\r\n height: 12px;\r\n border-radius: 2px;\r\n }\r\n\r\n & .secondary.checkmark:after {\r\n background: ${(p) => p.theme.secondaryColor};\r\n }\r\n`;\r\n\r\nconst Radio = ({\r\n abs,\r\n children,\r\n labelText,\r\n list,\r\n containerProps,\r\n secondary,\r\n top,\r\n ...restProps\r\n}) => {\r\n let classes = restProps.wrapperVariant ? restProps.wrapperVariant : \"\";\r\n if (list) classes = classes + \" list\";\r\n if (secondary) classes = classes + \" secondary\";\r\n if (top) classes = classes + \" top\";\r\n return (\r\n \r\n \r\n \r\n {labelText || children}\r\n \r\n );\r\n};\r\n\r\nexport default Radio;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_935\",\n \"data-name\": \"Group 935\",\n transform: \"translate(-800 -269)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_37\",\n \"data-name\": \"Ellipse 37\",\n transform: \"translate(800 269)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 3\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 8,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 6.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_46\",\n \"data-name\": \"Line 46\",\n x2: 6,\n y2: 6,\n transform: \"translate(813.5 282.5)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}));\n\nvar SvgSearch = function SvgSearch(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21.621,\n height: 21.621,\n viewBox: \"0 0 21.621 21.621\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSearch, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/search.f750ca10.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useRef, useState } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { ReactComponent as SearchSvg } from \"../../../assets/pwa/search.svg\";\r\nimport { Input } from \"./index\";\r\n\r\n\r\nconst nativeInputValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n \"value\"\r\n).set;\r\n\r\nconst SvgSearch = styled(SearchSvg)``;\r\n\r\nconst SearchButton = styled.button`\r\n position: absolute;\r\n top: 1px;\r\n right: 1px;\r\n width: 44px;\r\n height: 44px;\r\n background: ${p => p.theme.primaryColor};\r\n border-radius: 6px;\r\n outline: 0;\r\n border: none;\r\n color: white;\r\n padding: 12px 0px;\r\n text-align: center;\r\n text-decoration: none;\r\n display: inline-block;\r\n font-size: 16px;\r\n cursor: pointer;\r\n`;\r\n\r\nconst StylizedDrop = styled.div`\r\n box-sizing: border-box;\r\n width: 100%;\r\n min-width: 190px;\r\n background: ${(props) => props.theme.inputBgColor};\r\n padding: 0 16px;\r\n border: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor || \"#d4d4d4\"};\r\n border-radius: ${(props) => props.theme.inputBorderRadius || \"5px\"};\r\n position: absolute;\r\n top: ${p=>p.direction===\"up\" ? \"auto\": \"42px\"};\r\n bottom: ${p=>p.direction===\"up\" ? \"110%\": \"auto\"};\r\n z-index: 300;\r\n background: #fff;\r\n text-align: left;\r\n cursor: pointer;\r\n box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.16);\r\n transition: all 0.3s ease-in;\r\n opacity: 0;\r\n visibility: hidden;\r\n font-size: ${(props) => props.theme.inputFontSize};\r\n\r\n & ul {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n & ul li {\r\n list-style: none;\r\n padding: 10px 5px;\r\n }\r\n\r\n &.thin ul li {\r\n list-style: none;\r\n padding: 5px 5px;\r\n }\r\n\r\n & ul li:hover {\r\n color: ${(props) => props.theme.primaryColor} !important;\r\n }\r\n\r\n & ul li:not(:last-child) {\r\n border-bottom: 1px solid #e2e2e2;\r\n }\r\n\r\n ${(props) =>\r\n props.hasDefault &&\r\n css`\r\n & ul li:first-child {\r\n font-weight:600;\r\n `};\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n \r\n & input {\r\n padding: 0px 36px 0px 16px;\r\n }\r\n\r\n &.pwa ${SearchButton} {\r\n height: 46px;\r\n background-color: transparent;\r\n padding: 6px 0px;\r\n & g,\r\n & line {\r\n stroke: ${(p) => p.theme.primaryColor};\r\n }\r\n }\r\n\r\n &.pwa input {\r\n height: 44px;\r\n }\r\n &.pwaBig ${SearchButton} {\r\n height: 44px;\r\n background-color: transparent;\r\n padding: 6px 0px;\r\n & g,\r\n & line {\r\n stroke: ${(p) => p.theme.primaryColor};\r\n }\r\n }\r\n\r\n &.pwaBig input {\r\n height: 44px;\r\n font-size: 13px;\r\n }\r\n\r\n &.open ${StylizedDrop} {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n`;\r\n\r\nconst SearchInput = (props) => {\r\n let { pwa, pwaBig, value, searchFn, formik, direction, ...rest } = props;\r\n const inputEl = useRef();\r\n const isSelected = useRef(false);\r\n const [, setInputVal] = useState(value);\r\n\r\n const [results, setResults] = useState([]);\r\n\r\n const handleSearch = async (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n if(rest.disabled) return;\r\n props.onChange && props.onChange(ev);\r\n if (isSelected.current === true) {\r\n isSelected.current = false;\r\n return;\r\n }\r\n if (!searchFn) return;\r\n const results = await searchFn(inputEl.current.value);\r\n setResults(results);\r\n };\r\n\r\n const handleSelect = (ev) => {\r\n const selected = ev.target.dataset.value;\r\n isSelected.current = true;\r\n setResults([]);\r\n props.itemSelected && props.itemSelected(selected);\r\n setInputVal(selected);\r\n nativeInputValueSetter.call(inputEl.current, selected);\r\n let inpEvt = new Event(\"input\", { bubbles: true });\r\n inputEl.current.dispatchEvent(inpEvt);\r\n \r\n };\r\n\r\n let wrapperClass = results && results.length ? \"open\" : \"\";\r\n if (pwa) wrapperClass += \" pwa\";\r\n else if (pwaBig) wrapperClass += \" pwaBig\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {results &&\r\n results.length &&\r\n results.map((option, idx) => (\r\n
  • \r\n {option}\r\n
  • \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SearchInput;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1191\",\n \"data-name\": \"Group 1191\",\n transform: \"translate(-844 -451)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_8\",\n \"data-name\": \"Ellipse 8\",\n transform: \"translate(844 451)\",\n fill: \"#675b34\",\n stroke: \"#fff\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 10,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.25,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_748\",\n \"data-name\": \"Path 748\",\n d: \"M6.923,0a6.923,6.923,0,0,1,6.923,6.923,7.058,7.058,0,0,1-2.705,5.49,6.683,6.683,0,0,1-4.218,1.433A6.923,6.923,0,0,1,6.923,0Z\",\n transform: \"translate(847.077 454.078)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_652\",\n \"data-name\": \"Group 652\",\n transform: \"translate(851.022 458.037)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n x2: 5.926,\n transform: \"translate(0 2.963)\",\n fill: \"none\",\n stroke: \"#675b34\",\n strokeLinecap: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_13\",\n \"data-name\": \"Line 13\",\n y2: 5.926,\n transform: \"translate(2.963)\",\n fill: \"none\",\n stroke: \"#675b34\",\n strokeLinecap: \"round\",\n strokeWidth: 1.5\n})));\n\nvar SvgPlusWhite = function SvgPlusWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPlusWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/plus-white.971d0e5f.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { css } from \"styled-components\";\r\n\r\nexport const InputWrapper = styled.div`\r\n position: relative;\r\n\r\n &.half {\r\n width: 48%;\r\n display: inline-block;\r\n margin: 0 1%;\r\n }\r\n\r\n &.flex-half {\r\n flex-basis: 45%;\r\n margin: 0 5% 0 0;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n flex-basis: 100%;\r\n margin: 0;\r\n }\r\n }\r\n\r\n &.flex-2 {\r\n flex-basis: 46%;\r\n margin: 0 2% 0 2%;\r\n flex-grow: 0;\r\n max-width: 46%;\r\n }\r\n\r\n &.flex-3 {\r\n flex-basis: 29%;\r\n margin: 0 2.166% 0 2.166%;\r\n flex-grow: 0;\r\n max-width: 29%;\r\n }\r\n\r\n &.flex-4 {\r\n flex-basis: 23%;\r\n margin: 0 1% 0 1%;\r\n flex-grow: 0;\r\n max-width: 23%;\r\n }\r\n\r\n &.double-height > div {\r\n height: 142px;\r\n }\r\n\r\n &.flex-1 {\r\n flex-basis: 96%;\r\n margin: 0 2% 0 2%;\r\n flex-grow: 0;\r\n }\r\n\r\n &.fill > * {\r\n width: 100% !important;\r\n }\r\n\r\n &.full {\r\n flex-basis: 95%;\r\n margin: 0 5% 0 0;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n flex-basis: 100%;\r\n margin: 0;\r\n }\r\n }\r\n\r\n &.full-width {\r\n flex-basis: 100%;\r\n margin: 0;\r\n }\r\n\r\n &.flex-full-half {\r\n flex-basis: 95%;\r\n margin: 0 5% 0 0;\r\n padding-right: 50%;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n flex-basis: 100%;\r\n margin: 0;\r\n }\r\n }\r\n\r\n &.error {\r\n input:not(:focus),\r\n select:not(:focus),\r\n textarea:not(:focus),\r\n .inputElement:not(:focus) {\r\n border-color: ${(props) => props.theme.errorColor} !important;\r\n box-shadow: none;\r\n }\r\n }\r\n\r\n &.bid {\r\n &-a {\r\n input {\r\n color: ${(props) => props.theme.bidA};\r\n }\r\n }\r\n &-b {\r\n input {\r\n color: ${(props) => props.theme.bidB};\r\n }\r\n }\r\n &-c {\r\n input {\r\n color: ${(props) => props.theme.bidC};\r\n }\r\n }\r\n }\r\n\r\n &.hide {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const MoneyContent = styled.div`\r\n display: flex;\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor};\r\n border-radius: ${(props) => props.theme.inputBorderRadius};\r\n overflow: hidden;\r\n font-size: 0.75rem;\r\n padding: 15px 18px 12px 18px;\r\n\r\n &.standard {\r\n padding: 9px 12px 10px 12px;\r\n margin-bottom: 15px;\r\n }\r\n\r\n &.money {\r\n font-weight: bold;\r\n\r\n &.normal {\r\n font-weight: normal;\r\n\r\n > .money {\r\n font-weight: normal;\r\n }\r\n }\r\n }\r\n\r\n &.wizard {\r\n padding: 11px 18px 9px 18px;\r\n }\r\n\r\n &.error {\r\n border-color: #e94e4e;\r\n }\r\n\r\n > input {\r\n margin: 0;\r\n padding: 0;\r\n height: auto;\r\n }\r\n\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n background: #f5f5f5;\r\n `};\r\n`;\r\n\r\nexport const HR = styled.hr`\r\n border-top: none;\r\n border-bottom: 1px solid gray;\r\n margin: 40px 0;\r\n`;\r\n\r\nexport const TextRight = styled.div`\r\n text-align: right;\r\n`;\r\n","import Color from \"color\";\r\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { ReactComponent as ResetSvg } from \"../../../assets/close.svg\";\r\nimport { ReactComponent as PlusSvg } from \"../../../assets/plus-white.svg\";\r\nimport { InputWrapper } from \"../Stylings\";\r\nimport { Label, ValidationError } from \"./index\";\r\n\r\nconst nativeInputValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n \"value\"\r\n).set;\r\n\r\nconst StylizedDrop = styled.div`\r\n box-sizing: border-box;\r\n width: 100%;\r\n min-width: 190px;\r\n background: ${(props) => props.theme.inputBgColor};\r\n padding: 8px 16px;\r\n border: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor || \"#d4d4d4\"};\r\n border-radius: ${(props) => props.theme.inputBorderRadius || \"5px\"};\r\n position: absolute;\r\n top: 48px;\r\n z-index: 300;\r\n background: #fff;\r\n text-align: left;\r\n cursor: pointer;\r\n box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.16);\r\n transition: all 0.3s ease-in;\r\n opacity: 0;\r\n visibility: hidden;\r\n font-size: ${(props) => props.theme.inputFontSize};\r\n max-height: 360px;\r\n overflow-y: auto;\r\n\r\n & ul {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n overflow-y: auto;\r\n }\r\n\r\n @media ${(props) => props.theme.device.mobile} {\r\n max-height: 144px;\r\n }\r\n\r\n & ul li {\r\n list-style: none;\r\n padding: 10px 5px;\r\n display: flex;\r\n align-items: center;\r\n\r\n & img {\r\n height: 24px;\r\n margin-right: 12px;\r\n }\r\n }\r\n\r\n &.thin ul li {\r\n list-style: none;\r\n padding: 5px 5px;\r\n }\r\n\r\n & ul li:hover {\r\n color: ${(props) => props.theme.primaryColorHover} !important;\r\n }\r\n\r\n & ul li:not(:last-child) {\r\n border-bottom: 1px solid #e2e2e2;\r\n }\r\n\r\n ${(props) =>\r\n props.hasDefault &&\r\n css`\r\n & ul li:first-child {\r\n font-weight:600;\r\n display: none;\r\n `};\r\n`;\r\n\r\nconst StyledPlus = styled(PlusSvg)`\r\n position: absolute;\r\n right: 12px;\r\n top: 6px;\r\n width: 20px;\r\n height: 20px;\r\n`;\r\n\r\nconst StyledReset = styled(ResetSvg)`\r\n position: absolute;\r\n left: 7px;\r\n top: 50%;\r\n width: 16px;\r\n height: 16px;\r\n transition: all 300ms ease;\r\n transform: translateY(-50%);\r\n\r\n &.filters {\r\n left: 12px;\r\n top: 50%;\r\n width: 12px;\r\n height: 12px;\r\n }\r\n\r\n &.filters.action {\r\n display: none;\r\n }\r\n\r\n &.filters.big {\r\n left: 12px;\r\n }\r\n\r\n &:hover .lines {\r\n stroke: #e94e4e;\r\n }\r\n`;\r\n\r\nconst StylizedSelect = styled.div`\r\n box-sizing: border-box;\r\n width: 100%;\r\n /* min-width: 190px; */\r\n background: ${(props) => props.theme.inputBgColor};\r\n padding: 0 32px 0 4px;\r\n border: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor || \"#d4d4d4\"};\r\n border-radius: ${(props) => props.theme.inputBorderRadius || \"5px\"};\r\n margin: 0 0 15px;\r\n cursor: pointer;\r\n position: relative;\r\n font-size: ${(props) => props.theme.inputFontSize};\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n background: ${Color(\"#f8f9f9\").darken(0.2).string()};\r\n `};\r\n color: ${(props) => (props.isDefault ? \"#898989\" : \"#000\")};\r\n height: ${(props) => props.theme.heightInputBig};\r\n line-height: ${(props) => props.theme.heightInputBig};\r\n\r\n & span {\r\n margin-left: 12px;\r\n display: flex;\r\n align-items: center;\r\n &.reset {\r\n margin-left: 26px !important;\r\n }\r\n\r\n & img {\r\n height: 24px;\r\n margin-right: 12px;\r\n }\r\n }\r\n\r\n &.error {\r\n border-color: #e94e4e;\r\n }\r\n\r\n &.filters {\r\n border-radius: ${(props) => props.theme.filtersBorderRadius};\r\n height: ${(props) => props.theme.heightInputSmall};\r\n line-height: ${(props) => props.theme.heightInputSmall};\r\n min-width: 210px;\r\n font-size: 14px;\r\n margin: 0 0 10px;\r\n padding: 0 30px 0 4px;\r\n }\r\n\r\n &.filters.big {\r\n height: 46px;\r\n margin: 0 0 20px;\r\n line-height: 46px;\r\n & span {\r\n margin-left: 20px;\r\n &.reset {\r\n margin-left: 24px !important;\r\n }\r\n }\r\n }\r\n\r\n &.focused {\r\n outline: none !important;\r\n border: 1px solid ${(p) => p.theme.secondaryColor};\r\n }\r\n\r\n &.focused.open {\r\n box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.16);\r\n }\r\n\r\n &.open ~ ${StylizedDrop} {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n\r\n &.filters ~ ${StylizedDrop} {\r\n top: 36px;\r\n }\r\n\r\n &.filters.big ~ ${StylizedDrop} {\r\n top: 50px;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n background: url(\"/images/menu/expand.svg\") no-repeat center;\r\n background-size: 14px 12px;\r\n transition: all 0.5s ease;\r\n position: absolute;\r\n right: 8px;\r\n top: 15px;\r\n width: 15px;\r\n height: 15px;\r\n text-align: center;\r\n }\r\n\r\n &.filters {\r\n &:after {\r\n background: url(\"/images/menu/expand_thin.svg\") no-repeat center;\r\n top: 8px;\r\n background-size: 12px 10px;\r\n right: 12px;\r\n }\r\n & span {\r\n margin-left: 26px;\r\n }\r\n }\r\n\r\n &.filters.action {\r\n background-color: ${(p) => p.theme.primaryColor};\r\n color: #fff;\r\n &:after {\r\n content: none;\r\n }\r\n & span {\r\n margin-left: 20px;\r\n }\r\n }\r\n\r\n &.filters.big {\r\n &:after {\r\n top: 15px;\r\n right: 12px;\r\n }\r\n & span {\r\n margin-left: 8px;\r\n }\r\n }\r\n\r\n /* &.open {\r\n &:after {\r\n transform: rotate(-180deg);\r\n }\r\n } */\r\n\r\n &.disabled {\r\n background: #f5f5f5;\r\n }\r\n`;\r\n\r\nfunction useDropdown(dropEl, actionEl) {\r\n dropEl = dropEl.current;\r\n actionEl = actionEl.current;\r\n\r\n const [drop, setDrop] = useState(false);\r\n\r\n const toggleDrop = useCallback(\r\n (toggleState) => {\r\n const newState =\r\n toggleState !== undefined ? Boolean(toggleState) : !drop;\r\n setDrop(newState);\r\n },\r\n [drop]\r\n );\r\n\r\n const onWindowClick = useCallback(\r\n (ev) => {\r\n const clickOnAction =\r\n actionEl &&\r\n (ev.target === actionEl || actionEl.contains(ev.target));\r\n const clickOnDrop =\r\n dropEl && (ev.target === dropEl || dropEl.contains(ev.target));\r\n\r\n if (!clickOnAction && !clickOnDrop) {\r\n if (drop === true) toggleDrop(false);\r\n actionEl &&\r\n actionEl.classList.contains(\"focused\") &&\r\n actionEl.classList.remove(\"focused\");\r\n }\r\n },\r\n [actionEl, drop, dropEl, toggleDrop]\r\n );\r\n\r\n const onEsc = useCallback(\r\n (ev) => {\r\n if (ev.keyCode === 27 && drop === true) {\r\n toggleDrop(false);\r\n }\r\n },\r\n [drop, toggleDrop]\r\n );\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"click\", onWindowClick);\r\n return () => window.removeEventListener(\"click\", onWindowClick);\r\n });\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"keyup\", onEsc);\r\n return () => window.removeEventListener(\"keyup\", onEsc);\r\n });\r\n\r\n return [drop, toggleDrop];\r\n}\r\n\r\nconst CustomSelect = ({\r\n options = [],\r\n className,\r\n value,\r\n onChange,\r\n error,\r\n hasDefault,\r\n disabled,\r\n dropdown,\r\n handleChange,\r\n ...restProps\r\n}) => {\r\n const inputEl = useRef(null);\r\n const selectEl = useRef(null);\r\n const selectDropEl = useRef(null);\r\n const [dropOpen, toggleDrop] = useDropdown(selectDropEl, selectEl);\r\n const [index, setIndex] = useState(0);\r\n\r\n useEffect(() => {\r\n if (options.length > 0) {\r\n for (var i = 0; i < options.length; i++) {\r\n if (options[i].value === value) {\r\n setIndex(i);\r\n break;\r\n }\r\n }\r\n }\r\n }, [options, value]);\r\n\r\n const handleInputChange = useCallback(\r\n (ev) => {\r\n onChange && onChange(ev);\r\n },\r\n [onChange]\r\n );\r\n\r\n const handleReset = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setIndex(0);\r\n dispatchChangeEvent(0);\r\n toggleDrop(false);\r\n };\r\n\r\n const dispatchChangeEvent = (newIndex) => {\r\n !dropdown &&\r\n nativeInputValueSetter.call(\r\n inputEl.current,\r\n options[newIndex].value\r\n );\r\n let inpEvt = new Event(\"input\", { bubbles: true });\r\n inputEl.current.dispatchEvent(inpEvt);\r\n };\r\n\r\n const onClick = (el) => {\r\n if (el.target.dataset.idx !== undefined) {\r\n const selectedIdx = Number(el.target.dataset.idx);\r\n if (selectedIdx !== index || dropdown) {\r\n if (!dropdown) {\r\n setIndex(selectedIdx);\r\n dispatchChangeEvent(selectedIdx);\r\n } else {\r\n if (handleChange) {\r\n const ev = {\r\n currentTarget: {\r\n value: options[selectedIdx].value,\r\n },\r\n };\r\n handleChange(ev);\r\n }\r\n }\r\n }\r\n }\r\n selectEl.current.classList.add(\"focused\");\r\n toggleDrop();\r\n };\r\n selectEl.current &&\r\n (dropOpen\r\n ? selectEl.current.classList.add(\"open\")\r\n : selectEl.current.classList.remove(\"open\"));\r\n\r\n const label =\r\n index >= 0 && options.length > index ? options[index].label : \"\";\r\n error && (className = className + \" error\");\r\n\r\n return (\r\n
\r\n \r\n \r\n {hasDefault && index > 0 && (\r\n \r\n )}\r\n 0 ? \"reset\" : \"\"}\r\n dangerouslySetInnerHTML={{ __html: label }}\r\n />\r\n \r\n {dropdown && }\r\n {!disabled && (\r\n \r\n
    \r\n {options &&\r\n options.map((option, idx) => (\r\n \r\n ))}\r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst Select = (props) => {\r\n let {\r\n labelText,\r\n labelClassName,\r\n name,\r\n className,\r\n errors,\r\n touched,\r\n values,\r\n onChange,\r\n handleChange,\r\n handleBlur,\r\n options,\r\n wrapperVariant,\r\n defaultItem,\r\n defaultValue,\r\n defaultFirstOption,\r\n disabled,\r\n dropdown,\r\n } = props;\r\n let value = values && values[name];\r\n let error = errors && errors[name];\r\n let isTouched = touched && touched[name];\r\n\r\n if (defaultValue !== undefined && value === undefined) value = defaultValue;\r\n\r\n const selectOptions = [...options];\r\n if (defaultItem && selectOptions) {\r\n selectOptions.unshift(defaultItem);\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Select;\r\n","import styled, { css } from \"styled-components\";\r\n\r\nconst TextArea = styled.textarea`\r\n box-sizing: border-box;\r\n width: 100%;\r\n background: ${(props) => props.theme.inputBgColor};\r\n padding: 16px 16px;\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor};\r\n border-radius: ${(props) => props.theme.inputBorderRadius};\r\n margin: 0 0 20px;\r\n resize: none;\r\n overflow-y: auto;\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n background: #f5f5f5;\r\n `};\r\n height: ${(props) => `${props.theme.heightInputBigPx * (props.col=== undefined ? 3:props.col)}px`};\r\n font-size: ${(props) => props.theme.inputFontSize};\r\n\r\n ::placeholder {\r\n color: ${(props) => props.theme.inputPlaceholder};\r\n }\r\n\r\n ${(props) =>\r\n props.hasAction &&\r\n css`\r\n margin-bottom:5px;\r\n `};\r\n`;\r\n\r\nexport default TextArea;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_898\",\n \"data-name\": \"Group 898\",\n transform: \"translate(-76.169 -232.052)\",\n opacity: 0.75\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_469\",\n \"data-name\": \"Path 469\",\n d: \"M66.836-347.74a1.691,1.691,0,0,1,1.231.533,1.69,1.69,0,0,1,.455,1.261L65.9-303.7a6.273,6.273,0,0,1-6.261,5.885H21.364A6.273,6.273,0,0,1,15.1-303.7s-2.108-33.982-2.62-42.246a1.689,1.689,0,0,1,.455-1.261,1.691,1.691,0,0,1,1.231-.533ZM36.271-322.765l-6.82-6.822a3.024,3.024,0,0,1,0-4.275,3.024,3.024,0,0,1,4.276,0l6.82,6.82,6.781-6.781a3.025,3.025,0,0,1,4.276,0,3.024,3.024,0,0,1,0,4.275l-6.781,6.783,6.781,6.781a3.024,3.024,0,0,1,0,4.276,3.025,3.025,0,0,1-4.276,0l-6.781-6.781-6.82,6.82a3.024,3.024,0,0,1-4.276,0,3.024,3.024,0,0,1,0-4.275Z\",\n transform: \"translate(66.734 601.868)\",\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_470\",\n \"data-name\": \"Path 470\",\n d: \"M23.166-346.375v-2.892a9.786,9.786,0,0,1,2.867-6.919,9.791,9.791,0,0,1,6.92-2.867H50.886a9.791,9.791,0,0,1,6.92,2.867,9.787,9.787,0,0,1,2.866,6.919v2.892H69.9a3.019,3.019,0,0,1,3.018,3.017A3.02,3.02,0,0,1,69.9-340.34H13.937a3.02,3.02,0,0,1-3.018-3.019,3.019,3.019,0,0,1,3.018-3.017Zm31.144,0V-349.5a3.316,3.316,0,0,0-.97-2.344,3.315,3.315,0,0,0-2.342-.97H32.613a3.315,3.315,0,0,0-2.342.97,3.316,3.316,0,0,0-.97,2.344v3.122Z\",\n transform: \"translate(65.25 591.105)\",\n fillRule: \"evenodd\"\n}));\n\nvar SvgTrash = function SvgTrash(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 62.001,\n height: 72,\n viewBox: \"0 0 62.001 72\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTrash, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/trash.116babce.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"422,302 422,422 90,422 90,302 0,302 0,512 512,512 512,302 \"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"256,0 166,135 226,135 226,345 286,345 286,135 346,135 \"\n})));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar SvgUpload = function SvgUpload(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\n enableBackground: \"new 0 0 512 512\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgUpload, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/upload.3513302c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as ResetSvg } from \"../../../assets/trash.svg\";\r\nimport { ReactComponent as UploadSvg } from \"../../../assets/upload.svg\";\r\nimport useFileDrop from \"./hooks/useFileDrop\";\r\nimport Input from \"./Input\";\r\n\r\nconst UploadInput = styled(Input)`\r\n background: #000;\r\n`;\r\n\r\nconst StyledUpload = styled(UploadSvg)`\r\n display: block;\r\n height: 22px;\r\n`;\r\n\r\nconst StyledReset = styled(ResetSvg)`\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n width: 40px;\r\n height: 40px;\r\n transition: all 300ms ease;\r\n transform: translate(-50%, -50%);\r\n background: rgba(255, 255, 255, 0.8);\r\n padding: 4px;\r\n border-radius: 6px;\r\n\r\n opacity: 0;\r\n pointer-events: none;\r\n\r\n &:hover .lines {\r\n stroke: #e94e4e;\r\n }\r\n\r\n &.image.has-file {\r\n opacity: 1;\r\n pointer-events: initial;\r\n }\r\n`;\r\n\r\nexport const UploadInputWrapper = styled.div`\r\n position: relative;\r\n min-height: 44px;\r\n border: 2px dashed #e2e2e2;\r\n font-size: 16px;\r\n border-radius: 12px;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n\r\n &.white {\r\n background: #ffffff;\r\n }\r\n\r\n &.doubleHeight {\r\n height: 138px;\r\n margin-top: 5px;\r\n }\r\n\r\n &.disabled {\r\n background: #f5f5f5;\r\n }\r\n\r\n &.disabled .placeholder {\r\n color: #888;\r\n }\r\n\r\n &:hover:not(.disabled) {\r\n cursor: pointer;\r\n\r\n & .back-image {\r\n opacity: 0.5;\r\n }\r\n }\r\n\r\n &.dragging {\r\n border: 2px dashed #675b34;\r\n cursor: pointer;\r\n }\r\n\r\n & > .content {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: column;\r\n align-items: center;\r\n text-align: center;\r\n font-size: 16px;\r\n font-weight: 400;\r\n padding: 32px 16px;\r\n color: ${(p) => p.theme.primaryColor};\r\n height: 100%;\r\n justify-content: space-between;\r\n box-sizing: border-box;\r\n }\r\n\r\n & > .content .placeholder {\r\n color: #2294D2;\r\n font-size: 14px;\r\n font-weight: 500;\r\n margin: 0 auto;\r\n @media ${(props) => props.theme.device.mobile} {\r\n font-size: 18px;\r\n }\r\n }\r\n\r\n & > .content .placeholder.multi {\r\n text-align: left;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n\r\n & > .content .title {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 16px;\r\n width: 100%;\r\n font-size: 16px;\r\n color: #000;\r\n font-weight: 600;\r\n line-height: 20px;\r\n @media ${(props) => props.theme.device.mobile} {\r\n font-size: 20px;\r\n }\r\n }\r\n\r\n &.image.has-file > .content {\r\n text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;\r\n }\r\n\r\n &.image.has-file .placeholder,\r\n &.image.has-file .title {\r\n display: none;\r\n }\r\n\r\n &.disabled > .content .title {\r\n color: #888;\r\n text-shadow: none;\r\n }\r\n\r\n &:not(.disabled) > .content.empty {\r\n & .placeholder {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n &:not(.disabled) > .content.empty:hover {\r\n & .placeholder {\r\n text-decoration: underline;\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n &:not(.disabled):hover:after {\r\n background: #d4d4d4;\r\n }\r\n\r\n & input {\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 99;\r\n height: 32px;\r\n margin: 0;\r\n padding: 0;\r\n display: block;\r\n cursor: pointer;\r\n width: 100%;\r\n }\r\n\r\n & input.hidden {\r\n display: none;\r\n z-index: -1;\r\n width: 0px;\r\n height: 0px;\r\n }\r\n\r\n & .back-image {\r\n position: absolute;\r\n left: 5px;\r\n top: 5px;\r\n width: calc(100% - 10px);\r\n height: calc(100% - 10px);\r\n z-index: -1;\r\n background-position: center;\r\n background-size: cover;\r\n border-radius: 15px;\r\n }\r\n`;\r\n\r\nconst Uploader = (props) => {\r\n const imageRef = useRef();\r\n let defVal = props.value && props.value instanceof Array ? props.value : [];\r\n if (\r\n props.type === \"image\" &&\r\n props.value &&\r\n (typeof props.value === \"string\" || props.value instanceof String) &&\r\n props.value !== props.skipUrl\r\n ) {\r\n defVal = [{ name: \"image\", url: props.value, type: \"imageUrl\" }];\r\n }\r\n\r\n const [files, setFiles] = useState(defVal);\r\n\r\n useEffect(() => {\r\n if (files[0]?.type === \"imageUrl\")\r\n imageRef.current.style.backgroundImage = \"url(\" + props.value + \")\";\r\n }, []);\r\n\r\n const inputRef = useRef();\r\n const onChange = (e) => {\r\n if (e && e.currentTarget.files.length > 0) {\r\n let newFiles = Array.from(e.target.files).filter(\r\n (file) => !files.some((img) => img.name === file.name)\r\n );\r\n if (props.multiple) {\r\n props.setFieldValue(props.name, [...props.values[props.name], ...newFiles]);\r\n setFiles((prev) => [...prev, ...newFiles]);\r\n } else {\r\n if (newFiles.length > 0) {\r\n props.setFieldValue(props.name, [newFiles[0]]);\r\n setFiles([newFiles[0]]);\r\n if (props.type === \"image\") {\r\n const imageUrl = URL.createObjectURL(newFiles[0]);\r\n imageRef.current.style.backgroundImage = \"url(\" + imageUrl + \")\";\r\n }\r\n } else {\r\n if (props.type === \"image\") {\r\n imageRef.current.style.backgroundImage = \"none\";\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const { isDragging, getUploaderProps } = useFileDrop((files) => {\r\n inputRef.current.files = files;\r\n\r\n let event = document.createEvent(\"UIEvents\");\r\n event.initUIEvent(\"change\", true, true);\r\n inputRef.current.dispatchEvent(event);\r\n });\r\n\r\n const fileNames = files.map((f) => f.name);\r\n let placeholder =\r\n files instanceof Array\r\n ? fileNames\r\n .map((f) => {\r\n return \"â–£ \" + f;\r\n })\r\n .join(\"
\")\r\n : files;\r\n\r\n if (!placeholder) placeholder = props.placeholder || \"Drop or add files\";\r\n const handleReset = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n if (props.disabled) return;\r\n props.setFieldValue(props.name, []);\r\n setFiles([]);\r\n inputRef.current.value = \"\";\r\n if (props.type === \"image\") {\r\n imageRef.current.style.backgroundImage = \"none\";\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n if (props.disabled) return;\r\n inputRef.current && inputRef.current.dispatchEvent(new MouseEvent(\"click\"));\r\n }}\r\n >\r\n {fileNames.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n
\r\n {props.title && (\r\n
\r\n {props.title}\r\n
\r\n )}\r\n 0 ? \"multi\" : \"\"}`}\r\n dangerouslySetInnerHTML={{ __html: placeholder }}\r\n />\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Uploader;\r\n","import React, {useState} from \"react\";\r\nimport styled from \"styled-components\";\r\nimport globals from \"../../../globalVars\";\r\n\r\nconst ErrorPlaceholder = styled.span`\r\n position: absolute;\r\n width: 100%;\r\n top: 0;\r\n left: 0;\r\n text-align: right;\r\n &.pwaBig {\r\n top: -20px;\r\n }\r\n`;\r\n\r\nconst FieldErrorSpan = styled.span`\r\n background: ${(props) => props.theme.errorColor};\r\n color: ${(props) => props.theme.errorTextColor};\r\n border-radius: 5px;\r\n padding: 8px 5px;\r\n position: absolute;\r\n bottom: 8px;\r\n width: max-content;\r\n max-width: 150%;\r\n right: 0px;\r\n display: none;\r\n font-size: 0.875rem;\r\n z-index: 100;\r\n text-align: center;\r\n \r\n &.open {\r\n display: block;\r\n }\r\n\r\n &.small {\r\n font-size: 0.75rem;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n border-style: solid;\r\n border-width: 7px 5px 0 5px;\r\n border-color: ${(props) => props.theme.errorColor} transparent transparent transparent;\r\n position: absolute;\r\n bottom: -6px;\r\n right: 16px;\r\n }\r\n`;\r\n\r\nconst MobileFiledError = styled.span`\r\n color: #fd6666;\r\n background: #fff;\r\n padding: 4px 4px;\r\n border-radius: 6px;\r\n position: absolute;\r\n bottom: -5px;\r\n width: auto;\r\n left: 0px;\r\n font-size: 0.775rem;\r\n z-index: 100;\r\n height: 19px;\r\n line-height: 10px;\r\n`;\r\n\r\nconst StyledErrorSpan = styled.span`\r\n color: ${(props) => props.theme.errorColor};\r\n display: block;\r\n\r\n &.relative {\r\n position: relative;\r\n }\r\n\r\n &.small {\r\n font-size: 0.75rem;\r\n }\r\n`;\r\n\r\nconst StyledIcon = styled.i`\r\n position: absolute;\r\n right: 12px;\r\n top: 0;\r\n width: 1.125rem;\r\n height: 1.125rem;\r\n cursor: pointer;\r\n`;\r\n\r\nconst ValidationError = ({className, error, touched, isFieldError}) => {\r\n const shouldRender = error && touched;\r\n const [errorIsOpen, setErrorIsOpen] = useState(false);\r\n\r\n const toggleError = () => {\r\n setErrorIsOpen(!errorIsOpen);\r\n };\r\n\r\n if (shouldRender) {\r\n if (isFieldError) {\r\n if (globals.isMobile)\r\n return {error};\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {error}\r\n \r\n \r\n );\r\n }\r\n\r\n return {error};\r\n }\r\n return null;\r\n};\r\n\r\nexport default ValidationError;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_987\",\n \"data-name\": \"Group 987\",\n transform: \"translate(-9.5 -12.507)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n id: \"Path_699\",\n \"data-name\": \"Path 699\",\n d: \"M14.983,20.79l3.334-3.334V34.309a1.455,1.455,0,1,0,2.909,0V17.456L24.56,20.79a1.455,1.455,0,0,0,2.06-2.057L20.8,12.915a1.5,1.5,0,0,0-.457-.305L20.33,12.6h0a1.452,1.452,0,0,0-.739-.076,1.314,1.314,0,0,0-.18.035,1.422,1.422,0,0,0-.663.355L12.926,18.73a1.455,1.455,0,0,0,2.057,2.06Z\",\n transform: \"translate(5.729)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: 0,\n id: \"Path_700\",\n \"data-name\": \"Path 700\",\n d: \"M40.045,19.5a1.455,1.455,0,0,0-1.455,1.455v4.364H12.409V20.955a1.455,1.455,0,0,0-2.909,0v5.818a1.455,1.455,0,0,0,1.455,1.455H40.045A1.455,1.455,0,0,0,41.5,26.773V20.955A1.455,1.455,0,0,0,40.045,19.5Z\",\n transform: \"translate(0 13.351)\"\n}));\n\nvar SvgFileupload = function SvgFileupload(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 29.072,\n viewBox: \"0 0 32 29.072\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFileupload, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/fileupload.1cda8570.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as UploadSvg } from \"../../../assets/fileupload.svg\";\r\nimport useFileDrop from \"./hooks/useFileDrop\";\r\nimport Input from \"./Input\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst UploadInput = styled(Input)`\r\n background: #000;\r\n`;\r\n\r\nconst StyledUpload = styled(UploadSvg)`\r\n position: absolute;\r\n left: 20px;\r\n top: 50%;\r\n width: 32px;\r\n height: 29px;\r\n transition: all 300ms ease;\r\n transform: translateY(-50%);\r\n\r\n &:hover .lines {\r\n stroke: #e94e4e;\r\n }\r\n`;\r\n\r\nexport const UploadInputWrapper = styled.div`\r\n position: relative;\r\n height: 80px;\r\n border: 2px dashed #e2e2e2;\r\n font-size: 16px;\r\n border-radius: 18px;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n display: flex;\r\n\r\n &.white {\r\n background: #ffffff;\r\n }\r\n\r\n &.disabled {\r\n background: #f5f5f5;\r\n }\r\n\r\n &.disabled .placeholder {\r\n color: #888;\r\n }\r\n\r\n &.dragging {\r\n border: 2px dashed #2294d2;\r\n cursor: pointer;\r\n\r\n & .placeholder {\r\n opacity: 0;\r\n }\r\n\r\n & path {\r\n fill: #2294d2;\r\n }\r\n }\r\n\r\n &.has-file {\r\n & path {\r\n fill:#E2E2E2;\r\n }\r\n }\r\n\r\n & > .content {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: column;\r\n align-content: flex-start;\r\n align-items: flex-start;\r\n font-size: 12px;\r\n font-weight: 500;\r\n padding: 0px;\r\n color: #000;\r\n height: 100%;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n padding-left: 86px;\r\n flex: 1;\r\n }\r\n\r\n & > .content .title {\r\n width: 100%;\r\n font-size: 20px;\r\n color: #000;\r\n font-weight: 700;\r\n line-height: 20px;\r\n }\r\n\r\n & > .placeholder {\r\n height: 100%;\r\n line-height: 80px;\r\n padding-right: 20px;\r\n color: #2294d2;\r\n font-weight: 500;\r\n cursor: pointer;\r\n }\r\n & > .placeholder.has-file {\r\n color: #e94e4e;\r\n }\r\n\r\n &.disabled > .content .title {\r\n color: #888;\r\n text-shadow: none;\r\n }\r\n\r\n & input {\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 99;\r\n height: 32px;\r\n margin: 0;\r\n padding: 0;\r\n display: block;\r\n width: 100%;\r\n }\r\n\r\n & input.hidden {\r\n display: none;\r\n z-index: -1;\r\n width: 0px;\r\n height: 0px;\r\n }\r\n\r\n & .back-image {\r\n position: absolute;\r\n left: 1px;\r\n top: 1px;\r\n width: calc(100% - 2px);\r\n height: calc(100% - 2px);\r\n z-index: -1;\r\n background-position: center;\r\n background-size: cover;\r\n border-radius: 15px;\r\n }\r\n`;\r\n\r\nconst SingleFileUploader = (props) => {\r\n const { t } = useTranslation(\"actions\");\r\n const [file, setFile] = useState(props.value);\r\n const inputRef = useRef();\r\n const onChange = (e) => {\r\n if (e && e.currentTarget.files.length > 0) {\r\n let newFile = Array.from(e.target.files)[0];\r\n if (newFile) {\r\n props.setFieldValue(props.name, newFile);\r\n setFile(newFile);\r\n }\r\n }\r\n };\r\n\r\n const { isDragging, getUploaderProps } = useFileDrop((files) => {\r\n inputRef.current.files = files;\r\n let event = document.createEvent(\"UIEvents\");\r\n event.initUIEvent(\"change\", true, true);\r\n inputRef.current.dispatchEvent(event);\r\n });\r\n\r\n const fileName = file?.name;\r\n let placeholder = file;\r\n\r\n if (!placeholder) placeholder = props.placeholder || \"Drop or add files\";\r\n const handleReset = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n if (props.disabled) return;\r\n props.setFieldValue(props.name, \"\");\r\n setFile(\"\");\r\n inputRef.current.value = \"\";\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n
\r\n {props.title &&
{props.title}
}\r\n {fileName &&
{fileName}
}\r\n
\r\n {\r\n if (props.disabled) return;\r\n\r\n if (fileName) handleReset(ev);\r\n else {\r\n inputRef.current &&\r\n inputRef.current.dispatchEvent(\r\n new MouseEvent(\"click\")\r\n );\r\n }\r\n }}\r\n >\r\n {fileName ? t(\"remove\") : t(\"browse\")}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SingleFileUploader;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Heading1 = styled.h1`\r\n /* font-family: \"Open Sans\", sans-serif; */\r\n color: ${(props) => props.theme.primaryColor};\r\n position: relative;\r\n font-size: ${(props) => props.theme.h1FontSize};\r\n margin: 0 0 18px;\r\n font-weight: 500;\r\n\r\n &.center {\r\n text-align: center;\r\n }\r\n\r\n &.title {\r\n font-size: ${(props) => props.theme.h1TitleFontSize};\r\n margin: 0 0 25px;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n font-size: 2rem;\r\n }\r\n }\r\n\r\n &.small-title {\r\n font-size: ${(props) => props.theme.h1TitleFontSizeSmall};\r\n }\r\n\r\n &.bold {\r\n font-weight: 700;\r\n }\r\n`;\r\n\r\nconst H1 = ({children, ...rest}) => {\r\n return {children};\r\n};\r\n\r\nexport default H1;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Heading2 = styled.h2`\r\n /* font-family: 'Open Sans', sans-serif; */\r\n color: ${props => props.theme.primaryColor};\r\n font-size: ${props => props.theme.h2FontSize};\r\n font-weight: 500;\r\n &.center {\r\n text-align: center;\r\n }\r\n\r\n &.title {\r\n font-size: ${(props) => props.theme.h2TitleFontSize};\r\n margin: 0 0 25px;\r\n }\r\n\r\n &.small-title {\r\n font-size: 24px;\r\n }\r\n\r\n &.bold {\r\n font-weight: 700;\r\n }\r\n\r\n`;\r\n\r\nconst H2 = ({children, ...rest}) => {\r\n return (\r\n {children}\r\n )\r\n};\r\n\r\nexport default H2;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Heading3 = styled.h3`\r\n /* font-family: \"Open Sans\", sans-serif; */\r\n color: ${(props) => props.theme.primaryColor};\r\n\r\n &.notification {\r\n font-size: 2.25rem;\r\n margin: 0 0 12px;\r\n }\r\n`;\r\n\r\nconst H3 = (props, ref) => {\r\n const { children, className, ...restProps } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default React.forwardRef(H3);\r\n","import H1 from \"./H1\";\r\nimport H2 from \"./H2\";\r\nimport H3 from \"./H3\";\r\n\r\nconst Headings = {\r\n H1: H1,\r\n H2: H2,\r\n H3: H3\r\n};\r\n\r\nexport default Headings;\r\n","import QRCode from \"qrcode.react\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as AddSvg } from \"../../assets/ios_add.svg\";\r\nimport { ReactComponent as ShareSvg } from \"../../assets/ios_share.svg\";\r\nimport { Radio } from \"../../components/elements/form-elements\";\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\n\r\nconst StyledQR = styled.div`\r\n width: 200px;\r\n height: 200px;\r\n`;\r\n\r\nconst SubTitle = styled.div`\r\n font-size: 20px;\r\n font-weight: 500;\r\n margin-top: -10px;\r\n white-space: nowrap;\r\n`;\r\n\r\nconst Section = styled.div`\r\n position: relative;\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: center;\r\n /* border-bottom: 1px solid #dddddd; */\r\n padding: 10px 0px;\r\n margin-bottom: 30px;\r\n\r\n &.h-80 {\r\n min-height: 80px;\r\n }\r\n\r\n &.bottom-space {\r\n padding-bottom: 40px;\r\n min-height: 280px;\r\n }\r\n\r\n & label + label {\r\n margin-left: 20px;\r\n }\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n height: 1px;\r\n width: 90%;\r\n transform: translateX(6%);\r\n border-bottom: 1px solid #dddddd;\r\n }\r\n\r\n`;\r\n\r\nconst Instructions = styled.div`\r\n width: 60%;\r\n`;\r\n\r\nconst Num = styled.div`\r\n width: 24px;\r\n height: 24px;\r\n line-height: 20px;\r\n font-weight: 700;\r\n font-size: 16px;\r\n text-align: center;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border: 3px solid ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n float: left;\r\n`;\r\n\r\nconst StepWrapper = styled.div`\r\n text-align: left;\r\n display: flex;\r\n align-items: flex-start;\r\n padding-left: 25px;\r\n flex-wrap: wrap;\r\n margin-bottom: 20px;\r\n\r\n > * {\r\n flex: 0;\r\n flex-basis: auto;\r\n }\r\n`;\r\n\r\nconst Step = styled.div`\r\n width: 100%;\r\n height: 24px;\r\n line-height: 24px;\r\n font-size: 14px;\r\n font-weight: normal;\r\n color: #898989;\r\n &.title {\r\n color: #000;\r\n font-weight: 600;\r\n font-size: 16px;\r\n }\r\n`;\r\n\r\nconst TechnicianTools = () => {\r\n const { t } = new useTranslation();\r\n const [isIos, setIsIos] = useState(true);\r\n const appLocation =\r\n window.location.protocol +\r\n \"//\" +\r\n window.location.hostname +\r\n (window.location.port ? \":\" + window.location.port : \"\");\r\n\r\n return (\r\n
\r\n \r\n {t(\"actions:dialogs.qrLink.title\")}\r\n \r\n {t(\"actions:dialogs.qrLink.scan\")}\r\n
\r\n setIsIos(true)}\r\n />\r\n setIsIos(false)}\r\n />\r\n
\r\n
\r\n {isIos && (\r\n \r\n 1\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.scanQr\")}\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.accessCamera\")}\r\n \r\n \r\n 2\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.openWebsite\")}\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.bannerBrowser\")}\r\n \r\n \r\n 3\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.browserOptions\")}\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.shareButton\")}\r\n ( )\r\n {t(\"actions:dialogs.qrLink.screenBottom\")}\r\n \r\n \r\n 4\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.saveApp\")}\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.optionsA2HS\")}\r\n ( ).
\r\n {t(\"actions:dialogs.qrLink.added2HS\")}\r\n
\r\n
\r\n
\r\n )}\r\n {!isIos && (\r\n \r\n 1\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.scanQr\")}\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.accessCamera\")}\r\n \r\n \r\n 2\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.openWebsite\")}\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.bannerBrowser\")}\r\n \r\n \r\n 3\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.saveApp\")}\r\n \r\n \r\n {t(\"actions:dialogs.qrLink.tapBanner\")}\r\n
\r\n {t(\"actions:dialogs.qrLink.saveAndroid\")}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default TechnicianTools;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport ModalDialog, { useModal } from \"../../components/modal/ModalDialog\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport helpers from \"../../core/helpers\";\r\nimport UserService from \"../../services/User/UserService\";\r\nimport LogoutButton from \"../elements/buttons/LogoutButton\";\r\nimport TechnicianTools from \"./TehnicianTools\";\r\n\r\nconst Menu = styled.div`\r\n cursor: default;\r\n position: absolute;\r\n top: calc(100% + 10px);\r\n right: 0;\r\n border-radius: ${(props) => props.theme.inputBorderRadius};\r\n max-height: 0;\r\n transition: all 0.3s ease-in;\r\n opacity: 0;\r\n background: ${(props) => props.theme.bgWhite};\r\n text-align: left;\r\n padding: 8px 24px 24px;\r\n visibility: hidden;\r\n box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.16);\r\n\r\n &.opened {\r\n max-height: 1000px;\r\n opacity: 1;\r\n visibility: visible;\r\n z-index: 100;\r\n }\r\n\r\n a:hover {\r\n color: ${(props) => props.theme.primaryColorHover};\r\n }\r\n`;\r\n\r\nconst UL = styled.ul`\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n word-break: keep-all;\r\n white-space: nowrap;\r\n\r\n li {\r\n list-style: none;\r\n padding: 15px 5px;\r\n border-bottom: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor};\r\n cursor: auto;\r\n &:last-child {\r\n border-bottom: none;\r\n padding-bottom: 0;\r\n border-top: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor};\r\n }\r\n }\r\n\r\n li:not(:first-child) *,\r\n ul li * {\r\n font-size: 14px !important;\r\n }\r\n\r\n & li:hover {\r\n color: ${(props) => props.theme.primaryColorHover};\r\n }\r\n\r\n & ul.menuItems {\r\n padding: 5px 0;\r\n }\r\n\r\n & ul.menuItems li {\r\n border-bottom: 1px solid transparent;\r\n padding: 10px 5px;\r\n border: none;\r\n }\r\n\r\n & ul.menuItems li:last-child {\r\n border-bottom: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor};\r\n }\r\n\r\n & .clear {\r\n clear: both;\r\n }\r\n\r\n & .full {\r\n width: 100%;\r\n }\r\n\r\n a {\r\n color: ${(props) => props.theme.textColor};\r\n text-decoration: none;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Avatar = styled.div`\r\n border-radius: 50%;\r\n width: 40px;\r\n height: 40px;\r\n color: #fff;\r\n background-color: ${(props) => props.theme.secondaryColor};\r\n text-align: center;\r\n margin-right: 12px;\r\n\r\n & span {\r\n line-height: 40px;\r\n font-size: 20px;\r\n text-transform: uppercase;\r\n }\r\n\r\n .avatar {\r\n border-radius: 50%;\r\n background: no-repeat center;\r\n background-size: cover;\r\n display: inline-block;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n`;\r\n\r\nconst UserInfo = styled.div`\r\n text-align: left;\r\n & .name {\r\n font-size: 14px;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n color: ${(props) => props.theme.primaryColorHover};\r\n }\r\n\r\n & .mail {\r\n color: ${(props) => props.theme.menuItems};\r\n font-size: 14px;\r\n color: #898989;\r\n text-transform: lowercase;\r\n }\r\n\r\n &:hover .mail {\r\n color: ${(props) => props.theme.primaryColorHover};\r\n }\r\n`;\r\n\r\nconst UserMenu = (props, menuRef) => {\r\n const opened = props.isOpened;\r\n const links = props.links;\r\n const pathname = window.location.pathname;\r\n const { t } = new useTranslation();\r\n const buildUrl = (link) => {\r\n if (link === pathname) {\r\n return link;\r\n }\r\n return link + \"?returnUrl=\" + pathname;\r\n };\r\n\r\n const avatarUrl =\r\n props.avatar.indexOf(\"man-user\") > 0 ? null : props.avatar;\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n onConfirm: async () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.qrLink.confirmText\"),\r\n modalVariant: \"wide\",\r\n type: \"info\",\r\n });\r\n\r\n const companyEditEnabled =\r\n UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser);\r\n\r\n return (\r\n \r\n
    \r\n
  • \r\n \r\n \r\n {avatarUrl ? (\r\n \r\n ) : (\r\n \r\n {helpers.getInitials(props.userFullName)}\r\n \r\n )}\r\n \r\n \r\n
    {props.userFullName}
    \r\n
    {props.email}
    \r\n
    \r\n
    \r\n \r\n
  • \r\n\r\n {props.company && companyEditEnabled && (\r\n
  • \r\n \r\n
    {props.company}
    \r\n \r\n
  • \r\n )}\r\n {props.company && !companyEditEnabled && (\r\n
  • \r\n
    {props.company}
    \r\n
  • \r\n )}\r\n
      \r\n {links.map((link, idx) => {\r\n return (\r\n
    • \r\n {link.external ? (\r\n {link.name}\r\n ) : (\r\n \r\n
      {link.name}
      \r\n \r\n )}\r\n
    • \r\n );\r\n })}\r\n
    \r\n {\r\n toggleOpen();\r\n }}\r\n >\r\n {t(\"actions:dialogs.qrLink.title\")}\r\n \r\n
  • \r\n \r\n
  • \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default React.forwardRef(UserMenu);\r\n","import React, { useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport useClickAway from \"../../../../hooks/_shared/useClickAway\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport UserMenu from \"../../../user-menu/UserMenu\";\r\n\r\nconst UserWrapper = styled.div`\r\n margin: 0 60px 0 0px;\r\n @media ${(p) => p.theme.device.mobile} {\r\n margin: 0 15px 0 auto;\r\n }\r\n`;\r\n\r\nconst UserAction = styled.div`\r\n background: transparent;\r\n /* box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.14); */\r\n height: auto;\r\n padding: 8px 32px 6px 8px;\r\n border-radius: 16px;\r\n /* min-width: 160px; */\r\n margin: 0;\r\n position: relative;\r\n cursor: pointer;\r\n font-size: 14px;\r\n\r\n &:before {\r\n content: \"\";\r\n background: transparent;\r\n border-radius: 50%;\r\n position: absolute;\r\n right: 5px;\r\n top: 5px;\r\n width: 20px;\r\n height: 20px;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n background: url(\"/images/menu/expand_thin.svg\") no-repeat center;\r\n background-size: 12px 10px;\r\n /* transition: all 0.5s ease; */\r\n color: ${(props) => props.theme.textWhite};\r\n position: absolute;\r\n right: 5px;\r\n top: 6px;\r\n width: 20px;\r\n height: 20px;\r\n text-align: center;\r\n }\r\n\r\n & div.username {\r\n width: 100%;\r\n text-align: right;\r\n }\r\n\r\n &:hover div.username {\r\n color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n &.opened {\r\n &:after {\r\n transform: rotate(-180deg);\r\n right: 5px;\r\n top: 4px;\r\n }\r\n }\r\n`;\r\n\r\nconst HeaderUserArea = ({ avatarUrl, name, userFullName, email }) => {\r\n const [menuIsOpened, setMenuIsOpened] = useState(false);\r\n const menuRef = useRef(null);\r\n const { t } = useTranslation(\"header\");\r\n const {\r\n UserId,\r\n CompanyName,\r\n CompanyId,\r\n } = UserService.getUserDetailsFromToken();\r\n\r\n\r\n useClickAway(menuRef, () => {\r\n setMenuIsOpened(false);\r\n });\r\n\r\n const handleToggle = () => {\r\n setMenuIsOpened(!menuIsOpened);\r\n };\r\n\r\n const userLinks = [\r\n {\r\n name: \"retradeables.com\",\r\n link: \"https://retradeables.com/\",\r\n external:true\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n
\r\n {t(\"header.helloWord\")} {name}\r\n
\r\n\r\n \r\n \r\n
\r\n );\r\n};\r\nexport default HeaderUserArea;\r\n","import React, { useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport useClickAway from \"../../../../hooks/_shared/useClickAway\";\r\n\r\nconst DaikinInfo = styled.div`\r\n font-size: 14px;\r\n color: #898989;\r\n text-align: center;\r\n margin-bottom: 10px;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n font-size: 10px;\r\n }\r\n`;\r\n\r\nconst LangWrapper = styled.div`\r\n margin: 0 0px 0 30px;\r\n @media ${(p) => p.theme.device.mobile} {\r\n margin: 0 auto;\r\n }\r\n &.centered {\r\n margin: 0 auto;\r\n }\r\n`;\r\n\r\nconst Action = styled.div`\r\n background: transparent;\r\n height: auto;\r\n padding: 8px 32px 6px 30px;\r\n border-radius: 16px;\r\n margin: 0;\r\n position: relative;\r\n cursor: pointer;\r\n font-size: 14px;\r\n\r\n &.pwa {\r\n position: absolute;\r\n bottom: 24px;\r\n left: 50%;\r\n transform: translate(-50%, 0);\r\n }\r\n\r\n &.bottom {\r\n padding: 10px 0px;\r\n margin: 0 auto;\r\n width: fit-content;\r\n &:after {\r\n right: -20px;\r\n top: 8px;\r\n }\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n background: url(\"/images/menu/expand_thin.svg\") no-repeat center;\r\n background-size: 12px 10px;\r\n color: ${(props) => props.theme.textWhite};\r\n position: absolute;\r\n right: 5px;\r\n top: 6px;\r\n width: 20px;\r\n height: 20px;\r\n text-align: center;\r\n }\r\n\r\n &:hover span.current{\r\n color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n &.opened {\r\n &:after {\r\n transform: rotate(-180deg);\r\n }\r\n }\r\n`;\r\n\r\nconst Menu = styled.div`\r\n position: absolute;\r\n top: calc(100% + 10px);\r\n right: 0;\r\n border-radius: ${(props) => props.theme.inputBorderRadius};\r\n max-height: 1000px;\r\n transition: all 0.3s ease-in;\r\n opacity: 0;\r\n background: ${(props) => props.theme.bgWhite};\r\n text-align: left;\r\n padding: 8px 24px 24px;\r\n visibility: hidden;\r\n box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.16);\r\n\r\n &.bottom {\r\n top: auto;\r\n bottom: calc(100% + 10px);\r\n right: -20px;\r\n }\r\n\r\n &.opened {\r\n opacity: 1;\r\n visibility: visible;\r\n z-index: 100;\r\n }\r\n & ul {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n word-break: keep-all;\r\n white-space: nowrap;\r\n }\r\n & li {\r\n list-style: none;\r\n padding: 15px 5px;\r\n border-bottom: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor};\r\n cursor: auto;\r\n &:last-child {\r\n border-bottom: none;\r\n padding-bottom: 0;\r\n border-top: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor};\r\n }\r\n }\r\n\r\n & li:hover {\r\n color: ${(props) => props.theme.primaryColorHover};\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst languages = [\r\n { name: \"english\", code: \"en\" },\r\n { name: \"slovak\", code: \"sk\" },\r\n { name: \"hungarian\", code: \"hu\" },\r\n { name: \"czech\", code: \"cz\" },\r\n];\r\n\r\nconst LanguageSwitch = ({ isInHeader, className, info, centered }) => {\r\n const { i18n, t } = useTranslation();\r\n const [menuIsOpened, setMenuIsOpened] = useState(false);\r\n const menuRef = useRef(null);\r\n useClickAway(menuRef, () => {\r\n setMenuIsOpened(false);\r\n });\r\n\r\n const getCurrentLangName = () => {\r\n let res = languages.filter((lng) => lng.code === i18n.language);\r\n return res[0].name;\r\n };\r\n\r\n const handleToggle = () => {\r\n setMenuIsOpened(!menuIsOpened);\r\n };\r\n\r\n const handleSelect = (code) => {\r\n i18n.changeLanguage(code);\r\n setMenuIsOpened(false);\r\n };\r\n\r\n let actionClass = menuIsOpened ? \"opened\" : \"\";\r\n if (!isInHeader) actionClass += \" bottom\";\r\n actionClass +=` ${className}`;\r\n \r\n return (\r\n \r\n {info && {info}}\r\n \r\n \r\n {t(`actions:language.${getCurrentLangName()}`)}\r\n \r\n \r\n
    \r\n {languages.map((lng, idx) => (\r\n handleSelect(lng.code)}\r\n >\r\n {t(`actions:language.${lng.name}`)}\r\n \r\n ))}\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LanguageSwitch;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1310\",\n \"data-name\": \"Group 1310\",\n transform: \"translate(0.75 0.75)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_482\",\n \"data-name\": \"Path 482\",\n d: \"M310.218-275.893a5.2,5.2,0,0,0-5.2-5.2,5.2,5.2,0,0,0-5.2,5.2v2.863a5.2,5.2,0,0,0,5.2,5.2,5.2,5.2,0,0,0,5.2-5.2Z\",\n transform: \"translate(-295.021 281.09)\",\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_483\",\n \"data-name\": \"Path 483\",\n d: \"M289.5-241.916l-3.366,1.359a1.29,1.29,0,0,0-.807,1.2v2.257a1.463,1.463,0,0,0,1.463,1.463h17.074a1.463,1.463,0,0,0,1.463-1.463v-2.257a1.29,1.29,0,0,0-.807-1.2l-3.366-1.359\",\n transform: \"translate(-285.324 254.892)\",\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}));\n\nvar SvgImpersonation = function SvgImpersonation(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21.5,\n height: 20.752,\n viewBox: \"0 0 21.5 20.752\",\n preserveAspectRatio: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgImpersonation, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/impersonation.37d4fe9c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1663\",\n \"data-name\": \"Group 1663\",\n transform: \"translate(-1397 -88)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_21\",\n \"data-name\": \"Ellipse 21\",\n transform: \"translate(1397 88)\",\n fill: \"#f5f5f5\",\n stroke: \"#333\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 12,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 11,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"text\", {\n id: \"_\",\n \"data-name\": \"?\",\n transform: \"translate(1405 106)\",\n fill: \"#333\",\n fontSize: 16,\n fontFamily: \"Poppins-Bold, Poppins\",\n fontWeight: 700\n}, /*#__PURE__*/React.createElement(\"tspan\", {\n x: 0,\n y: 0\n}, \"?\")));\n\nvar SvgSupport = function SvgSupport(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSupport, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/support.293ee53f.svg\";\nexport { ForwardRef as ReactComponent };","import { useMemo } from \"react\";\r\nimport UserService from \"../services/User/UserService\";\r\n\r\nconst useAuthorization = ({\r\n allowedRoles,\r\n allowedUserId = undefined,\r\n overrideUserIdRoles = undefined\r\n}) => {\r\n\r\n const userRoles = UserService.getUserRoles();\r\n const currentUserId = useMemo(\r\n () => UserService.getUserDetailsFromToken().UserId,\r\n []\r\n );\r\n\r\n if (overrideUserIdRoles) {\r\n const canAccessRoleOverride =\r\n overrideUserIdRoles &&\r\n userRoles.some(role => overrideUserIdRoles.includes(role));\r\n if (canAccessRoleOverride) {\r\n return true;\r\n }\r\n }\r\n\r\n if (allowedUserId) {\r\n\r\n return currentUserId === allowedUserId;\r\n }\r\n\r\n const canAccess =\r\n allowedRoles && allowedRoles.some(r => userRoles.includes(r));\r\n return canAccess;\r\n};\r\n\r\nexport default useAuthorization;\r\n","import React, { cloneElement } from \"react\";\r\nimport useAuthorization from \"./useAuthorization\";\r\n\r\nconst AuthorizeComponent = ({children, roles, disable, disableForOtherRoles}) => {\r\n const canAccess = useAuthorization({allowedRoles: roles});\r\n\r\n if (disable || (disableForOtherRoles && !canAccess)) {\r\n return cloneElement(children, {'disabled': 'disabled'})\r\n }\r\n\r\n if (canAccess) {\r\n return children;\r\n }\r\n\r\n return <>\r\n};\r\n\r\nexport default AuthorizeComponent;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"image\", {\n id: \"icon-256x256\",\n width: 32,\n height: 32,\n xlinkHref: \"data:image/png;base64,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\"\n});\n\nvar SvgKycValid = function SvgKycValid(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgKycValid, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kyc-valid.61a5d7a1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"Line_12\",\n x: 18.879,\n y: 18.879,\n width: 18.243,\n height: 18.243,\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 1,\n dy: 1,\n input: \"SourceAlpha\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1,\n result: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0.161\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n operator: \"in\",\n in2: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"SourceGraphic\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1387\",\n \"data-name\": \"Group 1387\",\n transform: \"translate(-1532 -85)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1386\",\n \"data-name\": \"Group 1386\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(1, 0, 0, 1, 1532, 85)\",\n filter: \"url(#Line_12)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12-2\",\n \"data-name\": \"Line 12\",\n x2: 8,\n y2: 8,\n transform: \"translate(23 23)\",\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_826\",\n \"data-name\": \"Path 826\",\n d: \"M0,8,8,0\",\n transform: \"translate(1555 108)\",\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"image\", {\n id: \"icon-256x256\",\n width: 32,\n height: 32,\n transform: \"translate(1532 85)\",\n opacity: 0.2,\n xlinkHref: \"data:image/png;base64,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\"\n}));\n\nvar SvgKycInvalid = function SvgKycInvalid(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 37.121,\n height: 37.121,\n viewBox: \"0 0 37.121 37.121\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgKycInvalid, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kyc-invalid.2222c06d.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Content = styled.div`\r\n --idx: ${(p) => (p.idx + 1) * 23}px;\r\n visibility: hidden;\r\n position: absolute;\r\n z-index: 100000;\r\n top: calc(100% + 12px);\r\n right: calc(100% - var(--idx));\r\n width: auto;\r\n padding: 4px 8px;\r\n border-radius: 4px;\r\n text-align: left;\r\n background: ${(props) => props.theme.bgTooltip};\r\n color: #fff;\r\n font-size: 12px;\r\n white-space: nowrap;\r\n\r\n &.visible {\r\n visibility: visible;\r\n }\r\n\r\n &.right {\r\n right: 0;\r\n }\r\n\r\n &.left {\r\n right: auto;\r\n left: 0;\r\n }\r\n\r\n &.top {\r\n top: -26px;\r\n }\r\n\r\n &.top-center {\r\n top: -26px;\r\n left: auto;\r\n right: auto;\r\n text-align: center;\r\n margin: 0 auto;\r\n transform: translate(-50%, 0);\r\n }\r\n\r\n &.top-left {\r\n top: -26px;\r\n right: auto;\r\n left: 0;\r\n text-align: center;\r\n }\r\n`;\r\n\r\nconst Tooltip = ({ tooltip, visible, idx, position }) => {\r\n return (\r\n \r\n {tooltip}\r\n \r\n );\r\n};\r\n\r\nexport default Tooltip;\r\n","import React, {useState} from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { ReactComponent as KycValid } from \"../../../../assets/kyc-valid.svg\";\r\nimport { ReactComponent as KycInValid } from \"../../../../assets/kyc-invalid.svg\";\r\nimport Tooltip from \"../../../../components/tooltip/Tooltip\";\r\nimport useAuthorization from \"../../../../core/useAuthorization\";\r\n\r\nconst StyledKycValid = styled(KycValid)`\r\n opacity: 100%;\r\n`;\r\n\r\nconst Link = styled(NavLink)`\r\n color: ${(p) => p.theme.primaryColorHover};\r\n text-decoration: none;\r\n &:hover {\r\n color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n \r\n font-weight: bold;\r\n cursor: pointer;\r\n font-size: 14px;\r\n\r\n`;\r\n\r\nconst KycWrapper = styled.div`\r\n @media ${(p) => p.theme.device.mobile} {\r\n margin: 0 15px 0 auto;\r\n }\r\n height: 32px;\r\n`;\r\n\r\nconst StatusAction = styled.div`\r\n background: transparent;\r\n margin: 0;\r\n position: relative;\r\n\r\n`;\r\n\r\nconst KycSemaphore = () => {\r\n \r\n const { t } = useTranslation(\"header\");\r\n const [tooltipVisible, setTooltipVisible] = useState(false);\r\n const canAccess = useAuthorization({\r\n allowedRoles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser],\r\n });\r\n const {\r\n IsKYCValidated,\r\n } = UserService.getUserDetailsFromToken();\r\n\r\n const isValid = IsKYCValidated ===\"True\";\r\n\r\n const handleClick = (ev) => {\r\n if(!canAccess) ev.preventDefault();\r\n };\r\n\r\n const statusText = isValid ? t('screens:payments.kyc.headerStatus.valid'): t('screens:payments.kyc.headerStatus.nonValid');\r\n const toolTipText = t('screens:payments.kyc.headerStatus.text', {status :statusText });\r\n return (\r\n \r\n \r\n setTooltipVisible(true)}\r\n onMouseLeave={() => setTooltipVisible(false)} \r\n >\r\n { \r\n \r\n isValid? : \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default KycSemaphore;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1534\",\n \"data-name\": \"Group 1534\",\n transform: \"translate(-1502 -213)\"\n}, /*#__PURE__*/React.createElement(\"text\", {\n id: \"F-Gas\",\n transform: \"translate(1502 226)\",\n fill: \"#333\",\n fontSize: 12,\n fontFamily: \"Poppins-Bold, Poppins\",\n fontWeight: 700\n}, /*#__PURE__*/React.createElement(\"tspan\", {\n x: 0,\n y: 0\n}, \"F-Gas\")), /*#__PURE__*/React.createElement(\"text\", {\n id: \"Certified\",\n transform: \"translate(1502 233)\",\n fill: \"#333\",\n fontSize: 7,\n fontFamily: \"Poppins-Regular, Poppins\"\n}, /*#__PURE__*/React.createElement(\"tspan\", {\n x: 0,\n y: 0\n}, \"Certified\")));\n\nvar SvgHaveCert = function SvgHaveCert(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 38,\n height: 22,\n viewBox: \"0 0 38 22\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHaveCert, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/haveCert.3f137ffe.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"Line_69\",\n x: 24.879,\n y: 12.879,\n width: 18.242,\n height: 18.242,\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 1,\n dy: 1,\n input: \"SourceAlpha\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1,\n result: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0.161\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n operator: \"in\",\n in2: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"SourceGraphic\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1577\",\n \"data-name\": \"Group 1577\",\n transform: \"translate(16276 15894)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1535\",\n \"data-name\": \"Group 1535\",\n transform: \"translate(-17771 -16106)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(1, 0, 0, 1, 1495, 212)\",\n filter: \"url(#Line_69)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_69-2\",\n \"data-name\": \"Line 69\",\n x2: 8,\n y2: 8,\n transform: \"translate(29 17)\",\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_828\",\n \"data-name\": \"Path 828\",\n d: \"M0,8,8,0\",\n transform: \"translate(1524 229)\",\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1534\",\n \"data-name\": \"Group 1534\",\n transform: \"translate(-17778 -16107)\",\n opacity: 0.2\n}, /*#__PURE__*/React.createElement(\"text\", {\n id: \"F-Gas\",\n transform: \"translate(1502 226)\",\n fill: \"#333\",\n fontSize: 12,\n fontFamily: \"Poppins-Bold, Poppins\",\n fontWeight: 700\n}, /*#__PURE__*/React.createElement(\"tspan\", {\n x: 0,\n y: 0\n}, \"F-Gas\")), /*#__PURE__*/React.createElement(\"text\", {\n id: \"Certified\",\n transform: \"translate(1502 233)\",\n fill: \"#333\",\n fontSize: 7,\n fontFamily: \"Poppins-Regular, Poppins\"\n}, /*#__PURE__*/React.createElement(\"tspan\", {\n x: 0,\n y: 0\n}, \"Certified\"))));\n\nvar SvgNoCert = function SvgNoCert(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 43.121,\n height: 31.121,\n viewBox: \"0 0 43.121 31.121\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNoCert, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/noCert.ef83234a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { ReactComponent as CertValid } from \"../../../../assets/haveCert.svg\";\r\nimport { ReactComponent as CertInvalid } from \"../../../../assets/noCert.svg\";\r\nimport Tooltip from \"../../../../components/tooltip/Tooltip\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport useAuthorization from \"../../../../core/useAuthorization\";\r\n\r\nconst Link = styled(NavLink)`\r\n color: ${(p) => p.theme.primaryColorHover};\r\n text-decoration: none;\r\n &:hover {\r\n color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n font-weight: bold;\r\n cursor: pointer;\r\n font-size: 14px;\r\n`;\r\n\r\nconst CertWrapper = styled.div`\r\n margin: 6px 24px 0px 0px;\r\n @media ${(p) => p.theme.device.mobile} {\r\n margin: 0 15px 0 auto;\r\n }\r\n height: 36px;\r\n &.invalid {\r\n margin-top:12px;\r\n }\r\n`;\r\n\r\nconst StatusAction = styled.div`\r\n background: transparent;\r\n margin: 0;\r\n position: relative;\r\n`;\r\n\r\nconst CertSemaphore = () => {\r\n const { t } = useTranslation(\"header\");\r\n const [tooltipVisible, setTooltipVisible] = useState(false);\r\n const [globalState] = useSharedState(\"global\", null, \"CertSemaphore\");\r\n const canAccess = useAuthorization({\r\n allowedRoles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser],\r\n });\r\n\r\n const isValid = globalState.hasValidCompanyCertificate;\r\n let statusText = `${t(\"navigation:certStatus\")}:`.toUpperCase();\r\n statusText += isValid\r\n ? t(\"navigation:verified\")\r\n : t(\"navigation:notVerified\");\r\n const toolTipText = statusText;\r\n\r\n const handleClick = (ev) => {\r\n if (!canAccess) ev.preventDefault();\r\n };\r\n\r\n return (\r\n \r\n \r\n setTooltipVisible(true)}\r\n onMouseLeave={() => setTooltipVisible(false)}\r\n >\r\n {isValid ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default CertSemaphore;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_4\",\n \"data-name\": \"Component 34 \\\\u2013 4\",\n transform: \"translate(2.121 2.121)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n className: \"arrow\",\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.719,\n transform: \"translate(0.281 7.42)\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n className: \"arrow\",\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.42,\n y2: 7.421,\n transform: \"translate(7.421) rotate(90)\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n className: \"arrow\",\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.421,\n x2: 7.42,\n transform: \"translate(7.421 7.42) rotate(90)\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}));\n\nvar SvgGoback = function SvgGoback(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21.621,\n height: 19.083,\n viewBox: \"0 0 21.621 19.083\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGoback, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/goback.df17d964.svg\";\nexport { ForwardRef as ReactComponent };","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { InputWrapper } from \"../Stylings\";\r\nimport {\r\n ClearableInput,\r\n GalleryUploader,\r\n Input,\r\n Label,\r\n SearchInput,\r\n TextArea,\r\n Uploader,\r\n ValidationError,\r\n SingleFileUploader\r\n} from \"./index\";\r\n\r\nconst InputElement = React.forwardRef((props, ref) => {\r\n let {\r\n labelText,\r\n name,\r\n errors,\r\n touched,\r\n values,\r\n handleChange,\r\n handleBlur,\r\n wrapperVariant,\r\n disabled,\r\n placeholder,\r\n style,\r\n min,\r\n autoComplete,\r\n action,\r\n type,\r\n accept,\r\n multiple,\r\n setFieldValue,\r\n title,\r\n searchFn,\r\n defaultValue,\r\n pattern,\r\n className,\r\n noLabel,\r\n itemSelected,\r\n direction,\r\n autoHeight,\r\n elementStyle,\r\n ...rest\r\n } = props;\r\n\r\n let value = props.value ? props.value : values && values[name];\r\n if (value === null) {\r\n value = \"\";\r\n }\r\n let error = props.error ? props.error : errors ? errors[name] : null;\r\n let isTouched = touched ? touched[name] : false;\r\n if (autoComplete === false) autoComplete = \"new-\" + (name || props.id);\r\n\r\n const Element =\r\n type === \"textarea\"\r\n ? TextArea\r\n : type === \"gallery\"\r\n ? GalleryUploader\r\n : type === \"file\" || type === \"image\"\r\n ? Uploader\r\n : type === \"singlefile\"\r\n ? SingleFileUploader\r\n : type === \"search\"\r\n ? SearchInput\r\n : type === \"filter\"\r\n ? ClearableInput\r\n : Input;\r\n\r\n return (\r\n \r\n {!noLabel && (\r\n \r\n )}\r\n \r\n\r\n {error && (\r\n \r\n )}\r\n {action && action}\r\n \r\n );\r\n});\r\n\r\nexport default InputElement;\r\n\r\nInputElement.propTypes = {\r\n labelText: PropTypes.any.isRequired,\r\n name: PropTypes.any.isRequired,\r\n type: PropTypes.any.isRequired,\r\n};\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, { apiResult } from \"../getAxios\";\r\n\r\nconst TagsService = {\r\n lookupEmptyCylinderTags: async (searchText) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n IsForCollectEmpty: true,\r\n })\r\n ).data.data;\r\n },\r\n //Returns both free tags and tags that are already attached to a cylinder\r\n lookupCylinderTags: async (searchText) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isForEquipmentScreen: true,\r\n })\r\n ).data.data;\r\n },\r\n //Returns ONLY tags that are already assigned to a cylinder\r\n lookupExistingCylinderTags: async (searchText) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isForNewExtraction: true,\r\n })\r\n ).data.data;\r\n },\r\n lookupUnassignedTags: async (searchText) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isUnassigned: true,\r\n })\r\n ).data.data;\r\n },\r\n lookupUnassignedTagsAsync: async (searchText) => {\r\n return apiResult(\r\n api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isUnassigned: true,\r\n })\r\n );\r\n },\r\n lookupUnitTags: async (searchText, existing = true) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n isExistingUnitTag: existing,\r\n searchText: searchText,\r\n })\r\n ).data.data;\r\n },\r\n lookupTagForEquipmentScreen: async (searchText) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isForEquipmentScreen: true,\r\n })\r\n ).data.data;\r\n },\r\n lookupTagForEquipmentScreenAsync: async (searchText) => {\r\n return apiResult(\r\n api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isForEquipmentScreen: true,\r\n })\r\n );\r\n },\r\n lookupTagForAnalyzerAsync: async (searchText) => {\r\n return apiResult(\r\n api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isAnalyzer: true,\r\n })\r\n );\r\n },\r\n lookupInstallerStockTag: async (searchText, userId) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isInInstallerStock: true,\r\n userId: userId,\r\n })\r\n ).data.data;\r\n },\r\n lookupCompanyStockTag: async (searchText, moveType) => {\r\n return (\r\n await api.post(config.apiUrl.tagsLookup, {\r\n searchText: searchText,\r\n isInCompanyStock: moveType === 0,\r\n isInOtherCompany: moveType === 1,\r\n })\r\n ).data.data;\r\n },\r\n identifyTag: async (id, skipCompanyCheck = false) => {\r\n return (await api.get(config.apiUrl.tagsIdentify + \"/\" + id + `?skipCompanyCheck=${skipCompanyCheck}`)).data\r\n .data;\r\n },\r\n identifyTagAsync: async (id, skipCompanyCheck = false) => {\r\n return apiResult(api.get(config.apiUrl.tagsIdentify + \"/\" + id + `?skipCompanyCheck=${skipCompanyCheck}`));\r\n },\r\n addCylinderIssueAsync: async (data) => {\r\n return apiResult(api.post(config.apiUrl.addCylinderIssue, data));\r\n },\r\n addSupportMessageAsync: async (data) => {\r\n return apiResult(api.post(config.apiUrl.addSupportMessage, data));\r\n },\r\n getSpocDetailsAsync: async () => {\r\n return apiResult(api.post(config.apiUrl.getSpocDetails, {}));\r\n },\r\n getDaikinSerial: async (serial) => {\r\n return await api.get(`${config.apiUrl.values}/testGetUnitInfoFromSap?serial=${serial}`);\r\n },\r\n};\r\n\r\nexport default TagsService;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as BackSvg } from \"../../../../assets/goback.svg\";\r\nimport InputElement from \"../../form-elements/InputElement\";\r\nimport { Checkbox } from \"../../form-elements\";\r\nimport Button from \"../../buttons/Button\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nconst StyledBg = styled.div`\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.8);\r\n display: none;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 999;\r\n &.open {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst StyledForm = styled.div`\r\n background-color: #fff;\r\n width: 70%;\r\n max-width: 968px;\r\n height: auto;\r\n /* border: 1px solid #707070; */\r\n box-shadow: 10px 8px 36px -18px rgba(0, 0, 0, 0.48);\r\n padding: 42px 48px;\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 10px;\r\n`;\r\n\r\nexport const StyledBackIcon = styled(BackSvg)`\r\n width: 18px;\r\n`;\r\n\r\nconst BackLink = styled.div`\r\n color: #2294d2;\r\n display: flex;\r\n gap: 16px;\r\n margin-bottom: 48px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n`;\r\n\r\nconst InfoBlock = styled.div`\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 32px;\r\n`;\r\n\r\nconst Title = styled.div`\r\n color: #2c2f3c;\r\n font-size: 36px;\r\n font-weight: 600;\r\n`;\r\n\r\nconst SpocBlock = styled.div`\r\n display: flex;\r\n gap: 32px;\r\n align-items: center;\r\n`;\r\n\r\nconst SpocImg = styled.img`\r\n width: 60px;\r\n height: 60px;\r\n border-radius: 9999px;\r\n`;\r\n\r\nconst SpocIni = styled.div`\r\n width: 60px;\r\n height: 60px;\r\n border-radius: 9999px;\r\n background-color: #48b05e;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 30px;\r\n color: #fff;\r\n`;\r\n\r\nconst SpocInfo = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n color: #000;\r\n & .name {\r\n font-size: 14px;\r\n font-weight: 600;\r\n }\r\n & .position {\r\n font-size: 12px;\r\n }\r\n\r\n &.email {\r\n font-size: 10px;\r\n }\r\n`;\r\n\r\nconst Sep = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n background-color: #dddddd;\r\n margin-top: 48px;\r\n margin-bottom: 60px;\r\n`;\r\n\r\nconst RequestSupportForm = React.forwardRef(({ closeCb }, ref) => {\r\n const [spocData, setSpocData] = useState({});\r\n const [urgent, setUrgent] = useState(false);\r\n const { t } = useTranslation(\"actions\");\r\n const inputRef = useRef();\r\n\r\n useEffect(() => {\r\n const getSpocData = async () => {\r\n const res = await TagsService.getSpocDetailsAsync();\r\n setSpocData(res.data.data[0]);\r\n };\r\n getSpocData();\r\n }, []);\r\n\r\n const finish = async (sendData) => {\r\n let status = 0;\r\n const submitData = {\r\n messageText: inputRef.current.value,\r\n isUrgent: urgent,\r\n };\r\n if (sendData) {\r\n const res = await TagsService.addSupportMessageAsync(submitData);\r\n status = res.status;\r\n }\r\n setUrgent(false);\r\n inputRef.current.value = \"\";\r\n if (closeCb) closeCb(status, `${spocData.firstName} ${spocData.lastName}`);\r\n };\r\n\r\n let spocInitials = \"\";\r\n if (spocData.firstName?.length && spocData.lastName?.length)\r\n spocInitials = (spocData.firstName[0] + spocData.lastName[0]).toUpperCase();\r\n\r\n return (\r\n \r\n \r\n finish(false)}>\r\n \r\n {t(\"backToR\")}\r\n \r\n \r\n {t(\"helpSupport\")}\r\n \r\n {spocData.profilePictureUrl ? (\r\n \r\n ) : (\r\n {spocInitials}\r\n )}\r\n \r\n
{`${spocData.firstName} ${spocData.lastName}`}
\r\n
{spocData.position}
\r\n
{spocData.email}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {\r\n setUrgent(e.target.checked);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport default RequestSupportForm;\r\n","import React, { useRef } from \"react\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport useLeftMenu from \"../../../core/state/navigation/useLeftMenu\";\r\nimport userStateModule from \"../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport globals from \"../../../globalVars\";\r\nimport Breadcrumbs from \"../../breadcrumbs/Breadcrumbs\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport HeaderLogo from \"./components/HeaderLogo\";\r\nimport HeaderUserArea from \"./components/HeaderUserArea\";\r\nimport LanguageSwitch from \"./components/LanguageSwitch\";\r\nimport { ReactComponent as ImperSvg } from \"../../../assets/impersonation.svg\";\r\nimport { ReactComponent as SupportSvg } from \"../../../assets/support.svg\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport Button from \"../../../components/elements/buttons/Button\";\r\nimport LoginService from \"../../../services/Login/LoginService\";\r\nimport KycSemaphore from \"./components/KycSemaphore\";\r\nimport CertSemaphore from \"./components/CertSemaphore\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport RequestSupportForm from \"./components/RequestSupportForm\";\r\nimport { toast } from \"react-toastify\";\r\nimport ModalDialog, { useModal } from \"../../modal/ModalDialog\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst Header = styled.header`\r\n &.is-authenticated {\r\n background-color: ${(props) => props.theme.bgHeader};\r\n border-bottom: 1px solid ${(props) => props.theme.headerBorderColor};\r\n box-sizing: border-box;\r\n display: flex;\r\n align-items: center;\r\n position: sticky;\r\n width: 100%;\r\n height: ${(props) => props.theme.heightHeader};\r\n min-height: ${(props) => props.theme.heightHeader};\r\n top: 0;\r\n z-index: 10;\r\n background-color: #fafafa;\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nconst SvgSupport = styled(SupportSvg)`\r\n width: 24px;\r\n height: 24px;\r\n margin-right: 12px;\r\n`;\r\n\r\nconst SupportBlock = styled.div`\r\n display: flex;\r\n align-items: center;\r\n font-size: 14px;\r\n font-weight: 600;\r\n color: #2294d2;\r\n margin-right: 60px;\r\n cursor: pointer;\r\n\r\n & svg {\r\n margin-left: 10px;\r\n }\r\n`;\r\n\r\nconst SvgImper = styled(ImperSvg)`\r\n width: 20px;\r\n height: 20px;\r\n margin-right: 12px;\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 1px;\r\n height: 20px;\r\n background-color: #e94e4e;\r\n margin-right: 12px;\r\n`;\r\n\r\nconst ImperText = styled.div`\r\n margin-right: 24px;\r\n font-size: 16px;\r\n & > .bold {\r\n font-weight: 700;\r\n }\r\n`;\r\n\r\nconst AreaWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst AppHeader = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n const supportRef = useRef();\r\n const { isAuthenticated, userData, menuState, impersonatedByUsername } =\r\n useStateModule(userStateModule);\r\n let { isVisible } = useLeftMenu();\r\n const companyDetailsRouteMatch = useRouteMatch({\r\n path: RouteCreator.company.root(),\r\n strict: false,\r\n });\r\n\r\n const isAdminEdit = useRouteMatch({\r\n path: RouteCreator.admin.edit(\"\"),\r\n strict: false,\r\n });\r\n\r\n const { t } = useTranslation(\"common\");\r\n\r\n const CompanyName = UserService.getUserDetailsFromToken()?.CompanyName;\r\n\r\n const { modalProps, toggleOpen: toggleModalOpen } = useModal({\r\n title: t(\"actions:dialogs.supportRequest.title\"),\r\n type: \"info\",\r\n onConfirm: async () => {\r\n toggleModalOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.supportRequest.confirmText\"),\r\n });\r\n\r\n let showHeaderLogo = false;\r\n if (isVisible === false) {\r\n showHeaderLogo = true;\r\n }\r\n\r\n if (!isAuthenticated) {\r\n return false;\r\n }\r\n\r\n const stopImpersonation = async () => {\r\n const result = await LoginService.stopImpersonation();\r\n if (result) {\r\n localStorage.setItem(\"token\", result.token);\r\n localStorage.setItem(\"refreshToken\", result.refreshToken);\r\n window.location.replace(\"/admin/users/users\");\r\n }\r\n };\r\n\r\n const toggleSupportForm = () => {\r\n supportRef.current.classList.toggle(\"open\");\r\n };\r\n\r\n const supportFormCb = (status, spockName) => {\r\n if (status === 0 || status === 200) {\r\n toggleSupportForm();\r\n if (status === 200) toggleModalOpen({ spockName });\r\n } else toast.error(t(\"screens:userPictureEdit.toastNotification.fail\"));\r\n };\r\n\r\n return (\r\n \r\n {globalState.isAdmin === false && (\r\n \r\n )}\r\n \r\n

{t(\"actions:dialogs.supportRequest.message\")}

\r\n
    \r\n
  • {modalProps.modal?.spockName}
  • \r\n
\r\n
\r\n \r\n {showHeaderLogo && }\r\n {!globals.isMobile && (\r\n \r\n )}\r\n \r\n {impersonatedByUsername && (\r\n \r\n \r\n \r\n \r\n {t(\"impersonate.imperonating\")}{\" \"}\r\n {userData.firstName + \" \" + userData.lastName}{\" \"}\r\n {t(\"impersonate.from\")} {CompanyName}\r\n \r\n {\r\n stopImpersonation();\r\n }}\r\n >\r\n {t(\"impersonate.stopImpersonation\")}\r\n \r\n \r\n )}\r\n \r\n {globalState.isAdmin === false && (\r\n toggleSupportForm()}>\r\n {t(\"actions:requestSupport\")} \r\n \r\n )}\r\n {isAuthenticated &&\r\n !UserService.isInRole(Roles.Admin) &&\r\n !UserService.isInRole(Roles.MasterAdmin) && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n {isAuthenticated ? (\r\n <>\r\n \r\n \r\n ) : (\r\n
\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n","import styled from \"styled-components\";\r\n\r\nexport const Main = styled.main`\r\n flex: 1;\r\n display: flex;\r\n position: relative;\r\n flex-direction: column;\r\n height: 100%;\r\n background: ${props => props.theme.bgIvory};\r\n overflow: overlay;\r\n\r\n &.authenticated {\r\n }\r\n`;\r\n","import styled, { css } from \"styled-components\";\r\n\r\nconst FlexContainer = styled.div`\r\n display: flex;\r\n ${props => props.justifyContent && css`justify-content: ${props.justifyContent};`}\r\n ${props => props.flexWrap && css`flex-wrap: ${props.flexWrap};`}\r\n width: 100%;\r\n\r\n &.horizontal-center {\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n\r\n @media all and (min-width: ${props => props.theme.mediumDevices}) {\r\n flex-direction: row;\r\n }\r\n }\r\n\r\n &.full-height {\r\n min-height: 100%;\r\n height: 100%;\r\n width: 100%;\r\n }\r\n\r\n`;\r\n\r\nexport default FlexContainer;\r\n","import { useEffect, useState } from \"react\";\r\nimport useStateModule from \"../useStateModule\";\r\nimport leftNavigationStateModule from \"./leftNavigationStateModule\";\r\n\r\nconst useActiveNavigationPath = (path) => {\r\n const {activePath, setActivePath} = useStateModule(leftNavigationStateModule);\r\n const [newPath] = useState(path);\r\n\r\n useEffect(() => {\r\n if(newPath) {\r\n setActivePath(newPath);\r\n }\r\n return () => setActivePath(null)\r\n }, [setActivePath, newPath]);\r\n\r\n return activePath;\r\n}\r\n\r\nexport default useActiveNavigationPath;\r\n","import React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { matchPath, NavLink, useLocation } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport useActiveNavigationPath from \"../../../core/state/navigation/useActiveNavigationPath\";\r\nimport UserService from \"../../../services/User/UserService\";\r\n\r\nconst IconWrapper = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n min-width: 30px;\r\n`;\r\n\r\nexport const Icon = styled.img`\r\n width: 28px;\r\n`;\r\n\r\nexport const SvgIcon = styled.svg`\r\n width: 28px;\r\n`;\r\n\r\nexport const IconActive = styled.img`\r\n width: 28px;\r\n display: none;\r\n`;\r\n\r\nexport const ListItem = styled.li`\r\n list-style: none;\r\n width: 100%;\r\n transition: all 0.5s ease-in;\r\n cursor: pointer;\r\n position: relative;\r\n\r\n &.top-item {\r\n &:hover:not(.active) {\r\n box-shadow: 0 0 8px 6px rgba(0, 0, 0, 0.1);\r\n }\r\n }\r\n\r\n a {\r\n color: ${(props) => props.theme.menuItems};\r\n text-decoration: none;\r\n\r\n &:hover {\r\n color: ${(props) => props.theme.primaryColorHover};\r\n }\r\n }\r\n\r\n .listitem-name {\r\n margin: 0 0 0 20px;\r\n }\r\n\r\n &.isClosed {\r\n .topitem-name {\r\n .active {\r\n padding-left: 0;\r\n }\r\n }\r\n\r\n .listitem-name {\r\n display: none;\r\n }\r\n\r\n &:hover {\r\n .popup {\r\n display: block;\r\n }\r\n }\r\n\r\n ${IconWrapper} {\r\n margin: 0;\r\n }\r\n }\r\n`;\r\n\r\nexport const SubMenuItem = styled.ul`\r\n display: none;\r\n background: #E9F2ED;\r\n padding: 0 20px 0 50px;\r\n transition: all 0.5s ease-in;\r\n max-height: 1000px;\r\n overflow: hidden;\r\n box-shadow: inset 0px -15px 20px -23px rgba(0,0,0,0.35);\r\n\r\n &.hidden {\r\n max-height: 0;\r\n padding: 0;\r\n }\r\n\r\n &.popup {\r\n position: absolute;\r\n top: 0;\r\n left: calc(100% + 20px);\r\n z-index: 140;\r\n padding: 4px 16px;\r\n overflow: visible;\r\n background-color: #fff;\r\n min-width: 180px;\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor || \"#d4d4d4\"};\r\n border-radius: ${(props) => props.theme.inputBorderRadius || \"5px\"};\r\n box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.16);\r\n\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: -24px;\r\n width: 24px;\r\n height: 100%;\r\n }\r\n\r\n .topitem-name a {\r\n color: ${props => props.theme.primaryColor};\r\n font-weight: 700;\r\n padding-left: 0;\r\n }\r\n\r\n > li {\r\n padding: 12px 0 12px 0;\r\n display: block;\r\n\r\n &:not(:last-child) {\r\n border-bottom: 1px solid #e2e2e2;\r\n }\r\n\r\n a {\r\n padding: 0 0 0 20px;\r\n\r\n &.active {\r\n padding: 0 0 0 20px;\r\n\r\n &:before {\r\n top: -2px !important;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n a {\r\n padding: 12px 0 12px 24px;\r\n display: inline-block;\r\n width: 100%;\r\n }\r\n\r\n li:first-child {\r\n padding-top: 12px;\r\n }\r\n\r\n li:last-child {\r\n padding-bottom: 12px;\r\n }\r\n\r\n ${ListItem} {\r\n &.active a {\r\n position: relative;\r\n color: ${(props) => props.theme.textActive};\r\n\r\n &:before {\r\n content: \"\";\r\n background: transparent url(\"/images/actions/arrow_right_primary.svg\") no-repeat center;\r\n background-size: 10px auto;\r\n position: absolute;\r\n top: 9px;\r\n left: 0;\r\n width: 14px;\r\n height: 22px;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst TopItem = styled(NavLink)`\r\n color: ${(props) => props.theme.textColor};\r\n display: flex;\r\n align-items: center;\r\n padding: 16px;\r\n\r\n &.active {\r\n background-color: ${(props) => props.theme.bgMenuActive};\r\n color: ${(props) => props.theme.textWhite};\r\n position: relative;\r\n z-index: 50;\r\n &:hover {\r\n color: ${(props) => props.theme.textWhite};\r\n }\r\n\r\n ${Icon} {\r\n &.has-active {\r\n display: none;\r\n }\r\n &.invert {\r\n filter: brightness(0) invert(1);\r\n }\r\n }\r\n\r\n ${IconActive} {\r\n display: block;\r\n }\r\n\r\n ${ListItem}.isOpened & {\r\n ~ ${SubMenuItem} {\r\n display: block;\r\n }\r\n }\r\n }\r\n\r\n &.isOpened.active {\r\n box-shadow: 0 12px 20px 4px rgba(0, 0, 0, 0.24);\r\n }\r\n`;\r\n\r\nconst DisabledItem = styled.span`\r\n padding: 12px 0 12px 24px;\r\n display: inline-block;\r\n width: 100%;\r\n cursor: auto;\r\n color: ${props => props.theme.textDisabled};\r\n\r\n &.topitem {\r\n display: flex;\r\n align-items: center;\r\n padding: 16px;\r\n\r\n span {\r\n flex-basis: 100%;\r\n display: flex;\r\n align-items: center;\r\n }\r\n }\r\n`;\r\n\r\nconst LeftMenuListItem = (props) => {\r\n const {item, children, menuIsOpened, disabled = false} = props;\r\n const [isMouseOver, setMouseOver] = useState(false);\r\n const menuIsClosed = !menuIsOpened;\r\n const loc = useLocation();\r\n const userRoles = UserService.getUserRoles();\r\n const activePath = useActiveNavigationPath();\r\n const {t} = useTranslation();\r\n \r\n const isActive = (link) => {\r\n const currPath = activePath ? activePath : loc.pathname;\r\n if(link.activePaths && link.activePaths.includes(window.location.pathname)) return true;\r\n\r\n return matchPath(currPath, {\r\n path: link.url,\r\n exact: true,\r\n strict: false,\r\n })!==null;\r\n };\r\n\r\n const iconInlineStyle = item.icon.style || {};\r\n const iconClassName = item.icon.activeSrc ? 'has-active' : 'invert';\r\n\r\n return (\r\n setMouseOver(true)} onMouseLeave={() => setMouseOver(false)}>\r\n {\r\n !disabled ?\r\n \r\n {\r\n item.icon &&\r\n \r\n \r\n {\r\n item.icon.activeSrc &&\r\n \r\n }\r\n \r\n }\r\n\r\n {t(item.name)}\r\n \r\n :\r\n \r\n {item.icon &&\r\n \r\n \r\n \r\n {\r\n item.icon.activeSrc &&\r\n \r\n }\r\n \r\n {t(item.name)}\r\n \r\n }\r\n \r\n }\r\n\r\n\r\n {children && (\r\n \r\n {menuIsClosed && (\r\n
  • \r\n {\r\n item.url && !item.disabled ?\r\n (\r\n \r\n {t(item.name)}\r\n \r\n )\r\n :\r\n \r\n {t(item.name)}\r\n \r\n }\r\n
  • \r\n )}\r\n\r\n {children.map((subItem, index) => {\r\n if (subItem.showForRoles) {\r\n const shouldshow = userRoles.filter((role) =>\r\n subItem.showForRoles.includes(role)\r\n );\r\n if (shouldshow && shouldshow.length > 0) {\r\n return (\r\n \r\n {\r\n !subItem.disabled\r\n ?\r\n \r\n {t(subItem.name)}\r\n \r\n :\r\n \r\n {t(subItem.name)}\r\n \r\n\r\n }\r\n\r\n
    \r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return (\r\n \r\n {\r\n !subItem.disabled\r\n ? \r\n {t(subItem.name)}\r\n \r\n :\r\n \r\n {t(subItem.name)}\r\n \r\n }\r\n\r\n \r\n );\r\n }\r\n })}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LeftMenuListItem;\r\n","import Color from \"color\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport useLeftMenu from \"../../../core/state/navigation/useLeftMenu\";\r\nimport userStateModule from \"../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport HeaderLogo from \"../../elements/header/components/HeaderLogo\";\r\nimport LeftMenuListItem from \"./LeftMenuListItem\";\r\n\r\nconst MenuListWrapper = styled.div``;\r\n\r\nexport const MenuList = styled.ul`\r\n list-style: none;\r\n margin: 0px 0 0;\r\n padding: 0;\r\n\r\n &.submenu {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst MenuBody = styled.div`\r\n position: relative;\r\n z-index: 10;\r\n flex-grow:1;\r\n`;\r\n\r\nconst MenuElem = styled.div`\r\n display:flex;\r\n flex-direction:column;\r\n background: ${(props) => Color(props.theme.bgWhite).fade(0.3).string()};\r\n min-height: 100%;\r\n width: 60px;\r\n min-width: 60px;\r\n box-sizing: border-box;\r\n box-shadow: 0 6px 40px rgba(0, 0, 0, 0.16);\r\n transition: all 0.25s ease-out;\r\n white-space: nowrap;\r\n position: relative;\r\n padding: 0;\r\n z-index: 500;\r\n\r\n @media all and (max-width: ${props => props.theme.mediumDevices}) {\r\n display: none;\r\n }\r\n\r\n &.isOpened {\r\n min-width: ${(props) => props.theme.leftMenuWidth};\r\n width: ${(props) => props.theme.leftMenuWidth};\r\n overflow-x: visible;\r\n }\r\n\r\n &.isHovered {\r\n ${MenuBody} {\r\n z-index: 20;\r\n }\r\n }\r\n`;\r\n\r\nconst MenuLogoWrapper = styled.div`\r\n position: relative;\r\n`;\r\n\r\nconst MenuToggle = styled.div`\r\n width: 50px;\r\n height: 50px;\r\n background: #fcfcfc;\r\n &.isOpened * {\r\n &:before {\r\n transform: rotate(0deg);\r\n }\r\n }\r\n`;\r\n\r\nconst MenuToggleIcon = styled.span`\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n background: url('/images/actions/menu-open.svg') no-repeat center;\r\n width: 100%;\r\n height: 100%;\r\n top: -6px;\r\n left: 6px;\r\n transform: rotate(180deg);\r\n }\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst LeftMenu = () => {\r\n let {menuItems, isVisible} = useLeftMenu();\r\n const menuRef = useRef();\r\n const {menuState, toggleMenu} = useStateModule(userStateModule);\r\n const [hovered, setHovered] = useState(false);\r\n\r\n const handleMenuOpen = () => {\r\n toggleMenu(!menuState.isOpened);\r\n };\r\n\r\n\r\n const userRoles = UserService.getUserRoles();\r\n\r\n const handleMenuItemHover = () => {\r\n setHovered(hovered => !hovered);\r\n };\r\n\r\n if (!menuItems || !isVisible) {\r\n return <>;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {menuItems &&\r\n menuItems.map((item, index) => {\r\n if (item.showForRoles) {\r\n const shouldshow = userRoles.filter(\r\n (role) =>\r\n item.showForRoles.includes(role)\r\n );\r\n if (item.hide !== true && shouldshow && shouldshow.length > 0) {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return item.hide === true ? null: (\r\n \r\n );\r\n }\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LeftMenu;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport useLeftMenu from \"../../../../core/state/navigation/useLeftMenu\";\r\nimport FlexContainer from \"../../flex/FlexContainer\";\r\nimport LeftMenu from \"../../sidebar/LeftMenu\";\r\n\r\nconst MainContainer = styled(FlexContainer)`\r\n flex-direction: row;\r\n overflow: hidden;\r\n height: 100%;\r\n`;\r\n\r\nconst LeftMainArea = styled.div`\r\n height:100%;\r\n`;\r\n\r\nconst RightMainArea = styled.div`\r\n overflow-y: auto;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst MainLayout = (props) => {\r\n let {menuItems, isVisible} = useLeftMenu();\r\n return (\r\n \r\n {\r\n menuItems.length > 0 && isVisible &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n {props.children}\r\n \r\n \r\n )\r\n};\r\n\r\nexport default MainLayout;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Color = require(\"color\");\r\n\r\nconst Element = styled.div`\r\n &.loader {\r\n display: flex;\r\n opacity: 0;\r\n pointer-events: none;\r\n position: fixed;\r\n width: 100%;\r\n margin: 0 auto;\r\n text-align: center;\r\n height: 100%;\r\n background: rgba(245, 245, 245, 0);\r\n top: 0;\r\n left: 0;\r\n z-index: 90000;\r\n justify-content: center;\r\n align-items: center;\r\n transition: all 0.3s ease-in 0.2s;\r\n & .loader__wrapper{\r\n display:none;\r\n }\r\n }\r\n &.loader.show {\r\n opacity: 1;\r\n background: rgba(245, 245, 245, 0.4);\r\n pointer-events: auto;\r\n & .loader__wrapper{\r\n display:block;\r\n }\r\n }\r\n .loader__wrapper {\r\n position: relative;\r\n width: 80px;\r\n height: 20px;\r\n }\r\n .loader__wrapper div {\r\n position: absolute;\r\n top: 33px;\r\n width: 13px;\r\n height: 13px;\r\n border-radius: 50%;\r\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\r\n }\r\n .loader__wrapper div:nth-child(1) {\r\n left: 8px;\r\n animation: lds-ellipsis1 0.6s infinite;\r\n background: ${(props) => props.theme.primaryColor};\r\n }\r\n .loader__wrapper div:nth-child(2) {\r\n left: 8px;\r\n animation: lds-ellipsis2 0.6s infinite;\r\n background: ${(props) =>\r\n Color(props.theme.primaryColor).lighten(0.2).string()};\r\n }\r\n .loader__wrapper div:nth-child(3) {\r\n left: 32px;\r\n animation: lds-ellipsis2 0.6s infinite;\r\n background: ${(props) =>\r\n Color(props.theme.primaryColor).lighten(0.3).string()};\r\n }\r\n .loader__wrapper div:nth-child(4) {\r\n left: 56px;\r\n animation: lds-ellipsis3 0.6s infinite;\r\n background: ${(props) =>\r\n Color(props.theme.primaryColor).lighten(0.4).string()};\r\n }\r\n @keyframes lds-ellipsis1 {\r\n 0% {\r\n transform: scale(0);\r\n }\r\n 100% {\r\n transform: scale(1);\r\n }\r\n }\r\n @keyframes lds-ellipsis3 {\r\n 0% {\r\n transform: scale(1);\r\n }\r\n 100% {\r\n transform: scale(0);\r\n }\r\n }\r\n @keyframes lds-ellipsis2 {\r\n 0% {\r\n transform: translate(0, 0);\r\n }\r\n 100% {\r\n transform: translate(24px, 0);\r\n }\r\n }\r\n`;\r\n\r\nconst Loader = () => {\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledLogo = styled.img`\r\n &.menu {\r\n width: 113px;\r\n }\r\n\r\n &.not-auth {\r\n margin-top: 60px;\r\n width: 240px;\r\n height: auto;\r\n }\r\n\r\n &.left-menu {\r\n width: auto;\r\n height: 28px;\r\n }\r\n &.left-menu.pwa {\r\n width: auto;\r\n height: 20px;\r\n }\r\n\r\n &.register-screen {\r\n margin-bottom: 25px;\r\n width: 240px;\r\n height: auto;\r\n }\r\n\r\n &.reset-password {\r\n margin-top: 60px;\r\n width: 240px;\r\n height: auto;\r\n }\r\n\r\n &.fullscreen-notification {\r\n position: absolute;\r\n left: 50%;\r\n top: 88%;\r\n width: 200px;\r\n height: auto;\r\n margin-left: -100px;\r\n }\r\n`;\r\n\r\nconst Logo = ({\r\n variant = \"big\",\r\n width = \"280\",\r\n height = \"60\",\r\n style,\r\n ...rest\r\n}) => {\r\n const [image, setImage] = useState({\r\n className: rest.className,\r\n type: variant,\r\n });\r\n\r\n useEffect(() => {\r\n if (variant.indexOf(\"small\") > -1) {\r\n setImage((prevstate) => ({\r\n ...prevstate,\r\n type: \"small\",\r\n className: rest.className,\r\n }));\r\n } else {\r\n setImage((prevState) => ({\r\n ...prevState,\r\n type: \"big\",\r\n }));\r\n }\r\n }, [variant]);\r\n\r\n return image.type === \"big\" ? (\r\n \r\n ) : (\r\n \r\n );\r\n};\r\n\r\nexport default Logo;\r\n","import Color from \"color\";\r\nimport { Formik } from \"formik\";\r\nimport React, { useEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport produce from \"immer\";\r\nimport ModalDialog from \"../../components/modal/ModalDialog\";\r\nimport helpers from \"../../core/helpers\";\r\nimport Button from \"../elements/buttons/Button\";\r\nimport Logo from \"../logo/Logo\";\r\n\r\nconst StyledModalOverlay = styled.div`\r\n display: block;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${(props) => Color(props.theme.bgOverlay).fade(0.1).string()};\r\n z-index: 500;\r\n`;\r\n\r\nconst StyledModalContainer = styled.div`\r\n position: absolute;\r\n width: 650px;\r\n max-width: 650px;\r\n min-height: 580px;\r\n background: white;\r\n margin: 0 auto;\r\n padding: 24px 30px 30px;\r\n z-index: 505;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n display: flex;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n transition: all 0.3s ease-in;\r\n font-family: ${(props) => props.theme.fontFamily};\r\n box-shadow: 0px 12px 20px 0px rgba(0, 0, 0, 0.16);\r\n border-radius: 8px;\r\n\r\n & * {\r\n outline: 0;\r\n }\r\n\r\n &.wide {\r\n width: 900px;\r\n max-width: 900px;\r\n }\r\n\r\n &.pwa {\r\n width: 100%;\r\n max-width: 100%;\r\n height: 100%;\r\n max-height: 100%;\r\n padding: 24px 20px 20px;\r\n overflow-x: hidden;\r\n }\r\n\r\n &.submitting .currentCircle {\r\n background: ${(p) => p.theme.primaryColor} !important;\r\n }\r\n\r\n &.submitting .current {\r\n font-size: 0;\r\n }\r\n`;\r\n\r\nconst GrayBack = styled.div`\r\n width: 100%;\r\n height: 68px;\r\n background: #ebebeb;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n border-radius: 8px 8px 0px 0px;\r\n z-index: -1;\r\n`;\r\n\r\nconst ModalContentWrapper = styled.div`\r\n margin: 30px 0 30px;\r\n line-height: 1.6rem;\r\n max-width: 100%;\r\n padding: 0px 25px;\r\n flex: 1;\r\n display: flex;\r\n flex-grow: 1;\r\n\r\n &.pwa {\r\n margin: 10px 0 30px;\r\n padding: 0px 0px;\r\n height: calc(100% - 175px);\r\n max-height: calc(100% - 175px);\r\n overflow: hidden;\r\n }\r\n`;\r\n\r\nconst ModalContent = styled.form`\r\n display: flex;\r\n flex-grow: 1;\r\n flex-wrap: wrap;\r\n align-items: flex-start;\r\n text-align: left;\r\n align-content: flex-start;\r\n position: relative;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n overflow-y: auto;\r\n }\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5 {\r\n color: ${(props) => props.theme.primaryColor};\r\n text-transform: uppercase;\r\n margin: 0 0 32px;\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n }\r\n\r\n p {\r\n margin: 0;\r\n font-size: 1.125rem;\r\n }\r\n\r\n & input[type=\"submit\"] {\r\n visibility: hidden;\r\n display: none;\r\n }\r\n`;\r\n\r\nconst FooterWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n\r\n max-width: 100%;\r\n padding: 30px 60px 0px 60px;\r\n\r\n p {\r\n margin: 0;\r\n font-size: 10px;\r\n\r\n width: 100%;\r\n text-align: center;\r\n\r\n span {\r\n font-weight: 700;\r\n color: ${(props) => props.theme.primaryColor};\r\n font-style: italic;\r\n }\r\n }\r\n`;\r\n\r\nconst ModalButtonsWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n max-width: 100%;\r\n padding: 0px 35px;\r\n\r\n &.pwa {\r\n padding: 0;\r\n position: absolute;\r\n bottom: 30px;\r\n width: 90%;\r\n max-width: 90%;\r\n }\r\n\r\n & button {\r\n height: 32px;\r\n line-height: 32px;\r\n position: relative;\r\n }\r\n\r\n &.pwa button {\r\n min-width: 60px !important;\r\n\r\n &:before {\r\n left: calc(50% - 6px) !important;\r\n /* left: 4px !important; */\r\n }\r\n\r\n &:after {\r\n right: calc(50% - 6px) !important;\r\n /* right: 4px !important; */\r\n }\r\n\r\n &.finish:after {\r\n position: absolute;\r\n top: 8px;\r\n background-size: 14px 14px;\r\n left: 20px;\r\n }\r\n }\r\n\r\n & button.next:after,\r\n button.finish:after {\r\n content: \"\";\r\n background: url(\"/images/menu/expand_thin-white.svg\") no-repeat center;\r\n background-size: 12px 12px;\r\n /* transition: all 0.5s ease; */\r\n position: absolute;\r\n right: 12px;\r\n top: 9px;\r\n width: 12px;\r\n height: 12px;\r\n text-align: center;\r\n transform: rotate(-90deg);\r\n }\r\n\r\n & button.finish:after {\r\n background: url(\"/images/actions/icon-ok-white.svg\") no-repeat center;\r\n transform: rotate(0deg);\r\n width: 16px;\r\n height: 16px;\r\n }\r\n\r\n & button.prev:before {\r\n content: \"\";\r\n background: url(\"/images/menu/expand_thin-white.svg\") no-repeat center;\r\n background-size: 12px 12px;\r\n /* transition: all 0.5s ease; */\r\n position: absolute;\r\n left: 12px;\r\n top: 9px;\r\n width: 12px;\r\n height: 12px;\r\n text-align: center;\r\n transform: rotate(90deg);\r\n }\r\n\r\n & button.prev-disabled:before {\r\n content: \"\";\r\n background: url(\"/images/menu/expand_thin-lightGray.svg\") no-repeat center;\r\n background-size: 12px 12px;\r\n /* transition: all 0.5s ease; */\r\n position: absolute;\r\n left: 12px;\r\n top: 9px;\r\n width: 12px;\r\n height: 12px;\r\n text-align: center;\r\n transform: rotate(90deg);\r\n }\r\n`;\r\n\r\nconst ModalCloseButton = styled.div`\r\n cursor: pointer;\r\n width: 24px;\r\n height: 24px;\r\n background: transparent;\r\n color: ${(props) => props.theme.textColor};\r\n display: flex;\r\n align-items: center;\r\n align-self: flex-end;\r\n justify-content: center;\r\n font-size: 42px;\r\n border-radius: ${(props) => props.theme.closeButtonBorderRadius};\r\n border: 2px solid transparent;\r\n /* box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.16); */\r\n transition: all 0.3s ease-in;\r\n position: absolute;\r\n top: 18px;\r\n right: 14px;\r\n\r\n &.pwa {\r\n background-color: #000;\r\n color: #fff;\r\n border-radius: 50%;\r\n font-size: 28px;\r\n width: 28px;\r\n font-weight: 500;\r\n height: 28px;\r\n right: 10px;\r\n }\r\n\r\n &:after {\r\n content: \"+\";\r\n transform: rotate(45deg);\r\n }\r\n\r\n &:hover {\r\n background: ${(props) => Color(props.theme.bgIvory).darken(0.05).string()};\r\n /* border-color: ${(props) => props.theme.bgActive}; */\r\n }\r\n`;\r\n\r\nconst DialogButton = styled(Button)`\r\n min-width: 148px !important;\r\n\r\n &.primary.finish {\r\n background-color: #e69221 !important;\r\n border: 1px solid transparent;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.2;\r\n }\r\n`;\r\n\r\nconst FormTitle = styled.h3`\r\n text-align: center;\r\n margin: 0;\r\n max-width: 100%;\r\n`;\r\n\r\nconst CircleWrapper = styled.div`\r\n --numSteps: ${(props) => (props.numSteps !== undefined ? props.numSteps : 3)};\r\n display: flex;\r\n /* justify-content: ${(props) => (props.numSteps === 1 ? \"space-around\" : \"space-between\")}; */\r\n justify-content: center;\r\n min-width: calc(20px * var(--numSteps));\r\n align-items: center;\r\n`;\r\n\r\nconst Circle = styled.div`\r\n width: 8px;\r\n height: 8px;\r\n border: 2px;\r\n background: ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n border: 2px solid;\r\n border-color: ${(p) => p.theme.primaryColor};\r\n margin: 0 12px 0 0;\r\n\r\n &:last-of-type {\r\n margin: 0;\r\n }\r\n\r\n &.currentCircle {\r\n background: transparent;\r\n }\r\n\r\n &.nextCircle {\r\n background: #e0e0e0;\r\n border-color: #e0e0e0;\r\n }\r\n`;\r\n\r\nconst Stepper = styled.ol`\r\n --numSteps: ${(props) => (props.numSteps !== undefined ? props.numSteps : 3)};\r\n --foreColor: #fff;\r\n --backColor: #fff;\r\n --activeColor: #fff;\r\n --activeBackColor: ${(p) => p.theme.primaryColor};\r\n --line-width: 4px;\r\n --bullet-size: 24px;\r\n\r\n background-color: transparent;\r\n position: relative;\r\n overflow: hidden;\r\n counter-reset: wizard -1;\r\n list-style: none;\r\n padding: 0;\r\n font-size: 12px;\r\n margin: 8px 0px;\r\n width: 130%;\r\n margin-left: -15%;\r\n\r\n & li {\r\n position: relative;\r\n float: left;\r\n width: calc(100% / var(--numSteps));\r\n text-align: center;\r\n /* color: var(--activeColor); */\r\n }\r\n\r\n & li.current {\r\n font-weight: 600;\r\n & span {\r\n margin: 0px -80px;\r\n }\r\n }\r\n\r\n & li:before {\r\n counter-increment: wizard;\r\n content: counter(wizard);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n color: var(--activeColor);\r\n background-color: var(--activeBackColor);\r\n border: var(--line-width) solid var(--activeBackColor);\r\n text-align: center;\r\n width: var(--bullet-size);\r\n height: var(--bullet-size);\r\n min-width: var(--bullet-size);\r\n min-height: var(--bullet-size);\r\n max-width: var(--bullet-size);\r\n max-height: var(--bullet-size);\r\n line-height: 26px;\r\n border-radius: var(--bullet-size);\r\n border-width: 3px;\r\n position: relative;\r\n left: 50%;\r\n margin-bottom: calc(var(--bullet-size) / 2 + 1px);\r\n margin-left: calc(var(--bullet-size) * -0.5);\r\n z-index: 1;\r\n font-size: 14px;\r\n }\r\n\r\n & li.current:before,\r\n & li.current ~ li:before {\r\n background-color: var(--backColor);\r\n color: var(--activeBackColor);\r\n border-color: var(--activeBackColor);\r\n }\r\n\r\n & li.current ~ li:before {\r\n border-color: #8e8e8e;\r\n }\r\n\r\n /* & li.submitting:before {\r\n background-color: var(--activeBackColor) !important;\r\n color: #fff !important;\r\n } */\r\n\r\n & li:first-child:before {\r\n content: \"S\";\r\n }\r\n\r\n & li:last-child:before {\r\n content: \"E\";\r\n color: #8e8e8e;\r\n }\r\n\r\n & li[data-start]:before {\r\n content: url(\"/images/actions/arrow_right.svg\");\r\n line-height: 27px;\r\n }\r\n\r\n & li.last-step:before {\r\n color: #8e8e8e !important;\r\n }\r\n\r\n & li.final-step:before {\r\n content: \"\" !important;\r\n background-image: url(\"/images/actions/icon-ok.svg\");\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: 66%;\r\n }\r\n\r\n & li[data-step]:before {\r\n content: attr(data-step);\r\n /* line-height: 25px; */\r\n }\r\n\r\n & li + li {\r\n &:after {\r\n content: \"\";\r\n display: block;\r\n width: 100%;\r\n background-color: var(--activeBackColor);\r\n height: var(--line-width);\r\n position: absolute;\r\n left: -50%;\r\n top: calc(var(--bullet-size) / 2 + 2px);\r\n z-index: 0;\r\n }\r\n }\r\n\r\n li.current ~ li:after {\r\n background-color: transparent;\r\n border-bottom: 1px dashed #8e8e8e;\r\n border-width: 2px;\r\n content: \"\";\r\n top: calc((var(--bullet-size) / 2) - 1px);\r\n }\r\n\r\n &.submitting li.current:before {\r\n background: transparent;\r\n border: 3px solid transparent;\r\n content: \"\";\r\n }\r\n\r\n &.submitting li.current ~ li:after {\r\n border-bottom: 4px solid ${(p) => p.theme.primaryColor};\r\n top: calc((var(--bullet-size) / 2) - 2px);\r\n }\r\n\r\n &.submitting li.final-step:before {\r\n content: \"\";\r\n background-image: url(\"/images/actions/icon-ok-white.svg\");\r\n background-color: var(--activeBackColor) !important;\r\n border-color: var(--activeBackColor);\r\n }\r\n\r\n & li.uppercase {\r\n text-transform: uppercase;\r\n }\r\n`;\r\n\r\nlet __instance = null;\r\n\r\nfunction Renderer(props) {\r\n useEffect(() => {\r\n while (props.updateFieldsCB.length > 0) {\r\n let cb = props.updateFieldsCB.pop();\r\n cb();\r\n }\r\n });\r\n\r\n return props.children();\r\n}\r\n\r\nconst getModalProps = (title, confirm) => ({\r\n isOpen: false,\r\n onConfirm: null,\r\n onCancel: null,\r\n modalButtons: null,\r\n confirmText: confirm,\r\n cancelText: null,\r\n cancelFirst: false,\r\n isNegativeAction: false,\r\n modalVariant: \"\",\r\n title: title,\r\n type: \"warning\",\r\n logo: false,\r\n});\r\n\r\nclass ModalWizard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n __instance = this;\r\n this.updateFieldsCB = [];\r\n this.values = {};\r\n this.formikInstances = [];\r\n this.onStateChange = null;\r\n this.state = {\r\n isOpen: false,\r\n isSubmitting: false,\r\n wizard: { title: \"Form Title\" },\r\n currentStep: 1,\r\n numSteps: 6,\r\n onSubmit: undefined,\r\n onCancel: undefined,\r\n wizardState: {},\r\n propertyBag: {},\r\n modalProps: getModalProps(\r\n props.t(\"actions:wizard.closeWizard\"),\r\n props.t(\"actions:exit\")\r\n ),\r\n };\r\n this.state.modalProps.onCancel = () => {\r\n this.setState({\r\n modalProps: { ...this.state.modalProps, isOpen: false },\r\n });\r\n };\r\n this.handlePrev = this.handlePrev.bind(this);\r\n this.handleNext = this.handleNext.bind(this);\r\n this.handleStepRender = this.handleStepRender.bind(this);\r\n this.updatePropertyBag = this.updatePropertyBag.bind(this);\r\n this.updateFields = this.updateFields.bind(this);\r\n this.__show = this.__show.bind(this);\r\n this.setState = this.setState.bind(this);\r\n }\r\n\r\n static show(forms, actions, options) {\r\n __instance.__show(forms, actions, options);\r\n }\r\n\r\n static hide(timeout = 1000) {\r\n setTimeout(() => {\r\n __instance.__hide();\r\n }, timeout);\r\n }\r\n\r\n static hidePrompt(onConfirm) {\r\n __instance.__hidePrompt(onConfirm);\r\n }\r\n\r\n static get state() {\r\n return __instance.state.wizardState;\r\n }\r\n\r\n static set state(wizardState) {\r\n __instance.setState({ wizardState });\r\n }\r\n\r\n static set onStateChange(callbackFn) {\r\n __instance.onStateChange = callbackFn;\r\n }\r\n\r\n static submitFailed(message) {\r\n __instance.__submitFailed(message);\r\n }\r\n\r\n static asFormData(values = null, mappings = {}) {\r\n return helpers.getFormData(values ? values : __instance.values, mappings);\r\n }\r\n\r\n static groupValues(values, separator, valuesOnly) {\r\n let temp = [];\r\n for (var prop in values) {\r\n const parts = prop.split(separator, 2);\r\n if (parts.length !== 2) throw Error(\"Error splitting values\");\r\n if (temp[parts[1]] === undefined) {\r\n temp[parts[1]] = {\r\n id: parts[1],\r\n values: {},\r\n };\r\n }\r\n temp[parts[1]].values[parts[0]] = values[prop];\r\n }\r\n const result = [];\r\n for (var item in temp) result.push(valuesOnly ? temp[item].values : temp[item]);\r\n return result;\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (__instance.onStateChange) {\r\n this.onStateChange(\r\n this.state.wizardState,\r\n this.formikInstances[this.state.currentStep - 1]\r\n );\r\n }\r\n }\r\n\r\n handleStepRender = async () => {\r\n if (this.state.wizard.steps[this.state.currentStep - 1].onStepRender) {\r\n let disableSubmit = await this.state.wizard.steps[\r\n this.state.currentStep - 1\r\n ].onStepRender({\r\n value: this.values,\r\n propertyBag: this.state.propertyBag,\r\n updatePropertyBag: this.updatePropertyBag,\r\n formik: this.formikInstances[this.state.currentStep - 1],\r\n });\r\n this.setState(\r\n produce((draft) => {\r\n draft.wizard.steps[this.state.currentStep - 1].disableSubmit = disableSubmit;\r\n })\r\n );\r\n }\r\n };\r\n\r\n handleStepSubmit = async (values, formikBag) => {\r\n formikBag.setSubmitting(false);\r\n const fieldNames = this.state.wizard.steps[this.state.currentStep - 1].fieldNames;\r\n\r\n let mergedValues = { ...this.values };\r\n\r\n if (fieldNames) {\r\n fieldNames.forEach((field) => (mergedValues[field] = values[field]));\r\n }\r\n\r\n //call onStepSubmit\r\n if (this.state.wizard.steps[this.state.currentStep - 1].onStepSubmit) {\r\n if (\r\n (await this.state.wizard.steps[this.state.currentStep - 1].onStepSubmit({\r\n values: mergedValues,\r\n propertyBag: this.state.propertyBag,\r\n updatePropertyBag: this.updatePropertyBag,\r\n formik: this.formikInstances[this.state.currentStep - 1],\r\n })) === false\r\n )\r\n return;\r\n }\r\n\r\n if (fieldNames) {\r\n this.values = mergedValues;\r\n this.formikInstances.forEach((formik) => {\r\n formik.setValues({ ...this.values }, false);\r\n });\r\n }\r\n\r\n if (this.state.currentStep < this.state.numSteps)\r\n this.setState({ currentStep: this.state.currentStep + 1 }, this.handleStepRender);\r\n else if (!this.state.isSubmitting) {\r\n formikBag.setSubmitting(true);\r\n this.setState({ isSubmitting: true }, () => {\r\n this.state.onSubmit && this.state.onSubmit(this.values);\r\n });\r\n }\r\n };\r\n\r\n __submitFailed = (message) => {\r\n if (!this.state.isSubmitting) return;\r\n toast.error(message);\r\n this.setState({ isSubmitting: false });\r\n };\r\n\r\n __hidePrompt = (onConfirm) => {\r\n this.setState({\r\n modalProps: {\r\n ...this.state.modalProps,\r\n isOpen: true,\r\n title: this.props.t(\"actions:wizard.closeWizard\"),\r\n confirmText: this.props.t(\"actions:exit\"),\r\n onConfirm: () => {\r\n this.__hide();\r\n this.setState({\r\n modalProps: { ...this.state.modalProps, isOpen: false },\r\n });\r\n onConfirm && onConfirm();\r\n },\r\n },\r\n });\r\n };\r\n\r\n modalContent() {\r\n this.formikInstances = [];\r\n if (this.state.wizard.steps) {\r\n return this.state.wizard.steps.map((step, idx) => {\r\n return (\r\n \r\n {(formik, propertyBag) => {\r\n this.formikInstances.push(formik);\r\n return (\r\n \r\n \r\n {this.state.wizard.steps[idx].children &&\r\n this.state.wizard.steps[idx].children}\r\n\r\n \r\n {() => {\r\n return this.state.wizard.steps[idx].fields(\r\n formik,\r\n this.state.propertyBag,\r\n this.updatePropertyBag,\r\n this.updateFields\r\n );\r\n }}\r\n \r\n\r\n \r\n \r\n );\r\n }}\r\n \r\n );\r\n });\r\n } else return null;\r\n }\r\n\r\n updatePropertyBag(props) {\r\n this.setState({ propertyBag: { ...this.state.propertyBag, ...props } });\r\n }\r\n\r\n updateFields(cb) {\r\n this.updateFieldsCB.push(cb);\r\n }\r\n\r\n handlePrev = (ev) => {\r\n if (this.state.currentStep > 1)\r\n this.setState(\r\n {\r\n currentStep: this.state.currentStep - 1,\r\n isSubmitting: false,\r\n },\r\n this.handleStepRender\r\n );\r\n };\r\n\r\n handleNext = (ev) => {\r\n const submitButton = document.getElementById(`wiz-step-submit-${this.state.currentStep}`);\r\n submitButton.click();\r\n };\r\n\r\n circles = () => {\r\n const result = [];\r\n for (var i = 1; i <= this.state.numSteps; i++) {\r\n result.push(\r\n \r\n );\r\n }\r\n return result;\r\n };\r\n\r\n stepName ({wizStep, values}) {\r\n return typeof wizStep.name === \"function\"\r\n ? wizStep.name(values).toUpperCase()\r\n : wizStep.name.toUpperCase();\r\n };\r\n\r\n render() {\r\n if (!this.state.isOpen) {\r\n return null;\r\n }\r\n\r\n const wizard = this.state.wizard;\r\n const step = this.state.currentStep;\r\n const submitting = this.state.isSubmitting ? \"submitting\" : \"\";\r\n const wide = this.state.options.wide ? \"wide\" : \"\";\r\n const pwa = this.state.options.pwa ? \"pwa\" : \"\";\r\n const classNames = `${submitting} ${wide} ${pwa}`;\r\n const t = this.props.t;\r\n const logo = this.state.options.logo;\r\n const footerContent = this.state.options.footerContent;\r\n\r\n return ReactDOM.createPortal(\r\n <>\r\n \r\n \r\n \r\n {logo && (\r\n \r\n )}\r\n\r\n {wizard.title}\r\n \r\n
  • \r\n {t(\"forms:wizard.start\")}\r\n
  • \r\n
  • \r\n {wizard.steps && (\r\n \r\n {this.stepName({\r\n wizStep: wizard.steps[step - 1],\r\n values: this.values,\r\n })}\r\n \r\n )}\r\n
  • \r\n \r\n {t(\"forms:wizard.finish\")}\r\n \r\n
    \r\n {\r\n if (this.state.onCancel === undefined || this.state.onCancel() === true)\r\n this.setState({ isOpen: false });\r\n }}\r\n />\r\n \r\n {this.modalContent(this.state.propertyBag)}\r\n \r\n \r\n 1 ? \"primary prev\" : \"primary prev-disabled\"}\r\n disabled={step === 1}\r\n >\r\n {!this.state.options.pwa && t(\"forms:wizard.previous\")}\r\n \r\n \r\n {this.circles()}\r\n \r\n\r\n \r\n {!this.state.options.pwa &&\r\n (this.state.currentStep < this.state.numSteps\r\n ? t(\"forms:wizard.next\")\r\n : this.state.options.finishButtonText\r\n ? this.state.options.finishButtonText\r\n : t(\"forms:wizard.finish\"))}\r\n \r\n \r\n \r\n {this.state.options.footerContent && (\r\n \r\n )}\r\n \r\n \r\n \r\n

    {t(\"actions:wizard.areYouSure\")}

    \r\n

    {t(\"actions:wizard.unsavedChanges\")}

    \r\n
    \r\n ,\r\n document.body\r\n );\r\n }\r\n\r\n __show(wizard, actions = {}, options = {}) {\r\n __instance.formikInstances = [];\r\n __instance.values = wizard.initialValues ? { ...wizard.initialValues } : {};\r\n __instance.setState(\r\n {\r\n isOpen: true,\r\n isSubmitting: false,\r\n options,\r\n wizard,\r\n currentStep: options.currentStep || 1,\r\n numSteps: wizard.steps.length,\r\n onSubmit: actions.onSubmit,\r\n onCancel: actions.onCancel,\r\n wizardState: {},\r\n propertyBag: {},\r\n renderCount: 0,\r\n },\r\n async () => {\r\n if (wizard.steps[0].onStepRender) {\r\n let disableSubmit = await wizard.steps[0].onStepRender({\r\n values: __instance.values,\r\n updatePropertyBag: __instance.updatePropertyBag,\r\n formik: __instance.formikInstances[0],\r\n });\r\n __instance.state.wizard.steps[0].disableSubmit = disableSubmit;\r\n }\r\n }\r\n );\r\n }\r\n\r\n __hide() {\r\n __instance.formikInstances = [];\r\n __instance.onStateChange = null;\r\n __instance.setState({\r\n isOpen: false,\r\n wizardState: {},\r\n propertyBag: {},\r\n renderCount: 0,\r\n wizard: null,\r\n options: undefined,\r\n actions: undefined,\r\n });\r\n }\r\n\r\n __toggle() {\r\n __instance.setState({ isOpen: !this.state.isOpen });\r\n }\r\n}\r\n\r\nexport default ModalWizard;\r\n","import React from \"react\";\r\nimport { Slide, ToastContainer } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport styled from \"styled-components\";\r\nimport globals from \"../../globalVars\";\r\n\r\nconst StyledToastContainer = styled(ToastContainer)`\r\n .Toastify__toast-container {\r\n text-align: center;\r\n position: relative;\r\n }\r\n .Toastify__toast {\r\n border-radius: 18px;\r\n padding: 10px 40px 10px 10px;\r\n width: auto;\r\n min-width: 460px;\r\n min-height: 36px;\r\n box-shadow: ${(props) => props.theme.notifierShadow};\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n width: 100%;\r\n min-width: 100%;\r\n border-radius: 0px;\r\n }\r\n }\r\n .Toastify__toast--error {\r\n }\r\n .Toastify__toast--warning {\r\n }\r\n .Toastify__toast--success {\r\n background: ${(props) => props.theme.bgActive};\r\n }\r\n .Toastify__toast-body {\r\n font-size: 14px;\r\n }\r\n .Toastify__progress-bar {\r\n }\r\n\r\n .Toastify__close-button {\r\n opacity: 1;\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n }\r\n`;\r\n\r\nconst Notifier = () => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Notifier;\r\n","import React from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\n\r\nconst rotate360 = keyframes`\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n`;\r\n\r\nconst SpinnerImage = styled.div`\r\n animation: ${rotate360} 1s linear infinite;\r\n transform: translateZ(0);\r\n\r\n border-top: 2px solid #fff;\r\n border-right: 2px solid #fff;\r\n border-bottom: 2px solid #fff;\r\n border-left: 2px solid #fff;\r\n\r\n background: transparent;\r\n\r\n width: 84px;\r\n height: 84px;\r\n border-radius: 50%;\r\n`;\r\n\r\nconst Spinnerwrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spinner = () => (\r\n \r\n \r\n \r\n);\r\nexport default Spinner;\r\n","import React from \"react\";\r\nimport { Redirect, Route, useRouteMatch } from \"react-router-dom\";\r\nimport userStateModule from \"./state/user/userStateModule\";\r\nimport useStateModule from \"./state/useStateModule\";\r\nimport useSharedState from \"../hooks/_shared/useSharedState\";\r\nimport Spinner from \"../components/elements/general/Spinner\";\r\nconst SecurityStatus = {\r\n Allowed : 0,\r\n NotAuthenticated: 1,\r\n NotAuthorized : 2\r\n};\r\n\r\nconst canAccess = (isAuthenticated, userRoles, routeRoles) => {\r\n if(!isAuthenticated)\r\n {\r\n return SecurityStatus.NotAuthenticated;\r\n }\r\n\r\n if(routeRoles && routeRoles.length > 0) {\r\n for(var role of userRoles){\r\n if(routeRoles.indexOf(role) > -1){\r\n return SecurityStatus.Allowed\r\n }\r\n }\r\n return SecurityStatus.NotAuthorized;\r\n }\r\n return SecurityStatus.Allowed;\r\n};\r\n\r\nconst RouteRenderer = props => {\r\n const [globalState] = useSharedState(\"global\");\r\n const match = useRouteMatch();\r\n const canAccessResult = canAccess(props.isAuthenticated, props.userRoles, props.routeRoles);\r\n if(canAccessResult === SecurityStatus.NotAuthenticated){\r\n return ;\r\n }\r\n else if(canAccessResult === SecurityStatus.NotAuthorized)\r\n {\r\n return ;\r\n }\r\n else {\r\n return !globalState.userLoaded ? (\r\n \r\n ) : (\r\n \r\n );\r\n }\r\n\r\n};\r\n\r\nconst PrivateRoute = ({ component: Component, roles: routeRoles, ...rest }) => {\r\n const {isAuthenticated, roles} = useStateModule(userStateModule);\r\n return (\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default PrivateRoute;\r\n","import RouteCreator from \"../../core/RouteCreator\";\r\nimport CompanyType from \"../../core/enums/CompanyType\";\r\n\r\nconst globalAdminMenuItems = [\r\n {\r\n name: \"navigation:users\",\r\n icon: {\r\n src: \"/images/menu/users.svg\",\r\n srcHover: \"/images/menu/users_hover.svg\",\r\n activeSrc: \"/images/menu/users_active.svg\",\r\n alt: \"Users\",\r\n },\r\n isTop: true,\r\n url: RouteCreator.admin.users.root(),\r\n children: [\r\n {\r\n name: \"navigation:f-cycleUsers\",\r\n url: RouteCreator.admin.users.nonAdmins(),\r\n },\r\n {\r\n name: \"navigation:f-cycleAdmins\",\r\n url: RouteCreator.admin.users.admins(),\r\n },\r\n ],\r\n },\r\n {\r\n name: \"navigation:companies\",\r\n icon: {\r\n src: \"/images/menu/companies.svg\",\r\n srcHover: \"/images/menu/companies_hover.svg\",\r\n activeSrc: \"/images/menu/companies_active.svg\",\r\n alt: \"Companies\",\r\n },\r\n isTop: true,\r\n url: RouteCreator.admin.companies.root(),\r\n children: [\r\n {\r\n name: \"navigation:installationPartners\",\r\n url: RouteCreator.admin.companies.list(\r\n CompanyType.InstallationCompany\r\n ),\r\n },\r\n {\r\n name: \"navigation:distributors\",\r\n url: RouteCreator.admin.companies.list(CompanyType.Distributor),\r\n },\r\n ],\r\n },\r\n {\r\n name: \"navigation:salesCenter\",\r\n icon: {\r\n src: \"/images/menu/sales_center.svg\",\r\n srcHover: \"/images/menu/sales_center_hover.svg\",\r\n activeSrc: \"/images/menu/sales_center_active.svg\",\r\n alt: \"Marketplace\",\r\n },\r\n isTop: true,\r\n url: RouteCreator.admin.marketplaceStatistics(),\r\n children: [\r\n {\r\n name: \"navigation:recoveredRefrigerant\",\r\n url: RouteCreator.admin.marketplace(),\r\n },\r\n {\r\n name: \"navigation:reclaimedRefrigerant\",\r\n url: RouteCreator.admin.reclaimedMarketplace(),\r\n },\r\n ]\r\n },\r\n {\r\n name: \"navigation:services\",\r\n url: RouteCreator.admin.services.root(),\r\n icon: {\r\n src: \"/images/menu/services.svg\",\r\n srcHover: \"/images/menu/services_hover.svg\",\r\n activeSrc: \"/images/menu/services_active.svg\",\r\n alt: \"Services\",\r\n style: {\r\n width: \"32px\",\r\n },\r\n },\r\n children: [\r\n {\r\n name: \"navigation:disposalService\",\r\n url: RouteCreator.admin.services.disposal(),\r\n },\r\n {\r\n name: \"navigation:cleaningService\",\r\n url: RouteCreator.admin.services.cleaning(),\r\n },\r\n ],\r\n },\r\n {\r\n name: \"navigation:qrTags\",\r\n icon: {\r\n src: \"/images/menu/qr.svg\",\r\n srcHover: \"/images/menu/qr_hover.svg\",\r\n activeSrc: \"/images/menu/qr_active.svg\",\r\n alt: \"QR Tags\",\r\n },\r\n isTop: true,\r\n url: RouteCreator.admin.qrTags(),\r\n },\r\n];\r\n\r\nexport default globalAdminMenuItems;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"triangle\",\n id: \"Polygon_9\",\n \"data-name\": \"Polygon 9\",\n d: \"M4.928,1.786a1.25,1.25,0,0,1,2.144,0l3.792,6.32A1.25,1.25,0,0,1,9.792,10H2.208A1.25,1.25,0,0,1,1.136,8.107Z\",\n fill: \"#bfbfbf\"\n});\n\nvar SvgSortTriangle = function SvgSortTriangle(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 10,\n viewBox: \"0 0 12 10\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSortTriangle, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sort_triangle.471d8c5c.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext, useMemo } from \"react\";\r\nimport {\r\n listingActionTypes,\r\n ListingPageContext,\r\n} from \"../../components/data/ListingPageProvider\";\r\n\r\nconst useListingPageContext = () => {\r\n const {state, dispatch} = useContext(ListingPageContext);\r\n\r\n const actions = useMemo(() => ({\r\n addSelectedRow: (row) => {\r\n dispatch({type: listingActionTypes.ADD_SELECTEDROW, payload: row});\r\n },\r\n removeSelectedRow: (rowId) => {\r\n dispatch({type: listingActionTypes.REMOVE_SELECTEDROW, payload: rowId});\r\n },\r\n resetState: () => {\r\n dispatch({type: 'RESET_STATE'})\r\n },\r\n setTableInstance: (instance) => {\r\n dispatch({type: listingActionTypes.SET_TABLEINSTANCE, payload: instance});\r\n }\r\n }), [dispatch]);\r\n\r\n\r\n return {state, actions}\r\n}\r\nexport default useListingPageContext;\r\n","import Color from \"color\";\r\nimport React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst PaginationWrapper = styled.div`\r\n margin: 0 auto;\r\n text-align: center;\r\n font-size: 0.875rem;\r\n height: 50px;\r\n width: 100%;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n height: 60px;\r\n }\r\n`;\r\n\r\nconst PagePrevNext = styled.button`\r\n background: transparent;\r\n cursor: pointer;\r\n border: 1px solid transparent;\r\n border-radius: 4px;\r\n transition: all 0.3s ease;\r\n min-width: 36px;\r\n max-width: 36px;\r\n /* height: 32px; */\r\n line-height: 32px;\r\n vertical-align: middle;\r\n color: ${(p) => p.theme.secondaryColor};\r\n padding: 8px 12px 6px;\r\n margin: 0 5px;\r\n /* &:hover {\r\n img {\r\n filter: brightness(0);\r\n }\r\n } */\r\n\r\n > img {\r\n height: 8px;\r\n }\r\n\r\n &.prev {\r\n & img {\r\n transform: rotateZ(90deg);\r\n }\r\n\r\n /* &:hover {\r\n transform: translateX(-2px);\r\n } */\r\n }\r\n\r\n &.next {\r\n & img {\r\n transform: rotateZ(-90deg);\r\n }\r\n /* &:hover {\r\n filter:grayscale();\r\n } */\r\n }\r\n`;\r\n\r\nconst Page = styled.button`\r\n background: ${(props) => props.theme.bgPagination};\r\n border-radius: 4px;\r\n border: 1px solid ${(props) => props.theme.bgPagination};\r\n padding: 8px 12px 6px;\r\n margin: 0 5px;\r\n color: ${(props) =>\r\n Color(props.theme.textPagination).lighten(0.5).string()};\r\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.16);\r\n min-width: 36px;\r\n max-width: 36px;\r\n\r\n &.current {\r\n cursor: pointer;\r\n background: ${(p) => p.theme.secondaryColor};\r\n color: ${(props) => props.theme.textWhite};\r\n border-color: ${(p) => p.theme.secondaryColor};\r\n }\r\n\r\n &:hover {\r\n cursor: pointer;\r\n background: ${(p) => p.theme.primaryColorHover};\r\n color: ${(props) => props.theme.textWhite};\r\n border-color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n`;\r\n\r\nconst Pagination = ({\r\n numButtons,\r\n pageCount,\r\n currentPageIndex,\r\n canNextPage,\r\n nextPage,\r\n canPreviousPage,\r\n previousPage,\r\n gotoPage,\r\n}) => {\r\n const [state, setState] = useState({ minIdx: currentPageIndex });\r\n //sort reset fix\r\n if (currentPageIndex === 0 && state.minIdx > 0) {\r\n setState({ minIdx: 0 });\r\n } else if (currentPageIndex === pageCount - 1 && state.minIdx < pageCount - numButtons) {\r\n setState({ minIdx: pageCount - numButtons });\r\n }\r\n\r\n numButtons = Math.min(numButtons || 3, pageCount);\r\n const showMore = numButtons < pageCount - 1;\r\n\r\n const visiblePages = () => {\r\n const pages = [];\r\n\r\n if (showMore && state.minIdx > numButtons - 1) {\r\n pages.push(\r\n first()}>\r\n 1\r\n \r\n );\r\n pages.push(...);\r\n }\r\n\r\n for (\r\n var i = state.minIdx;\r\n i < Math.min(pageCount, state.minIdx + numButtons);\r\n i++\r\n ) {\r\n let pageNum = i;\r\n pages.push(\r\n {\r\n gotoPage(pageNum);\r\n }\r\n }\r\n >\r\n {i + 1}\r\n \r\n );\r\n }\r\n if (showMore && state.minIdx + numButtons < pageCount - 1) {\r\n pages.push(...);\r\n pages.push(\r\n last()}>\r\n {pageCount}\r\n \r\n );\r\n }\r\n return pages;\r\n };\r\n\r\n const fwd = () => {\r\n const cidx = currentPageIndex;\r\n nextPage();\r\n if (cidx >= state.minIdx + numButtons - 1) {\r\n let newMinIdx = Math.min(cidx + 1, pageCount - numButtons);\r\n setState({ minIdx: newMinIdx });\r\n }\r\n };\r\n\r\n const rew = () => {\r\n if (currentPageIndex - 1 < state.minIdx) {\r\n let newMinIdx = Math.max(currentPageIndex - numButtons, 0);\r\n setState({ minIdx: newMinIdx });\r\n }\r\n previousPage();\r\n };\r\n\r\n const first = () => {\r\n gotoPage(0);\r\n setState({ minIdx: 0 });\r\n };\r\n\r\n const last = () => {\r\n gotoPage(pageCount - 1);\r\n setState({ minIdx: pageCount - numButtons });\r\n };\r\n return (\r\n \r\n {/* {currentPageIndex > 0 && ( */}\r\n rew()}\r\n disabled={!canPreviousPage}\r\n >\r\n {canPreviousPage && (\r\n \r\n )}\r\n \r\n {/* )} */}\r\n {pageCount && visiblePages()}\r\n {/* {currentPageIndex < pageCount - 1 && ( */}\r\n fwd()}\r\n disabled={!canNextPage}\r\n >\r\n {canNextPage && (\r\n \"Next\r\n )}\r\n \r\n {/* )} */}\r\n \r\n );\r\n};\r\n\r\nexport default Pagination;\r\n","import React from 'react';\r\nimport { Checkbox } from '../elements/form-elements';\r\n\r\nconst IndeterminateCheckbox = React.forwardRef(\r\n ({ indeterminate, inTable, ...rest }, ref) => {\r\n const defaultRef = React.useRef();\r\n const resolvedRef = ref || defaultRef;\r\n\r\n React.useEffect(() => {\r\n resolvedRef.current.indeterminate = indeterminate;\r\n }, [resolvedRef, indeterminate]);\r\n\r\n const clNames = indeterminate ? [\"indeterminate\"]:[];\r\n if(inTable) clNames.push(\"intable\");\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nexport default IndeterminateCheckbox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const DataListingContainer = styled.div`\r\n display: flex;\r\n flex-grow:1;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n margin: 20px 10px 20px 0;\r\n \r\n &.tight {\r\n margin:0;\r\n }\r\n\r\n &.sub-table {\r\n margin-left: 40px;\r\n }\r\n`;\r\n\r\nexport const DataListingContent= styled.div`\r\n display:flex;\r\n flex-wrap:wrap;\r\n flex: 1;\r\n align-items: flex-start;\r\n align-content: flex-start;\r\n position: relative;\r\n overflow: visible;\r\n\r\n &.empty {\r\n min-height: 190px;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nconst StyledTable = styled.table`\r\n width: 100%;\r\n border-collapse: collapse;\r\n border: none;\r\n font-size: 0.875rem;\r\n display: table;\r\n\r\n & .right-arrow {\r\n text-align: right;\r\n padding: 15px 0px 15px 15px !important;\r\n }\r\n\r\n img {\r\n width: auto;\r\n height: 17px;\r\n position: absolute;\r\n left: -5px;\r\n top: 0px;\r\n }\r\n\r\n th {\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n overflow: hidden;\r\n text-align: left;\r\n vertical-align: top;\r\n position: relative;\r\n cursor: pointer;\r\n & > div {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n text-transform: none;\r\n }\r\n\r\n /* & span {\r\n position: absolute;\r\n left: 6px;\r\n top: 20px;\r\n } */\r\n }\r\n\r\n th.right,\r\n td.right {\r\n text-align: right;\r\n & > div {\r\n justify-content: flex-end;\r\n }\r\n }\r\n\r\n th.center,\r\n td.center {\r\n text-align: center;\r\n & > div {\r\n justify-content:center;\r\n }\r\n }\r\n\r\n th,\r\n td {\r\n display: table-cell;\r\n vertical-align: middle;\r\n text-align: left;\r\n padding: 15px 0px 15px 20px;\r\n }\r\n\r\n th:last-child,\r\n td:last-child {\r\n padding: 15px 20px;\r\n }\r\n\r\n td {\r\n border-bottom: 1px solid ${(props) => props.theme.tableInputBorderColor};\r\n padding: 15px 0px 15px 20px;\r\n }\r\n\r\n tbody > tr:hover {\r\n background: ${(props) => props.theme.bgWhite};\r\n cursor: pointer;\r\n\r\n td:first-child {\r\n position: relative;\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 5px;\r\n height: 100%;\r\n background-color: ${(props) => props.theme.secondaryColor};\r\n }\r\n }\r\n }\r\n\r\n tbody > tr:last-child td {\r\n border: none;\r\n }\r\n\r\n tr {\r\n &.my-company {\r\n background: ${(props) => props.theme.bgWhite};\r\n\r\n td:first-child {\r\n position: relative;\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 5px;\r\n height: 100%;\r\n background-color: ${(props) =>\r\n props.theme.tableActiveBorder};\r\n }\r\n }\r\n }\r\n\r\n &.expanded {\r\n td {\r\n border-bottom: none;\r\n padding: 20px 20px 10px;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default StyledTable;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1327\",\n \"data-name\": \"Group 1327\",\n transform: \"translate(0.403 0.403)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1321\",\n \"data-name\": \"Group 1321\",\n transform: \"translate(26.064 18.012)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1315\",\n \"data-name\": \"Group 1315\",\n transform: \"translate(40.686 11.625)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_783\",\n \"data-name\": \"Path 783\",\n d: \"M102.9,10.812h-93A2.906,2.906,0,1,1,9.906,5h93a2.906,2.906,0,0,1,0,5.812Z\",\n transform: \"translate(-7 -5)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1316\",\n \"data-name\": \"Group 1316\",\n transform: \"translate(40.686 52.311)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_784\",\n \"data-name\": \"Path 784\",\n d: \"M102.9,17.812h-93a2.906,2.906,0,1,1,0-5.812h93a2.906,2.906,0,0,1,0,5.812Z\",\n transform: \"translate(-7 -12)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1317\",\n \"data-name\": \"Group 1317\",\n transform: \"translate(40.686 92.997)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_785\",\n \"data-name\": \"Path 785\",\n d: \"M102.9,24.812h-93a2.906,2.906,0,1,1,0-5.812h93a2.906,2.906,0,0,1,0,5.812Z\",\n transform: \"translate(-7 -19)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1318\",\n \"data-name\": \"Group 1318\",\n transform: \"translate(0 81.372)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_786\",\n \"data-name\": \"Path 786\",\n d: \"M14.531,46.062A14.531,14.531,0,1,1,29.062,31.531,14.547,14.547,0,0,1,14.531,46.062Zm0-23.249a8.718,8.718,0,1,0,8.718,8.718A8.729,8.729,0,0,0,14.531,22.812Z\",\n transform: \"translate(0 -17)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1319\",\n \"data-name\": \"Group 1319\",\n transform: \"translate(0 40.686)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_787\",\n \"data-name\": \"Path 787\",\n d: \"M14.531,39.062A14.531,14.531,0,1,1,29.062,24.531,14.547,14.547,0,0,1,14.531,39.062Zm0-23.249a8.718,8.718,0,1,0,8.718,8.718A8.729,8.729,0,0,0,14.531,15.812Z\",\n transform: \"translate(0 -10)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1320\",\n \"data-name\": \"Group 1320\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_788\",\n \"data-name\": \"Path 788\",\n d: \"M14.531,32.062A14.531,14.531,0,1,1,29.062,17.531,14.547,14.547,0,0,1,14.531,32.062Zm0-23.249a8.718,8.718,0,1,0,8.718,8.718A8.729,8.729,0,0,0,14.531,8.812Z\",\n transform: \"translate(0 -3)\",\n fill: \"#d5d5d5\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1325\",\n \"data-name\": \"Group 1325\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1381\",\n \"data-name\": \"Group 1381\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_69\",\n \"data-name\": \"Line 69\",\n y1: 140.343,\n x2: 181.755,\n transform: \"translate(5.358 3.057)\",\n fill: \"none\",\n stroke: \"#d5d5d5\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_70\",\n \"data-name\": \"Line 70\",\n y1: 142.119,\n x2: 184.056,\n transform: \"translate(1 1)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_774\",\n \"data-name\": \"Path 774\",\n d: \"M0,142.119,184.056,0\",\n transform: \"translate(5.115 5.115)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}))));\n\nvar SvgNoData = function SvgNoData(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 190.976,\n height: 149.039,\n viewBox: \"0 0 190.976 149.039\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNoData, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/no_data.ccf3c0fc.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Fragment, useEffect, useMemo } from \"react\";\r\nimport {\r\n useExpanded,\r\n usePagination,\r\n useRowSelect,\r\n useSortBy,\r\n useTable,\r\n} from \"react-table\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as SortIconSvg } from \"../../assets/sort_triangle.svg\";\r\nimport useListingPageContext from \"../../core/state/useListingPage\";\r\nimport Pagination from \"../pagination/Pagination\";\r\nimport IndeterminateCheckbox from \"./IndeterminateCheckbox\";\r\nimport {\r\n DataListingContainer,\r\n DataListingContent,\r\n} from \"./styles/StyledDataContainer\";\r\nimport StyledTable from \"./styles/StyledTable\";\r\nimport { ReactComponent as NoDataSvg } from \"../../assets/no_data.svg\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst NoDataWrapper = styled.div`\r\n opacity: 0;\r\n width: 100%;\r\n height: calc(100% - 60px);\r\n position: absolute;\r\n top: 60px;\r\n left: 0;\r\n pointer-events: none;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n color: #d5d5d5;\r\n transition: opacity 0s;\r\n\r\n &.show {\r\n opacity: 1;\r\n transition: opacity 1s;\r\n }\r\n`;\r\n\r\nconst SvgNoData = styled(NoDataSvg)`\r\n width: 100%;\r\n`;\r\n\r\nconst StyledSortIcon = styled(SortIconSvg)`\r\n width: 12px;\r\n height: 12px;\r\n margin: 0px 2px 0px -4px;\r\n\r\n & .triangle {\r\n fill: #d5d0d0;\r\n }\r\n\r\n &.asc .triangle {\r\n fill: ${(p) => p.theme.secondaryColor};\r\n }\r\n\r\n &.asc {\r\n transform: rotate(180deg);\r\n }\r\n\r\n &.desc .triangle {\r\n fill: ${(p) => p.theme.secondaryColor};\r\n }\r\n`;\r\n\r\nconst DataTable = ({\r\n loading,\r\n pwa,\r\n columns,\r\n data,\r\n wrapperVariant = \"\",\r\n onSelect,\r\n getRowClassName,\r\n shouldShowSelection = () => true,\r\n shouldEnableSelectionForRow = () => true,\r\n enableSelection = false,\r\n enablePaging = false,\r\n showHeaders = true,\r\n renderRowSubComponent,\r\n showSelectAll = false,\r\n pageCount: controlledPageCount,\r\n onPageChange,\r\n onSortByChange,\r\n currentSortBy = [],\r\n enableSorting,\r\n pageSize,\r\n currentPageIndex,\r\n getRowId,\r\n numPageButtons,\r\n}) => {\r\n const { state: listingPageState, actions: listingPageActions } =\r\n useListingPageContext();\r\n\r\n const initialTableState = useMemo(() => {\r\n return {\r\n pageIndex: currentPageIndex,\r\n pageSize: pageSize,\r\n pageCount: controlledPageCount,\r\n sortBy: currentSortBy,\r\n selectedRowIds: listingPageState\r\n ? listingPageState.selectedRows.map((row) => row.id)\r\n : [],\r\n };\r\n }, [currentPageIndex, pageSize, controlledPageCount]);\r\n const { t } = useTranslation();\r\n\r\n const dataMissing = data.length === 0 && !loading;\r\n const tableConfig = {\r\n columns,\r\n data,\r\n manualPagination: true,\r\n pageCount: controlledPageCount,\r\n initialState: initialTableState,\r\n disableMultiSort: true,\r\n manualSortBy: true,\r\n disableSortBy: !enableSorting,\r\n disableSortRemove: true,\r\n autoResetSelectedRows: false,\r\n };\r\n\r\n if (getRowId) {\r\n tableConfig.getRowId = getRowId;\r\n }\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n rows,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n setPageSize,\r\n toggleAllRowsSelected,\r\n // Get the state from the instance\r\n state,\r\n } = useTable(\r\n tableConfig,\r\n useSortBy,\r\n useExpanded,\r\n usePagination,\r\n useRowSelect,\r\n (hooks) => {\r\n enableSelection &&\r\n hooks.columns.push((columns) => [\r\n // Let's make a column for selection\r\n {\r\n id: \"selection\",\r\n // The header can use the table's getToggleAllRowsSelectedProps method\r\n // to render a checkbox\r\n Header: ({\r\n getToggleAllRowsSelectedProps,\r\n selectedFlatRows,\r\n rows,\r\n }) => {\r\n const { actions: cellListingPageActions } =\r\n useListingPageContext();\r\n return showSelectAll ? (\r\n
    \r\n {rows.some(\r\n (row) =>\r\n shouldShowSelection &&\r\n shouldShowSelection(\r\n row,\r\n selectedFlatRows\r\n )\r\n ) ? (\r\n {\r\n const onChange = (evt) => {\r\n props.onChange(evt);\r\n const checked =\r\n evt.currentTarget\r\n .checked;\r\n\r\n setTimeout(() => {\r\n checked\r\n ? rows.map(\r\n (row) =>\r\n cellListingPageActions.addSelectedRow(\r\n row\r\n )\r\n )\r\n : rows.map(\r\n (row) =>\r\n cellListingPageActions.removeSelectedRow(\r\n row.id\r\n )\r\n );\r\n }, 1);\r\n };\r\n return {\r\n ...props,\r\n onChange,\r\n };\r\n }\r\n )}\r\n />\r\n ) : (\r\n <>\r\n )}\r\n
    \r\n ) : null;\r\n },\r\n // The cell can use the individual row's getToggleRowSelectedProps method\r\n // to the render a checkbox\r\n Cell: ({ row, selectedFlatRows }) => {\r\n const {\r\n state: cellListingPageState,\r\n actions: cellListingPageActions,\r\n } = useListingPageContext();\r\n\r\n return shouldShowSelection &&\r\n shouldShowSelection(row, selectedFlatRows) ? (\r\n \r\n evt.stopPropagation()}\r\n {...row.getToggleRowSelectedProps(\r\n (props) => {\r\n const disabled =\r\n shouldEnableSelectionForRow\r\n ? !shouldEnableSelectionForRow(\r\n row,\r\n cellListingPageState.selectedRows\r\n )\r\n : false;\r\n\r\n if (disabled && props.checked) {\r\n props.checked = false;\r\n }\r\n\r\n const onChange = (evt) => {\r\n props.onChange(evt);\r\n const checked =\r\n evt.currentTarget\r\n .checked;\r\n\r\n setTimeout(() => {\r\n checked\r\n ? cellListingPageActions.addSelectedRow(\r\n row\r\n )\r\n : cellListingPageActions.removeSelectedRow(\r\n row.id\r\n );\r\n }, 1);\r\n };\r\n return {\r\n ...props,\r\n onChange,\r\n };\r\n }\r\n )}\r\n />\r\n
    \r\n ) : (\r\n <>\r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ...columns,\r\n ]);\r\n }\r\n );\r\n\r\n if (pageSize !== state.pageSize) setPageSize(pageSize);\r\n\r\n useEffect(() => {\r\n listingPageActions.setTableInstance &&\r\n listingPageActions.setTableInstance({\r\n toggleAllRowsSelected: toggleAllRowsSelected,\r\n });\r\n }, [toggleAllRowsSelected]);\r\n\r\n useEffect(() => {\r\n if (state.pageIndex !== currentPageIndex) {\r\n onPageChange &&\r\n onPageChange({\r\n pageIndex: state.pageIndex,\r\n pageSize: state.pageSize,\r\n });\r\n }\r\n }, [state.pageIndex]);\r\n\r\n useEffect(() => {\r\n if (state.pageIndex !== currentPageIndex) {\r\n gotoPage(currentPageIndex);\r\n }\r\n }, [currentPageIndex]);\r\n useEffect(() => {\r\n if (enableSorting && onSortByChange) onSortByChange(state.sortBy);\r\n }, [state.sortBy]);\r\n\r\n if (data) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n \r\n {showHeaders && (\r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map(\r\n (column) => (\r\n \r\n
    \r\n {enableSorting &&\r\n column.Header &&\r\n !column.disableSortBy && (\r\n \r\n {column.isSorted ? (\r\n column.isSortedDesc ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n\r\n {column.Header &&\r\n column.render(\r\n \"Header\"\r\n )}\r\n
    \r\n \r\n )\r\n )}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n {page.map((row) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {\r\n onSelect && onSelect(row);\r\n }}\r\n title=\"\"\r\n {...row.getRowProps({\r\n className: getRowClassName\r\n ? getRowClassName(row)\r\n : \"\",\r\n })}\r\n indeterminate=\"false\"\r\n className={\r\n row.isExpanded && \"expanded\"\r\n }\r\n >\r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n {cell.render(\r\n \"Cell\"\r\n )}\r\n \r\n );\r\n })}\r\n \r\n\r\n {row.isExpanded && (\r\n \r\n \r\n {renderRowSubComponent &&\r\n renderRowSubComponent(\r\n {\r\n row,\r\n }\r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n {enablePaging && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default DataTable;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Item = styled.div`\r\n margin: 0 10px 10px 0;\r\n\r\n & > * {\r\n height: 32px;\r\n margin-top: 0px;\r\n }\r\n\r\n & * {\r\n font-size: 12px !important;\r\n }\r\n\r\n &.tight {\r\n margin-right: 0px;\r\n }\r\n`;\r\n\r\nexport const FilterGroup = styled.div`\r\n display: flex;\r\n & ${Item}:first-child {\r\n margin-right: 4px;\r\n }\r\n`;\r\n\r\nconst FilterItem = ({ children, ...restProps }) => {\r\n return {children};\r\n};\r\n\r\nexport default FilterItem;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Title = styled.span`\r\n text-transform: uppercase;\r\n margin: 0 0 16px 0;\r\n font-size: 13px;\r\n display: block;\r\n font-weight: 600;\r\n color: #444;\r\n text-align: left;\r\n`;\r\n\r\nconst FilterTitle = (props) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n};\r\n\r\nexport default FilterTitle;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Wrapper = styled.form`\r\n width: auto;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n padding-bottom: 10px;\r\n\r\n & input {\r\n margin: 0px 0 25px !important;\r\n width: 210px !important;\r\n }\r\n\r\n &.full {\r\n width: 100%;\r\n }\r\n\r\n &.spread {\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nconst FilterWrapper = ({children,...rest}) => {\r\n \r\n const handleSubmit=(ev)=>{\r\n ev.preventDefault();\r\n }\r\n \r\n return (\r\n \r\n {children}\r\n \r\n )\r\n};\r\n\r\nexport default FilterWrapper\r\n","import FilterItem,{FilterGroup} from \"./FilterItem\";\r\nimport FilterTitle from \"./FilterTitle\";\r\nimport FilterWrapper from \"./FilterWrapper\";\r\n\r\nconst Filters = {\r\n Wrapper: FilterWrapper,\r\n Title: FilterTitle,\r\n Item: FilterItem,\r\n Group: FilterGroup\r\n};\r\n\r\nexport default Filters;\r\n","import styled, { css } from \"styled-components\";\r\n\r\nconst FlexColumn = styled.div`\r\n display:${props => props.display ? `${props.display}` : \"block\"};\r\n flex-direction: column;\r\n ${props => props.flex && css`flex: ${props.flex};`}\r\n ${props => props.flexGrow && css`flex-grow: ${props.flexGrow};`}\r\n ${props => props.flexBasis && css`flex-basis: ${props.flexBasis}`}\r\n ${props => props.justifyContent && css`justify-content: ${props.justifyContent};`}\r\n ${props => props.alignItems && css`align-items: ${props.alignItems};`}\r\n box-sizing: border-box;\r\n\r\n &.half {\r\n flex-basis: 50%;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n flex-basis: 100%;\r\n }\r\n }\r\n\r\n &.full {\r\n flex-basis: 100%;\r\n }\r\n\r\n &.wizard-column {\r\n flex-basis: 45%;\r\n margin: 0 2%;\r\n }\r\n`;\r\n\r\nexport default FlexColumn;\r\n","import styled, { css } from \"styled-components\";\r\n\r\nconst FlexRow = styled.div`\r\n flex-direction: row;\r\n ${props =>\r\n props.flexGrow &&\r\n css`\r\n flex-grow: ${props.flexGrow};\r\n `}\r\n ${props =>\r\n props.center &&\r\n css`\r\n text-align: center;\r\n justify-items: center;\r\n `}\r\n ${props =>\r\n props.flexBasis &&\r\n css`\r\n flex-basis: ${props.flexBasis};\r\n `}\r\n ${props => props.justifyContent && css`display:flex; justify-content: ${props.justifyContent};`}\r\n`;\r\n\r\nexport default FlexRow;\r\n","import FlexColumn from \"./FlexColumn\";\r\nimport FlexContainer from \"./FlexContainer\";\r\nimport FlexRow from './FlexRow';\r\n\r\nconst Flex = {\r\n Column: FlexColumn,\r\n Container: FlexContainer,\r\n Row: FlexRow\r\n};\r\n\r\nexport default Flex;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Container = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 25px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n &.company {\r\n padding: 25px 60px 0px 225px;\r\n @media ${(p) => p.theme.device.mobile} {\r\n padding: 10px 24px 0px 24px;\r\n }\r\n\r\n &.pr-0 {\r\n padding-right: 0px;\r\n }\r\n }\r\n\r\n &.wide {\r\n padding: 0px 0px 0px;\r\n }\r\n\r\n &.wide-list {\r\n padding: 20px 0px 0px;\r\n }\r\n\r\n &.pwa {\r\n height: auto;\r\n padding-left:15px;\r\n padding-right:20px;\r\n }\r\n\r\n & .right-action + .filter-wrapper {\r\n float: left;\r\n width: calc(100% - 250px);\r\n }\r\n\r\n \r\n`;\r\n\r\nconst LayoutInnerContainer = ({ children, ...rest }) => {\r\n return {children};\r\n};\r\n\r\nexport default LayoutInnerContainer;\r\n","import Color from \"color\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\n\r\nconst SideBar = styled.div`\r\n transform: translate(100%);\r\n display: flex;\r\n flex-direction: column;\r\n position: fixed;\r\n top: 0;\r\n bottom: auto;\r\n right: 11px;\r\n height: 100%;\r\n width: 480px;\r\n min-height: 100%;\r\n background: ${(props) => props.theme.bgSideBar};\r\n transition: all 0.25s ease-out 0.2s;\r\n box-sizing: border-box;\r\n z-index: 25;\r\n visibility: hidden;\r\n\r\n &.open {\r\n transform: translateX(41px);\r\n font-size: inherit;\r\n z-index: 200;\r\n visibility: visible;\r\n\r\n &.nested {\r\n transform: translateX(2%);\r\n z-index: 201;\r\n }\r\n }\r\n\r\n &.wide {\r\n width: 680px;\r\n }\r\n\r\n & .isOpened.accordion {\r\n /* border-bottom: 1px solid\r\n ${(props) => props.theme.sidebarWrapperBorderColor}; */\r\n padding: 0 0 30px 0;\r\n\r\n &:last-child,\r\n &:last-of-type {\r\n border: none;\r\n }\r\n }\r\n\r\n &.childOpen {\r\n > .close {\r\n pointer-events: none;\r\n }\r\n > .header {\r\n position: absolute;\r\n }\r\n > .sideContent {\r\n padding-top: 92px;\r\n }\r\n }\r\n`;\r\n\r\nconst SidebarOverlay = styled.div`\r\n transition: all 0.25s ease-out;\r\n\r\n &.open {\r\n display: block;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${(props) =>\r\n Color(props.theme.bgOverlay).fade(0.17).string()};\r\n z-index: 100;\r\n }\r\n`;\r\n\r\nconst CloseButton = styled.span`\r\n position: absolute;\r\n right: 60px;\r\n top: 22px;\r\n width: 14px;\r\n height: 14px;\r\n cursor: pointer;\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 14px;\r\n height: 14px;\r\n background: url(\"/images/actions/close_button.svg\") no-repeat;\r\n background-size: 14px;\r\n }\r\n`;\r\n\r\nconst SideBarContent = styled.div`\r\n padding: 32px 40px 40px;\r\n box-shadow: 0 6px 40px 0 rgba(0, 0, 0, 0.16);\r\n flex-grow: 1;\r\n box-sizing: border-box;\r\n width: calc(100% - 30px);\r\n overflow-y: auto;\r\n\r\n mask-image: linear-gradient(to top, transparent, black),\r\n linear-gradient(to left, transparent 17px, black 17px);\r\n mask-size: 100% 20000px;\r\n mask-position: left bottom;\r\n transition: mask-position 0.5s;\r\n\r\n &:hover {\r\n mask-position: left top;\r\n }\r\n`;\r\n\r\nconst SideBarHeader = styled.div`\r\n position: static;\r\n top: 0;\r\n left: 0;\r\n width: calc(100% - 30px);\r\n min-height: 60px;\r\n background: ${(p) => p.theme.primaryColor};\r\n color: #f9f9f9;\r\n padding: 18px 40px 0 60px;\r\n box-sizing: border-box;\r\n font-size: 1.25rem;\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n\r\n &.nested {\r\n z-index: 300;\r\n }\r\n`;\r\n\r\nconst DetailSideBar = (\r\n {\r\n children,\r\n detailIsOpened,\r\n closeSideBar,\r\n variant,\r\n title,\r\n shouldRender = true,\r\n sidebarId = null,\r\n },\r\n ref\r\n) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n\r\n if (!title) {\r\n title = t(\"shared.title\");\r\n }\r\n\r\n let parent = null;\r\n if (variant === \"nested\" && ref.current) {\r\n parent = document.querySelector(\".detailview\");\r\n }\r\n\r\n if (parent) {\r\n detailIsOpened\r\n ? parent.classList.add(\"childOpen\")\r\n : parent.classList.remove(\"childOpen\");\r\n }\r\n\r\n if (!shouldRender) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {variant !== \"nested\" && (\r\n \r\n )}\r\n \r\n <>\r\n {title && (\r\n \r\n {title}\r\n {\r\n closeSideBar(ev);\r\n }}\r\n id={\r\n sidebarId === null\r\n ? null\r\n : `close-sidebar-${sidebarId}`\r\n }\r\n />\r\n \r\n )}\r\n \r\n\r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\nexport default React.forwardRef(DetailSideBar);\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst ActionsWrapper = styled.div`\r\n display: flex;\r\n\r\n &.right-action {\r\n float: right;\r\n margin-left: 15px;\r\n }\r\n\r\n .gm-style button, .gm-style a {\r\n color: black;\r\n background: none;\r\n border:0;\r\n box-shadow: none;\r\n padding: 0;\r\n line-height: 1;\r\n height: initial;\r\n }\r\n`;\r\n\r\nconst HeaderActionsWrapper = (props) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n};\r\n\r\nexport default HeaderActionsWrapper;\r\n","import styled from 'styled-components';\r\n\r\nexport const DataCard = styled.div`\r\n box-sizing: border-box;\r\n box-shadow: 8px 8px 12px -6px rgba(0, 0, 0, 0.08);\r\n padding: 32px 12px 16px;\r\n margin: 0 30px 30px 0;\r\n text-align: center;\r\n background: ${(props) => props.theme.bgDataCard};\r\n border: 2px solid ${(props) => props.theme.bgDataCard};\r\n border-radius: ${(props) => props.theme.cardsBorderRadius};\r\n position: relative;\r\n transition: all 0.2s ease-in;\r\n width: 240px;\r\n height: 250px;\r\n flex-basis: 240px;\r\n\r\n &.wide {\r\n min-width: 260px;\r\n width: 260px;\r\n }\r\n\r\n &:hover {\r\n border-color: ${(props) => props.theme.secondaryColor};\r\n }\r\n`;\r\n\r\nexport default DataCard;\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { usePagination, useRowSelect, useTable } from \"react-table\";\r\nimport styled from \"styled-components\";\r\nimport DataCard from \"../data/DataCard\";\r\nimport Pagination from \"../pagination/Pagination\";\r\nimport {\r\n DataListingContainer,\r\n DataListingContent,\r\n} from \"./styles/StyledDataContainer\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst DataColumn = styled.div`\r\n font-size: 0.875rem;\r\n\r\n &.id {\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n }\r\n\r\n &.userStatus {\r\n position: absolute;\r\n top: 10px;\r\n left: 10px;\r\n border-radius: 50%;\r\n width: 12px;\r\n height: 12px;\r\n font-size: 0;\r\n\r\n &.active {\r\n background-color: ${(props) => props.theme.bgActive};\r\n }\r\n\r\n &.inactive {\r\n background-color: ${(props) => props.theme.bgInactive};\r\n }\r\n }\r\n\r\n &.email {\r\n color: ${(props) => props.theme.activeColor};\r\n }\r\n\r\n &.fullName,\r\n &.name {\r\n margin-bottom: 32px;\r\n }\r\n\r\n &.roleNames {\r\n margin: 5px 0 0;\r\n text-transform: uppercase;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst DataCardList = ({\r\n cardClasses,\r\n columns,\r\n data,\r\n onSelect,\r\n cardColumns,\r\n pageCount: controlledPageCount,\r\n enablePaging = false,\r\n onPageChange,\r\n pageSize,\r\n currentPageIndex,\r\n numPageButtons,\r\n}) => {\r\n const { t } = useTranslation(\"\");\r\n const indexState = useMemo(() => {\r\n return { pageIndex: currentPageIndex, pageSize: pageSize };\r\n }, [currentPageIndex, pageSize]);\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n toggleAllRowsSelected,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n // Get the state from the instance\r\n state,\r\n } = useTable(\r\n {\r\n columns,\r\n data,\r\n manualPagination: true,\r\n pageCount: controlledPageCount,\r\n initialState: indexState,\r\n },\r\n usePagination,\r\n useRowSelect\r\n );\r\n\r\n useEffect(() => {\r\n if (state.pageIndex !== currentPageIndex) {\r\n onPageChange &&\r\n onPageChange({\r\n pageIndex: state.pageIndex,\r\n pageSize: state.pageSize,\r\n });\r\n }\r\n }, [state.pageIndex, currentPageIndex, state.pageSize, state.pageIndex]);\r\n\r\n let filterColumns;\r\n if (cardColumns && cardColumns.length > 0) {\r\n filterColumns = columns.filter((col) =>\r\n cardColumns.includes(col.accessor)\r\n );\r\n } else {\r\n filterColumns = columns;\r\n }\r\n filterColumns = filterColumns.map((col) => col.accessor);\r\n\r\n if (data) {\r\n return (\r\n <>\r\n \r\n \r\n {page.map((row, i) => {\r\n prepareRow(row);\r\n\r\n return (\r\n {\r\n toggleAllRowsSelected(false);\r\n row.toggleRowSelected();\r\n onSelect && onSelect(row);\r\n }}\r\n {...row.getToggleRowSelectedProps()}\r\n title=\"\"\r\n {...row.getRowProps()}\r\n className={`card-item ${cardClasses}`}\r\n >\r\n {row.cells.map((cell, j) => {\r\n return headerGroups.map(\r\n (headerGroup) => (\r\n \r\n {headerGroup.headers.map(\r\n (column, k) => {\r\n return (\r\n column.id ===\r\n cell.column\r\n .id &&\r\n filterColumns.includes(\r\n column.id\r\n ) && (\r\n \r\n \r\n {cell.value !==\r\n undefined\r\n ? cell.render(\r\n \"Cell\"\r\n )\r\n : \"-\"}\r\n \r\n \r\n )\r\n );\r\n }\r\n )}\r\n
    \r\n )\r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n {enablePaging && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default DataCardList;\r\n","import styled from 'styled-components';\r\nexport const DataCardsContainer = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n // align-items: center;\r\n`;\r\n","import React from 'react';\r\nimport { DataCard } from \"./DataCard\";\r\nimport { DataCardsContainer } from \"./DataCardsContainer\";\r\n\r\n\r\n\r\nconst LoadingCards = () => {\r\n return \r\n \r\n
    ...Loading
    \r\n
    \r\n \r\n
    ...Loading
    \r\n
    \r\n \r\n
    ...Loading
    \r\n
    \r\n
    \r\n}\r\n\r\nexport default LoadingCards;\r\n","import React from \"react\";\r\nimport StyledTable from \"./styles/StyledTable\";\r\n\r\nconst LoadingTable = () => {\r\n return (\r\n \r\n \r\n \r\n Loading..\r\n \r\n \r\n \r\n \r\n Loading..\r\n \r\n \r\n Loading..\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoadingTable;\r\n","import React, { useMemo, useRef } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useClickAway from \"../../hooks/_shared/useClickAway\";\r\nimport DataTable from \"../data/DataTable\";\r\nimport Filters from \"../filter/Filters\";\r\nimport Flex from \"../layout/flex/Flex\";\r\nimport LayoutInnerContainer from \"../layout/split/one/LayoutInnerContainer\";\r\nimport DetailSideBar from \"../modal/DetailSideBar\";\r\nimport HeaderActionsWrapper from \"../wrappers/HeaderActionsWrapper\";\r\nimport DataCardList from \"./DataCardList\";\r\nimport LoadingCards from \"./LoadingCards\";\r\nimport LoadingTable from \"./LoadingTable\";\r\n\r\nconst HeaderTabsWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n`;\r\n\r\nconst HeaderWrapper = styled.div`\r\n display: inline-block;\r\n padding: 0px 60px 5px;\r\n margin: 0px -60px;\r\n border-radius: 15px 15px 0px 0px;\r\n background: linear-gradient(180deg, rgba(245, 245, 245, 1) 0%, rgba(240, 240, 240, 1) 100%);\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n\r\n &.transparent {\r\n background: transparent;\r\n box-shadow: none;\r\n border-bottom: none;\r\n }\r\n\r\n &.hidden {\r\n display: none;\r\n }\r\n\r\n &.employees {\r\n padding: 0px 60px 5px 205px;\r\n margin: 0px -60px 0 -205px;\r\n }\r\n`;\r\n\r\nconst ListingPageWrapper = ({\r\n employees,\r\n transparentHeader,\r\n wide,\r\n pwa,\r\n filterComponent,\r\n children,\r\n loading,\r\n data,\r\n footerActions,\r\n filterTitle,\r\n filterTitleOnTop,\r\n showTitle,\r\n headerActions,\r\n headerTabs,\r\n translation,\r\n headerVariant,\r\n noHeader,\r\n}) => {\r\n let hwClassNames = transparentHeader ? \"transparent\" : \"\";\r\n if (noHeader) hwClassNames += \" hidden\";\r\n if (employees) hwClassNames += \"employees\";\r\n return (\r\n \r\n \r\n {filterTitleOnTop && filterComponent && showTitle && (\r\n \r\n {filterTitle ? filterTitle : translation(\"common:filter.title\")}\r\n \r\n )}\r\n\r\n \r\n {headerTabs && headerTabs()}\r\n \r\n \r\n {headerActions && headerActions()}\r\n \r\n\r\n {!filterTitleOnTop && filterComponent && showTitle && (\r\n \r\n {filterTitle ? filterTitle : translation(\"common:filter.title\")}\r\n \r\n )}\r\n\r\n {filterComponent && filterComponent()}\r\n \r\n {!loading && (!data || data.length === 0) ? (\r\n <>\r\n {children}\r\n \r\n {footerActions && footerActions()}\r\n \r\n \r\n ) : (\r\n children\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst ListingPage = ({\r\n cardClasses = \"\",\r\n employees,\r\n transparentHeader,\r\n wide,\r\n noHeader,\r\n pwa,\r\n columns,\r\n mode = \"table\",\r\n tableState: { data, loading, error },\r\n actions = {\r\n detailViewVariant: \"\",\r\n headerViewVariant: \"\",\r\n },\r\n onSelect,\r\n detailView,\r\n detailViewId = null,\r\n detailViewIsOpened,\r\n detailViewKey = null,\r\n closeSideBar,\r\n filterComponent,\r\n noDataText = \"No data found\",\r\n getRowClassName,\r\n cardColumns,\r\n filterTitle,\r\n showTitle = true,\r\n filterTitleOnTop = true,\r\n detailSideBarTitle,\r\n enableSelection = false,\r\n variants = {},\r\n shouldShowSelection,\r\n shouldEnableSelectionForRow,\r\n showSelectAll,\r\n paging = {\r\n pageCount: 0,\r\n pageSize: 10,\r\n enablePaging: false,\r\n onPageChange: undefined,\r\n currentPageIndex: 0,\r\n numPageButtons: 3,\r\n },\r\n sorting = {\r\n enableSorting: false,\r\n onSortByChange: undefined,\r\n currentSortBy: [],\r\n },\r\n getRowId,\r\n}) => {\r\n const tableColumns = useMemo(() => columns, [columns]);\r\n const tableData = useMemo(() => data, [data]);\r\n const sideBarRef = useRef(null);\r\n const detailIsOpen = useMemo(() => detailViewIsOpened, [detailViewIsOpened]);\r\n\r\n const { t } = useTranslation();\r\n\r\n useClickAway(sideBarRef, () => {\r\n try {\r\n closeSideBar();\r\n } catch (ex) {}\r\n });\r\n if (!error) {\r\n return (\r\n \r\n {mode === \"table\" && (\r\n 0}\r\n pageCount={paging.pageCount || 1}\r\n pageSize={paging.pageSize || 10}\r\n numPageButtons={paging.numPageButtons || 3}\r\n currentPageIndex={paging.currentPageIndex || 0}\r\n onPageChange={paging.onPageChange}\r\n onSortByChange={sorting.onSortByChange}\r\n enableSorting={sorting.enableSorting || false}\r\n currentSortBy={sorting.currentSortBy || []}\r\n getRowId={getRowId}\r\n />\r\n )}\r\n {mode === \"cards\" && (\r\n 0) || false}\r\n pageCount={paging.pageCount}\r\n pageSize={paging.pageSize}\r\n numPageButtons={paging.numPageButtons || 3}\r\n currentPageIndex={paging.currentPageIndex || 0}\r\n onPageChange={paging.onPageChange}\r\n />\r\n )}\r\n \r\n {actions.footerActions && actions.footerActions()}\r\n \r\n {detailView && (\r\n \r\n {detailView}\r\n \r\n )}\r\n \r\n );\r\n } else if (loading) {\r\n return (\r\n \r\n {mode === \"table\" && }\r\n {mode === \"cards\" && }\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default ListingPage;\r\n","const NullableCell = ({ cell: { value } }) => {\r\n if (value) {\r\n return String(value);\r\n }\r\n return null;\r\n};\r\n\r\nexport default NullableCell;\r\n","import { useCallback } from \"react\";\r\n\r\nconst usePageChange = (dispatch, filterState) => {\r\n const callback = useCallback(({pageIndex, pageSize}) => {\r\n if(filterState.page !== pageIndex + 1){\r\n dispatch({type: \"SET_PAGING\", payload: {pageIndex, pageSize}});\r\n }\r\n }, [dispatch, filterState]);\r\n\r\n return callback;\r\n};\r\n\r\nexport default usePageChange;\r\n","import React, { useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport useClickAway from \"../../hooks/_shared/useClickAway\";\r\n\r\nexport const Bar = styled.span`\r\n display: block;\r\n width: 100%;\r\n height: 2px;\r\n background: ${props => props.theme.secondaryColor};\r\n margin: 0 0 3px;\r\n transition: all 0.3s ease-in;\r\n border-radius: 1px;\r\n`;\r\n\r\nconst Actions = styled.div`\r\n position: absolute;\r\n background: transparent;\r\n top: ${p=>p.up ? \"auto\":\"-10px\"};\r\n bottom: ${p=>p.up ? \"-10px\":\"auto\"};\r\n right: calc(100%);\r\n opacity: 0;\r\n pointer-events: none;\r\n min-width: 140px;\r\n z-index: 10;\r\n\r\n &.opened {\r\n pointer-events: auto;\r\n opacity: 1;\r\n }\r\n &::before {\r\n content: ' ';\r\n position: absolute;\r\n top: 0;\r\n left: 100%;\r\n width: 40px;\r\n height: 60%;\r\n }\r\n`;\r\n\r\nconst ActionsWrapper = styled.div`\r\n background: white;\r\n border-radius: 8px;\r\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);\r\n padding: 16px 16px 0 16px;\r\n margin-right: 12px;\r\n min-height:32px;\r\n`;\r\n\r\nconst Menu = styled.div`\r\n position: relative;\r\n width: 16px;\r\n text-align: right;\r\n height: 100%;\r\n float: right;\r\n\r\n &.opened {\r\n ${Bar} {\r\n &:nth-child(2) {\r\n width: calc(100% + 5px);\r\n margin: 0 0 3px -5px;\r\n }\r\n }\r\n }\r\n\r\n &.disabled {\r\n ${Bar} {\r\n background: #CCC;\r\n }\r\n }\r\n`;\r\n\r\nconst HamburgerMenu = props => {\r\n const [menuIsOpened, setMenuIsOpened] = useState(false);\r\n const menuRef = useRef(null);\r\n useClickAway(menuRef, () => {\r\n setMenuIsOpened(false);\r\n });\r\n\r\n const {disabled} = props;\r\n\r\n const toggleMenu = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setMenuIsOpened(!menuIsOpened);\r\n };\r\n const stopPropagation = (e) => {\r\n e.stopPropagation();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n !disabled &&\r\n \r\n \r\n {props.children}\r\n \r\n }\r\n\r\n \r\n );\r\n};\r\n\r\nexport default HamburgerMenu;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Action = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding: 0 0 12px;\r\n position: relative;\r\n text-align: left;\r\n\r\n & * {\r\n color:#000;\r\n text-decoration:none;\r\n }\r\n\r\n &:hover {\r\n cursor: pointer;\r\n color: ${props => props.theme.secondaryColor};\r\n }\r\n\r\n &:hover * {\r\n color: ${props => props.theme.secondaryColor};\r\n }\r\n\r\n img {\r\n margin: 0 12px 0 0;\r\n max-height: 20px;\r\n position: relative;\r\n top: initial;\r\n left: initial;\r\n width: auto;\r\n height: auto;\r\n }\r\n\r\n &:nth-child(n + 2) {\r\n border-top: 1px solid ${props => props.theme.primaryInputBorderColor};\r\n padding: 12px 0;\r\n }\r\n\r\n ${props => props.disabled && \"opacity: 0.5;\"}\r\n\r\n`;\r\n\r\nconst HamburgerMenuAction = ({icon, text, onClick, disabled, dataTest, children}) => {\r\n const clickHandler = (evt) => {\r\n if (!onClick) return;\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n onClick(evt);\r\n };\r\n\r\n return (\r\n {} : clickHandler} data-test={ dataTest ? dataTest : \"\" }>\r\n {icon && {text}/}\r\n {text || children}\r\n \r\n )\r\n};\r\n\r\nexport default HamburgerMenuAction;\r\n","import React, { useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport HamburgerMenu from \"../../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../../components/menu/HamburgerMenuAction\";\r\nimport UserService from \"../../../../../services/User/UserService\";\r\n\r\nconst ActionsCell = (\r\n companyCreatorId,\r\n userStatus,\r\n reloadCompanies,\r\n onDelete,\r\n deleteIsLoading,\r\n disableDelete = false,\r\n partnerStatus,\r\n partnerAction,\r\n companyId,\r\n companyName\r\n) => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const isActivated = useMemo(() => {\r\n return userStatus !== \"PendingConfirmation\";\r\n }, [userStatus]);\r\n\r\n const { t } = useTranslation();\r\n\r\n const activateUser = async (event) => {\r\n event.stopPropagation();\r\n setLoading(true);\r\n await UserService.activate({\r\n userId: companyCreatorId,\r\n activate: true,\r\n });\r\n toast.success(t(\"screens:registration.userActivated\"));\r\n setLoading(false);\r\n reloadCompanies();\r\n };\r\n\r\n const changetPartnerStatus = (event) => {\r\n event.stopPropagation();\r\n partnerAction && partnerAction(companyId, companyName, partnerStatus);\r\n };\r\n\r\n return (\r\n \r\n {!isActivated && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ActionsCell;\r\n","import styled from \"styled-components\";\r\nimport FlexRow from \"../../layout/flex/FlexRow\";\r\n\r\nexport const SidebarFieldWrapper = styled(FlexRow)`\r\n margin: 12px 0;\r\n font-size: 0.875rem;\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n &.mt-0 {\r\n margin-top: 0px;\r\n }\r\n\r\n &.big {\r\n font-size: 16px;\r\n margin-top: 20px;\r\n }\r\n\r\n &.num-section:last-child {\r\n margin-bottom: 12px;\r\n }\r\n`;\r\n\r\nexport const SidebarLabel = styled.label`\r\n display: inline-block;\r\n margin: 0 20px 0 0;\r\n padding: 0 0 0 20px;\r\n font-weight: bold;\r\n min-width: 130px;\r\n\r\n &.pl-0 {\r\n padding-left: 0px;\r\n }\r\n`;\r\n\r\nexport const SidebarValue = styled.span`\r\n padding: 0;\r\n color: ${props => props.theme.primaryColor};\r\n text-align: right;\r\n\r\n &.vat {\r\n color: #000;\r\n }\r\n\r\n &.bid-b {\r\n color: ${props => props.theme.bidB};\r\n }\r\n &.bid-c {\r\n color: ${props => props.theme.bidC};\r\n }\r\n\r\n a {\r\n color: ${props => props.theme.primaryColor};\r\n }\r\n\r\n &.wrong {\r\n color: #f0c40d;\r\n }\r\n\r\n &.pr-20 {\r\n padding-right: 20px;\r\n }\r\n`;\r\n\r\nexport const Title = styled.p`\r\n color: ${props => props.theme.primaryColor};\r\n margin: 0 0 40px;\r\n font-size: 1.125rem;\r\n`;\r\n\r\nexport const NumSection = styled.div`\r\n padding: 4px 0 4px 0px;\r\n display: flex;\r\n &.col {\r\n flex-direction:column;\r\n }\r\n &.pad {\r\n padding-top: 12px;\r\n padding-bottom: 12px;\r\n }\r\n`;\r\n\r\nexport const Num = styled.div`\r\n display:flex;\r\n align-items:center;\r\n /* width: 30px; */\r\n min-width: 30px;\r\n font-weight: 700;\r\n font-size: 24px;\r\n text-align: left;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border-right: 3px solid ${(p) => p.theme.primaryColor};\r\n margin: 0 12px 0 0;\r\n \r\n\r\n &.tight {\r\n font-size:18px;\r\n /* letter-spacing: -4px; */\r\n padding-right: 15px;\r\n }\r\n`;\r\n\r\nexport const NumInfo = styled.div`\r\n font-size: 0.875rem;\r\n line-height: 1.1875rem;\r\n`;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport {SidebarFieldWrapper, SidebarLabel, SidebarValue} from \"./SidebarStyle\";\r\n\r\nconst SidebarField = (props) => {\r\n const {label, value, multipleValues, dangerousHtml, valueVariant, labelvariant, wrapperVariant, style} = props;\r\n\r\n let fieldValue = '';\r\n if (value) {\r\n fieldValue = value;\r\n } else if (multipleValues && multipleValues.length > 0) {\r\n fieldValue = multipleValues.map(val => {\r\n return val.props.children\r\n });\r\n } else {\r\n fieldValue = '-';\r\n }\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n {\r\n dangerousHtml ?\r\n \r\n :\r\n typeof value===\"function\" ? value(): fieldValue.toString()\r\n }\r\n \r\n \r\n )\r\n};\r\n\r\nexport default SidebarField;\r\n\r\nSidebarField.propTypes = {\r\n label: PropTypes.any.isRequired\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"./SidebarField\";\r\nimport helpers from \"../../../core/helpers\";\r\n\r\nconst Link = styled(NavLink)`\r\n color: ${(p) => p.theme.secondaryColor};\r\n width: 100%;\r\n display: flex;\r\n justify-content: end;\r\n margin-top: 32px;\r\n cursor: pointer;\r\n`;\r\n\r\nconst SidebarLicence = (props) => {\r\n const { licence, userId, companyId } = props;\r\n const hasLicence = licence && licence.length > 0;\r\n const lastLicence = hasLicence ? licence[0] : {};\r\n const { t } = useTranslation(\"sidebar\");\r\n let expDateString = t(\"label.neverExpires\");\r\n const expDate = hasLicence ? new Date(licence[0].licenceExpiryDate) : null;\r\n if (expDate && expDate < new Date(\"1/1/3000\"))\r\n expDateString = helpers.toLocalDateIgnoreTime(\r\n lastLicence.licenceExpiryDate\r\n );\r\n\r\n return (\r\n <>\r\n {hasLicence ? (\r\n \r\n \r\n \r\n \r\n {userId && (\r\n \r\n {t(\"label.gotoCertDetails\")}\r\n \r\n )}\r\n {companyId && (\r\n \r\n {t(\"label.gotoCertDetails\")}\r\n \r\n )}\r\n \r\n ) : (\r\n

    {t(\"title.noInformation\")}

    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SidebarLicence;\r\n","import React, { Fragment } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"./SidebarField\";\r\n\r\nconst SidebarUsers = (props) => {\r\n const {users} = props;\r\n const hasUsers = users !== undefined;\r\n const {t} = useTranslation('sidebar');\r\n\r\n return (\r\n <>\r\n {\r\n hasUsers &&\r\n users.map(user => {\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n \r\n )\r\n\r\n};\r\n\r\nexport default SidebarUsers;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Wrapper = styled.div`\r\n margin: 0 0 30px;\r\n margin: ${(p) => (p.inner === true ? \"30px 0 !important\" : \"0 0 30px\")};\r\n padding: ${(p) => (p.inner ? \"0 0 0 25px !important\" : \"0\")};\r\n\r\n &.isOpened {\r\n border-bottom: ${(p) =>\r\n p.inner || p.noBorder\r\n ? \"0px solid\"\r\n : `1px solid ${p.theme.sidebarWrapperBorderColor}`};\r\n }\r\n`;\r\n\r\nconst AccordionElement = styled.div`\r\n transition: all 0.5s ease-in-out;\r\n overflow: hidden;\r\n max-height: 1000px;\r\n opacity: 1;\r\n padding: 0;\r\n\r\n &.top-space {\r\n padding-top: 25px;\r\n }\r\n\r\n &.closed {\r\n transition: all 0s;\r\n max-height: 0;\r\n opacity: 0;\r\n }\r\n\r\n &.sidebar {\r\n font-size: 0.875rem;\r\n }\r\n\r\n &.inset {\r\n padding-left: 20px;\r\n }\r\n\r\n &.overflow:not(.closed) {\r\n overflow: visible;\r\n }\r\n`;\r\n\r\nconst AccordionTitle = styled.p`\r\n margin: 0 0 4px 0;\r\n padding: 0 0 0 20px;\r\n position: relative;\r\n cursor: pointer;\r\n color: ${(p) => p.theme.secondaryColor};\r\n font-size: ${(p) => (p.titleVariant === \"small\" ? \"13px\" : \"1.25rem\")};\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n top: ${(p) => (p.titleVariant === \"small\" ? \"0px\" : \"7px\")};\r\n width: 8px;\r\n height: 12px;\r\n background: url(\"/images/actions/arrow-blue.svg\") no-repeat top left;\r\n background-size: 8px 12px;\r\n transform: rotate(-180deg);\r\n }\r\n\r\n &.isOpened {\r\n &:before {\r\n transform: rotate(-90deg);\r\n }\r\n }\r\n`;\r\n\r\nconst AccordionWrapper = (props) => {\r\n const {\r\n id,\r\n onToggle,\r\n title,\r\n isOpen = null,\r\n variant,\r\n inner,\r\n noBorder,\r\n titleVariant,\r\n ...rest\r\n } = props;\r\n const expanded = id\r\n ? Array.isArray(isOpen)\r\n ? isOpen.includes(id)\r\n : isOpen === id\r\n : true;\r\n \r\n const toggleAccordion = () => {\r\n onToggle && onToggle(id, !expanded);\r\n };\r\n\r\n return (\r\n \r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n\r\n \r\n {props.children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccordionGroup = ({ children, activeIdx }) => {\r\n const [open, setOpen] = useState(activeIdx || -1);\r\n const onToggle = (idx, state) => {\r\n setOpen(state ? idx : -1);\r\n };\r\n return (\r\n <>\r\n {React.Children.map(children, (child, idx) => {\r\n if (child?.type?.name === \"AccordionWrapper\")\r\n return React.cloneElement(child, {\r\n isOpen: open === idx,\r\n idx,\r\n onToggle,\r\n });\r\n return child;\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default AccordionWrapper;\r\nexport { AccordionGroup };\r\n","import { useState } from \"react\";\r\n\r\nconst useAccordionGroup = (ids = null) => {\r\n const [state, setState] = useState(ids);\r\n\r\n const setOpen = (id, isOpen) => {\r\n if (Array.isArray(state)) {\r\n if (isOpen) {\r\n if (!state.includes(id)) setState((s) => [...s, id]);\r\n } else setState((s) => s.filter((e) => e !== id));\r\n } else setState(isOpen ? id : null);\r\n };\r\n return [state, setOpen];\r\n};\r\n\r\nexport default useAccordionGroup;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../../../../components/elements/sidebar/SidebarField\";\r\nimport SidebarLicence from \"../../../../../components/elements/sidebar/SidebarLicence\";\r\nimport SidebarUsers from \"../../../../../components/elements/sidebar/SidebarUsers\";\r\nimport AccordionWrapper from \"../../../../../components/toggle-view/AccordionWrapper\";\r\nimport useAccordionGroup from \"../../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst Section = styled.section`\r\n width: 100%;\r\n margin: 10px 0 10px 0;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid #eaeaea;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 16px;\r\n color: #7f7f7f;\r\n font-weight: 600;\r\n margin: 10px 0 0 20px;\r\n`;\r\nconst getDateFormat = (currentLanguage) =>\r\n Intl.DateTimeFormat(currentLanguage, {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n\r\nconst GetShortDate = (dateValue) => {\r\n if (dateValue && typeof dateValue === \"string\")\r\n dateValue = new Date(dateValue);\r\n const currentLanguage = \"sk\";\r\n return getDateFormat(currentLanguage).format(dateValue);\r\n};\r\n\r\nconst CompanyDetailSideBar = ({ company }) => {\r\n const { companyData } = company;\r\n const {\r\n companyName,\r\n vatNumber,\r\n iban,\r\n userStatus,\r\n address,\r\n city,\r\n postalCode,\r\n region,\r\n countryName,\r\n email,\r\n phoneNumber,\r\n contactPersonFirstName,\r\n contactPersonLastName,\r\n licences = [],\r\n companyUsers = [],\r\n activatedByUser,\r\n activationDate,\r\n id,\r\n registrationCompletedDate,\r\n } = company.companyData;\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n if (company.isLoading || !companyData) return null;\r\n\r\n const statusString = {\r\n PendingConfirmation: t(\"common:companyActivation.PendingConfirmation\"),\r\n FullyRegistered: t(\"common:companyActivation.FullyRegistered\"),\r\n ConfirmationSent: t(\"screens:statistics.approvedCompanies\"),\r\n };\r\n\r\n const compLicences = licences\r\n .map((lic) => ({\r\n number: lic.licenceNumber,\r\n appDate: lic.approvalDate\r\n ? new Date(lic.approvalDate)\r\n : new Date(\"1900/1/1\"),\r\n approver: lic.approver || \"-\",\r\n }))\r\n .sort((a, b) => b.appDate - a.appDate);\r\n const minValidDate = new Date(\"2000/1/1\");\r\n\r\n const userLicences = [];\r\n companyUsers.forEach((user) => {\r\n if (user.licences) {\r\n const uLicences = user.licences.sort((a, b) => {\r\n const aDate = a.approvalDate\r\n ? new Date(a.approvalDate)\r\n : new Date(\"1900/1/1\");\r\n const bDate = b.approvalDate\r\n ? new Date(b.approvalDate)\r\n : new Date(\"1900/1/1\");\r\n return bDate - aDate;\r\n });\r\n uLicences.forEach((lic) =>\r\n userLicences.push({\r\n name: user.fullName,\r\n licNum: lic.licenceNumber,\r\n approver: lic.approver,\r\n approvalDate: new Date(lic.approvalDate),\r\n })\r\n );\r\n }\r\n });\r\n\r\n const userApprovals = () => {\r\n return userLicences.map((lic, idx) => (\r\n
    \r\n (${lic.name})`,\r\n }}\r\n />\r\n \r\n minValidDate\r\n ? GetShortDate(lic.approvalDate)\r\n : \"-\"\r\n }\r\n />\r\n \r\n
    \r\n ));\r\n };\r\n\r\n const compLicenceApprovals = () => {\r\n return compLicences.map((lic, idx) => (\r\n
    \r\n {t(\"screens:certificates.companyCert\")}\r\n \r\n minValidDate\r\n ? GetShortDate(lic.appDate)\r\n : \"-\"\r\n }\r\n />\r\n \r\n
    \r\n ));\r\n };\r\n\r\n return (\r\n <>\r\n {!company.isLoading && companyData && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n {t(\"label.registrationApproval\")}\r\n \r\n \r\n
    \r\n\r\n {compLicenceApprovals()}\r\n {userApprovals()}\r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CompanyDetailSideBar;\r\n","import { useCallback, useEffect, useRef } from \"react\";\r\nimport { config } from '../../services/Config/config.prod';\r\n\r\nexport default function useDebouncedCallback(callback, delay = config.settings.defaultDebounceDelay, options = {}) {\r\n const maxWait = options.maxWait;\r\n const maxWaitHandler = useRef(null);\r\n const maxWaitArgs = useRef([]);\r\n const leading = options.leading;\r\n const trailing = options.trailing === undefined ? true : options.trailing;\r\n const leadingCall = useRef(false);\r\n const functionTimeoutHandler = useRef(null);\r\n const isComponentUnmounted = useRef(false);\r\n const debouncedFunction = useRef(callback);\r\n debouncedFunction.current = callback;\r\n const cancelDebouncedCallback = useCallback(() => {\r\n clearTimeout(functionTimeoutHandler.current);\r\n clearTimeout(maxWaitHandler.current);\r\n maxWaitHandler.current = null;\r\n maxWaitArgs.current = [];\r\n functionTimeoutHandler.current = null;\r\n leadingCall.current = false;\r\n }, []);\r\n useEffect(() => () => {\r\n // we use flag, as we allow to call callPending outside the hook\r\n isComponentUnmounted.current = true;\r\n }, []);\r\n const debouncedCallback = useCallback((...args) => {\r\n maxWaitArgs.current = args;\r\n clearTimeout(functionTimeoutHandler.current);\r\n if (leadingCall.current) {\r\n leadingCall.current = false;\r\n }\r\n if (!functionTimeoutHandler.current && leading && !leadingCall.current) {\r\n debouncedFunction.current(...args);\r\n leadingCall.current = true;\r\n }\r\n functionTimeoutHandler.current = setTimeout(() => {\r\n let shouldCallFunction = true;\r\n if (leading && leadingCall.current) {\r\n shouldCallFunction = false;\r\n }\r\n cancelDebouncedCallback();\r\n if (!isComponentUnmounted.current && trailing && shouldCallFunction) {\r\n debouncedFunction.current(...args);\r\n }\r\n }, delay);\r\n if (maxWait && !maxWaitHandler.current && trailing) {\r\n maxWaitHandler.current = setTimeout(() => {\r\n const args = maxWaitArgs.current;\r\n cancelDebouncedCallback();\r\n if (!isComponentUnmounted.current) {\r\n debouncedFunction.current.apply(null, args);\r\n }\r\n }, maxWait);\r\n }\r\n }, [maxWait, delay, cancelDebouncedCallback, leading, trailing]);\r\n const callPending = () => {\r\n // Call pending callback only if we have anything in our queue\r\n if (!functionTimeoutHandler.current) {\r\n return;\r\n }\r\n debouncedFunction.current.apply(null, maxWaitArgs.current);\r\n cancelDebouncedCallback();\r\n };\r\n // At the moment, we use 3 args array so that we save backward compatibility\r\n return [debouncedCallback, cancelDebouncedCallback, callPending];\r\n}\r\n","const actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n SEARCH_EMAIL: \"SEARCH_EMAIL\",\r\n SEARCH_FULLNAME: \"SEARCH_FULLNAME\",\r\n SEARCH_COMPANYNAME: \"SEARCH_COMPANYNAME\",\r\n SEARCH_VAT: \"SEARCH_VAT\",\r\n SEARCH_LICENCENUMBER: \"SEARCH_LICENCENUMBER\",\r\n SEARCH_STATUS: \"SEARCH_STATUS\",\r\n SEARCH_STATUS_RESET: \"SEARCH_STATUS_RESET\",\r\n SEARCH_PARTNER_STATUS: \"SEARCH_PARTNER_STATUS\",\r\n SEARCH_PARTNER_STATUS_RESET: \"SEARCH_PARTNER_STATUS_RESET\",\r\n SET_COUNTRY:\"SET_COUNTRY\",\r\n RESET_COUNTRY:\"RESET_COUNTRY\",\r\n};\r\n\r\nexport default actionTypes;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../../components/filter/Filters\";\r\nimport useDebouncedCallback from \"../../../../../hooks/_shared/useDebouncedCallback\";\r\nimport actionTypes from \"./filterCompanyActionTypes\";\r\nimport globals from \"../../../../../globalVars\";\r\n\r\nconst CompanyFilter = ({ filterState, dispatch }) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [emailChanged] = useDebouncedCallback((text) => {\r\n dispatch({ type: actionTypes.SEARCH_EMAIL, payload: text.trim() });\r\n }); \r\n const [companyNameChanged] = useDebouncedCallback((text) => {\r\n dispatch({ type: actionTypes.SEARCH_COMPANYNAME, payload: text.trim() });\r\n });\r\n const [vatChanged] = useDebouncedCallback((text) => {\r\n dispatch({ type: actionTypes.SEARCH_VAT, payload: text.trim() });\r\n });\r\n const [licenceChanged] = useDebouncedCallback((text) => {\r\n dispatch({ type: actionTypes.SEARCH_LICENCENUMBER, payload: text.trim() });\r\n });\r\n\r\n // FullyRegistered = 0,\r\n // PendingConfirmation = 1,\r\n // ConfirmationSent = 2\r\n\r\n const activationStatus = {\r\n [t(\"common:companyActivation.PendingConfirmation\")]:1,\r\n [t(\"screens:statistics.approvedCompanies\")]:2,\r\n [t(\"common:companyActivation.FullyRegistered\")]:0,\r\n };\r\n\r\n const partnerStatus = {\r\n [t(\"common:partnerStatus.0\")]:0,\r\n [t(\"common:partnerStatus.1\")]:1,\r\n [t(\"common:partnerStatus.2\")]:2,\r\n };\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n companyNameChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"company.companyName\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n \r\n {\r\n emailChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"email\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n \r\n {\r\n vatChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"company.vat\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n \r\n {\r\n licenceChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"certificate.licenceNumber\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n ({\r\n key: country.id,\r\n value: country.id,\r\n label: country.localName,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n if (evt.currentTarget.value === \"\") {\r\n dispatch({\r\n type: actionTypes.RESET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"filters:clients.country\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n ({\r\n key: key,\r\n value: value,\r\n label: key,\r\n })\r\n )}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.SEARCH_STATUS_RESET\r\n : actionTypes.SEARCH_STATUS,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"clients.applicationType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n ({\r\n key: key,\r\n value: value,\r\n label: key,\r\n })\r\n )}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.SEARCH_PARTNER_STATUS_RESET\r\n : actionTypes.SEARCH_PARTNER_STATUS,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"clients.applicationType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CompanyFilter;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst StatusCell = ({ cell: { value } }) => {\r\n const { t } = useTranslation(\"\");\r\n const status = {\r\n PendingConfirmation: t(\"common:companyActivation.PendingConfirmation\"),\r\n FullyRegistered: t(\"common:companyActivation.FullyRegistered\"),\r\n ConfirmationSent: t(\"screens:statistics.approvedCompanies\")\r\n }\r\n \r\n return {status[value]};\r\n};\r\n\r\nexport default StatusCell;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Flag\",\n transform: \"translate(-4)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_830\",\n \"data-name\": \"Path 830\",\n d: \"M14.933,1.6H10.4V.939C10.4.369,10.086,0,9.6,0H4.267A.267.267,0,0,0,4,.267V15.733a.267.267,0,1,0,.533,0V8H9.6c.067,0,.4.015.4.319a.257.257,0,0,0,.02.1.867.867,0,0,0,.913.646h4A.267.267,0,0,0,15.2,8.8V1.867A.267.267,0,0,0,14.933,1.6Z\",\n fill: \"currentColor\"\n}));\n\nvar SvgFlag = function SvgFlag(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11.2,\n height: 16,\n viewBox: \"0 0 11.2 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFlag, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/Flag.49dc1def.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ReactComponent as FlagSvg } from \"../../../../../assets/Flag.svg\";\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst StyledFlag = styled(FlagSvg)`\r\n width: auto;\r\n height: 16px;\r\n color: #e94e4e;\r\n margin-left: 12px;\r\n`;\r\n\r\nconst PartnerStatusCell = ({ cell }) => {\r\n const { t } = useTranslation(\"screens\");\r\n const data = cell.row.original;\r\n return (\r\n \r\n {t(`common:partnerStatus.${data.partnerStatus}`)}\r\n {data.requestedDaikinId && }\r\n \r\n );\r\n};\r\n\r\nexport default PartnerStatusCell;\r\n","import qs from \"qs\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nconst useQueryString = (name = \"\", defaultValue = null) => {\r\n const location = useLocation();\r\n const parsedQuery = qs.parse(location.search, { ignoreQueryPrefix: true });\r\n if (!name) {\r\n return parsedQuery;\r\n } else {\r\n return name in parsedQuery ? parsedQuery[name] : defaultValue;\r\n }\r\n};\r\n\r\nexport default useQueryString;\r\n","import ValidationRule from './ValidationRule';\r\n\r\nexport default {\r\n email: (t) => {\r\n return ValidationRule\r\n .isStringRule()\r\n .emailRule(t('forms:email.invalid'))\r\n .required(t('forms:email.required'))\r\n },\r\n password: (t) => {\r\n return ValidationRule\r\n .isStringRule()\r\n .regexMatchRule(commonRegex.password, t('forms:password.regex'))\r\n .required(t('forms:password.required'))\r\n },\r\n passwordRequired: (t) => {\r\n return ValidationRule\r\n .isStringRule()\r\n .required(t('forms:password.required'))\r\n },\r\n vatNumber: (t) => {\r\n return ValidationRule\r\n .isStringRule()\r\n .regexMatchRule(commonRegex.VATRegExp, t('forms:VAT.invalid'))\r\n }\r\n}\r\n\r\n\r\nexport const commonRegex = {\r\n usernameRegExp: /^([A-Za-z.]+)$/,\r\n firstNameRegExp: /^(?=.{1,50}$)[a-z]+(?:['_.\\s][a-z]+)*$/i,\r\n lastNameRegExp: /^([A-Za-z0-9. -]+)$/i,\r\n VATRegExp: /^((AT)?U[0-9]{8}|(BE)?0[0-9]{9}|(BG)?[0-9]{9,10}|(CY)?[0-9]{8}L|(CZ)?[0-9]{8,10}|(DE)?[0-9]{9}|(DK)?[0-9]{8}|(EE)?[0-9]{9}|(EL|GR)?[0-9]{9}|(ES)?[0-9A-Z][0-9]{7}[0-9A-Z]|(FI)?[0-9]{8}|(FR)?[0-9A-Z]{2}[0-9]{9}|(GB)?([0-9]{9}([0-9]{3})?|[A-Z]{2}[0-9]{3})|(HU)?[0-9]{8}|(IE)?[0-9]S[0-9]{5}L|(IT)?[0-9]{11}|(LT)?([0-9]{9}|[0-9]{12})|(LU)?[0-9]{8}|(LV)?[0-9]{11}|(MT)?[0-9]{8}|(NL)?[0-9]{9}B[0-9]{2}|(PL)?[0-9]{10}|(PT)?[0-9]{9}|(RO)?[0-9]{2,10}|(SE)?[0-9]{12}|(SI)?[0-9]{8}|(SK)?[0-9]{10}|(HR)?[0-9]{11})$/i,\r\n VATMatch: /^((AT)(U\\d{8})|(BE)(0\\d{9})|(BG)(\\d{9,10})|(CY)(\\d{8}[LX])|(CZ)(\\d{8,10})|(DE)(\\d{9})|(DK)(\\d{8})|(EE)(\\d{9})|(EL|GR)(\\d{9})|(ES)([\\dA-Z]\\d{7}[\\dA-Z])|(FI)(\\d{8})|(FR)([\\dA-Z]{2}\\d{9})|(HU)(\\d{8})|(IE)(\\d{7}[A-Z]{2})|(IT)(\\d{11})|(LT)(\\d{9}|\\d{12})|(LU)(\\d{8})|(LV)(\\d{11})|(MT)(\\d{8})|(NL)(\\d{9}(B\\d{2}|BO2))|(PL)(\\d{10})|(PT)(\\d{9})|(RO)(\\d{2,10})|(SE)(\\d{12})|(SI)(\\d{8})|(SK)(\\d{10}))$/i,\r\n password: /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\\d.*\\d)(?!.*\\s)(?=.*?[_#?!@$%^&*\\-+()/[\\]].*[#?!@$%^&*\\-+()/[\\]])(?!.*\\s).{12,}$/i,\r\n UUID: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i\r\n};\r\n\r\n\r\n","import * as Yup from \"yup\";\r\nimport { commonRegex } from \"./common\";\r\n\r\nclass ValidationRule {\r\n rule = {};\r\n\r\n isStringRule() {\r\n this.rule = Yup.string();\r\n return this;\r\n }\r\n\r\n isMixedRule() {\r\n this.rule = Yup.mixed();\r\n return this;\r\n }\r\n\r\n isNumber(invalidMessage = null) {\r\n this.rule = Yup.number().typeError(\r\n invalidMessage || \"Please Enter a number\"\r\n );\r\n return this;\r\n }\r\n\r\n isObject() {\r\n this.rule = Yup.object();\r\n return this;\r\n }\r\n\r\n boolean() {\r\n this.rule = Yup.boolean();\r\n return this;\r\n }\r\n\r\n emailRule(invalidMailMessage) {\r\n this.rule = this.rule.email(invalidMailMessage);\r\n return this;\r\n }\r\n\r\n oneOf(values, message) {\r\n this.rule = Yup.string().oneOf(values, message);\r\n return this;\r\n }\r\n\r\n moreThan(value, invalidNumberMsg, moreThanMsg) {\r\n this.rule = Yup.number()\r\n .typeError(invalidNumberMsg)\r\n .moreThan(value, moreThanMsg);\r\n return this;\r\n }\r\n\r\n min(value, invalidNumberMsg, minValueMsg) {\r\n this.rule = Yup.number()\r\n .typeError(invalidNumberMsg)\r\n .min(value, minValueMsg);\r\n return this;\r\n }\r\n\r\n max(value, invalidNumberMsg, maxValueMsg) {\r\n this.rule = Yup.number()\r\n .typeError(invalidNumberMsg)\r\n .max(value, maxValueMsg);\r\n return this;\r\n }\r\n\r\n numberRange(minValue, maxValue, invalidMin, invalidMax) {\r\n this.rule = Yup.number()\r\n .moreThan(minValue, invalidMin)\r\n .max(maxValue, invalidMax);\r\n return this;\r\n }\r\n\r\n minCharactersRule(numberOfChars, invalidMessage) {\r\n this.rule = this.rule.min(numberOfChars, invalidMessage);\r\n return this;\r\n }\r\n\r\n maxCharactersRule(numberOfChars, invalidMessage) {\r\n this.rule = this.rule.max(numberOfChars, invalidMessage);\r\n return this;\r\n }\r\n\r\n regexMatchRule(regex, invalidMessage) {\r\n this.rule = this.rule.matches(regex, invalidMessage);\r\n return this;\r\n }\r\n\r\n required(invalidMessage) {\r\n this.rule = this.rule.required(invalidMessage);\r\n return this;\r\n }\r\n\r\n nullable() {\r\n this.rule = this.rule.nullable();\r\n return this;\r\n }\r\n\r\n isFile() {\r\n this.rule = this.rule\r\n .required(\"A file is required\")\r\n .test(\"fileFormat\", \"Unsupported Format\", (value) => {\r\n if (value) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n return this;\r\n }\r\n\r\n shouldBeEqual(referenceField, invalidMessage, requiredMessage) {\r\n this.rule = this.rule\r\n .oneOf([Yup.ref(referenceField), null], invalidMessage)\r\n .required(requiredMessage);\r\n\r\n return this;\r\n }\r\n\r\n conditional(compareWithField, compareRule, invalidMessage, fieldType) {\r\n this.rule = this.rule.when(compareWithField, {\r\n is: compareRule,\r\n then: Yup[fieldType]().required(invalidMessage),\r\n otherwise: Yup[fieldType]().notRequired(),\r\n });\r\n return this;\r\n }\r\n\r\n fileType(fileType, invalidMessage, requiredMessage) {\r\n this.rule = this.rule\r\n .mixed()\r\n .test(\r\n \"fileFormat\",\r\n \"Unsupported Format\",\r\n (value) => value && \"application/pdf\".includes(value.type)\r\n );\r\n\r\n return this;\r\n }\r\n\r\n isNot(value, invalidMessage) {\r\n this.rule = this.rule.notOneOf([value], invalidMessage);\r\n return this;\r\n }\r\n\r\n isUUID(invalidMessage) {\r\n return this.regexMatchRule(commonRegex.UUID, invalidMessage);\r\n }\r\n\r\n isIBAN(invalidMessage) {\r\n return this.regexMatchRule(\r\n /^[A-z]{2}[a-z0-9A-Z\\s]{13,39}$/i,\r\n invalidMessage\r\n ); //TODO valid iban regex\r\n }\r\n\r\n isDecimal(invalidMessage) {\r\n return this.regexMatchRule(\r\n /^\\s*(?=.*[1-9])\\d*(?:\\.\\d{1,2})?\\s*$/,\r\n invalidMessage\r\n );\r\n }\r\n\r\n transform(callback) {\r\n this.rule = Yup.string().transform(callback);\r\n return this;\r\n }\r\n}\r\n\r\nexport const buildValidation = (rules) => {\r\n return Yup.object(rules);\r\n};\r\n\r\nexport const skipValidation = () => {\r\n return Yup.object({});\r\n};\r\n\r\nexport default new ValidationRule();","import styled from \"styled-components\";\r\n\r\nexport const InfoWrapper = styled.div`\r\n flex-basis: 100%;\r\n margin: 20px 2% 0 2%;\r\n display: flex;\r\n position: relative;\r\n margin-bottom: 40px;\r\n min-height: 80px;\r\n\r\n &.full {\r\n margin: 0;\r\n margin-bottom: 20px;\r\n }\r\n\r\n &.left {\r\n margin: 20px 2% 0 -15px;\r\n }\r\n\r\n &.pwa {\r\n min-height: 0px;\r\n margin: 40px 2% 40px 2%;\r\n }\r\n\r\n &.mv16 {\r\n margin-top: 16px;\r\n margin-bottom: 16px;\r\n }\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n bottom: -10px;\r\n left: 0;\r\n width: 100%;\r\n height: 1px;\r\n border-top: 1px solid #dddddd;\r\n }\r\n\r\n &.tight-border:before {\r\n bottom: 0px;\r\n }\r\n\r\n &.no-border:before {\r\n border-top:1px solid transparent;\r\n }\r\n\r\n &.column {\r\n flex-direction: column;\r\n }\r\n\r\n &.right {\r\n text-align:end;\r\n }\r\n\r\n & .content {\r\n padding: 0px 30px;\r\n }\r\n\r\n & .title {\r\n font-size: 16px;\r\n font-weight: 700;\r\n }\r\n\r\n & .small {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #707070;\r\n }\r\n\r\n & .keyval {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n &.tight {\r\n margin-bottom: 22px;\r\n }\r\n`;\r\n\r\nexport const PrimarySpan = styled.span`\r\n color:${p=>p.theme.primaryColor};\r\n`;\r\n\r\nexport const Separator = styled.div`\r\n width: 96%;\r\n height: 1px;\r\n border-top: 1px solid #dddddd;\r\n margin: 5px 0px 5px 2%;\r\n\r\n &.indent {\r\n width: 90%;\r\n margin: 5px auto;\r\n }\r\n\r\n &.black {\r\n border-color: #000;\r\n }\r\n`;\r\n\r\nexport const KeyText = styled.div`\r\n color: #898989;\r\n font-size: 12px;\r\n &.big {\r\n font-size:16px;\r\n }\r\n\r\n &.primary {\r\n color:${p=>p.theme.primaryColor};\r\n }\r\n\r\n &.inset {\r\n padding-left:20px;\r\n }\r\n`;\r\n\r\nexport const ValueText = styled.div`\r\n color: #000;\r\n font-weight: 700;\r\n font-size: 12px;\r\n\r\n &.big {\r\n font-size:16px;\r\n }\r\n\r\n &.primary {\r\n color:${p=>p.theme.primaryColor};\r\n }\r\n\r\n &.left {\r\n margin-left: -30px\r\n }\r\n\r\n &.light {\r\n color: #898989;\r\n }\r\n\r\n &.warning {\r\n color:#e69221;\r\n }\r\n \r\n &.danger {\r\n color:#E94E4E;\r\n }\r\n`;\r\n\r\nexport const VSpace = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size || 0}px;\r\n`;\r\n\r\nexport const RoundInfo = styled.img`\r\n width: 36px;\r\n height: 36px;\r\n min-height: 36px;\r\n min-width: 36px;\r\n margin-right: 16px;\r\n`;\r\n\r\nexport const InfoTitle = styled.div`\r\n font-size: 1rem;\r\n color: #000;\r\n flex-grow: 1;\r\n font-weight: bold;\r\n line-height: 16px;\r\n display: block;\r\n margin: 8px 0px 15px;\r\n\r\n &.tight {\r\n padding: 0px 15px;\r\n }\r\n\r\n &.pwa {\r\n text-align:center;\r\n margin-top: 35px;\r\n }\r\n\r\n &.primary {\r\n color: ${props => props.theme.primaryColor};\r\n font-size: 1.25rem;\r\n }\r\n\r\n label.checkbox {\r\n vertical-align: super !important;\r\n font-size: 1rem;\r\n }\r\n`;\r\n\r\nexport const InfoText = styled.div`\r\n font-size: 0.75rem;\r\n color: #898989;\r\n flex-grow: 1;\r\n font-weight: normal;\r\n line-height: 1rem;\r\n margin-bottom: 15px;\r\n\r\n &.dark {\r\n color: #000;\r\n }\r\n\r\n &.pwa {\r\n text-align: right;\r\n }\r\n\r\n > span {\r\n color: #000;\r\n }\r\n\r\n &.larger {\r\n font-size: 0.875rem;\r\n font-weight: 500;\r\n }\r\n &.justify {\r\n text-align:justify;\r\n }\r\n`;\r\n\r\nexport const ErrorMessage = styled.div`\r\n color: ${props => props.theme.error};\r\n margin: 0 2% 16px;\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n skipValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport { Checkbox, Radio } from \"../../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n margin: 24px 0;\r\n background-color: ${(p) => p.theme.sidebarWrapperBorderColor};\r\n`;\r\n\r\nconst CheckList = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin-left: 25px;\r\n`;\r\n\r\nconst validateInput = (t) =>\r\n yup.lazy((values) => {\r\n if (values.daikinPartnerStatus === \"2\") return skipValidation();\r\n return buildValidation({\r\n sapNumber: ValidationRule.isStringRule().required(\r\n t(\"forms:partners.wizard.sapNumberRequired\")\r\n ).rule,\r\n existsInSap: yup.boolean().required().oneOf([true]),\r\n hasVip4Set: yup.boolean().required().oneOf([true]),\r\n });\r\n });\r\n\r\nconst PartnerStatusWizard = (t, initialValues, companyName) => {\r\n return {\r\n title: t(\"forms:partners.wizard.title\"),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:partners.wizard.subtitle\"),\r\n fieldNames: [\r\n \"daikinPartnerStatus\",\r\n \"sapNumber\",\r\n \"existsInSap\",\r\n \"hasVip4Set\",\r\n \"sendEmailNotification\",\r\n ],\r\n validation: validateInput(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:partners.wizard.infoTitle\", { company: companyName })}\r\n \r\n {t(\"forms:partners.wizard.infoSubtitle\")}\r\n
    \r\n
    \r\n\r\n {\r\n formik.setFieldValue(\"daikinPartnerStatus\", \"1\");\r\n }}\r\n checked={formik.values[\"daikinPartnerStatus\"] === \"1\"}\r\n >\r\n\r\n {\r\n formik.setFieldValue(\"daikinPartnerStatus\", \"2\");\r\n }}\r\n checked={formik.values[\"daikinPartnerStatus\"] === \"2\"}\r\n >\r\n \r\n \r\n \r\n {\r\n // formik.setFieldValue(\"existsInSap\", e.target.checked);\r\n // }}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default PartnerStatusWizard;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport NullableCell from \"../../../../components/data/NullableCell\";\r\nimport companiesListStateModule from \"../../../../core/state/admin/companies/companiesListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport ActionsCell from \"./components/ActionsCell\";\r\nimport CompanyDetailSideBar from \"./components/CompanyDetailSideBar\";\r\nimport CompanyFilter from \"./components/CompanyFilter\";\r\nimport actionTypes from \"./components/filterCompanyActionTypes\";\r\nimport StatusCell from \"./components/StatusCell\";\r\nimport PartnerStatusCell from \"./components/PartnerStatusCell\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport useQueryString from \"../../../../hooks/_shared/useQueryString\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport PartnerStatusWizard from \"./components/PartnerStatusWizard\";\r\nimport RegistrationService from \"../../../../services/Registration/RegistrationService\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nconst filterReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SEARCH_EMAIL:\r\n state.filter.email = action.payload;\r\n break;\r\n case actionTypes.SEARCH_FULLNAME:\r\n state.filter.fullname = action.payload;\r\n break;\r\n case actionTypes.SEARCH_COMPANYNAME:\r\n state.filter.companyName = action.payload;\r\n break;\r\n case actionTypes.SEARCH_VAT:\r\n state.filter.vatNumber = action.payload;\r\n break;\r\n case actionTypes.SEARCH_LICENCENUMBER:\r\n state.filter.licenceNumber = action.payload;\r\n break;\r\n case actionTypes.SEARCH_STATUS:\r\n state.filter.status = action.payload;\r\n break;\r\n case actionTypes.SEARCH_STATUS_RESET:\r\n state.filter.status = \"\";\r\n break;\r\n case actionTypes.SEARCH_PARTNER_STATUS:\r\n state.filter.partnerStatus = action.payload;\r\n break;\r\n case actionTypes.SEARCH_PARTNER_STATUS_RESET:\r\n state.filter.partnerStatus = \"\";\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.page = action.payload.pageIndex + 1;\r\n state.pageSize = action.payload.pageSize;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.SET_COUNTRY:\r\n state.filter.countryId = action.payload;\r\n break;\r\n case actionTypes.RESET_COUNTRY:\r\n delete state.filter.countryId;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst CompanyListing = ({ companyType }) => {\r\n const {\r\n companies,\r\n isLoading,\r\n error,\r\n loadCompanies,\r\n loadCompanyById,\r\n details,\r\n deleteCompany,\r\n deleteData,\r\n } = useStateModule(companiesListStateModule);\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const status = useQueryString(\"status\");\r\n const activeStatus = useQueryString(\"activeStatus\");\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:companies\"),\r\n },\r\n {\r\n text:\r\n companyType === 0\r\n ? t(\"navigation:installationPartners\")\r\n : t(\"navigation:distributors\"),\r\n },\r\n ]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [detailViewKey, setDetailViewKey] = useState(null);\r\n\r\n const [companyState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n email: \"\",\r\n fullName: \"\",\r\n companyName: \"\",\r\n vatNumber: \"\",\r\n licenceNumber: \"\",\r\n status: status ? status.toString() : \"\",\r\n activeStatus: activeStatus ? activeStatus : null,\r\n companyType: companyType,\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"companyName\",\r\n descending: false,\r\n });\r\n\r\n useEffect(() => {\r\n loadCompanies(companyState);\r\n }, [loadCompanies, companyState]);\r\n\r\n const reloadCompanies = () => loadCompanies(companyState);\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"companyListing.headers.companyName\"),\r\n accessor: \"companyName\",\r\n },\r\n // {\r\n // Header: t(\"companyListing.headers.companyCreator\"),\r\n // accessor: \"fullName\",\r\n // },\r\n {\r\n Header: t(\"companyListing.headers.email\"),\r\n accessor: \"email\",\r\n },\r\n {\r\n Header: t(\"companyListing.headers.vat\"),\r\n accessor: \"vatNumber\",\r\n },\r\n {\r\n Header: t(\"companyListing.headers.licenseNumber\"),\r\n accessor: \"companyLicenceNumber\",\r\n Cell: NullableCell,\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: t(\"companyListing.headers.registrationStatus\"),\r\n accessor: \"userStatus\",\r\n Cell: StatusCell,\r\n },\r\n {\r\n Header: t(\"companyListing.headers.partnerStatus\"),\r\n accessor: \"partnerStatus\",\r\n Cell: PartnerStatusCell,\r\n },\r\n {\r\n id: t(\"companyListing.headers.actions\"),\r\n accessor: (row) => {\r\n return {\r\n companyId: row.companyId,\r\n companyCreatorId: row.companyCreatorId,\r\n userStatus: row.userStatus,\r\n partnerStatus: row.partnerStatus,\r\n companyName: row.companyName,\r\n };\r\n },\r\n Cell: (cell) => {\r\n return ActionsCell(\r\n cell.cell.value.companyCreatorId,\r\n cell.cell.value.userStatus,\r\n reloadCompanies,\r\n () => {\r\n deleteCompany(cell.cell.value.companyId).then(() => {\r\n reloadCompanies();\r\n });\r\n },\r\n deleteData.isLoading,\r\n true,\r\n cell.cell.value.partnerStatus,\r\n changePartnerStatus,\r\n cell.cell.value.companyId,\r\n cell.cell.value.companyName\r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ],\r\n //eslint-disable-next-line\r\n [t, companyState.page]\r\n );\r\n\r\n const changePartnerStatus = async (companyId, companyName, partnerStatus) => {\r\n const res = await RegistrationService.getPartnerStatus(companyId);\r\n const status = res.data.data[0];\r\n const partnerInitialValues = {\r\n daikinPartnerStatus: status.daikinPartnerStatus === 2 ? \"2\" : \"1\",\r\n sapNumber: status.sapNumber || \"\",\r\n existsInSap: status.existsInSap && status.sapNumber,\r\n hasVip4Set: status.hasVip4Set,\r\n sendEmailNotification: false,\r\n };\r\n ModalWizard.show(PartnerStatusWizard(t, partnerInitialValues, companyName), {\r\n onSubmit: async (values) => {\r\n values.daikinPartnerStatus = Number(values.daikinPartnerStatus);\r\n values.companyId = companyId;\r\n const result = await RegistrationService.setPartnerStatus(values);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n toast.success(t(\"forms:partners.wizard.success\"));\r\n ModalWizard.hide();\r\n loadCompanies(companyState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n };\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n setDetailViewKey(row.original.companyId);\r\n await loadCompanyById(row.original.companyId);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [loadCompanyById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setDetailViewKey(null);\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const pageChange = usePageChange(dispatch, companyState);\r\n\r\n const sortChange = (sortBy) => {\r\n if (sortBy.length > 0) {\r\n dispatch({ type: \"SET_SORT\", payload: sortBy });\r\n }\r\n };\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: companyState.orderColumn, desc: companyState.descending }];\r\n }, [companyState.orderColumn, companyState.descending]);\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:companyListing.title\")}\r\n \r\n }\r\n detailViewIsOpened={detailViewIsOpened}\r\n filterTitle={t(\"filters:adminCompanyListing.filterTitle\")}\r\n filterComponent={() => (\r\n \r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CompanyListing;\r\n","import { useEffect, useRef } from \"react\";\r\nimport useImmerReducer from \"./useImmerReducer\";\r\n\r\nconst initialDataState = {\r\n isLoading: false,\r\n data: null,\r\n error: null,\r\n isCompleted: false,\r\n};\r\n\r\nconst useDataReducer = (dataMethod, preserveData = false) => {\r\n const renderCount = useRef(0);\r\n const [dataState, dispatch] = useImmerReducer(\r\n dataReducer,\r\n initialDataState\r\n );\r\n\r\n\r\n function dataReducer(state, action) {\r\n switch (action.type) {\r\n case \"DATA_LOADING\":\r\n state.isLoading = true;\r\n if(!preserveData) {\r\n state.data = null;\r\n }\r\n state.error = null;\r\n state.isCompleted = false;\r\n break;\r\n case \"DATA_SUCCESS\":\r\n state.isLoading = false;\r\n state.data = action.payload;\r\n state.error = null;\r\n state.isCompleted = true;\r\n break;\r\n case \"DATA_ERROR\":\r\n state.isLoading = false;\r\n if(!preserveData) {\r\n state.data = null;\r\n }\r\n state.error = action.payload;\r\n state.isCompleted = false;\r\n break;\r\n default:\r\n return state;\r\n }\r\n }\r\n\r\n const loading = () => {\r\n dispatch({ type: \"DATA_LOADING\" });\r\n };\r\n\r\n const error = (err) => {\r\n dispatch({ type: \"DATA_ERROR\", payload: err });\r\n };\r\n\r\n const success = (res) => {\r\n dispatch({ type: \"DATA_SUCCESS\", payload: res });\r\n };\r\n\r\n const executeAction = async (params) => {\r\n const currentRender = renderCount.current;\r\n try {\r\n loading();\r\n const res = await dataMethod(params);\r\n\r\n if (currentRender === renderCount.current) {\r\n success(res);\r\n }\r\n } catch (err) {\r\n if (currentRender === renderCount.current) {\r\n error(err);\r\n }\r\n }\r\n };\r\n useEffect(() => {\r\n renderCount.current++;\r\n return () => renderCount.current--;\r\n });\r\n return [dataState, executeAction];\r\n};\r\n\r\nexport default useDataReducer;\r\n","import { useEffect } from \"react\";\r\nimport useDataReducer from \"./useDataReducer\";\r\n\r\nconst useDataReducerImmediate = (dataMethod, params = {}) => {\r\n const [data, loadData] = useDataReducer(dataMethod);\r\n useEffect(() => {\r\n loadData(params);\r\n }, []);\r\n\r\n return [data, loadData];\r\n};\r\n\r\nexport default useDataReducerImmediate;\r\n","import {config} from '../Config/config.prod';\r\nimport api from '../getAxios';\r\n\r\nconst StatisticsService = {\r\n getMarketplaceCounts: async () => {\r\n return (await api.get(config.apiUrl.getMarketplaceCounts)).data.data[0];\r\n },\r\n getUsersCounts: async () => {\r\n return (await api.get(config.apiUrl.getUserCounts)).data.data[0];\r\n },\r\n getUserOnboarding: async (filter) => {\r\n return (await api.post(config.apiUrl.getUserOnboarding, filter)).data.data;\r\n },\r\n getCompanyOnboarding: async (filter) => {\r\n return (await api.post(config.apiUrl.getCompanyOnboarding, filter)).data.data;\r\n },\r\n \r\n getCompaniesCounts: async id => {\r\n return (await api.get(config.apiUrl.getCompaniesCounts)).data.data[0];\r\n },\r\n extractedFGas: async () => {\r\n return (await api.get(config.apiUrl.extractedFGas)).data.data;\r\n },\r\n extractedFGasAdmin: async (companyId) => {\r\n let url = config.apiUrl.extractedFGasAdmin;\r\n if(companyId) {\r\n url+= \"?companyId=\" + companyId;\r\n }\r\n return (await api.get(url)).data.data;\r\n },\r\n extractions: async (filter) => {\r\n return (await api.post(config.apiUrl.extractions, filter)).data.data;\r\n },\r\n extractionsAdmin: async (filter) => {\r\n return (await api.post(config.apiUrl.extractionsAdmin, filter)).data.data;\r\n },\r\n companyStock: async (filter) => {\r\n return (await api.post(config.apiUrl.dashboardCompanyStock, filter)).data.data;\r\n },\r\n technicianStock: async (filter) => {\r\n return (await api.post(config.apiUrl.dashBoardTechnicianStock, filter)).data.data;\r\n },\r\n tradedRefrigerants: async () => {\r\n return (await api.get(config.apiUrl.dashBoardMarketPlaceTrades)).data.data;\r\n },\r\n tradedRefrigerantsAverages: async (filter) => {\r\n return (await api.post(config.apiUrl.dashBoardMarketPlaceAverages, filter)).data.data;\r\n },\r\n tradedRefrigerantsAveragesAdmin: async (filter) => {\r\n return (await api.post(config.apiUrl.dashBoardMarketPlaceAveragesAdmin, filter)).data.data;\r\n },\r\n tradedQuantityPerDate: async (filter) => {\r\n return (await api.post(config.apiUrl.dashBoardMarketPlaceTradesPerDate, filter)).data.data;\r\n },\r\n};\r\n\r\nexport default StatisticsService;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst ChartHeaderWrapper = styled.div`\r\n margin-top:${p=>p.marginTop};\r\n display: inline-block;\r\n font-size: 18px;\r\n width:100%;\r\n`;\r\n\r\nconst TitleWrapper = styled.div`\r\n float: left;\r\n font-weight: 500;\r\n color: #333;\r\n`;\r\n\r\nconst TooltipWrapper = styled.div`\r\n float: right;\r\n font-size:10px;\r\n`;\r\n\r\nconst ChartHeader = (props) => {\r\n const { title, subtitle, tooltip, marginTop } = props;\r\n\r\n return (\r\n\r\n \r\n \r\n {title} {subtitle}\r\n \r\n {\r\n tooltip && (\r\n {tooltip}\r\n )\r\n }\r\n\r\n \r\n );\r\n};\r\n\r\nexport default ChartHeader;","const DASHBOARD_CONSTANTS = {\r\n COLORS : ['#2B736B', '#94C21C', '#F0C40D', '#FF8042'],\r\n FONT_COLOR: '#AAAEB3',\r\n PERIODS: {\r\n WEEK : 'week',\r\n MONTH : 'month',\r\n DAY : 'day',\r\n },\r\n actionTypes : {\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n SET_COMPANY_ID: \"SET_COMPANY_ID\"\r\n },\r\n lineChartColor : \"#6980BF\"\r\n};\r\n\r\n\r\nexport default DASHBOARD_CONSTANTS;\r\nexport let PRESUMED_GRADES = [\r\n { name: \"A\", type: 'circle', id: 0, color: DASHBOARD_CONSTANTS.COLORS[0] },\r\n { name: \"B\", type: 'circle', id: 1, color: DASHBOARD_CONSTANTS.COLORS[1] },\r\n { name: \"C\", type: 'circle', id: 2, color: DASHBOARD_CONSTANTS.COLORS[2] }\r\n];\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1383\",\n \"data-name\": \"Group 1383\",\n transform: \"translate(-574.512 -788.347)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Block-Chart_1\",\n \"data-name\": \"Block-Chart 1\",\n transform: \"translate(596.607 792.301)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1330\",\n \"data-name\": \"Group 1330\",\n transform: \"translate(7.908)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_789\",\n \"data-name\": \"Path 789\",\n d: \"M3.977,118.616A1.868,1.868,0,0,1,2,116.639V1.977A1.868,1.868,0,0,1,3.977,0,1.868,1.868,0,0,1,5.954,1.977V116.639A1.868,1.868,0,0,1,3.977,118.616Z\",\n transform: \"translate(-2)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1331\",\n \"data-name\": \"Group 1331\",\n transform: \"translate(0 106.754)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_790\",\n \"data-name\": \"Path 790\",\n d: \"M116.639,30.954H1.977a1.977,1.977,0,1,1,0-3.954H116.639a1.977,1.977,0,1,1,0,3.954Z\",\n transform: \"translate(0 -27)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1332\",\n \"data-name\": \"Group 1332\",\n transform: \"translate(23.723 43.492)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_791\",\n \"data-name\": \"Path 791\",\n d: \"M23.792,62.4H7.977A1.868,1.868,0,0,1,6,60.423V12.977A1.868,1.868,0,0,1,7.977,11H23.792a1.868,1.868,0,0,1,1.977,1.977V60.423A1.868,1.868,0,0,1,23.792,62.4ZM9.954,58.446H21.815V14.954H9.954Z\",\n transform: \"translate(-6 -11)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1333\",\n \"data-name\": \"Group 1333\",\n transform: \"translate(86.985 27.677)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_792\",\n \"data-name\": \"Path 792\",\n d: \"M39.792,74.216H23.977A1.868,1.868,0,0,1,22,72.239V8.977A1.868,1.868,0,0,1,23.977,7H39.792a1.868,1.868,0,0,1,1.977,1.977V72.239A1.868,1.868,0,0,1,39.792,74.216ZM25.954,70.262H37.815V10.954H25.954Z\",\n transform: \"translate(-22 -7)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1334\",\n \"data-name\": \"Group 1334\",\n transform: \"translate(55.354 3.954)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_793\",\n \"data-name\": \"Path 793\",\n d: \"M31.792,91.939H15.977A1.868,1.868,0,0,1,14,89.962V2.977A1.868,1.868,0,0,1,15.977,1H31.792a1.868,1.868,0,0,1,1.977,1.977V89.962A1.868,1.868,0,0,1,31.792,91.939ZM17.954,87.985H29.815V4.954H17.954Z\",\n transform: \"translate(-14 -1)\",\n fill: \"#d5d5d5\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1382\",\n \"data-name\": \"Group 1382\",\n transform: \"translate(575.915 789.75)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_69\",\n \"data-name\": \"Line 69\",\n y1: 119.332,\n x2: 154.545,\n transform: \"translate(3.705 1.749)\",\n fill: \"none\",\n stroke: \"#d5d5d5\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_70\",\n \"data-name\": \"Line 70\",\n y1: 120.843,\n x2: 156.501,\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_774\",\n \"data-name\": \"Path 774\",\n d: \"M0,120.843,156.5,0\",\n transform: \"translate(3.499 3.499)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n})));\n\nvar SvgNoChartData = function SvgNoChartData(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 162.805,\n height: 127.147,\n viewBox: \"0 0 162.805 127.147\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNoChartData, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/no-chart-data.74d9e453.svg\";\nexport { ForwardRef as ReactComponent };","import styled from \"styled-components\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport { ReactComponent as NoDataSvg } from \"../../assets/no-chart-data.svg\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nconst ChartHeaderContainer = styled.div`\r\n padding: 25px 30px 0px 30px;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n &.grow {\r\n flex-grow: 1;\r\n }\r\n`;\r\n\r\nconst RelativeDiv = styled.div`\r\n position: relative;\r\n height: 100%;\r\n`;\r\n\r\nconst LeftContainer = styled(Flex.Container)`\r\n width: 80%;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n order: 2;\r\n width: 100%;\r\n margin: 40px 0px 0px 0px;\r\n }\r\n`;\r\n\r\nconst RightContainer = styled(Flex.Column)`\r\n min-width: 260px;\r\n width: 20%;\r\n\r\n \r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n width: 100%;\r\n }\r\n\r\n`;\r\nconst NoDataWrapper = styled.div`\r\n opacity: 0;\r\n width: 100%;\r\n height: calc(100% - 40px);\r\n position: absolute;\r\n top: 40px;\r\n left: 0;\r\n pointer-events: none;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n color: #d5d5d5;\r\n transition: opacity 0s;\r\n\r\n &.show {\r\n opacity: 1;\r\n transition: opacity 1s;\r\n }\r\n\r\n &.bar {\r\n top: 0px;\r\n }\r\n`;\r\n\r\nconst LineChartContainer = styled(Flex.Column)`\r\n padding-top: 25px;\r\n min-width: 200px;\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst SvgNoData = styled(NoDataSvg)`\r\n width: 100%;\r\n`;\r\n\r\nconst BarChartMargin = {\r\n top: 40,\r\n bottom: 5,\r\n left: -30,\r\n};\r\n\r\nconst BarChartMarginSides = {\r\n left: 40,\r\n right: 40,\r\n};\r\n\r\nconst LegendWrapper = {\r\n top: 0,\r\n right: -30,\r\n};\r\n\r\nconst MiddleContainer = styled(Flex.Column)`\r\n padding-top: 25px;\r\n min-width: 200px;\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\n\r\nconst Column = styled.div`\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 24px;\r\n min-height: 685px;\r\n\r\n &.between {\r\n justify-content: space-between;\r\n }\r\n\r\n &.border {\r\n border: 1px solid #979797;\r\n border-radius: 12px;\r\n }\r\n`;\r\n\r\nconst Link = styled(NavLink)`\r\n cursor: pointer;\r\n min-width: 70px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 12px;\r\n text-align: center;\r\n padding: 0 20px;\r\n position: relative;\r\n text-align: center;\r\n border: none;\r\n background: none;\r\n font-weight: 600;\r\n color:${p => p.theme.secondaryColor};\r\n text-decoration: none;\r\n`;\r\n\r\nconst DashboardStyles = {\r\n ChartHeaderContainer: ChartHeaderContainer,\r\n RightContainer: RightContainer,\r\n RelativeDiv: RelativeDiv,\r\n NoDataWrapper: NoDataWrapper,\r\n LineChartContainer: LineChartContainer,\r\n LeftContainer: LeftContainer,\r\n SvgNoData: SvgNoData,\r\n Legend: {\r\n Wrapper: LegendWrapper,\r\n },\r\n BarChart: {\r\n MarginSides: BarChartMarginSides.left,\r\n Margin: BarChartMargin\r\n },\r\n MiddleContainer: MiddleContainer,\r\n Column: Column,\r\n Link: Link\r\n\r\n};\r\n\r\nexport default DashboardStyles;","const DashboardTheme = {\r\n PrimaryBarColor: '#2B736B',\r\n SecondaryBarColor: '#94C21C',\r\n ThirdBarColor: '#F0C40D',\r\n FourthBarColor: '#FF8042',\r\n borderColor: '#ECEDEF',\r\n FontColor: '#AAAEB3'\r\n};\r\n\r\nexport default DashboardTheme;","import styled from \"styled-components\";\r\n\r\nconst Wrapper = styled.div`\r\n float: right;\r\n width: 137px;\r\n font-size: 12px;\r\n`;\r\n\r\nconst Label = styled.span`\r\n float: right;\r\n`;\r\n\r\nconst List = styled.ul`\r\n list-style: none;\r\n padding: 0;\r\n margin-top: 30px;\r\n`;\r\n\r\nconst Item = styled.li`\r\n height: 40px;\r\n color: #aaaeb3;\r\n`;\r\n\r\nconst Text = styled.div`\r\n float: left;\r\n padding-top:10px;\r\n margin: auto;\r\n\r\n & span {\r\n padding-left: 6px;\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst ProgressStyles = {\r\n Wrapper: Wrapper,\r\n Label: Label,\r\n List: List,\r\n Item: Item,\r\n Text: Text\r\n};\r\n\r\nexport default ProgressStyles;","import React from \"react\";\r\nimport {\r\n Surface,\r\n Symbols,\r\n} from \"recharts\";\r\n\r\nimport styled from \"styled-components\";\r\nconst LegendList = styled.ul`\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n`;\r\n\r\nconst LegendItem = styled.li`\r\n color: #aaaeb3;\r\n font-size: 14px;\r\n display: inline-block;\r\n padding-right: 10px;\r\n\r\n & span {\r\n padding-left: 6px;\r\n }\r\n`;\r\n\r\nconst CustomLegend = ({\r\n data,\r\n suffix,\r\n}) => {\r\n return (\r\n \r\n {data?.map((item, index) => (\r\n \r\n \r\n \r\n \r\n {`${item.name}${suffix? \" \" + suffix: \"\"}`}\r\n \r\n ))}\r\n \r\n );\r\n};\r\nexport default CustomLegend;","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Pie, PieChart, Cell, Label } from 'recharts';\r\nimport ChartHeader from \"./ChartHeader\";\r\n\r\nexport const COLORS = ['#2B736B', '#94C21C', '#F0C40D', '#FF8042'];\r\n\r\nconst ChartWrapper = styled.div`\r\n padding:24px;\r\n`;\r\n\r\nexport const FONT_COLOR = '#AAAEB3';\r\n\r\nconst ChartPieGasQuality = (props) => {\r\n const { width, height, data, title, style, unit, isInt } = props;\r\n\r\n const total = data? parseFloat(data.reduce((sum, current) => sum + current.value, 0)) : 0;\r\n const totalFormatted = isInt === true ? total.toString(): total.toFixed(2);\r\n const label = `${totalFormatted} ${unit? unit: 'kg'}`;\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default ChartPieGasQuality;","import React from \"react\";\r\n\r\nconst ProgressBar = (props) => {\r\n const { bgcolor, completed, height = 8 } = props;\r\n\r\n const containerStyles = {\r\n height: height,\r\n width: '100%',\r\n backgroundColor: \"#e0e0de\",\r\n borderRadius: height/2,\r\n display: \"inline-block\"\r\n }\r\n\r\n const fillerStyles = {\r\n height: '100%',\r\n width: `${completed}%`,\r\n backgroundColor: bgcolor,\r\n borderRadius: 'inherit',\r\n textAlign: 'right'\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ProgressBar;","import styled from \"styled-components\";\r\nimport DashboardTheme from \"./DashboardTheme\";\r\n\r\nconst ListWrapper = styled.ul`\r\n list-style: none;\r\n padding: 0px;\r\n border-top:2px solid ${DashboardTheme.borderColor};\r\n margin: 0px;\r\n \r\n`;\r\n\r\nconst TitleContainer = styled.div`\r\n display: inline-block;\r\n font-size: 20px;\r\n padding: 24px;\r\n width:100%;\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 20px;\r\n font-weight: 500;\r\n display: inline;\r\n float: left;\r\n`;\r\n\r\nconst CountWrapper = styled.div`\r\n float: right;\r\n display: inline-block;\r\n position: relative;\r\n color: ${props => props.theme.primaryColor};\r\n`;\r\n\r\nconst ColumnContainer = styled.div`\r\n border-radius: 16px;\r\n background-color: white;\r\n box-shadow: 0 0 20px rgb(0 0 0 / 8%);\r\n`;\r\n\r\nconst Item = styled.li`\r\n border-bottom: solid 1px #ECEDEF;\r\n font-size:12px; \r\n\r\n\r\n &.selected {\r\n background-color: #E9F2ED;\r\n font-size: 16px;\r\n font-weight: bold;\r\n }\r\n\r\n .parent {\r\n padding: 14px 24px;\r\n cursor: pointer;\r\n \r\n span {\r\n color: black;\r\n font-weight: 500;\r\n \r\n }\r\n } \r\n\r\n .content {\r\n padding: 10px 40px;\r\n\r\n a, span {\r\n color:${p => p.theme.secondaryColor};\r\n text-decoration: none;\r\n \r\n &:hover {\r\n color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n }\r\n } \r\n`;\r\n\r\nconst Content = styled.div`\r\n padding: 14px 40px;\r\n`;\r\n\r\nconst Detail = styled.div`\r\n display: inline;\r\n vertical-align: middle;\r\n \r\n a {\r\n padding-left: 12px;\r\n text-decoration: none; \r\n }\r\n\r\n span {\r\n color: black;\r\n font-weight: 500;\r\n \r\n }\r\n`;\r\n\r\n\r\nconst Metric = styled.span`\r\n float: right;\r\n\r\n`;\r\n\r\nconst Menu = {\r\n ListWrapper: ListWrapper,\r\n TitleContainer: TitleContainer,\r\n ColumnContainer: ColumnContainer,\r\n Item: Item,\r\n Content: Content,\r\n Detail: Detail,\r\n Metric: Metric,\r\n Title: Title,\r\n CountWrapper: CountWrapper\r\n};\r\n\r\nexport default Menu;","import React from \"react\";\r\nimport Menu from \"../../../../../components/dashboard/Menu\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nconst ChildrenItems = ({ data }) => {\r\n return ( \r\n \r\n\r\n { \r\n data.map((item) =>\r\n (\r\n \r\n
    \r\n \r\n {\r\n item.url ? \r\n \r\n {item.name}\r\n :\r\n {item.name}\r\n }\r\n \r\n {item.count}\r\n \r\n \r\n
    \r\n \r\n ))\r\n }\r\n \r\n
    \r\n)}\r\n\r\nconst MenuItems = ({ data, hasChildren }) => {\r\n\r\n return (\r\n \r\n { data.map((item) =>\r\n (\r\n \r\n
    \r\n \r\n {\r\n item.url ? \r\n \r\n {item.name}\r\n \r\n :\r\n {item.name}\r\n }\r\n \r\n {item.count}\r\n \r\n \r\n
    \r\n\r\n {\r\n item.items && hasChildren && (\r\n \r\n\r\n \r\n )\r\n }\r\n\r\n \r\n ))}\r\n
    \r\n )\r\n};\r\n\r\nconst AdminDashboardMenu = ({ items, title, style, hasChildren, className }) => {\r\n const count = items? items.reduce((count, current) => count + current.count, 0): 0;\r\n return (\r\n\r\n \r\n \r\n \r\n {title}\r\n \r\n\r\n \r\n {count}\r\n \r\n\r\n \r\n \r\n \r\n\r\n )\r\n};\r\n\r\nexport default AdminDashboardMenu;\r\n","import helpers from \"../../core/helpers\";\r\nimport _ from 'lodash'\r\nconst dataFunctions = {\r\n\r\n getExtractedFGasData (extractedFGasState) {\r\n const rawData = extractedFGasState && extractedFGasState.data ? extractedFGasState.data : [];\r\n\r\n const data = _(rawData)\r\n .groupBy(x => x.refrigerantId)\r\n .map((values, key) =>\r\n ({\r\n refrigerantId: key,\r\n refrigerantGasTypeCode: values[0].refrigerantGasTypeCode,\r\n quantity: _.sumBy(values, 'quantity'),\r\n values: values,\r\n firstExtractionDate: helpers.minDate(values.map(a=> a.firstExtractionDate)),\r\n lastExtractionDate: helpers.maxDate(values.map(a=> a.lastExtractionDate)),\r\n })).value();\r\n\r\n const sortedData = _.orderBy(data, ['quantity'], ['desc']);\r\n\r\n return sortedData;\r\n },\r\n \r\n buildUrl(link, filter) {\r\n\r\n return link + \"?Filter=\" + filter;\r\n },\r\n\r\n\r\n}\r\n\r\nexport default dataFunctions;","import i18next from \"i18next\";\r\nimport React, { useRef, useState, useEffect } from \"react\";\r\nimport ReactDatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { ReactComponent as ResetSvg } from \"../../assets/close.svg\";\r\nimport { Label } from \"../elements/form-elements\";\r\n\r\nconst StyledReset = styled(ResetSvg)`\r\n position: absolute;\r\n right: 12px;\r\n width: 12px;\r\n height: 12px;\r\n transition: all 300ms ease;\r\n z-index: 2;\r\n\r\n &:hover .lines {\r\n stroke: #e94e4e;\r\n }\r\n`;\r\n\r\nconst StyledDatePickerWrapper = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n\r\n & .react-datepicker-wrapper {\r\n width: 100%;\r\n float: left;\r\n }\r\n\r\n & .react-datepicker-popper {\r\n z-index: 10000;\r\n }\r\n\r\n & input[value=\"\"],\r\n & input[value=\"-\"],\r\n & input:not([value]) {\r\n padding-left: 8px !important;\r\n }\r\n`;\r\n\r\nconst InputWrapper = styled.div`\r\n & input {\r\n margin: 10px;\r\n width: 100px !important;\r\n color: #2294d2;\r\n font-weight: 600;\r\n }\r\n & label {\r\n color: #aaaeb3;\r\n float: left;\r\n }\r\n`;\r\n\r\nconst StyledDatePicker = styled(ReactDatePicker)`\r\n background: none;\r\n float: left;\r\n border: none;\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n background: #f5f5f5;\r\n `};\r\n`;\r\n\r\nconst ChartDatePicker = (props) => {\r\n let {\r\n labelText,\r\n name,\r\n style,\r\n selected,\r\n disabled,\r\n filter = \"\",\r\n className,\r\n mode,\r\n value,\r\n values,\r\n placeholder,\r\n maxDate,\r\n minDate,\r\n } = props;\r\n\r\n useEffect(() => {\r\n setCurrentDate(selected);\r\n }, [selected]);\r\n\r\n const inputEl = useRef();\r\n const iniValue = value || (values ? values[name] : \"\");\r\n const [currentDate, setCurrentDate] = useState(selected || iniValue);\r\n const date = new Date();\r\n let today = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n const isFutureDate = (date) => date >= today;\r\n const isPasteDate = (date) => date <= today;\r\n let filterDate = () => true;\r\n if (filter === \"future\") filterDate = isFutureDate;\r\n else if (filter === \"past\") filterDate = isPasteDate;\r\n return (\r\n \r\n \r\n \r\n {\r\n props.handleChange && props.handleChange(date);\r\n setCurrentDate(date);\r\n }}\r\n popperPlacement=\"bottom-start\"\r\n popperModifiers={{\r\n preventOverflow: {\r\n enabled: true,\r\n escapeWithReference: false,\r\n boundariesElement: \"viewport\",\r\n },\r\n }}\r\n />\r\n\r\n {currentDate && (\r\n {\r\n props.handleChange && props.handleChange(\"\");\r\n setCurrentDate(\"\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ChartDatePicker;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Filters from \"../../components/filter/Filters\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport ChartDatePicker from \"./ChartDatePicker\";\r\n\r\nconst WEEK = 'week';\r\nconst MONTH = 'month';\r\nconst DAY = 'day';\r\n\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nconst TitleWrapper = styled.div`\r\n font-weight: 500;\r\n color: #333;\r\n font-size: 18px;\r\n`;\r\n\r\nconst Button = styled.button`\r\n cursor: pointer;\r\n min-width: 70px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 12px;\r\n text-align: center;\r\n padding: 0 20px;\r\n position: relative;\r\n text-align: center;\r\n border: none;\r\n background: none;\r\n\r\n &.primary {\r\n color: #2294D2;\r\n font-weight: 600;\r\n }\r\n\r\n &.secondary {\r\n color: #AAAEB3;\r\n }\r\n\r\n`;\r\n\r\nconst Item = styled.div`\r\n margin: 0 12px 10px 0;\r\n\r\n & > * {\r\n margin-top: 0px;\r\n }\r\n\r\n & * {\r\n font-size: 12px;\r\n }\r\n\r\n`;\r\n\r\nexport const FilterGroup = styled.div`\r\n display: flex;\r\n & ${Item}:first-child {\r\n margin-right: 0px;\r\n }\r\n\r\n flex-wrap: wrap;\r\n`;\r\n\r\nconst FilterWrapper = styled(Filters.Wrapper)`\r\n margin-left: auto;\r\n order: 2;\r\n flex-wrap: wrap;\r\n\r\n & input {\r\n margin: 0px 0 2px !important;\r\n }\r\n`;\r\n\r\n\r\n\r\nconst ChartDates = ({\r\n selectedPeriodGrouping,\r\n setSelectedPeriodGrouping,\r\n filterState,\r\n title,\r\n handleDateFromFilterChange,\r\n handleDateToFilterChange\r\n}) => {\r\n\r\n const GetDateGroupingButtonClass = (group) => {\r\n return selectedPeriodGrouping === group ? \"primary\" : \"secondary\";\r\n }\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n ev.preventDefault();\r\n setSelectedPeriodGrouping(DAY);\r\n\r\n }}>\r\n {t(\"charts.day\")}\r\n \r\n \r\n \r\n {\r\n ev.preventDefault();\r\n setSelectedPeriodGrouping(WEEK);\r\n }}>\r\n {t(\"charts.week\")}\r\n \r\n \r\n \r\n {\r\n ev.preventDefault();\r\n setSelectedPeriodGrouping(MONTH);\r\n }}>\r\n {t(\"charts.month\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleDateFromFilterChange(date)\r\n }\r\n } />\r\n\r\n \r\n \r\n {\r\n handleDateToFilterChange(date)\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n );\r\n}\r\n\r\nexport default ChartDates;","import styled from \"styled-components\";\r\n\r\n\r\nconst TooltipContainer = styled.div`\r\n background: white;\r\n padding: 6px;\r\n border-radius: 8px;\r\n background-color: white;\r\n box-shadow: 0 0 20px rgb(0 0 0 / 8%);\r\n`;\r\n\r\nexport default TooltipContainer;","\r\nimport styled from \"styled-components\";\r\nimport React from \"react\";\r\n\r\nconst ItemList = styled.ul`\r\nlist-style: none;\r\npadding: 0;\r\n`;\r\n\r\nconst Item = styled.li`\r\nwidth: 100%;\r\npadding: 2px 0px; \r\n`;\r\n\r\nconst TooltipItemList = ({\r\n items,\r\n isInt,\r\n unit\r\n}) => {\r\n return (\r\n \r\n {\r\n items.map((item) =>\r\n (\r\n \r\n \r\n {\r\n `${item.name}: `\r\n }\r\n {\r\n `${isInt ? item.value : item.value.toFixed(2)} ${unit ? unit : \"\"}`\r\n }\r\n \r\n\r\n \r\n ))\r\n }\r\n \r\n );\r\n};\r\nexport default TooltipItemList;","import React from \"react\";\r\nimport TooltipContainer from \"./TooltipContainer\";\r\nimport TooltipItemList from \"./TooltipItemList\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst ValueList = styled.ul`\r\n list-style: none;\r\n padding: 0;\r\n`;\r\n\r\nconst ValueElement = styled.li`\r\n width: 100%;\r\n padding: 2px; \r\n`;\r\n\r\nconst LabelContainer = styled.div`\r\n font-weight: bold;\r\n padding: 6px;\r\n`;\r\n\r\nconst Total = styled.div`\r\n padding-top: 12px;\r\n font-weight: 600;\r\n`;\r\n\r\nconst ViewDetails = styled.div`\r\n color:${p => p.theme.secondaryColor};\r\n font-weight: 100;\r\n font-size: 12px;\r\n font-style: italic;\r\n text-align: right;\r\n`;\r\n\r\nconst ListItems = ({ items, unit, isInt, value, top }) => {\r\n const { t } = useTranslation();\r\n return (\r\n <>\r\n\r\n \r\n\r\n \r\n \r\n\r\n {\r\n `${t(\"screens:dashboard.tooltip.total\")}: ${isInt ? value : value.toFixed(2)} ${unit ? unit : \"\"}`\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nconst SummaryLine = ({ item, unit, isInt, payload }) => {\r\n return (\r\n <>\r\n\r\n
    \r\n {\r\n item.name && payload.length > 1 ? `${item.name}: ` : null\r\n }\r\n\r\n {`${isInt ? item.value : item.value.toFixed(2)} ${unit ? unit : \"\"}`}\r\n
    \r\n \r\n )\r\n}\r\n\r\n\r\nconst CustomTooltip = ({ active, payload, label, unit, colors, isInt, showDrillDown }) => {\r\n const { t } = useTranslation();\r\n if (active && payload && payload.length) {\r\n return (\r\n <>\r\n \r\n {\r\n label && (\r\n {`${label}: `}\r\n )\r\n }\r\n \r\n {payload ? payload.map((item, index) => (\r\n\r\n \r\n\r\n {\r\n item.payload && item.payload.items && item.payload.items.length > 0 && showDrillDown ?\r\n\r\n \r\n :\r\n \r\n }\r\n \r\n\r\n )) : null}\r\n \r\n {\r\n showDrillDown &&\r\n \r\n\r\n {t(\"screens:dashboard.tooltip.clickMoreDetails\")}\r\n \r\n \r\n }\r\n\r\n \r\n\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default CustomTooltip;","import React, { useRef } from \"react\";\r\nimport useClickAway from \"../../hooks/_shared/useClickAway\";\r\nimport DetailSideBar from \"../modal/DetailSideBar\";\r\nimport AccordionWrapper from \"../../components/toggle-view/AccordionWrapper\";\r\nimport SidebarField from \"../../components/elements/sidebar/SidebarField\";\r\n\r\nconst ChartDataSidebar = ({\r\n data,\r\n title,\r\n unit,\r\n valueLabel,\r\n countLabel,\r\n isLoading,\r\n closeSideBar,\r\n}) => {\r\n const sideBarRef = useRef(null);\r\n const shouldShow = !isLoading && data;\r\n\r\n useClickAway(sideBarRef, () => {\r\n try {\r\n closeSideBar();\r\n }\r\n catch (ex) { }\r\n });\r\n\r\n return (\r\n <>\r\n {shouldShow && data && Array.isArray(data) && (\r\n \r\n {\r\n data.map((item) => \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ChartDataSidebar;\r\n","import { ReactComponent as NoDataSvg } from \"../../assets/no-chart-data.svg\";\r\nimport styled from \"styled-components\";\r\n\r\nconst NoDataWrapper = styled.div`\r\n opacity: 0;\r\n width: 100%;\r\n height: 100%;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n pointer-events: none;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n color: #d5d5d5;\r\n transition: opacity 0s;\r\n\r\n &.show {\r\n opacity: 1;\r\n transition: opacity 1s;\r\n }\r\n\r\n &.bar {\r\n top:0px;\r\n }\r\n`;\r\n\r\nconst SvgNoData = styled(NoDataSvg)`\r\n width: 100%;\r\n`;\r\n\r\nconst NoData = {\r\n Wrapper: NoDataWrapper,\r\n Icon: SvgNoData,\r\n};\r\n\r\nexport default NoData;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport _ from 'lodash'\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport helpers from \"../../core/helpers\";\r\nimport ChartDates from \"./ChartDates\";\r\nimport CustomTooltip from \"./CustomTooltip\";\r\nimport ChartDataSidebar from \"./ChartDataSidebar\";\r\nimport NoData from \"./NoData\";\r\nimport {\r\n ComposedChart, Area, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid,\r\n} from 'recharts';\r\n\r\n//known bug in recharts that it renders chart \r\nconst ChartWrapper = styled.div`\r\n margin-left: -40px;\r\n height: 100%;\r\n`;\r\n\r\nconst Container = styled.div`\r\n padding-right: ${p => p.paddingRight || \"30px\"};\r\n padding: 25px 30px 30px 0px;\r\n height: ${p => p.height || \"20%\"};\r\n min-height: ${p => p.height || \"20%\"};\r\n flex-grow: 1;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n padding-right: ${p => p.paddingRight || \"0px\"};\r\n \r\n }\r\n`;\r\n\r\nconst ChartContainer = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst WEEK = 'week';\r\nconst MONTH = 'month';\r\nconst DAY = 'day';\r\n\r\nconst VALUE_COLUMN = 'value';\r\nconst COUNT_COLUMN = 'count';\r\nexport const FONT_COLOR = '#AAAEB3';\r\n\r\nconst FilterableLineChart = ({\r\n filterState,\r\n title,\r\n height,\r\n minHeight,\r\n data,\r\n isCompleted,\r\n isEmpty,\r\n onChangeFilter,\r\n column,\r\n color,\r\n unit,\r\n style,\r\n isInt,\r\n showDrillDown,\r\n valueLabel,\r\n countLabel,\r\n\r\n}) => {\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const [selectedPeriodGrouping, setSelectedPeriodGrouping] = useState();\r\n const [selectedDataPoint, setSelectedDataPoint] = useState();\r\n const [selectedDetailTitle, setSelectedDetailTitle] = useState(); \r\n const [sidebarOpened, setSidebarOpened] = useState(false);\r\n\r\n const closeSideBar = () => {\r\n setSidebarOpened(false);\r\n setSelectedDataPoint(null);\r\n };\r\n\r\n const filterData = useRef({\r\n from: \"\",\r\n to: \"\",\r\n });\r\n\r\n //one way flow from the date pickers\r\n const tempFilterData = useRef({});\r\n\r\n const applyFilters = () => {\r\n Object.assign(filterData.current, tempFilterData.current);\r\n onChangeFilter(filterData.current);\r\n };\r\n\r\n const groupAndTransformSubItems = (data) => {\r\n return _(data.reduce(\r\n (arr, currentItem) => {\r\n if (currentItem.items) {\r\n for (const item of currentItem.items) {\r\n arr.push(item);\r\n }\r\n }\r\n return arr;\r\n }, []\r\n )).groupBy(x => x.id).map((items, key) =>\r\n ({\r\n id: key,\r\n name: items[0].name,\r\n value: _.sumBy(items, VALUE_COLUMN),\r\n count: _.sumBy(items, COUNT_COLUMN),\r\n })).value();\r\n }\r\n\r\n\r\n const getValuesPerWeek = (rawData) => {\r\n\r\n return _(rawData)\r\n .groupBy(x => helpers.getWeekName(x.period))\r\n .map((dates, key) =>\r\n ({\r\n period: `${t(\"screens:salesDashboard.labels.week\")} ${key}`,\r\n value: _.sumBy(dates, VALUE_COLUMN),\r\n dates: dates,\r\n items: groupAndTransformSubItems(dates)\r\n })).value();\r\n }\r\n\r\n const getValuesPerMonth = (rawData) => {\r\n\r\n return _(rawData)\r\n .groupBy(x => x.period.substring(0, 7))\r\n .map((dates, key) =>\r\n ({\r\n period: t(`screens:months.${parseInt(key.slice(-2))}`).substring(0, 3),\r\n value: _.sumBy(dates, VALUE_COLUMN),\r\n items: groupAndTransformSubItems(dates),\r\n dates: dates\r\n })).value();\r\n }\r\n\r\n const getValuesPerDay = (rawData) => {\r\n\r\n return rawData.map(x => (\r\n {\r\n period: helpers.toLocalDateIgnoreTime(x.period),\r\n value: x.value,\r\n items: x.items\r\n }\r\n ));\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (filterState) {\r\n tempFilterData.current.from = filterState.from;\r\n tempFilterData.current.to = filterState.to;\r\n }\r\n\r\n }, [filterState]);\r\n\r\n const handleDateFromFilterChange = (date) => {\r\n tempFilterData.current.from = date;\r\n applyFilters();\r\n }\r\n\r\n const handleDateToFilterChange = (date) => {\r\n tempFilterData.current.to = date;\r\n applyFilters();\r\n }\r\n\r\n const RenderChart = () => {\r\n\r\n let chartData = [];\r\n\r\n if (data) {\r\n const dataPerDay = getValuesPerDay(data);\r\n const dataPerMonth = getValuesPerMonth(data);\r\n const dataPerWeek = getValuesPerWeek(data);\r\n\r\n const threshold = 10;\r\n\r\n if (!selectedPeriodGrouping) {\r\n if (dataPerDay.length < threshold)\r\n setSelectedPeriodGrouping(DAY);\r\n else if (dataPerDay.length < threshold)\r\n setSelectedPeriodGrouping(WEEK);\r\n else\r\n setSelectedPeriodGrouping(MONTH);\r\n }\r\n\r\n if (selectedPeriodGrouping === DAY)\r\n chartData = dataPerDay;\r\n else if (selectedPeriodGrouping === WEEK)\r\n chartData = dataPerWeek;\r\n else if (selectedPeriodGrouping === MONTH)\r\n chartData = dataPerMonth;\r\n }\r\n\r\n const showSidebar = (e) => {\r\n \r\n if (showDrillDown && e.activePayload && e.activePayload.length>0 && e.activePayload[0].payload && e.activePayload[0].payload.items) {\r\n setSidebarOpened(true);\r\n setSelectedDetailTitle(e.activeLabel);\r\n setSelectedDataPoint(e.activePayload[0].payload.items); \r\n } \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n ''} content={} />\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n \r\n {RenderChart()}\r\n \r\n\r\n {showDrillDown && \r\n\r\n \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default FilterableLineChart;","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ChartHeader from \"./ChartHeader\";\r\nimport ProgressBar from \"./ProgressBar\";\r\n\r\nconst ProgressList = styled.ul`\r\n list-style: none;\r\n padding: 0;\r\n flex-grow:1;\r\n display:flex;\r\n margin: 0;\r\n padding-top: 24px;\r\n`;\r\n\r\nconst ChartWrapper = styled.div`\r\n padding: 20px 24px 0px 20px;\r\n color: #AAAEB3;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n padding-left: 0px;\r\n padding-right: 0px;\r\n}\r\n`;\r\n\r\nconst ListText = styled.div`\r\n height:38px;\r\n display:flex;\r\n align-items:flex-end;\r\n & span {\r\n padding-left: 6px;\r\n font-size:14px;\r\n }\r\n\r\n`;\r\n\r\nconst ProgressWrapper = styled.div`\r\n height:38px;\r\n display: flex;\r\n align-items:flex-end;\r\n width: 100%;\r\n font-size:12px;\r\n`;\r\n\r\nconst ProgressLabel = styled.span`\r\n float:right;\r\n`;\r\n\r\nconst NameLabel = styled.span`\r\n font-weight: 500;\r\n`;\r\n\r\nconst ListTextWrapper = styled.div`\r\n flex-grow:1;\r\n min-width: 35%;\r\n height: 100%;\r\n display:flex;\r\n flex-direction:column;\r\n justify-content: space-between;\r\n`;\r\n\r\nconst ListProgressWrapper = styled.div`\r\n width:65%;\r\n height: 100%;\r\n display:flex;\r\n flex-direction:column;\r\n justify-content: space-between;\r\n`;\r\n\r\nconst ChartProgress = ({\r\n data,\r\n title,\r\n tooltip,\r\n suffix,\r\n style,\r\n unit,\r\n isInt,\r\n hideUnit\r\n}) => {\r\n return (\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n {data? data.map((item, idx) => (\r\n \r\n \r\n \r\n {item.name} {suffix}\r\n \r\n \r\n\r\n )) :null}\r\n \r\n\r\n \r\n {data? data.map((item, idx) => (\r\n \r\n
    \r\n \r\n {isInt && isInt== true ? item.value: parseFloat(item.value).toFixed(2)} {hideUnit? '': (unit? unit: 'kg')} {item.suffix}\r\n \r\n \r\n
    \r\n
    \r\n\r\n )) :null}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default ChartProgress;","const CompanyStatus = {\r\n FullyRegistered : 0,\r\n PendingConfirmation : 1,\r\n ConfirmationSent : 2,\r\n \r\n};\r\n\r\nexport default CompanyStatus;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport useDataReducerImmediate from \"../../../../hooks/_shared/useDataReducerImmediate\";\r\nimport StatisticsService from \"../../../../services/Statistics/StatisticsService\";\r\nimport ChartHeader from \"../../../../components/dashboard/ChartHeader\";\r\nimport DASHBOARD_CONSTANTS from \"../../../../components/dashboard/DashboardConstants\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport DashboardStyles from \"../../../../components/dashboard/DashboardStyles\";\r\nimport DashboardTheme from \"../../../../components/dashboard/DashboardTheme\";\r\nimport ProgressStyles from \"../../../../components/dashboard/ProgressStyles\";\r\nimport CustomLegend from \"../../../../components/dashboard/CustomLegend\";\r\nimport ChartPieGasQuality from \"../../../../components/dashboard/ChartPieGasQuality\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport ProgressBar from \"../../../../components/dashboard/ProgressBar\";\r\nimport AdminDashboardMenu from \"../user/components/AdminDashboardMenu\";\r\nimport dataFunctions from \"../../../../components/dashboard/DataFunctions\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport FilterableLineChart from \"../../../../components/dashboard/FilterableLineChart\";\r\nimport ChartProgress from \"../../../../components/dashboard/ChartProgress\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport CustomTooltip from \"../../../../components/dashboard/CustomTooltip\";\r\nimport CompanyType from \"../../../../core/enums/CompanyType\";\r\nimport CompanyStatus from \"../../../../core/enums/CompanyStatus\";\r\n\r\nimport {\r\n XAxis,\r\n YAxis,\r\n Tooltip,\r\n ResponsiveContainer,\r\n Cell,\r\n BarChart,\r\n Bar,\r\n Legend,\r\n CartesianGrid,\r\n} from \"recharts\";\r\n\r\nconst DashboardWrapper = styled.div`\r\n padding: 25px 60px 25px;\r\n height: calc(100% - 60px)\r\n`;\r\n\r\nconst MainContainer = styled(Flex.Container)`\r\n \r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst LeftContainer = styled(Flex.Container)`\r\n width: 80%;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n order: 2;\r\n width: 100%;\r\n margin: 40px 0px 0px 0px;\r\n }\r\n`;\r\n\r\nconst RightContainer = styled(Flex.Column)`\r\n min-width: 260px;\r\n width: 20%;\r\n\r\n .half-first {\r\n height: 50%;\r\n\r\n }\r\n\r\n .half-second { \r\n height: calc(50% - 24px);\r\n }\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n width: 100%;\r\n\r\n .half-second, .half-first {\r\n height: auto;\r\n }\r\n\r\n }\r\n`;\r\n\r\nconst CompanyContainer = styled(Flex.Column)`\r\n padding-top: 25px;\r\n min-width: 200px;\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst CertificateContainer = styled(Flex.Column)`\r\n width: 320px;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\n\r\nconst CompanyOnboardingContainer = styled(Flex.Row)`\r\n min-height: 420px;\r\n height: 50%;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n height: 412px;\r\n }\r\n\r\n padding-right: 30px;\r\n padding-left: 25px;\r\n`;\r\n\r\nconst CompanysStatisticsDashboard = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:companies\"),\r\n },\r\n ]);\r\n\r\n const companyUnit = t(\r\n \"screens:statistics.companiesTitle\"\r\n );\r\n\r\n const [companyCountsDataState] = useDataReducerImmediate(\r\n StatisticsService.getCompaniesCounts\r\n );\r\n\r\n const [onboardedState, loadOnboarded] = useDataReducer(async (filter) => {\r\n return await StatisticsService.getCompanyOnboarding(filter);\r\n });\r\n\r\n const filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case DASHBOARD_CONSTANTS.actionTypes.SET_FILTERS:\r\n state.from = action.payload.from;\r\n state.to = action.payload.to;\r\n break;\r\n case DASHBOARD_CONSTANTS.actionTypes.RESET_FILTERS:\r\n delete state.from\r\n delete state.to\r\n break;\r\n default:\r\n return state;\r\n }\r\n };\r\n\r\n const onChangeFilter = ((filters) => {\r\n dispatch({\r\n type: DASHBOARD_CONSTANTS.actionTypes.SET_FILTERS,\r\n payload: filters,\r\n });\r\n });\r\n\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n\r\n from: \"\",\r\n to: \"\",\r\n\r\n });\r\n\r\n useEffect(() => {\r\n loadOnboarded({ filter: filterState });\r\n\r\n }, [filterState]);\r\n\r\n const ActiveCompanies = 'ActiveCompanies';\r\n const ActiveCompanies_Distributor = 'ActiveCompaniesDistributor';\r\n const ActiveCompanies_Installer = 'ActiveCompaniesInstaller';\r\n const DisabledCompanies = 'DisabledCompanies';\r\n const DisabledCompanies_Distributor = 'DisabledCompaniesistributor';\r\n const DisabledCompanies_Installer = 'DisabledCompaniesInstaller';\r\n const DeletedCompanies = 'DeletedCompanies';\r\n\r\n const PendingCompanies = 'PendingCompanies';\r\n const ApprovedCompanies = 'ApprovedCompanies';\r\n\r\n const buildUrlWithActiveStatus = (link, activeStatus ) => {\r\n\r\n const url = link + \"?activeStatus=\" + activeStatus;\r\n\r\n return url;\r\n }\r\n\r\n const buildUrlWithStatus = (link, status ) => {\r\n\r\n const url = link + \"?status=\" + status;\r\n \r\n return url;\r\n }\r\n\r\n const baseUrl = RouteCreator.admin.companies.list(CompanyType.All);\r\n const baseUrlInstaller = RouteCreator.admin.companies.list(CompanyType.InstallationCompany);\r\n const baseUrlDistributor = RouteCreator.admin.companies.list(CompanyType.Distributor);\r\n const getCompaniesMenu = () => {\r\n const rawData =\r\n companyCountsDataState && companyCountsDataState.data\r\n ? companyCountsDataState.data\r\n : null;\r\n let items = [];\r\n if (rawData !== null) {\r\n items.push({\r\n id: ActiveCompanies,\r\n name: t(\r\n \"screens:statistics.activeCompanies\"\r\n ),\r\n count: rawData.numberOfActiveCompanies,\r\n items: [\r\n {\r\n id: ActiveCompanies_Installer,\r\n name: t(\r\n \"screens:statistics:companyTypes.installationPartners\"\r\n ),\r\n url: buildUrlWithActiveStatus(baseUrlInstaller, \"active\"),\r\n count: rawData.numberOfActiveInstallerCompanies,\r\n },\r\n {\r\n id: ActiveCompanies_Distributor,\r\n name: t(\r\n \"screens:statistics:companyTypes.distributors\"\r\n ),\r\n url: buildUrlWithActiveStatus(baseUrlDistributor, \"active\"),\r\n count: rawData.numberOfActiveDistributorCompanies,\r\n },\r\n ]\r\n });\r\n\r\n items.push({\r\n id: DisabledCompanies,\r\n name: t(\r\n \"screens:statistics.disabledCompanies\"\r\n ),\r\n items: [\r\n {\r\n id: DisabledCompanies_Installer,\r\n name: t(\r\n \"screens:statistics:companyTypes.installationPartners\"\r\n ),\r\n url: buildUrlWithActiveStatus(baseUrlInstaller, \"disabled\"),\r\n count: rawData.numberOfDisabledInstallerCompanies,\r\n },\r\n {\r\n id: DisabledCompanies_Distributor,\r\n name: t(\r\n \"screens:statistics:companyTypes.distributors\"\r\n ),\r\n url: buildUrlWithActiveStatus(baseUrlDistributor, \"disabled\"),\r\n count: rawData.numberOfDisabledDistributorCompanies,\r\n },\r\n ],\r\n\r\n count: rawData.numberOfDisabledCompanies\r\n });\r\n\r\n items.push({\r\n id: DeletedCompanies,\r\n name: t(\r\n \"screens:statistics.deletedCompanies\"\r\n ),\r\n count: rawData.numberOfDeletedCompanies\r\n });\r\n }\r\n\r\n return items;\r\n\r\n };\r\n\r\n const getOnboardingMenu = () => {\r\n const rawData =\r\n companyCountsDataState && companyCountsDataState.data\r\n ? companyCountsDataState.data\r\n : null;\r\n let items = [];\r\n if (rawData !== null) {\r\n items.push({\r\n id: PendingCompanies,\r\n name: t(\r\n \"screens:statistics.pendingCompanies\"\r\n ),\r\n url: buildUrlWithStatus(baseUrl, CompanyStatus.PendingConfirmation),\r\n count: rawData.numberOfCompaniesInPendingStatus\r\n });\r\n\r\n items.push({\r\n id: ApprovedCompanies,\r\n name: t(\r\n \"screens:statistics.approvedCompanies\"\r\n ),\r\n url: buildUrlWithStatus(baseUrl, CompanyStatus.ConfirmationSent),\r\n count: rawData.numberOfCompaniesInConfirmationSentStatus\r\n });\r\n\r\n }\r\n\r\n return items;\r\n\r\n };\r\n\r\n const renderFGasCertificates = () => {\r\n\r\n const rawData =\r\n companyCountsDataState && companyCountsDataState.data\r\n ? companyCountsDataState.data\r\n : null;\r\n let items = [];\r\n if (rawData !== null) {\r\n items.push({\r\n name: t(\"common:Yes\"),\r\n value: rawData.numberOfCompaniesWithFGasCertificate,\r\n percent: rawData.numberOfCompaniesWithFGasCertificate / rawData.numberOfCompanies * 100,\r\n color: DashboardTheme.SecondaryBarColor\r\n });\r\n\r\n items.push({\r\n name: t(\"common:No\"),\r\n percent: rawData.numberOfCompaniesWithoutFGasCertificate / rawData.numberOfCompanies * 100,\r\n value: rawData.numberOfCompaniesWithoutFGasCertificate,\r\n color: DashboardTheme.ThirdBarColor\r\n });\r\n\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n \r\n {items.map((item, idx) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n {item.value}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n );\r\n };\r\n\r\n const CompanyTypes = () => {\r\n const rawData =\r\n companyCountsDataState && companyCountsDataState.data\r\n ? companyCountsDataState.data\r\n : null;\r\n let items = [];\r\n let colors = [];\r\n if (rawData !== null) {\r\n items.push({\r\n name: t(\r\n \"screens:statistics:companyTypes.installationPartners\"\r\n ),\r\n value: rawData.numberOfInstallerServices,\r\n color: DashboardTheme.PrimaryBarColor\r\n });\r\n\r\n items.push({\r\n name: t(\r\n \"screens:statistics:companyTypes.distributors\"\r\n ),\r\n value: rawData.numberOfFGasDistributors,\r\n color: DashboardTheme.SecondaryBarColor\r\n });\r\n\r\n items.map(item => {\r\n colors.push(item.color);\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n\r\n \r\n \r\n \r\n {items.map((item, index) => (\r\n \r\n ))}\r\n
    \r\n \r\n\r\n \r\n \"\"}\r\n cursor={false}\r\n content={}\r\n />\r\n \r\n }\r\n wrapperStyle={DashboardStyles.Legend.Wrapper}\r\n />\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n\r\n const LeftColumn = () => {\r\n return (\r\n \r\n \r\n \r\n {renderFGasCertificates()}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n };\r\n\r\n const DisputesSection = () => {\r\n\r\n const rawData =\r\n companyCountsDataState && companyCountsDataState.data\r\n ? companyCountsDataState.data\r\n : null;\r\n let items = [];\r\n let itemsProgress = [];\r\n\r\n if (rawData !== null) {\r\n const total = rawData.numberOfActiveDisputes + rawData.numberOfInactiveDisputes;\r\n const activeItem = {\r\n name: t(\r\n \"screens:statistics.active\"\r\n ),\r\n value: rawData.numberOfActiveDisputes,\r\n color: DashboardTheme.ThirdBarColor,\r\n percent: rawData.numberOfActiveDisputes / total * 100,\r\n };\r\n\r\n items.push(activeItem);\r\n\r\n itemsProgress.push(activeItem);\r\n\r\n const resolved = {\r\n name: t(\r\n \"screens:statistics.inactive\"\r\n ),\r\n value: rawData.numberOfInactiveDisputes,\r\n color: DashboardTheme.SecondaryBarColor,\r\n percent: rawData.numberOfInactiveDisputes / total * 100,\r\n }\r\n\r\n items.push(resolved);\r\n itemsProgress.push(resolved);\r\n\r\n }\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n {t(\r\n \"screens:statistics.viewAll\"\r\n )}\r\n }\r\n\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n };\r\n\r\n\r\n const FGasAnalyzerSection = () => {\r\n\r\n const rawData =\r\n companyCountsDataState && companyCountsDataState.data\r\n ? companyCountsDataState.data\r\n : null;\r\n let items = [];\r\n if (rawData !== null) {\r\n items.push({\r\n name: t(\"common:Yes\"),\r\n value: rawData.numberOfCompaniesWithFGasAnalyzer,\r\n color: DashboardTheme.SecondaryBarColor\r\n });\r\n\r\n items.push({\r\n name: t(\"common:No\"),\r\n value: rawData.numberOfCompaniesWithoutFGasAnalyzer,\r\n color: DashboardTheme.ThirdBarColor\r\n });\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\r\n \"screens:statistics.viewAll\"\r\n )}\r\n }\r\n\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n\r\n const MiddleBottomSection = () => {\r\n\r\n const rawData =\r\n companyCountsDataState && companyCountsDataState.data\r\n ? companyCountsDataState.data\r\n : null;\r\n let items = [];\r\n if (rawData !== null) {\r\n items.push({\r\n name: t(\r\n \"screens:statistics:companyTypes.installationPartners\"\r\n ),\r\n value: rawData.numberOfActiveDisputes,\r\n color: DashboardTheme.ThirdBarColor\r\n });\r\n\r\n items.push({\r\n name: t(\r\n \"screens:statistics:companyTypes.distributors\"\r\n ),\r\n value: rawData.numberOfInactiveDisputes,\r\n color: DashboardTheme.borderColor\r\n });\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n \r\n \r\n\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:companyStatistics.title\")}\r\n \r\n {companyCountsDataState.isCompleted && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CompanysStatisticsDashboard;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport AccordionWrapper from \"../../components/toggle-view/AccordionWrapper\";\r\nimport useAccordionGroup from \"../../hooks/_shared/useAccordionGroup\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../components/elements/sidebar/SidebarField\";\r\n\r\nconst Section = styled.section`\r\n width: 100%;\r\n margin: 10px 0 10px 0;\r\n padding-bottom: 10px;\r\n border-bottom: 1px solid #eaeaea;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 16px;\r\n color: #7f7f7f;\r\n font-weight: 600;\r\n margin: 10px 0 0 20px;\r\n`;\r\nconst getDateFormat = (currentLanguage) =>\r\n Intl.DateTimeFormat(currentLanguage, {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n\r\nconst GetShortDate = (dateValue) => {\r\n if (dateValue && typeof dateValue === \"string\")\r\n dateValue = new Date(dateValue);\r\n const currentLanguage = \"sk\";\r\n return getDateFormat(currentLanguage).format(dateValue);\r\n};\r\n\r\nconst AdminCertSidebar = ({\r\n approver,\r\n licenceNumber,\r\n processedDate,\r\n certificateHolder,\r\n type,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup(\"approvals\");\r\n return (\r\n \r\n
    \r\n (${certificateHolder})`,\r\n }}\r\n />\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AdminCertSidebar;\r\n","import React from \"react\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport globalAdminMenuItems from \"../../data/menu/globalAdminMenuItems\";\r\nimport { useEffect, useState, useMemo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport AuthorizeComponent from \"../../core/AuthorizeComponent\";\r\nimport HamburgerMenu from \"../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../components/menu/HamburgerMenuAction\";\r\nimport DateCell from \"../../components/data/DateCell\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport useBreadcrumbs from \"../../core/state/navigation/useBreadcrumbs\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport LayoutInnerContainer from \"../../components/layout/split/one/LayoutInnerContainer\";\r\nimport AccordionWrapper from \"../../components/toggle-view/AccordionWrapper\";\r\nimport CompanyService from \"../../services/Company/CompanyService\";\r\nimport useAccordionGroup from \"../../hooks/_shared/useAccordionGroup\";\r\nimport ListingPage from \"../../components/data/ListingPage\";\r\nimport AdminCertSidebar from \"./AdminCertSidebar\";\r\n\r\nconst ECertificateStatus = {\r\n Submitted: 0,\r\n Valid: 1,\r\n Rejected: 2,\r\n Expired: 99,\r\n NoAttestation: -1, //display only\r\n};\r\n\r\nconst EmptyGuid = \"00000000-0000-0000-0000-000000000000\";\r\n\r\nconst ContentWrapper = styled.div`\r\n display: block;\r\n width: 100%;\r\n padding-right: 20px;\r\n @media ${(props) => props.theme.device.mobile} {\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n }\r\n`;\r\n\r\nconst InfoWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n color: #000;\r\n\r\n & .topSpace {\r\n margin-top: 14px;\r\n }\r\n\r\n & .info {\r\n font-size: 14px;\r\n }\r\n\r\n & li {\r\n font-size: 12px;\r\n line-height: 18px;\r\n }\r\n`;\r\n\r\nconst GreenInfo = styled.img`\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst ColoredText = styled.div`\r\n color: ${(p) => p.theme.primaryColor};\r\n\r\n &.error {\r\n color: ${(p) => p.theme.error};\r\n }\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 2px;\r\n background-color: #000;\r\n margin-top: 24px;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n width: 100%;\r\n height: 30px;\r\n min-height: 30px;\r\n`;\r\n\r\nconst HolderCell = ({ cell: { row } }) => {\r\n const holder = row.original.certificateHolder;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {holder}\r\n \r\n );\r\n};\r\n\r\nconst StatusCell = ({ cell: { row } }) => {\r\n const text = row.original.licenceStatusName;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nconst employeeBreadcrumbs = (t) => [\r\n {\r\n text: t(\"navigation:companies\"),\r\n },\r\n {\r\n text: \"\",\r\n },\r\n {\r\n text: t(\"filters:certificate.certificates\"),\r\n },\r\n];\r\n\r\nfunction groupBy(arr, prop) {\r\n const map = new Map(Array.from(arr, (obj) => [obj[prop], []]));\r\n arr.forEach((obj) => map.get(obj[prop]).push(obj));\r\n return Array.from(map.values());\r\n}\r\n\r\nconst CompanyCertificateScreen = () => {\r\n useLeftMenu(globalAdminMenuItems);\r\n const { t } = useTranslation();\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup(\r\n [\"companyCert\", \"personalCert\"],\r\n true\r\n );\r\n const [userCerts, setUserCerts] = useState([]);\r\n const [companyCerts, setCompanyCerts] = useState([]);\r\n const [userName, setUserName] = useState(\"\");\r\n const { companyId } = useParams();\r\n\r\n const [sidebarOpen, setSidebarOpen] = useState(false);\r\n const [userSidebarOpen, setUserSidebarOpen] = useState(-1);\r\n const [selectedRow, setSelectedRow] = useState(null);\r\n const [detailViewKey, setDetailViewKey] = useState(null);\r\n const [userDetailViewKey, setUserDetailViewKey] = useState(null);\r\n\r\n const { update: updateBreadcrumbs } = useBreadcrumbs(\r\n employeeBreadcrumbs(t)\r\n );\r\n\r\n const getCertsAsync = async () => {\r\n const resUsers = await CompanyService.getEmployeesCertificates(\r\n \"\",\r\n companyId\r\n );\r\n const resCompany = await CompanyService.getCompanyCertificates(\r\n companyId\r\n );\r\n if (!resUsers.error && !resCompany.error) {\r\n const grp = groupBy(resUsers.data.data, \"userId\");\r\n setUserCerts(grp);\r\n setCompanyCerts(resCompany.data.data);\r\n if (resCompany.data.data && resCompany.data.data.length) {\r\n setUserName(resCompany.data.data[0].certificateHolder);\r\n }\r\n }\r\n };\r\n\r\n const updateCertificateStatus = async (certId, status) => {\r\n const res = await CompanyService.updateCertificateStatus(\r\n certId,\r\n status\r\n );\r\n if (res && res.error) {\r\n toast.error(t(res.error.message));\r\n } else {\r\n toast.success(t(\"actions:certificate.toastNotification.updated\"));\r\n getCertsAsync();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getCertsAsync();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userName !== \"\") {\r\n const bc = employeeBreadcrumbs(t);\r\n bc[1].text = userName;\r\n updateBreadcrumbs(bc);\r\n }\r\n }, [userName]);\r\n\r\n const onSelectCompany = (row) => {\r\n const selectRow = async (row) => {\r\n setSelectedRow(row.original);\r\n setDetailViewKey(row.original);\r\n setSidebarOpen(true);\r\n };\r\n selectRow(row);\r\n };\r\n\r\n const onSelectUser = (row, idx) => {\r\n const selectRow = async (row) => {\r\n if (!row.original.approver) return;\r\n setSelectedRow(row.original);\r\n setUserSidebarOpen(idx);\r\n };\r\n selectRow(row);\r\n };\r\n\r\n const onCloseSidebar = () => {\r\n setSidebarOpen(false);\r\n setDetailViewKey(null);\r\n };\r\n\r\n const onCloseUserSidebar = (idx) => {\r\n if(userSidebarOpen === idx) setUserSidebarOpen(-1);\r\n };\r\n\r\n const certColumns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certHolder\"),\r\n accessor: \"certificateHolder\",\r\n Cell: HolderCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certNumber\"),\r\n accessor: \"licenceNumber\",\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.expiration\"),\r\n accessor: \"licenceExpiryDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.submitDate\"),\r\n accessor: \"licenceUploadDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.procDate\"),\r\n accessor: \"processedDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"sidebar:label.approver\"),\r\n accessor: \"approver\",\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.status\"),\r\n accessor: \"licenceStatusName\",\r\n Cell: StatusCell,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { row } }) => {\r\n return (\r\n \r\n {row.original.licenceId !== EmptyGuid && (\r\n \r\n \r\n window.open(\r\n row.original\r\n .licenceCertificateFile,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n {row.original.licenceStatus === 0 && (\r\n <>\r\n \r\n updateCertificateStatus(\r\n row.original.licenceId,\r\n 1\r\n )\r\n }\r\n />\r\n \r\n updateCertificateStatus(\r\n row.original.licenceId,\r\n 2\r\n )\r\n }\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n return (\r\n \r\n \r\n {t(\"screens:certificates.companyCert\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {t(\"screens:certificates.companyInfo\")}\r\n
    \r\n
      \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.installation\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.maintenance\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.recovery\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.decommissioning\"\r\n )}\r\n
    • \r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.companyFullCert.info\"\r\n )}\r\n
    \r\n
      \r\n
    • \r\n {t(\r\n \"screens:certificates.companyFullCert.personel\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyFullCert.tools\"\r\n )}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n }\r\n detailViewIsOpened={sidebarOpen}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.allTechnicians\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.requirement\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.qualification\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.regulation\"\r\n )}\r\n
    \r\n
      \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.regulations\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.emission\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.recovery\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.handling\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.information\"\r\n )}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n {userCerts.map((certs, idx) => {\r\n return (\r\n \r\n \r\n onSelectUser(row, idx)}\r\n closeSideBar={()=>onCloseUserSidebar(idx)}\r\n detailViewId={`user-${idx}`}\r\n detailView={\r\n \r\n }\r\n detailViewIsOpened={userSidebarOpen === idx}\r\n />\r\n \r\n );\r\n })}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CompanyCertificateScreen;\r\n","import React, { useCallback } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport CompanyType from \"../../core/enums/CompanyType\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport globalAdminMenuItems from \"../../data/menu/globalAdminMenuItems\";\r\nimport CompanyListing from \"./views/company/CompanyListing\";\r\nimport CompanysStatisticsDashboard from \"./views/company/CompanysStatisticsDashboard\";\r\nimport CompanyCertificateScreen from \"./CompanyCertificatesScreen\";\r\n\r\nconst CompanyAdministrationScreen = () => {\r\n useLeftMenu(globalAdminMenuItems);\r\n\r\n const installerListingComponent = useCallback(\r\n (props) => {\r\n return (\r\n \r\n );\r\n },\r\n [CompanyListing]\r\n );\r\n const distributorListingComponent = useCallback(\r\n (props) => {\r\n return (\r\n \r\n );\r\n },\r\n [CompanyListing]\r\n );\r\n\r\n const companyListingComponent = useCallback(\r\n (props) => {\r\n return (\r\n \r\n );\r\n },\r\n [CompanyListing]\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CompanyAdministrationScreen;\r\n","import styled from 'styled-components';\r\n\r\nconst ListingWrapper = styled.div`\r\n margin: 24px;\r\n`;\r\n\r\nexport default ListingWrapper;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport ListingWrapper from \"../../../../components/wrappers/ListingWrapper\";\r\nimport useDataReducerImmediate from \"../../../../hooks/_shared/useDataReducerImmediate\";\r\nimport StatisticsService from \"../../../../services/Statistics/StatisticsService\";\r\n\r\nimport {Helmet} from \"react-helmet\";\r\n\r\nconst MarketplaceStatisticsDashboard = () => {\r\n const [marketplaceCountsDataState] = useDataReducerImmediate(\r\n StatisticsService.getMarketplaceCounts\r\n );\r\n const {t} = useTranslation();\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:createAdministrator.title\")}\r\n \r\n {marketplaceCountsDataState.isCompleted && (\r\n \r\n \r\n \r\n Extracted gas\r\n \r\n
      \r\n {Object.keys(\r\n marketplaceCountsDataState.data\r\n .extractedGasPerType\r\n ).map((t) => {\r\n return (\r\n
    • \r\n {t}:{\" \"}\r\n {\r\n marketplaceCountsDataState.data\r\n .extractedGasPerType[t]\r\n }{\" \"}\r\n kg\r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n \r\n \r\n Published gas\r\n \r\n
      \r\n {Object.keys(\r\n marketplaceCountsDataState.data\r\n .publishedGasPerType\r\n ).map((t) => {\r\n return (\r\n
    • \r\n {t}:{\" \"}\r\n {\r\n marketplaceCountsDataState.data\r\n .publishedGasPerType[t]\r\n }{\" \"}\r\n kg\r\n
    • \r\n );\r\n })}\r\n
    \r\n

    \r\n
    \r\n \r\n \r\n Average accepted A grade price\r\n \r\n
      \r\n {Object.keys(\r\n marketplaceCountsDataState.data\r\n .averageAcceptedGradeAPricePerGasType\r\n ).map((t) => {\r\n return (\r\n
    • \r\n {t}:{\" \"}\r\n {\r\n marketplaceCountsDataState.data\r\n .averageAcceptedGradeAPricePerGasType[\r\n t\r\n ]\r\n }\r\n
    • \r\n );\r\n })}\r\n
    \r\n

    \r\n
    \r\n \r\n \r\n Average accepted B grade price\r\n \r\n
      \r\n {Object.keys(\r\n marketplaceCountsDataState.data\r\n .averageAcceptedGradeBPricePerGasType\r\n ).map((t) => {\r\n return (\r\n
    • \r\n {t}:{\" \"}\r\n {\r\n marketplaceCountsDataState.data\r\n .averageAcceptedGradeBPricePerGasType[\r\n t\r\n ]\r\n }\r\n
    • \r\n );\r\n })}\r\n
    \r\n

    \r\n
    \r\n \r\n \r\n Average accepted C grade price\r\n \r\n
      \r\n {Object.keys(\r\n marketplaceCountsDataState.data\r\n .averageAcceptedGradeCPricePerGasType\r\n ).map((t) => {\r\n return (\r\n
    • \r\n {t}:{\" \"}\r\n {\r\n marketplaceCountsDataState.data\r\n .averageAcceptedGradeCPricePerGasType[\r\n t\r\n ]\r\n }\r\n
    • \r\n );\r\n })}\r\n
    \r\n

    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default MarketplaceStatisticsDashboard;\r\n","import styled from \"styled-components\";\r\n\r\nconst DashboardWrapper = styled.div`\r\n padding: 25px 60px 25px;\r\n height: calc(100% - 60px);\r\n`;\r\n\r\nexport default DashboardWrapper;","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport helpers from \"../../core/helpers\";\r\nimport ChartHeader from \"./ChartHeader\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ComposedChart, Line, XAxis, YAxis, CartesianGrid, ResponsiveContainer } from 'recharts';\r\n\r\nconst ChartWrapper = styled.div`\r\n display: flex;\r\n flex-direction:column;\r\n height: 100%;\r\n justify-content: space-between;\r\n flex-grow:0;\r\n\r\n &.admin {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst AmountContainer = styled.div`\r\n font-weight: 400;\r\n padding-top: 30px;\r\n font-size: 44px;\r\n font-weight:300;\r\n color:#333;\r\n`;\r\n\r\nconst DatePeriod = styled.div`\r\nfont-size: 12px;\r\n\r\n`;\r\n\r\nconst DateFrom = styled.div`\r\n float:left;\r\n\r\n`;\r\n\r\nconst DateTo = styled.div`\r\n float:right;\r\n`;\r\n\r\nconst CurrencyLabel = styled.span`\r\n`;\r\n\r\nconst UnitLabel = styled.span`\r\n font-size: 20px;\r\n`;\r\n\r\nconst LineChartWrapper = styled.div`\r\n margin-left:-40px;\r\n position: relative;\r\n \r\n`;\r\n\r\nexport const FONT_COLOR = '#AAAEB3';\r\n\r\nconst ChartAveragePrice = (props) => {\r\n const { title, amount, currency, data, color, admin } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const normalizedData = () => {\r\n let chartData = data ?? [];\r\n if (data && data.length == 1) {\r\n chartData = [];\r\n for (let step = 0; step < 10; step++) {\r\n chartData.push({ period: step, value: data[0].value });\r\n };\r\n }\r\n\r\n return chartData;\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n {currency} {amount?.toFixed(2)}\r\n /kg\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data && data.length > 0 ? helpers.toLocalDateIgnoreTime(data[0].period) : null}\r\n \r\n \r\n \r\n {data && data.length > 0 ? helpers.toLocalDateIgnoreTime(data[data.length - 1].period) : null}\r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default ChartAveragePrice;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 6,\n fill: \"white\",\n stroke: \"#04A9F5\",\n strokeWidth: \"1px\"\n});\n\nvar SvgMenuBullet = function SvgMenuBullet(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 18,\n width: 18,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMenuBullet, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/menu-bullet.36dba405.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as MenuBulletSvg } from \"../../../assets/pwa/menu-bullet.svg\";\r\n\r\nconst ListWrapper = styled.ul`\r\n list-style: none;\r\n padding: 0px;\r\n border-top:2px solid #ECEDEF;\r\n margin: 0px;\r\n \r\n`;\r\n\r\nconst SvgBullet = styled(MenuBulletSvg)`\r\n vertical-align: middle;\r\n &.selected circle {\r\n fill: #04A9F5;\r\n stroke: #white;\r\n }\r\n`;\r\n\r\nconst GasCode = styled.span`\r\n padding-left: 12px;\r\n`;\r\n\r\nconst GasItem = styled.li`\r\n border-bottom: solid 1px #ECEDEF;\r\n font-size:12px; \r\n cursor: pointer;\r\n \r\n &.selected {\r\n background-color: #E9F2ED;\r\n font-size: 16px;\r\n font-weight: bold;\r\n } \r\n`;\r\n\r\nconst GasContent = styled.div`\r\n padding: 14px 40px 14px 40px;\r\n`;\r\n\r\nconst GasDetail = styled.div`\r\n display: inline;\r\n vertical-align: middle;\r\n`;\r\n\r\nconst GasQuantity = styled.span`\r\n float: right;\r\n`;\r\n\r\nconst GasTypeItems = ({ data, handleClick, selectedGasType }) => {\r\n\r\n const selectedClass = (item) => {\r\n return item.refrigerantId === selectedGasType.id ? 'selected' : null\r\n }\r\n\r\n return (\r\n \r\n { data.map((item) =>\r\n (\r\n \r\n \r\n \r\n \r\n \r\n {item.refrigerantGasTypeCode}\r\n \r\n {item.quantity.toFixed(2)} kg\r\n \r\n\r\n \r\n\r\n \r\n ))}\r\n \r\n )\r\n};\r\n\r\nexport default GasTypeItems;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1402\",\n \"data-name\": \"Group 1402\",\n transform: \"translate(-800 -269)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_37\",\n \"data-name\": \"Ellipse 37\",\n transform: \"translate(800 269)\",\n fill: \"none\",\n stroke: \"#04a9f5\",\n strokeWidth: 3\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.385,\n cy: 7.385,\n r: 7.385,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.385,\n cy: 7.385,\n r: 5.885,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_46\",\n \"data-name\": \"Line 46\",\n x2: 5.538,\n y2: 5.538,\n transform: \"translate(812.462 281.462)\",\n fill: \"none\",\n stroke: \"#04a9f5\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}));\n\nvar SvgMagnifier = function SvgMagnifier(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20.121,\n height: 20.121,\n viewBox: \"0 0 20.121 20.121\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMagnifier, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/magnifier.1e87d7fe.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useRef, useEffect } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { Input } from \".\";\r\nimport { ReactComponent as SearchSvg } from \"../../../assets/pwa/magnifier.svg\";\r\nimport { ReactComponent as ResetSvg } from \"../../../assets/close.svg\";\r\n\r\nconst nativeInputValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n \"value\"\r\n).set;\r\n\r\nconst StyledReset = styled(ResetSvg)`\r\n position:absolute;\r\n right: 16px;\r\n top: 7px;\r\n width: 14px; \r\n height: 14px;\r\n transition: all 300ms ease;\r\n\r\n &:hover .lines {\r\n stroke: #e94e4e;\r\n }\r\n`;\r\n\r\n\r\nconst SvgSearch = styled(SearchSvg)`\r\n cursor: pointer;\r\n`;\r\n\r\nconst SearchButton = styled.button`\r\n position: absolute;\r\n right: 10px;\r\n background: transparent;\r\n outline: 0;\r\n border: none;\r\n color: white;\r\n text-align: center;\r\n text-decoration: none;\r\n display: inline-block;\r\n`;\r\n\r\nconst StylizedDrop = styled.div`\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding: 8px 16px;\r\n min-width: 190px;\r\n background: ${(props) => props.theme.inputBgColor};\r\n border: 1px solid\r\n ${(props) => props.theme.primaryInputBorderColor || \"#d4d4d4\"};\r\n border-radius: ${(props) => props.theme.inputBorderRadius || \"6px\"};\r\n position: absolute;\r\n top: 48px;\r\n z-index: 300;\r\n background: #fff;\r\n text-align: left;\r\n cursor: pointer;\r\n box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.16);\r\n transition: all 0.3s ease-in;\r\n opacity: 0;\r\n visibility: hidden;\r\n font-size: ${(props) => props.theme.inputFontSize};\r\n\r\n & ul {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n font-size:14px;\r\n }\r\n\r\n & ul li {\r\n list-style: none;\r\n padding: 15px 5px;\r\n cursor: pointer;\r\n font-weight: normal;\r\n }\r\n\r\n & ul li:hover {\r\n color: ${(props) => props.theme.primaryColor} !important;\r\n }\r\n\r\n & ul li:not(:last-child) {\r\n border-bottom: 1px solid #e2e2e2;\r\n }\r\n\r\n ${(props) =>\r\n props.hasDefault &&\r\n css`\r\n & ul li:first-child {\r\n font-weight:600;\r\n }\r\n `};\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n cursor: pointer;\r\n width: 100%;\r\n height: 100%;\r\n \r\n & input {\r\n border:none;\r\n font-weight: bold;\r\n font-size:20px;\r\n color: black;\r\n margin: 0px;\r\n padding: 0px;\r\n width: 85%;\r\n height:100%;\r\n }\r\n\r\n &.open ${StylizedDrop} {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size:20px;\r\n float:left;\r\n\r\n`;\r\n\r\nconst ClearableLookup = (props) => {\r\n let { value, searchFn, title, ...rest } = props;\r\n const inputEl = useRef(null);\r\n const isSelected = useRef(false);\r\n const [inputVal, setInputVal] = useState(value);\r\n const [inputChanged, setInputChanged] = useState(0);\r\n const [itemSelected, setItemSelected] = useState(false);\r\n const [isFilter, setIsFilter] = useState(false);\r\n const [results, setResults] = useState([]);\r\n\r\n const handleSearch = async (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n props.onChange && props.onChange(ev);\r\n\r\n if (isSelected.current === true) {\r\n isSelected.current = false;\r\n return;\r\n }\r\n if (!searchFn) return;\r\n const results = await searchFn(inputEl.current.value);\r\n setResults(results);\r\n };\r\n\r\n const handleSelect = (ev) => {\r\n const selected = ev.target.dataset.value;\r\n setResults([]);\r\n isSelected.current = true;\r\n setItemSelected(true);\r\n props.itemSelected && props.itemSelected(selected);\r\n setInputVal(selected);\r\n nativeInputValueSetter.call(inputEl.current, selected);\r\n let inpEvt = new Event(\"input\", { bubbles: true });\r\n inputEl.current.dispatchEvent(inpEvt);\r\n\r\n };\r\n\r\n const startFilter = (ev) => {\r\n setInputVal(null);\r\n setIsFilter(true);\r\n\r\n };\r\n\r\n useEffect(() => { \r\n if (isFilter && inputEl.current) {\r\n inputEl.current.focus();\r\n }\r\n }, [isFilter]);\r\n\r\n\r\n\r\n let wrapperClass = results && results.length > 0 ? \"open\" : \"\";\r\n\r\n const handleReset = (ev) => {\r\n nativeInputValueSetter.call(inputEl.current, \"\");\r\n setInputVal(\"\");\r\n props.itemSelected && props.itemSelected(null);\r\n isSelected.current = false;\r\n setItemSelected(false);\r\n setIsFilter(false);\r\n setInputChanged(inputChanged + 1);\r\n let inpEvt = new Event(\"input\", { bubbles: true });\r\n inputEl.current.dispatchEvent(inpEvt);\r\n };\r\n\r\n const handleInputBlur= (ev)=>{\r\n if(ev.currentTarget.value===\"\") handleReset(ev);\r\n }\r\n\r\n if (isFilter)\r\n return (\r\n \r\n \r\n\r\n {\r\n inputEl.current && inputEl.current!==\"\" && \r\n }\r\n\r\n {results &&\r\n results.length > 0 && (\r\n
      \r\n {\r\n results.map((option, idx) => (\r\n
    • \r\n {option}\r\n
    • \r\n ))}\r\n
    \r\n
    )\r\n }\r\n
    \r\n );\r\n else\r\n return (\r\n \r\n \r\n {itemSelected && inputVal && inputVal!==\"\" ? inputVal: title}\r\n \r\n {!itemSelected ? \r\n \r\n :\r\n }\r\n\r\n )\r\n};\r\n\r\nexport default ClearableLookup;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ClearableLookup from \"../../components/elements/form-elements/ClearableLookup\";\r\n\r\nconst SearchContainer = styled.div`\r\n font-size: 20px;\r\n font-weight: bold;\r\n padding: 24px;\r\n width:100%;\r\n cursor: pointer;\r\n height: 80px;\r\n`;\r\n\r\n\r\nconst CompanyLookup = ({ title, searchFn, companySelect }) => {\r\n return (\r\n \r\n \r\n \r\n {\r\n setTimeout(() => {\r\n companySelect(sel);\r\n\r\n }, 250);\r\n }}\r\n\r\n />\r\n \r\n \r\n )\r\n};\r\n\r\nexport default CompanyLookup;\r\n","import styled from \"styled-components\";\r\n\r\nconst MenuColumnContainer = styled.div`\r\n border-radius: 16px;\r\n background-color: white;\r\n box-shadow: 0 0 20px rgb(0 0 0 / 8%);\r\n`;\r\n\r\nexport default MenuColumnContainer;","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport GasTypeItems from \"./components/GasTypeItems\";\r\nimport CompanyLookup from \"./CompanyLookup\";\r\nimport MenuColumnContainer from \"./components/MenuColumnContainer\";\r\nimport DashboardStyles from \"../../components/dashboard/DashboardStyles\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst TitleContainer = styled.div`\r\n display: inline-block;\r\n font-size: 20px;\r\n font-weight: bold;\r\n padding: 24px 0px 24px 24px;\r\n`;\r\n\r\nconst GasMenu = ({ items, colors, handleClick, selectedGasType, title, searchFn, companySelect }) => {\r\n\r\n const { t } = useTranslation(\"screens\");\r\n return (\r\n\r\n \r\n \r\n < DashboardStyles.SvgNoData /> {\r\n t(\"table:headers.noItems\")\r\n } \r\n \r\n {\r\n searchFn ?\r\n \r\n\r\n \r\n :\r\n \r\n {title}\r\n \r\n }\r\n\r\n \r\n \r\n\r\n )\r\n};\r\n\r\nexport default GasMenu;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport StatisticsService from \"../../../../services/Statistics/StatisticsService\";\r\nimport DashboardWrapper from \"../../../../components/dashboard/DashboardWrapper\";\r\nimport DASHBOARD_CONSTANTS, { PRESUMED_GRADES } from \"../../../../components/dashboard/DashboardConstants\";\r\nimport dataFunctions from \"../../../../components/dashboard/DataFunctions\";\r\nimport ChartAveragePrice from \"../../../../components/dashboard/ChartAveragePrice\";\r\nimport ChartProgress from \"../../../../components/dashboard/ChartProgress\";\r\nimport ChartPieGasQuality from \"../../../../components/dashboard/ChartPieGasQuality\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport GasMenu from \"../../../pwa/GasMenu\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport FilterableLineChart from \"../../../../components/dashboard/FilterableLineChart\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport { toast } from \"react-toastify\";\r\nimport { ReactComponent as NoDataSvg } from \"../../../../assets/no-chart-data.svg\";\r\nimport styled from \"styled-components\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport DashboardStyles from \"../../../../components/dashboard/DashboardStyles\";\r\n\r\nconst SvgNoData = styled(NoDataSvg)`\r\n width: 100%;\r\n`;\r\n\r\nconst MainContainer = styled(Flex.Container)`\r\n height: 100%;\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst LeftContainer = styled(DashboardStyles.Column)`\r\n width: 360px;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n width: 100%;\r\n order: 2;\r\n }\r\n`;\r\n\r\nconst MidContainer = styled(DashboardStyles.Column)`\r\n flex: 1;\r\n min-width: 500px;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n width: 100%;\r\n order: 3;\r\n }\r\n`;\r\n\r\nconst ExtractionsContainer = styled(Flex.Row)`\r\n height: 100%;\r\n`;\r\n\r\nconst QualityContainer = styled(Flex.Container)`\r\n position: relative;\r\n\r\n @media all and (max-width: ${props => props.theme.largeDevices}) {\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst QualityPieContainer = styled(Flex.Column)`\r\n \r\n`;\r\n\r\nconst ProgressContainer = styled(Flex.Column)`\r\n flex: 1;\r\n @media all and (max-width: ${props => props.theme.largeDevices}) {\r\n order: 2;\r\n }\r\n`;\r\n\r\nconst RightContainer = styled(Flex.Column)`\r\n min-width: 286px;\r\n width: 286px;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\n\r\nconst MarketplaceAdminDashboard = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:salesCenter\"),\r\n },\r\n ]);\r\n\r\n const [menuData, setMenuData] = useState();\r\n const [companyId, setCompanyId] = useState();\r\n const [qualityData, setQualityData] = useState();\r\n\r\n const [extractedFGasState, loadExtractedFGasState] = useDataReducer(async (id) => {\r\n return await StatisticsService.extractedFGasAdmin(id);\r\n });\r\n\r\n\r\n const [extractionsState, loadExtractions] = useDataReducer(async (filter) => {\r\n return await StatisticsService.extractionsAdmin(filter);\r\n });\r\n\r\n const [averagesState, loadAverages] = useDataReducer(async (filter) => {\r\n return await StatisticsService.tradedRefrigerantsAveragesAdmin(filter);\r\n });\r\n\r\n useEffect(() => {\r\n loadExtractedFGasState(companyId);\r\n\r\n }, [companyId]);\r\n\r\n const filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case DASHBOARD_CONSTANTS.actionTypes.SET_FILTERS:\r\n state.from = action.payload.from;\r\n state.to = action.payload.to;\r\n break;\r\n case DASHBOARD_CONSTANTS.actionTypes.RESET_FILTERS:\r\n delete state.from\r\n delete state.to\r\n break;\r\n default:\r\n return state;\r\n }\r\n };\r\n\r\n const onChangeFilter = ((filters) => {\r\n dispatch({\r\n type: DASHBOARD_CONSTANTS.actionTypes.SET_FILTERS,\r\n payload: filters,\r\n });\r\n });\r\n\r\n let companyResult = [];\r\n const companyLookup = async (companyName) => {\r\n if (!companyName || companyName.length < 1) return [];\r\n\r\n const filter = {\r\n filter: {\r\n companyName: companyName\r\n }\r\n };\r\n\r\n const res = await CompanyService.getCompaniesWithAdmin(filter);\r\n if (res.error) {\r\n toast.error(res.error.message);\r\n return [];\r\n }\r\n companyResult = res.data;\r\n return companyResult.map((r) => r.companyName);\r\n };\r\n\r\n const companySelect = (selectedCompanyName) => {\r\n let id = getCompanyId(selectedCompanyName);\r\n setCompanyId(id);\r\n };\r\n\r\n const getCompanyId = (companyName) => {\r\n const match = companyResult.filter(\r\n (itm) => itm.companyName === companyName\r\n );\r\n return match.length > 0 ? match[0].companyId : \"\";\r\n };\r\n\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n\r\n from: \"\",\r\n to: \"\",\r\n\r\n });\r\n\r\n const [selectedGasType, setSelectedGasType] = useState({\r\n id: \"\",\r\n code: \"\",\r\n firstExtractionDate: \"\",\r\n lastExtractionDate: \"\"\r\n });\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (extractedFGasState && extractedFGasState.isCompleted) {\r\n let menuData = dataFunctions.getExtractedFGasData(extractedFGasState);\r\n setMenuData(menuData);\r\n if (menuData && menuData.length > 0) {\r\n const firstMenu = menuData[0];\r\n\r\n setSelectedGasType({\r\n id: firstMenu.refrigerantId,\r\n code: firstMenu.refrigerantGasTypeCode,\r\n firstExtractionDate: firstMenu.firstExtractionDate,\r\n lastExtractionDate: firstMenu.lastExtractionDate,\r\n });\r\n\r\n }\r\n else {\r\n\r\n setSelectedGasType({\r\n id: \"\",\r\n code: \"\",\r\n firstExtractionDate: \"\",\r\n lastExtractionDate: \"\"\r\n });\r\n\r\n }\r\n }\r\n\r\n }, [extractedFGasState]);\r\n\r\n useEffect(() => {\r\n let data = [];\r\n if (extractedFGasState.isCompleted && selectedGasType && selectedGasType.id && selectedGasType.id !== \"\") {\r\n const filteredData = selectedGasType.id ? extractedFGasState.data.filter(x => x.refrigerantId === selectedGasType.id) : extractedFGasState.data;\r\n const totalQuantity = parseFloat(filteredData.reduce((sum, current) => sum + current.quantity, 0));\r\n\r\n data = PRESUMED_GRADES.map(grade => {\r\n\r\n const sumQuantity = filteredData.filter(x => x.presumedGrade === grade.id).reduce((sumQuantity, current) => sumQuantity + current.quantity, 0);\r\n return {\r\n name: grade.name,\r\n color: grade.color,\r\n value: sumQuantity,\r\n percent: sumQuantity / totalQuantity * 100\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n setQualityData(data);\r\n\r\n }, [selectedGasType]);\r\n\r\n useEffect(() => {\r\n const filter = getSelectedFilter();\r\n if (filter && filter.refrigerantId) {\r\n loadAverages({ filter: filter });\r\n }\r\n }, [filterState, selectedGasType]);\r\n\r\n const getSelectedFilter = () => {\r\n if (filterState && selectedGasType) {\r\n let isSelected = selectedGasType.id && selectedGasType.id !== \"\";\r\n const refrigerantId = { refrigerantId: isSelected ? selectedGasType.id : null };\r\n\r\n let filter = { ...filterState, ...refrigerantId };\r\n if (companyId) {\r\n const companyIdFilter = { companyId: companyId };\r\n filter = { ...filter, ...companyIdFilter };\r\n }\r\n return filter;\r\n }\r\n else return null;\r\n }\r\n\r\n useEffect(() => {\r\n let filter = getSelectedFilter();\r\n\r\n loadExtractions({ filter: filter });\r\n\r\n }, [filterState, selectedGasType.id]);\r\n\r\n\r\n useEffect(() => {\r\n if (selectedGasType && (selectedGasType.firstExtractionDate || selectedGasType.lastExtractionDate)) {\r\n onChangeFilter({ from: new Date(selectedGasType.firstExtractionDate), to: new Date(selectedGasType.lastExtractionDate) });\r\n }\r\n\r\n }, [selectedGasType]);\r\n\r\n\r\n const handleClick = (ev) => {\r\n const tgt = ev.currentTarget;\r\n if (tgt.dataset.value !== undefined && tgt.dataset.info !== undefined) {\r\n const refrigerantId = tgt.dataset.value;\r\n const refrigerantCode = tgt.dataset.info;\r\n const gasInfo = menuData.filter(x => x.refrigerantId === refrigerantId)[0];\r\n\r\n setSelectedGasType({\r\n id: refrigerantId,\r\n code: refrigerantCode,\r\n firstExtractionDate: gasInfo.firstExtractionDate,\r\n lastExtractionDate: gasInfo.lastExtractionDate,\r\n });\r\n }\r\n }\r\n\r\n const selectedGasLabel = () => {\r\n return selectedGasType.code ? \"- \" + selectedGasType.code : \"\";\r\n }\r\n\r\n const getAverageTitle = (grade) => {\r\n return selectedGasType ? `${t(\"screens:salesDashboard.labels.averagePrice\")} - ${grade} ${t(\"screens:salesDashboard.labels.grade\")} ${selectedGasType.code} ` : \"\";\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:admindashboard.title\")}\r\n \r\n\r\n \r\n \r\n\r\n {averagesState?.data ? averagesState?.data.map((data, index) => (\r\n \r\n\r\n \r\n \r\n\r\n \r\n )) : null\r\n }\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n \r\n\r\n {/* \r\n */}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n menuData && (\r\n )\r\n }\r\n\r\n\r\n \r\n\r\n \r\n \r\n );\r\n};\r\nexport default MarketplaceAdminDashboard;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_8\",\n \"data-name\": \"Ellipse 8\",\n cx: 4,\n cy: 4,\n r: 4,\n fill: \"#2294d2\"\n});\n\nvar SvgDot = function SvgDot(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 8,\n viewBox: \"0 0 8 8\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDot, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/dot.788005bf.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect, useRef } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as DotSvg } from \"../../../assets/dot.svg\";\r\n\r\nconst StyledDot = styled(DotSvg)`\r\n &.inactive circle {\r\n fill: #e0e0e0;\r\n }\r\n`;\r\n\r\nconst DotWrapper = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 12px;\r\n\r\n & > * + * {\r\n margin-left: 12px;\r\n }\r\n`;\r\n\r\nconst SliderWrapper = styled.div`\r\n width: 100%;\r\n min-height: 40px;\r\n height: max-content;\r\n display: flex;\r\n flex-direction: column;\r\n overflow-x: auto;\r\n`;\r\n\r\nconst SLiderTitle = styled.div`\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n font-size: 14px;\r\n\r\n & .title {\r\n font-weight: 700;\r\n }\r\n\r\n & img {\r\n transform: rotateZ(90deg);\r\n margin-left: 0px;\r\n margin-right: 20px;\r\n cursor: pointer;\r\n }\r\n\r\n & img.next {\r\n transform: rotateZ(-90deg);\r\n margin-left: 20px;\r\n margin-right: 0px;\r\n }\r\n\r\n & img.disabled {\r\n cursor: default;\r\n filter: grayscale();\r\n }\r\n`;\r\n\r\nconst SlideContent = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n overflow-x: auto;\r\n\r\n &.column {\r\n flex-direction: column;\r\n }\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n & > * {\r\n flex-grow: 1;\r\n flex-shrink: 0;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Slide = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst Slider = ({\r\n title,\r\n captions = [],\r\n prefix = \"slide-\",\r\n children,\r\n column = false,\r\n ...rest\r\n}) => {\r\n const [state, setState] = useState({\r\n idx: 0,\r\n prevEnabled: false,\r\n nextEnabled: captions.length > 1,\r\n });\r\n\r\n const firstRender = useRef(true);\r\n\r\n useEffect(() => {\r\n if(firstRender.current){\r\n firstRender.current = false;\r\n return;\r\n }\r\n const selector = `#${prefix}${state.idx + 1}`;\r\n const sliedEl = document.querySelector(selector);\r\n sliedEl &&\r\n sliedEl.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }, [state.idx]);\r\n\r\n const handleNext = (ev) => {\r\n if (state.idx < captions.length - 1) {\r\n setState((state) => ({\r\n ...state,\r\n idx: state.idx + 1,\r\n nextEnabled: state.idx + 1 < captions.length - 1,\r\n prevEnabled: true,\r\n }));\r\n }\r\n };\r\n\r\n const handlePrev = (ev) => {\r\n if (state.idx > 0) {\r\n setState((state) => ({\r\n ...state,\r\n idx: state.idx - 1,\r\n nextEnabled: state.idx - 1 < captions.length - 1,\r\n prevEnabled: state.idx - 1 > 0,\r\n }));\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n
    {title}
    \r\n
    \r\n handlePrev(ev)}\r\n />\r\n {captions[state.idx] || \"\"}\r\n handleNext(ev)}\r\n />\r\n
    \r\n
    \r\n {children}\r\n \r\n {captions.map((capt, idx) => {\r\n return ;\r\n })}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Slider;\r\nexport { Slide };\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport { Num, NumInfo, NumSection } from \"../../../../components/elements/sidebar/SidebarStyle\";\r\n\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst MarketplaceDetailSideBar = ({\r\n offer,\r\n details,\r\n item,\r\n isLoading,\r\n companyId,\r\n toggleBidModal,\r\n bidAlreadyPlaced,\r\n}) => {\r\n const { t } = useTranslation([\"sidebar\"]);\r\n const shouldShow = item && !isLoading;\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n const gradeNames = [\"A\", \"B\", \"C\"];\r\n\r\n const formatDateStr = (str) => {\r\n const fmt = Intl.DateTimeFormat(\"sk\", {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n return fmt.format(new Date(str));\r\n };\r\n\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n {offer && (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n {details.buyingItemData.skUs && (\r\n \r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {details.buyingItemData.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n let exCnt = 0;\r\n return details.buyingItemData.hasAnalysis ? (\r\n
    \r\n {sku.extractions.map((ex, idx) => (\r\n \r\n {++exCnt}\r\n
    \r\n \r\n\r\n \r\n ${t(\"actions:download\")}\r\n `}\r\n />\r\n\r\n \r\n\r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n
    \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n N/A\r\n \r\n {t(\"actions:noContamination\")}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\"screens:stock.aGradeText\")}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\"screens:stock.bGradeText\")}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\"screens:stock.cGradeText\")}\r\n \r\n \r\n )}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {companyId && companyId !== item.companyId && !bidAlreadyPlaced && (\r\n
    \r\n \r\n {t(\"label.placeBid\")}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MarketplaceDetailSideBar;\r\n","import PropTypes from \"prop-types\";\r\nimport React, { useRef, useEffect } from \"react\";\r\nimport { MoneyContent, InputWrapper } from \"../Stylings\";\r\nimport { Input, Label, ValidationError } from \"./index\";\r\n\r\nconst allowedKeys = [\"-\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\n\r\nconst MoneyInputElement = (props) => {\r\n let {\r\n labelText,\r\n name,\r\n id,\r\n values,\r\n handleChange,\r\n handleBlur,\r\n wrapperVariant,\r\n disabled,\r\n style,\r\n positive,\r\n formik,\r\n grade,\r\n type,\r\n currencyLabel = \"EUR\\\\kg\",\r\n ...rest\r\n } = props;\r\n\r\n let value = props.value\r\n ? props.value\r\n : formik.values && formik.values[name];\r\n let error = formik.errors[name];\r\n let isTouched = formik.touched[name];\r\n\r\n let inputVal = value || \"0.00\";\r\n if (typeof inputVal === \"number\" && isFinite(inputVal))\r\n inputVal = inputVal.toFixed(2);\r\n\r\n const inputRef = useRef();\r\n\r\n const handleKeyDown = (ev) => {\r\n if (ev.keyCode === 9) return true;\r\n ev.preventDefault();\r\n\r\n if (ev.keyCode === 8 || ev.keyCode === 46) {\r\n if (Number(inputRef.current.value) < 0.1) {\r\n inputRef.current.value = \"0.00\";\r\n } else\r\n inputRef.current.value = (\r\n Number(inputRef.current.value) / 10\r\n ).toFixed(2);\r\n } else if (allowedKeys.indexOf(ev.key) >= 0) {\r\n if (ev.key === \"-\") {\r\n if (!positive)\r\n inputRef.current.value = (-Number(\r\n inputRef.current.value\r\n )).toFixed(2);\r\n } else\r\n inputRef.current.value = (\r\n Number(inputRef.current.value) * 10 +\r\n Number(ev.key) / 100\r\n ).toFixed(2);\r\n }\r\n };\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n {currencyLabel}\r\n \r\n\r\n {error && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MoneyInputElement;\r\n\r\nMoneyInputElement.propTypes = {\r\n labelText: PropTypes.any.isRequired,\r\n name: PropTypes.any.isRequired,\r\n type: PropTypes.any.isRequired,\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport MoneyInputElement from \"../elements/form-elements/MoneyInputElement\";\r\n\r\nconst BidWrapper = styled.div`\r\n margin: 0 32px 0 0;\r\n width: 33%;\r\n max-width: 33%;\r\n flex: 1 1 0;\r\n\r\n &:last-child {\r\n margin: 0;\r\n }\r\n\r\n &.size-3 {\r\n width: 33%;\r\n max-width: 33%;\r\n }\r\n\r\n &.size-2 {\r\n width: 50%;\r\n max-width: 50%;\r\n }\r\n\r\n &.size-1 {\r\n width: 100%;\r\n max-width: 100%;\r\n }\r\n`;\r\n\r\nconst BidItem = ({\r\n t,\r\n grade,\r\n value,\r\n minValue,\r\n error,\r\n positive,\r\n className,\r\n formik,\r\n labelText,\r\n}) => {\r\n className = error ? `${error} ${className}` : className;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BidItem;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport BidItem from \"./BidItem\";\r\nimport Globals from \"../../globalVars\";\r\nimport MoneyInputElement from \"../elements/form-elements/MoneyInputElement\";\r\nimport { Num } from \"../elements/sidebar/SidebarStyle\";\r\n\r\nconst BidsWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n padding: 0 0 24px 0;\r\n flex-basis: 100%;\r\n width: 100%;\r\n margin: 0 2%;\r\n\r\n & > .handling {\r\n width: calc(50% - 16px);\r\n }\r\n & > .handling + .handling {\r\n margin-left: 32px;\r\n }\r\n`;\r\n\r\nconst TotalBids = styled.div`\r\n width: 100%;\r\n margin: 0 2%;\r\n\r\n p {\r\n border-bottom: 1px solid #000;\r\n padding: 0 20px;\r\n }\r\n`;\r\n\r\nconst Calculate = styled.div`\r\n display: flex;\r\n width: 100%;\r\n`;\r\n\r\nconst CalcGrade = styled.div`\r\n flex: 1 1 0;\r\n width: 33%;\r\n font-size: 0.75rem;\r\n`;\r\n\r\nconst GradeInfo = styled.div`\r\n padding: 4px 20px;\r\n //height: 52px;\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n\r\n span {\r\n color: ${(props) => props.theme.textNeutral};\r\n line-height: 1rem;\r\n }\r\n`;\r\n\r\nconst TotalPrice = styled.div`\r\n border-top: 1px solid ${(props) => props.theme.borderSeparator};\r\n font-size: 1rem;\r\n text-align: center;\r\n padding: 4px 0 0;\r\n font-weight: bold;\r\n\r\n & > div {\r\n color: #000;\r\n }\r\n\r\n &.net {\r\n border: 0;\r\n font-size: 12px;\r\n font-weight: normal;\r\n }\r\n\r\n &.total-a {\r\n color: ${(props) => props.theme.bidA};\r\n }\r\n &.total-b {\r\n color: ${(props) => props.theme.bidB};\r\n }\r\n &.total-c {\r\n color: ${(props) => props.theme.bidC};\r\n }\r\n`;\r\n\r\nconst Bids = (props) => {\r\n const {\r\n offer,\r\n isLoading,\r\n formik,\r\n disabledGrades = [],\r\n gradeLabels = [],\r\n buyersDeposit = true,\r\n withVat = true,\r\n handlingStep = false,\r\n disableInputs = false,\r\n } = props;\r\n\r\n const [vatInfo, setVatInfo] = useState({\r\n percent: Globals.VATPercentage,\r\n percString: Globals.VATPercString,\r\n });\r\n\r\n const [prices, setPrices] = useState({\r\n A: 0,\r\n B: 0,\r\n C: 0,\r\n AVat: 0,\r\n BVat: 0,\r\n CVat: 0,\r\n handling: 0,\r\n });\r\n\r\n useEffect(() => {\r\n const vatPercentage =\r\n Globals.userCountryId === offer.offererCountryId\r\n ? Globals.VATPercentage\r\n : 1;\r\n const percString =\r\n Globals.userCountryId === offer.offererCountryId\r\n ? Globals.VATPercString\r\n : \"0\";\r\n\r\n setPrices({\r\n A: calculatePrice(formik.values.gradeA).toFixed(2),\r\n B: calculatePrice(formik.values.gradeB).toFixed(2),\r\n C: calculatePrice(formik.values.gradeC).toFixed(2),\r\n AVat: (\r\n calculatePrice(formik.values.gradeA) * vatPercentage\r\n ).toFixed(2),\r\n BVat: (\r\n calculatePrice(formik.values.gradeB) * vatPercentage\r\n ).toFixed(2),\r\n CVat: (\r\n calculatePrice(formik.values.gradeC) * vatPercentage\r\n ).toFixed(2),\r\n CVatHandling: (\r\n calculatePrice(formik.values.gradeC) * vatPercentage\r\n ).toFixed(2),\r\n handling: 0,\r\n transportationCosts: 0,\r\n administrationCosts: 0,\r\n });\r\n setVatInfo({ percent: vatPercentage, percString });\r\n }, [handlingStep]);\r\n\r\n const { t } = useTranslation();\r\n\r\n const handleAmount = (event) => {\r\n const amount = event.target.value;\r\n const grade = event.target.dataset.grade;\r\n setPrices((prevState) => ({\r\n ...prevState,\r\n [grade]: calculatePrice(amount).toFixed(2),\r\n [grade + \"Vat\"]: (calculatePrice(amount) * vatInfo.percent).toFixed(\r\n 2\r\n ),\r\n }));\r\n\r\n return formik.handleChange(event);\r\n };\r\n\r\n const formikWithGradeHandling = Object.assign({}, formik, {\r\n handleChange: handleAmount,\r\n });\r\n\r\n const handleCosts = (event) => {\r\n const amount = Number(event.target.value);\r\n const cost = event.target.name;\r\n const otherCost =\r\n event.target.name === \"transportationCosts\"\r\n ? \"administrationCosts\"\r\n : \"transportationCosts\";\r\n const vatPercentage =\r\n Globals.userCountryId === offer.offererCountryId\r\n ? Globals.VATPercentage\r\n : 1;\r\n setPrices((prevState) => ({\r\n ...prevState,\r\n [cost]: amount,\r\n handling: (prevState[otherCost] + Number(amount)).toFixed(2),\r\n CVatHandling: (\r\n (calculatePrice(formik.values.gradeC) +\r\n prevState[otherCost] +\r\n Number(amount)) *\r\n vatPercentage\r\n ).toFixed(2),\r\n }));\r\n return formik.handleChange(event);\r\n };\r\n\r\n const formikWithCostsHandling = Object.assign({}, formik, {\r\n handleChange: handleCosts,\r\n });\r\n\r\n const calculatePrice = (amount) => {\r\n return Number(offer.maximumQuantity * Number(amount));\r\n };\r\n\r\n if (isLoading) {\r\n return null;\r\n }\r\n const bidItemsNum = 3 - disabledGrades.length;\r\n return (\r\n <>\r\n \r\n {handlingStep && (\r\n <>\r\n \r\n\r\n \r\n \r\n )}\r\n {!handlingStep && !disabledGrades.includes(\"A\") && (\r\n \r\n )}\r\n {!handlingStep && !disabledGrades.includes(\"B\") && (\r\n \r\n )}\r\n {!handlingStep && !disabledGrades.includes(\"C\") && (\r\n \r\n )}\r\n \r\n\r\n \r\n

    \r\n {t(\"forms:bid.wizard.totalBids\", {\r\n gasType: offer.refrigerantGasTypeCode,\r\n })}{\" \"}\r\n :\r\n

    \r\n\r\n \r\n {!disabledGrades.includes(\"A\") && (\r\n \r\n \r\n \r\n {gradeLabels.length < 1\r\n ? `${t(\"forms:bid.wizard.grade\", {\r\n grade: \"A\",\r\n })} / ${offer.maximumQuantity.toFixed(\r\n 2\r\n )} kg`\r\n : gradeLabels[0]}\r\n \r\n {buyersDeposit ? (\r\n \r\n {t(\"forms:bid.wizard.buyersDeposit\")}\r\n \r\n ) : (\r\n   \r\n )}\r\n {withVat && (\r\n \r\n {prices[\"A\"]} EUR\r\n
    \r\n + {t(\"filters:company.vat\")} (\r\n {vatInfo.percString}%)\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n {prices[withVat ? \"AVat\" : \"A\"]} EUR\r\n \r\n
    \r\n )}\r\n {!disabledGrades.includes(\"B\") && (\r\n \r\n \r\n \r\n {gradeLabels.length < 2\r\n ? `${t(\"forms:bid.wizard.grade\", {\r\n grade: \"B\",\r\n })} / ${offer.maximumQuantity.toFixed(\r\n 2\r\n )} kg`\r\n : gradeLabels[1]}\r\n \r\n   \r\n {withVat && (\r\n \r\n {prices[\"B\"]} EUR{\" \"}\r\n
    \r\n + {t(\"filters:company.vat\")} (\r\n {vatInfo.percString}%)\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n {prices[withVat ? \"BVat\" : \"B\"]} EUR\r\n \r\n
    \r\n )}\r\n {!disabledGrades.includes(\"C\") && (\r\n \r\n \r\n \r\n {gradeLabels.length < 3\r\n ? `${t(\"forms:bid.wizard.grade\", {\r\n grade: \"C\",\r\n })} / ${offer.maximumQuantity.toFixed(\r\n 2\r\n )} kg`\r\n : gradeLabels[2]}\r\n \r\n \r\n {t(\"forms:bid.wizard.sellersDeposit\")}\r\n \r\n {withVat && (\r\n \r\n {prices[\"C\"]} EUR\r\n {formik.values[\"chargeSeller\"] &&\r\n ` + ${prices[\"handling\"]} EUR`}\r\n
    \r\n + {t(\"filters:company.vat\")} (\r\n {vatInfo.percString}%)\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n {\r\n prices[\r\n withVat\r\n ? formik.values[\"chargeSeller\"]\r\n ? \"CVatHandling\"\r\n : \"CVat\"\r\n : \"C\"\r\n ]\r\n }{\" \"}\r\n EUR\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Bids;\r\n","import React, { Fragment } from \"react\";\r\nimport Bids from \"../../../../components/bids/Bids\";\r\n\r\nconst OfferBids = ({\r\n offers,\r\n isLoading,\r\n formik,\r\n disabledGrades = [],\r\n gradeLabels = [],\r\n buyersDeposit = true,\r\n withVat = true,\r\n handlingStep = false,\r\n disableInputs = false\r\n}) => {\r\n\r\n return offers.map((offer) => {\r\n const key = `${offer.offerId}-${!handlingStep ? \"first\": \"second\"}`;\r\n return (\r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nexport default OfferBids;\r\n","const AnalysisStatus = {\r\n false: 'selfAssessment',\r\n true: 'measurement'\r\n};\r\n\r\nexport default AnalysisStatus;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_493\",\n \"data-name\": \"Rectangle 493\",\n width: 40.779,\n height: 24,\n transform: \"translate(0 71)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Mask_Group_1\",\n \"data-name\": \"Mask Group 1\",\n transform: \"translate(0 -71)\",\n clipPath: \"url(#clip-path)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Calendar\",\n transform: \"translate(8.389 71)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1655\",\n \"data-name\": \"Group 1655\",\n transform: \"translate(5.6 10.4)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_871\",\n \"data-name\": \"Path 871\",\n d: \"M266.867,500.867a3.127,3.127,0,0,1-3.2-3.04.378.378,0,0,1,.4-.4.448.448,0,0,1,.4.48,2.326,2.326,0,0,0,2.4,2.24,2.245,2.245,0,1,0,0-4.48h-1.68a.4.4,0,1,1,0-.8h1.68a2.276,2.276,0,0,0,2.4-2.24,2.214,2.214,0,0,0-2.4-2.16,2.276,2.276,0,0,0-2.4,2.24.378.378,0,0,1-.4.4.429.429,0,0,1-.4-.4,3.2,3.2,0,0,1,6.4,0,3.067,3.067,0,0,1-1.6,2.64,2.971,2.971,0,0,1,1.6,2.64A3.105,3.105,0,0,1,266.867,500.867Z\",\n transform: \"translate(-263.667 -489.667)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1656\",\n \"data-name\": \"Group 1656\",\n transform: \"translate(14.44 10.367)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_872\",\n \"data-name\": \"Path 872\",\n d: \"M682.643,499.339a.378.378,0,0,1-.4-.4V489.5l-1.68,1.68a.4.4,0,0,1-.56-.56l2.4-2.4c.08-.08.32-.16.4-.08a.44.44,0,0,1,.24.4v10.4A.378.378,0,0,1,682.643,499.339Z\",\n transform: \"translate(-679.883 -488.106)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1657\",\n \"data-name\": \"Group 1657\",\n transform: \"translate(0 2.4)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_873\",\n \"data-name\": \"Path 873\",\n d: \"M20.56,134.6H3.44A3.4,3.4,0,0,1,0,131.24V116.36A3.4,3.4,0,0,1,3.44,113a.4.4,0,1,1,0,.8A2.6,2.6,0,0,0,.8,116.36v14.88a2.6,2.6,0,0,0,2.64,2.56H20.56a2.6,2.6,0,0,0,2.64-2.56V116.36a2.6,2.6,0,0,0-2.64-2.56.4.4,0,1,1,0-.8A3.4,3.4,0,0,1,24,116.36v14.88A3.4,3.4,0,0,1,20.56,134.6Z\",\n transform: \"translate(0 -113)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1658\",\n \"data-name\": \"Group 1658\",\n transform: \"translate(7.2 2.4)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_874\",\n \"data-name\": \"Path 874\",\n d: \"M348.2,113.8h-8.8a.4.4,0,0,1,0-.8h8.8a.4.4,0,1,1,0,.8Z\",\n transform: \"translate(-339 -113)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1659\",\n \"data-name\": \"Group 1659\",\n transform: \"translate(4.8)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_875\",\n \"data-name\": \"Path 875\",\n d: \"M226.4,4.8a.378.378,0,0,1-.4-.4V.4a.4.4,0,1,1,.8,0v4A.378.378,0,0,1,226.4,4.8Z\",\n transform: \"translate(-226)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1660\",\n \"data-name\": \"Group 1660\",\n transform: \"translate(18.4)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_876\",\n \"data-name\": \"Path 876\",\n d: \"M866.734,4.8a.378.378,0,0,1-.4-.4V.4a.4.4,0,0,1,.8,0v4A.378.378,0,0,1,866.734,4.8Z\",\n transform: \"translate(-866.333)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1661\",\n \"data-name\": \"Group 1661\",\n transform: \"translate(0 7.2)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_877\",\n \"data-name\": \"Path 877\",\n d: \"M23.6,339.8H.4a.4.4,0,0,1,0-.8H23.6a.4.4,0,0,1,0,.8Z\",\n transform: \"translate(0 -339)\",\n fill: \"#2294d2\",\n stroke: \"#2294d2\",\n strokeWidth: 0.75\n}))));\n\nvar SvgCalendar = function SvgCalendar(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40.779,\n height: 24,\n viewBox: \"0 0 40.779 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCalendar, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/calendar.66ad9472.svg\";\nexport { ForwardRef as ReactComponent };","import i18next from \"i18next\";\r\nimport React, { useRef, useState, useEffect } from \"react\";\r\nimport ReactDatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { ReactComponent as ResetSvg } from \"../../../assets/close.svg\";\r\nimport { Label, ValidationError } from \"../form-elements\";\r\nimport { InputWrapper } from \"../Stylings\";\r\nimport Input from \"./Input\";\r\nimport { ReactComponent as CalendarSvg } from \"../../../assets/calendar.svg\";\r\n\r\nconst SvgCalendar = styled(CalendarSvg)`\r\n position: absolute;\r\n top: 50%;\r\n right: 4px;\r\n width: auto;\r\n height: 22px;\r\n transform: translateY(calc(-50% - 8px));\r\n z-index: 2;\r\n pointer-events: none;\r\n`;\r\n\r\nconst StyledReset = styled(ResetSvg)`\r\n position: absolute;\r\n left: 12px;\r\n top: 10px;\r\n width: 12px;\r\n height: 12px;\r\n transition: all 300ms ease;\r\n z-index: 2;\r\n\r\n &.clearable {\r\n top: 17px;\r\n width: 12px;\r\n height: 12px;\r\n }\r\n\r\n &:hover .lines {\r\n stroke: #e94e4e;\r\n }\r\n`;\r\n\r\nconst StyledDatePickerWrapper = styled.div`\r\n position: relative;\r\n\r\n & .react-datepicker-wrapper {\r\n width: 100%;\r\n }\r\n\r\n & .react-datepicker-popper {\r\n z-index: 10000;\r\n }\r\n\r\n & input[value=\"\"],\r\n & input:not([value]) {\r\n font-style: italic;\r\n padding-left: 8px !important;\r\n }\r\n`;\r\n\r\nfunction dateToInputString(date) {\r\n if (Object.prototype.toString.call(date) !== \"[object Date]\") return date;\r\n try {\r\n let day = date.getDate();\r\n let month = date.getMonth() + 1;\r\n let year = date.getFullYear();\r\n let hour = date.getHours();\r\n let min = date.getMinutes();\r\n\r\n if (month < 10) month = \"0\" + month;\r\n if (day < 10) day = \"0\" + day;\r\n if (hour < 10) hour = \"0\" + hour;\r\n if (min < 10) min = \"0\" + min;\r\n\r\n return year + \"-\" + month + \"-\" + day + \"T\" + hour + \":\" + min;\r\n } catch (ex) {\r\n return \"\";\r\n }\r\n}\r\n\r\nconst StyledDatePicker = styled(ReactDatePicker)`\r\n box-sizing: border-box;\r\n width: 100%;\r\n background: ${(props) => props.theme.inputBgColor};\r\n padding: 8px;\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor || \"#d4d4d4\"};\r\n border-radius: ${(props) => props.theme.inputBorderRadius || \"5px\"};\r\n margin: 0 0 15px;\r\n height: 46px;\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n background: #f5f5f5;\r\n `};\r\n\r\n &.filters.group {\r\n width: 158px !important;\r\n }\r\n\r\n &.filters {\r\n border-radius: 23px;\r\n height: 32px;\r\n font-size: 14px;\r\n }\r\n\r\n &.filters::placeholder {\r\n padding-left: 0 !important;\r\n }\r\n\r\n &.filters.left {\r\n border-radius: 32px 0px 0px 32px;\r\n }\r\n\r\n &.filters.right {\r\n border-radius: 0px 32px 32px 0px;\r\n }\r\n\r\n &.filters.big {\r\n border-radius: 46px;\r\n padding-left: 25px;\r\n }\r\n\r\n &.filters.big::placeholder {\r\n padding-left: 25px !important;\r\n font-style: normal;\r\n }\r\n\r\n &.filters.big.left {\r\n border-radius: 46px 0px 0px 46px;\r\n }\r\n\r\n &.filters.big.right {\r\n border-radius: 0px 46px 46px 0px;\r\n }\r\n`;\r\n\r\nconst DatePicker = (props) => {\r\n let {\r\n setFieldValue,\r\n labelText,\r\n name,\r\n values = {},\r\n errors,\r\n touched,\r\n wrapperVariant,\r\n style,\r\n selected,\r\n disabled,\r\n filter = \"future\",\r\n minDate,\r\n maxDate,\r\n } = props;\r\n let error = errors ? errors[name] : \"\";\r\n let isTouched = touched ? touched[name] : \"\";\r\n\r\n const date = new Date();\r\n let today = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n const isFutureDate = (date) => date >= today;\r\n const isPasteDate = (date) => date <= today;\r\n let filterDate = () => true;\r\n if (filter === \"future\") filterDate = isFutureDate;\r\n else if (filter === \"past\") filterDate = isPasteDate;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n setFieldValue && setFieldValue(name, val);\r\n }}\r\n mode=\"date\"\r\n dateFormat=\"dd.MM.yyyy\"\r\n showTimeSelect={false}\r\n filterDate={filterDate}\r\n disabled={disabled}\r\n minDate={minDate ?? new Date(\"1/1/1930\")}\r\n maxDate={maxDate ?? new Date(\"1/1/2100\")}\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst DateTimePicker = (props) => {\r\n let {\r\n labelText,\r\n name,\r\n errors,\r\n touched,\r\n wrapperVariant,\r\n style,\r\n selected,\r\n disabled,\r\n filter = \"\",\r\n className,\r\n mode = \"date\",\r\n native,\r\n value,\r\n values,\r\n noLabel,\r\n placeholder,\r\n minDate,\r\n maxDate,\r\n minPickerId,\r\n maxPickerId,\r\n } = props;\r\n\r\n let error = errors ? errors[name] : \"\";\r\n let isTouched = touched ? touched[name] : false;\r\n\r\n const inputEl = useRef();\r\n const iniValue = value || (values ? values[name] : \"\");\r\n const [currentDate, setCurrentDate] = useState(selected || iniValue);\r\n const date = new Date();\r\n let today = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n const isFutureDate = (date) => date >= today;\r\n const isPasteDate = (date) => date <= today;\r\n let filterDate = () => true;\r\n if (filter === \"future\") filterDate = isFutureDate;\r\n else if (filter === \"past\") filterDate = isPasteDate;\r\n useEffect(() => {\r\n setCurrentDate(\r\n iniValue ? (native ? dateToInputString(iniValue) : new Date(iniValue)) : null\r\n );\r\n }, [iniValue]);\r\n\r\n const handleNativeChange = (ev) => {\r\n const minPickerEl = minPickerId ? document.getElementById(minPickerId) : null;\r\n if (minPickerEl) {\r\n minPickerEl.max = ev.target.value;\r\n }\r\n const maxPickerEl = maxPickerId ? document.getElementById(maxPickerId) : null;\r\n if (maxPickerEl) {\r\n maxPickerEl.min = ev.target.value;\r\n }\r\n setCurrentDate(ev.target.value);\r\n };\r\n\r\n return (\r\n \r\n {!noLabel && (\r\n \r\n )}\r\n \r\n {currentDate && !native && (\r\n {\r\n props.handleChange && props.handleChange(\"\");\r\n setCurrentDate(\"\");\r\n }}\r\n />\r\n )}\r\n {native ? (\r\n {\r\n props.handleChange && props.handleChange(ev);\r\n handleNativeChange(ev);\r\n }}\r\n />\r\n ) : (\r\n {\r\n props.handleChange && props.handleChange(date);\r\n setCurrentDate(date);\r\n }}\r\n popperPlacement=\"bottom-start\"\r\n popperModifiers={{\r\n offset: {\r\n enabled: true,\r\n offset: \"5px, 0px\",\r\n },\r\n preventOverflow: {\r\n enabled: true,\r\n escapeWithReference: false,\r\n boundariesElement: \"viewport\",\r\n },\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DatePicker;\r\nexport { DateTimePicker };\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport AnalysisStatus from \"../../../../core/enums/AnalysisStatus\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport Globals from \"../../../../globalVars\";\r\n\r\nconst MarketplaceFilter = ({\r\n filterState,\r\n dispatch,\r\n actionTypes,\r\n gasTypes,\r\n screen,\r\n tabIndex,\r\n showMeasurement = true\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [quantityToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_GAS_QUANTITY_TO, payload: text.trim() })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [quantityFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_FROM,\r\n payload: text.trim(),\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n });\r\n });\r\n const showHideOffers = [\r\n { key: t(\"offers.hideMyOffers\"), value: true },\r\n { key: t(\"offers.showMyOffers\"), value: false },\r\n ];\r\n\r\n const hideWithBids = [\r\n { key: t(\"offers.hideItemsWithBids\"), value: true },\r\n { key: t(\"offers.showItemsWithBids\"), value: false },\r\n ];\r\n\r\n const showWithBids = [\r\n { key: t(\"offers.allOffers\"), value: false },\r\n { key: t(\"offers.offersWithBids\"), value: true },\r\n ];\r\n\r\n return (\r\n \r\n {screen === \"market\" && (\r\n <>\r\n {!Globals.isAdmin && (\r\n <>\r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hideMyOffers !== undefined\r\n ? filterState.hideMyOffers\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HIDEMYOFFERS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HIDEMYOFFERS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.hideMyOffers\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hideOffersWithMyBid !==\r\n undefined\r\n ? filterState.hideOffersWithMyBid\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HIDEWITHBIDS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HIDEWITHBIDS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.hideItemsWithBids\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_FROM\r\n : actionTypes.SET_OFFER_CREATION__DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_TO\r\n : actionTypes.SET_OFFER_CREATION__DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n {screen === \"offers\" && tabIndex === 0 && (\r\n <>\r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hasOffers !== undefined\r\n ? filterState.hasOffers\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HASOFFERS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HASOFFERS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.showItemsWithBids\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n )}\r\n\r\n {(screen === \"offers\" || screen === \"bids\") &&\r\n (tabIndex === 1 || tabIndex === 2) && (\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXPIRATION_DATE_FROM\r\n : actionTypes.SET_EXPIRATION_DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXPIRATION_DATE_TO\r\n : actionTypes.SET_EXPIRATION_DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n )}\r\n\r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n {\r\n quantityFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityFrom\")}\r\n title={t(\"gas.quantityFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n quantityToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityTo\")}\r\n title={t(\"gas.quantityTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n \r\n {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_PRESUMED_QUALITY\r\n : actionTypes.SET_PRESUMED_QUALITY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.presumedQuality\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n {\r\n showMeasurement && \r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: t(\"analysis.\" + AnalysisStatus[key]),\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_QUALITY_ASSURANCE\r\n : actionTypes.SET_QUALITY_ASSURANCE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.qualityAssurance\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n }\r\n {Globals.isAdmin && (\r\n \r\n ({\r\n key: country.id,\r\n value: country.id,\r\n label: country.localName,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n if (evt.currentTarget.value === \"\") {\r\n dispatch({\r\n type: actionTypes.RESET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"filters:clients.country\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(MarketplaceFilter);\r\n","import React from \"react\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { Checkbox } from \"../../../../components/elements/form-elements\";\r\nimport OfferBids from \"./OfferBids\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nconst validGrades = (t) => {\r\n return buildValidation({\r\n gradeA: ValidationRule.min(\r\n 0.1,\r\n t(\"forms:bid.wizard.minimum\"),\r\n t(\"forms:bid.wizard.minimum\")\r\n ).rule,\r\n gradeB: ValidationRule.min(\r\n 0.1,\r\n t(\"forms:bid.wizard.minimum\"),\r\n t(\"forms:bid.wizard.minimum\")\r\n ).rule,\r\n gradeC: ValidationRule.min(\r\n 0.1,\r\n t(\"forms:bid.wizard.minimum\"),\r\n t(\"forms:bid.wizard.minimum\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst WizardPlaceBid = (\r\n t,\r\n initialValues,\r\n offers,\r\n bidIsLoading,\r\n enableHandlingCosts\r\n) => {\r\n initialValues.chargeSeller = false;\r\n const handleChargeSellerCheck = (ev, formik, updatePropertyBag) => {\r\n formik.setFieldValue(\"chargeSeller\", ev.target.checked);\r\n updatePropertyBag({ chargeSeller: ev.target.checked });\r\n };\r\n\r\n return {\r\n title: t(\"forms:bid.wizard.title\"),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:bid.wizard.step1\"),\r\n fieldNames: [\"gradeA\", \"gradeB\", \"gradeC\"],\r\n validation: validGrades(t),\r\n onStepRender: async (props) => {\r\n props.updatePropertyBag({ handling: false });\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:bid.wizard.infoTitle\")}\r\n \r\n \r\n {t(\"forms:bid.wizard.infoText\")}\r\n
    \r\n {t(\"forms:bid.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:bid.wizard.step2\"),\r\n fieldNames: [\r\n \"chargeSeller\",\r\n \"transportationCosts\",\r\n \"administrationCosts\",\r\n ],\r\n // validation: validCosts(t),\r\n onStepRender: (props) => {\r\n props.updatePropertyBag({ handling: true });\r\n props.formik.setFieldValue(\r\n \"chargeSeller\",\r\n props.propertyBag.chargeSeller\r\n );\r\n },\r\n fields: (\r\n formik,\r\n propertyBag,\r\n updatePropertyBag,\r\n updateFields\r\n ) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:bid.wizard.infoTitle\")}\r\n \r\n \r\n {t(\"forms:bid.wizard.infoText\")}\r\n
    \r\n {t(\"forms:bid.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n handleChargeSellerCheck(\r\n ev,\r\n formik,\r\n updatePropertyBag\r\n )\r\n }\r\n {...formik}\r\n />\r\n\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default WizardPlaceBid;\r\n","import React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Tooltip from \"../../components/tooltip/Tooltip\";\r\n\r\nconst GradeCell = ({ cell: { value } }) => {\r\n const { t } = useTranslation();\r\n const [tooltip, setTooltip] = useState({\r\n tips:{\r\n A:t(\"screens:stock.aGradeText\"),\r\n B:t(\"screens:stock.bGradeText\"),\r\n C:t(\"screens:stock.cGradeText\"),\r\n },\r\n visible: false,\r\n });\r\n\r\n const handleHover = (tooltipIsVisible) => {\r\n setTooltip((tooltip) => ({ ...tooltip, visible: tooltipIsVisible }));\r\n };\r\n\r\n return (\r\n handleHover(true)}\r\n onMouseLeave={() => handleHover(false)}\r\n >\r\n {value}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GradeCell;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledGreenCell = styled.div`\r\n color: #48b05e;\r\n font-weight: 800;\r\n\r\n &.right {\r\n text-align:right;\r\n }\r\n`;\r\n\r\nconst GreenCell = ({ cell: { value }, className }) => {\r\n return {value};\r\n};\r\n\r\nexport default GreenCell;\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n justify-content: end;\r\n padding-right: 50px !important;\r\n &.shadowed {\r\n background: linear-gradient(\r\n 180deg,\r\n rgba(255, 255, 255, 1) 0%,\r\n rgba(220, 220, 220, 1) 100%\r\n );\r\n box-shadow: -2px 9px 11px -16px rgb(0 0 0 / 75%);\r\n border-bottom: 1px solid #ffffff;\r\n }\r\n`;\r\n\r\nconst StyledLink = styled(Link)`\r\n position: relative;\r\n outline: none;\r\n -webkit-tap-highlight-color: transparent;\r\n border-radius: ${(props) => props.theme.buttonsBorderRadius};\r\n text-align: center;\r\n margin: 0 20px;\r\n text-decoration: none;\r\n color: #000;\r\n text-transform: uppercase;\r\n font-size: 16px;\r\n font-weight: 400;\r\n margin-right: 30px;\r\n\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n left: -15px;\r\n bottom: -10px;\r\n width: calc(100% + 30px);\r\n height: 4px;\r\n background-color: transparent;\r\n border-radius: 8px 8px 0px 0px;\r\n }\r\n\r\n &:hover:after {\r\n background-color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n &.current {\r\n font-weight: 700;\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n left: -15px;\r\n bottom: -10px;\r\n width: calc(100% + 30px);\r\n height: 4px;\r\n background-color: #48b05e;\r\n border-radius: 8px 8px 0px 0px;\r\n }\r\n }\r\n`;\r\n\r\nconst TabLinks = ({ idx, items, style, variant }) => {\r\n return (\r\n \r\n {items.map((itm, i) => (\r\n \r\n {itm.name}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default TabLinks;\r\n","import React, { useEffect, useMemo, useState, useCallback, useRef } from \"react\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport marketplaceListingStateModule from \"../../../core/state/buy-refrigerant/marketplaceListingStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport DateCell from \"../../../components/data/DateCell\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport MarketplaceDetailSideBar from \"./components/MarketplaceDetailSideBar\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport DetailSideBar from \"../../../components/modal/DetailSideBar\";\r\nimport OfferBids from \"./components/OfferBids\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport Button from \"../../../components/elements/buttons/Button\";\r\nimport useClickAway from \"../../../hooks/_shared/useClickAway\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport { toast } from \"react-toastify\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport MarketplaceFilter from \"./components/MarketplaceFilter\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport WizardPlaceBid from \"./components/WizardPlaceBid\";\r\nimport GradeCell from \"../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst actionTypes = {\r\n SET_HIDEMYOFFERS: \"SET_HIDEMYOFFERS\",\r\n RESET_HIDEMYOFFERS: \"RESET_HIDEMYOFFERS\",\r\n SET_HIDEWITHBIDS: \"SET_HIDEWITHBIDS\",\r\n RESET_HIDEWITHBIDS: \"RESET_HIDEWITHBIDS\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY_TO\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY_TO\",\r\n RESET_GAS_QUANTITY: \"RESET_GAS_QUANTITY\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_OFFER_CREATION__DATE_FROM: \"SET_OFFER_CREATION__DATE_FROM\",\r\n RESET_OFFER_CREATION__DATE_FROM: \"RESET_OFFER_CREATION__DATE_FROM\",\r\n SET_OFFER_CREATION__DATE_TO: \"SET_OFFER_CREATION__DATE_TO\",\r\n RESET_OFFER_CREATION__DATE_TO: \"RESET_OFFER_CREATION__DATE_TO\",\r\n SET_DEAL_EXPIRATION_FROM: \"SET_DEAL_EXPIRATION_FROM\",\r\n RESET_DEAL_EXPIRATION_FROM: \"RESET_DEAL_EXPIRATION_FROM\",\r\n SET_DEAL_EXPIRATION_TO: \"SET_DEAL_EXPIRATION_TO\",\r\n RESET_DEAL_EXPIRATION_TO: \"RESET_DEAL_EXPIRATION_TO\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_COUNTRY: \"SET_COUNTRY\",\r\n RESET_COUNTRY: \"RESET_COUNTRY\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst tabItems = (t, isDistributor = false, isMasterAdmin = false) => {\r\n const tabs = [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: isMasterAdmin ? RouteCreator.admin.marketplace() : RouteCreator.salesCenter.marketplace(),\r\n },\r\n ];\r\n\r\n if (!isDistributor && !isMasterAdmin)\r\n tabs.push({\r\n name: t(\"navigation:myOffers\"),\r\n path: RouteCreator.salesCenter.myOffers(),\r\n });\r\n\r\n if (!isMasterAdmin) {\r\n tabs.push({\r\n name: t(\"navigation:myBids\"),\r\n path: RouteCreator.salesCenter.myBids(),\r\n });\r\n }\r\n return tabs;\r\n};\r\n\r\nconst marketplaceReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case \"SET_HIDEMYOFFERS\":\r\n state.filter.hideMyOffers = action.payload;\r\n break;\r\n case \"RESET_HIDEMYOFFERS\":\r\n delete state.filter.hideMyOffers;\r\n break;\r\n case \"SET_HIDEWITHBIDS\":\r\n state.filter.hideOffersWithMyBid = action.payload;\r\n break;\r\n case \"RESET_HIDEWITHBIDS\":\r\n delete state.filter.hideOffersWithMyBid;\r\n break;\r\n case \"SET_PAGING\":\r\n state.page = action.payload.pageIndex + 1;\r\n state.pageSize = action.payload.pageSize;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case \"SET_GAS_QUANTITY_FROM\":\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case \"RESET_GAS_QUANTITY_FROM\":\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case \"SET_GAS_QUANTITY_TO\":\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case \"RESET_GAS_QUANTITY_TO\":\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case \"SET_PRESUMED_QUALITY\":\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_PRESUMED_QUALITY\":\r\n delete state.filter.presumedQuality;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"true\" ? true : false;\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n\r\n case actionTypes.SET_OFFER_CREATION__DATE_FROM:\r\n state.filter.offerCreationDateTimeFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_FROM:\r\n delete state.filter.offerCreationDateTimeFrom;\r\n break;\r\n case actionTypes.SET_OFFER_CREATION__DATE_TO:\r\n state.filter.offerCreationDateTimeTo = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_TO:\r\n delete state.filter.offerCreationDateTimeTo;\r\n break;\r\n\r\n case actionTypes.SET_DEAL_EXPIRATION_FROM:\r\n state.filter.dealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_DEAL_EXPIRATION_FROM:\r\n delete state.filter.dealExpirationFrom;\r\n break;\r\n case actionTypes.SET_DEAL_EXPIRATION_TO:\r\n state.filter.dealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_DEAL_EXPIRATION_TO:\r\n delete state.filter.dealExpirationTo;\r\n break;\r\n case actionTypes.SET_COUNTRY:\r\n state.filter.countryId = action.payload;\r\n break;\r\n case actionTypes.RESET_COUNTRY:\r\n delete state.filter.countryId;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst initialValues = {\r\n gradeA: \"0.00\",\r\n gradeB: \"0.00\",\r\n gradeC: \"0.00\",\r\n transportationCosts: 0,\r\n administrationCosts: 0,\r\n chargeSeller: false,\r\n};\r\n\r\nconst MarketplaceListing = () => {\r\n const {\r\n buyingItems,\r\n isLoading,\r\n error,\r\n loadBuyingItems,\r\n loadBuyingItemsById,\r\n details,\r\n unpublishData,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(marketplaceListingStateModule);\r\n const { t } = useTranslation(\"screens\");\r\n const [globalState] = useSharedState(\"global\");\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:salesCenter\"),\r\n },\r\n {\r\n text: t(\"navigation:marketplace\"),\r\n },\r\n ]);\r\n\r\n const { CompanyId } = useMemo(() => UserService.getUserDetailsFromToken(), []);\r\n\r\n const [filterState, dispatch] = useImmerReducer(marketplaceReducer, {\r\n filter: {\r\n hideMyOffers: true,\r\n hideOffersWithMyBid: true,\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"offerCreationDateTime\",\r\n descending: true,\r\n });\r\n\r\n useEffect(() => {\r\n loadBuyingItems(filterState);\r\n }, [loadBuyingItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [selectedOffer, setSelectedOffer] = useState(null);\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n await loadBuyingItemsById(row.original.offerId);\r\n setDetailViewIsOpened(true);\r\n setSelectedOffer(row.original);\r\n };\r\n selectRow(row);\r\n },\r\n [loadBuyingItemsById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n type: \"warning\",\r\n title: t(\"actions:dialogs.unPublishOffer.title\"),\r\n onConfirm: async (model) => {\r\n const result = await StockService.unpublishFromMarketplace({\r\n offerIds: [model.original.offerId],\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadBuyingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.offerUnpublished\"));\r\n toggleOpen();\r\n }\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.unPublishOffer.confirmText\"),\r\n });\r\n\r\n const [currentOfferTranslations, setCurrentOfferTranslations] = useState(\"\");\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { row, value } }) =>\r\n GreenCell({\r\n cell: {\r\n value:\r\n value.toFixed(2) +\r\n ` kg / ${row.original.numberOfCylinders || \"-\"} ${t(\"screens:technician.cylinders\")}`,\r\n },\r\n }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n value ===\"True\" ? t(\"filters:analysis.measurement\") : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: t(\"table:headers.owner\"),\r\n accessor: \"offerer\",\r\n },\r\n {\r\n Header: t(\"table:headers.published\"),\r\n accessor: \"offerCreationDateTime\",\r\n Cell: (params) => {\r\n return DateCell(params);\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({\r\n cell: {\r\n row: { original },\r\n value,\r\n },\r\n }) => {\r\n return (\r\n ((!original.bidAlreadyPlaced && original.offererId !== CompanyId) ||\r\n original.offererId === CompanyId) && (\r\n \r\n \r\n {original.offererId === CompanyId && (\r\n {\r\n setCurrentOfferTranslations(\r\n `${original.refrigerantGasTypeCode} - ${original.quantity}kg`\r\n );\r\n toggleOpen({ original });\r\n }}\r\n />\r\n )}\r\n {!original.bidAlreadyPlaced && original.offererId !== CompanyId && (\r\n {\r\n setCurrentOfferTranslations(\r\n `${original.refrigerantGasTypeCode} - ${original.quantity}kg`\r\n );\r\n openPlaceBid(original);\r\n }}\r\n />\r\n )}\r\n \r\n \r\n )\r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ],\r\n [t, globalState]\r\n );\r\n\r\n const getRowClassName = useCallback((row) => {\r\n if (row.original.offererId === CompanyId) {\r\n return \"my-company\";\r\n }\r\n }, []);\r\n\r\n const [bidViewIsOpened, setBidViewIsOpened] = useState(false);\r\n const [offers, setOffers] = useState([]);\r\n const bidSideBarRef = useRef(null);\r\n\r\n const closeBidSidebar = () => {\r\n setBidViewIsOpened(!bidViewIsOpened);\r\n };\r\n\r\n const [selectedRows, setSelectedRows] = useState([]);\r\n const toggleMultipleBids = (rows) => {\r\n setBidViewIsOpened(!bidViewIsOpened);\r\n if (rows) {\r\n const offers = rows.reduce((acc, currentRow) => {\r\n let offer = currentRow.original;\r\n acc.push(offer);\r\n return acc;\r\n }, []);\r\n\r\n setOffers(offers);\r\n }\r\n };\r\n\r\n useClickAway(bidSideBarRef, () => {\r\n setBidViewIsOpened(false);\r\n });\r\n\r\n const shouldShowCheckbox = useCallback(\r\n (row) => {\r\n if (row.original.bidAlreadyPlaced) {\r\n return false;\r\n }\r\n if (row.original.offererId === CompanyId) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n [CompanyId]\r\n );\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const [currentOffer, setCurrentOffer] = useState({});\r\n useEffect(() => {\r\n setCurrentOffer(buyingItems.data.filter((offer) => offer.offerId === details.buyingItemData.offerId));\r\n }, [details]);\r\n\r\n const openPlaceBid = (offer) => {\r\n return ModalWizard.show(\r\n WizardPlaceBid(t, initialValues, [offer], buyingItems.isLoading, globalState.enableHandlingCosts),\r\n {\r\n onSubmit: async (values) => {\r\n if (!values.chargeSeller) {\r\n values.administrationCosts = 0;\r\n values.transportationCosts = 0;\r\n }\r\n const result = await MarketplaceService.addBid({\r\n gradeA: values.gradeA,\r\n gradeB: values.gradeB,\r\n gradeC: values.gradeC,\r\n offerIds: [offer.offerId],\r\n administrationCosts: values.administrationCosts,\r\n transportationCosts: values.transportationCosts,\r\n });\r\n\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n loadBuyingItems(filterState);\r\n toast.success(t(\"marketplace.toastNotification.bidPlaced\"));\r\n closeBidSidebar();\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(setDetailViewIsOpened(false));\r\n },\r\n },\r\n { style: { minHeight: \"740px\" } }\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:marketplace.title\")}\r\n \r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n //enableSelection\r\n paging={{\r\n enablePaging: true,\r\n pageCount: buyingItems.totalPages,\r\n pageSize: buyingItems.pageSize,\r\n onPageChange: pageChange,\r\n currentPageIndex: buyingItems.currentPage - 1,\r\n }}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortChange,\r\n currentSortBy: currentSortBy,\r\n }}\r\n setSelectedRows={setSelectedRows}\r\n noDataText={t(\"marketplace.notification\")}\r\n getRowClassName={getRowClassName}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n shouldShowSelection={shouldShowCheckbox}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${currentOffer[0]?.offerNumber}`}\r\n detailView={\r\n openPlaceBid(selectedOffer)}\r\n />\r\n }\r\n />\r\n\r\n {offers && offers.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n \r\n

    {t(\"actions:dialogs.unPublishOffer.text\")}

    \r\n

    \r\n {modalProps.modal &&\r\n modalProps.modal.original &&\r\n `${\r\n modalProps.modal.original.refrigerantGasTypeCode\r\n } | ${modalProps.modal.original.quantity?.toFixed(2)} kg | ${\r\n modalProps.modal.original.pressumedGradeName\r\n } | ${\r\n modalProps.modal.original.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

    \r\n
    \r\n\r\n
    \r\n 0 ? \"block\" : \"none\",\r\n }}\r\n onClick={() => toggleMultipleBids(selectedRows)}\r\n className=\"primary\"\r\n >\r\n {t(\"marketplace.button.placeMultipleBids\")}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default MarketplaceListing;\r\n","import { useEffect, useState, useMemo } from \"react\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport StockService from \"../../../../services/Stock/StockService\";\r\n\r\nconst actionTypes = {\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY_TO\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY_TO\",\r\n SET_OFFER_CREATION__DATE_FROM: \"SET_OFFER_CREATION__DATE_FROM\",\r\n RESET_OFFER_CREATION__DATE_FROM: \"RESET_OFFER_CREATION__DATE_FROM\",\r\n SET_OFFER_CREATION__DATE_TO: \"SET_OFFER_CREATION__DATE_TO\",\r\n RESET_OFFER_CREATION__DATE_TO: \"RESET_OFFER_CREATION__DATE_TO\",\r\n SET_OFFER_STATUS: \"SET_OFFER_STATUS\",\r\n\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n if (\r\n (action.type !== actionTypes.SET_PAGING) \r\n )\r\n state.page = 1;\r\n switch (action.type) {\r\n case \"SET_PAGING\":\r\n state.page = action.payload.pageIndex + 1;\r\n state.pageSize = action.payload.pageSize;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n state.filter={};\r\n break;\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.gasType = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_OFFER_CREATION__DATE_FROM:\r\n state.filter.dateFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_FROM:\r\n delete state.filter.dateFrom;\r\n break;\r\n case actionTypes.SET_OFFER_CREATION__DATE_TO:\r\n state.filter.dateTo = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_TO:\r\n delete state.filter.dateTo;\r\n break;\r\n case actionTypes.SET_OFFER_STATUS:\r\n state.reclaimedOfferStatus = Number(action.payload);\r\n break;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nconst useReclaimedMarketFilterState = (reclaimedOfferStatus=0) => {\r\n const [filterState, dispatch] = useImmerReducer(reducer, {\r\n filter: {},\r\n reclaimedOfferStatus: reclaimedOfferStatus,\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"offerDateTime\",\r\n descending: false,\r\n totalPages: 1,\r\n });\r\n\r\n const [gasTypes, setGasTypes] = useState([]);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n useEffect(() => {\r\n const getGasTypes = async () => {\r\n try {\r\n setGasTypes(await StockService.getRefrigerantTypes());\r\n } catch (ex) {}\r\n };\r\n getGasTypes();\r\n }, []);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n return [\r\n filterState,\r\n dispatch,\r\n actionTypes,\r\n sortChange,\r\n currentSortBy,\r\n pageChange,\r\n gasTypes,\r\n ];\r\n};\r\n\r\nexport default useReclaimedMarketFilterState;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport helpers from \"../../../../core/helpers\";\r\n\r\nconst ReclaimMarketFilter = ({\r\n filterState={},\r\n dispatch,\r\n actionTypes,\r\n gasTypes = [],\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [quantityToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_GAS_QUANTITY_TO, payload: text.trim() })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [quantityFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_FROM,\r\n payload: text.trim(),\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n });\r\n });\r\n\r\n\r\n return (\r\n \r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n {\r\n quantityFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityFrom\")}\r\n title={t(\"gas.quantityFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n quantityToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityTo\")}\r\n title={t(\"gas.quantityTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_FROM\r\n : actionTypes.SET_OFFER_CREATION__DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_TO\r\n : actionTypes.SET_OFFER_CREATION__DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(ReclaimMarketFilter);\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ReclaimedMarketSidebar = ({\r\n offer,\r\n details,\r\n isDistributor,\r\n purchaseAction,\r\n showCancel = false,\r\n cancelAction,\r\n}) => {\r\n const { t } = useTranslation([\"sidebar\"]);\r\n const shouldShow = details;\r\n const company = isDistributor ? details?.buyer : details;\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n {details && (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n \r\n -\r\n \r\n \r\n {company ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n -\r\n )}\r\n \r\n {!isDistributor && offer && offer.status === 0 && (\r\n
    \r\n \r\n purchaseAction && purchaseAction()\r\n }\r\n className=\"primary\"\r\n >\r\n {t(\"actions:purchase\")}\r\n \r\n
    \r\n )}\r\n {isDistributor &&\r\n offer &&\r\n offer.status === 2 &&\r\n showCancel && (\r\n
    \r\n \r\n cancelAction &&\r\n cancelAction({ data: offer })\r\n }\r\n className=\"primary\"\r\n >\r\n {t(\"actions:cancel\")}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReclaimedMarketSidebar;\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, { apiResult } from \"../getAxios\";\r\n\r\nconst PaymentService = {\r\n getMyBankAccounts: async () => {\r\n let res = (await api.get(config.apiUrl.getMyBankAccounts)).data.data;\r\n return res;\r\n },\r\n createBankAccount: async (values) => {\r\n return apiResult(api.post(config.apiUrl.createBankAccount, values));\r\n },\r\n deactivateBankAccount: async (bankAccountId) => {\r\n return await api.post(\r\n config.apiUrl.deactivateBankAccount,\r\n bankAccountId\r\n );\r\n },\r\n getMyKYCDocuments: async () => {\r\n return (await api.get(config.apiUrl.getMyKYCDocuments)).data.data;\r\n },\r\n\r\n getMyUbos: async () => {\r\n return (await api.get(config.apiUrl.getMyUbos)).data.data;\r\n },\r\n\r\n addMyUbo: async (values) => {\r\n return apiResult(api.post(config.apiUrl.addUbo, values));\r\n },\r\n updateUbo: async (values) => {\r\n return apiResult(api.put(config.apiUrl.updateUbo, values));\r\n },\r\n deleteUbo: async (values) => {\r\n return apiResult(api.put(config.apiUrl.deleteUbo, values));\r\n },\r\n submitUbo: async (values) => {\r\n return apiResult(api.put(config.apiUrl.submitUbo, values));\r\n },\r\n submitKYC: async (values) => {\r\n return apiResult(api.post(config.apiUrl.submitKYC, {KYCDocumentIds:values}));\r\n },\r\n \r\n addKYCDocument: async (values) => {\r\n return apiResult(api.post(config.apiUrl.addKYCDocument, values));\r\n },\r\n getMyWallets: async () => {\r\n return (await api.get(config.apiUrl.getMyWallets)).data.data;\r\n },\r\n getMyTransactions: async (values) => {\r\n return (await api.post(config.apiUrl.getMyTransactions, values)).data;\r\n },\r\n getMyGroupedTransactions: async (values) => {\r\n return (await api.post(config.apiUrl.getMyGroupedTransactions, values)).data;\r\n },\r\n getMyInvoices: async (values) => {\r\n return (await api.post(config.apiUrl.getMyInvoices, values)).data;\r\n },\r\n getMyDocuments: async (values) => {\r\n return (await api.post(config.apiUrl.getMyDocuments, values)).data;\r\n },\r\n downloadMyDocuments: async (documentIds) => {\r\n return apiResult(\r\n api.post(\r\n config.apiUrl.downloadMyDocuments,\r\n {\r\n documentIds: documentIds\r\n },\r\n {\r\n responseType: \"arraybuffer\",\r\n }\r\n )\r\n );\r\n },\r\n payout: async (values) => {\r\n return apiResult(api.post(config.apiUrl.payout, values));\r\n },\r\n getTransactionsFromMango: async () => {\r\n return apiResult(api.post(config.apiUrl.getTransactionsFromMango, {}));\r\n },\r\n downloadTransactionsFromMango: async (filter) => {\r\n return apiResult(\r\n api.post(\r\n config.apiUrl.downloadMyTransactions,\r\n {filter},\r\n {\r\n responseType: \"arraybuffer\",\r\n }\r\n )\r\n );\r\n },\r\n getTransactionDetails: async (paidFor, bidId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.getTransactionDetails, {\r\n paidFor: paidFor,\r\n bidId: bidId,\r\n })\r\n );\r\n },\r\n getTransactionDetailsById: async (id) => {\r\n return apiResult(\r\n api.post(config.apiUrl.getTransactionDetailsById, { id: id })\r\n );\r\n },\r\n topUp: async (values) => {\r\n const res = apiResult(api.post(config.apiUrl.topUp, values));\r\n return res;\r\n },\r\n transactionDetails: async (transactionId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.transactionDetails, {\r\n transactionId,\r\n })\r\n );\r\n },\r\n getReclaimTransactionDetails: async (reclaimedOfferId) => {\r\n return apiResult(\r\n api.post(config.apiUrl.getReclaimTransactionDetails, {\r\n reclaimedOfferId\r\n })\r\n );\r\n },\r\n};\r\n\r\nexport default PaymentService;\r\n","const PaymentType = {\r\n \"BankWireDirectPayIn\": \"0\",\r\n \"MainWalletToTransaction\": \"1\"\r\n};\r\n\r\nexport default PaymentType;\r\n","import React from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Link = styled(NavLink)`\r\n &.big {\r\n font-size: 20px !important;\r\n }\r\n\r\n &.signup {\r\n @media ${(p) => p.theme.device.mobile} {\r\n margin: 30px 0px 10px;\r\n }\r\n }\r\n\r\n &.forgotten-password {\r\n color: ${(props) => props.theme.secondaryColor};\r\n text-align: center;\r\n text-decoration: none;\r\n display: inline-block;\r\n margin-top: 20px;\r\n font-weight: 700;\r\n font-size: 14px;\r\n }\r\n\r\n &.primary {\r\n color: ${(props) => props.theme.primaryColor};\r\n text-align: center;\r\n text-decoration: none;\r\n display: inline-block;\r\n font-weight: normal;\r\n }\r\n\r\n &.primary:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n &.secondary {\r\n color: ${(props) => props.theme.secondaryColor};\r\n text-align: center;\r\n text-decoration: none;\r\n display: inline-block;\r\n font-weight: 600;\r\n }\r\n\r\n &.secondary:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n &.forgotten-password:hover,\r\n &.signup:hover {\r\n color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n &.inline-button {\r\n cursor: pointer;\r\n color: ${(props) => props.theme.primaryColor};\r\n box-sizing: border-box;\r\n text-align: center;\r\n text-decoration: none;\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n }\r\n`;\r\n\r\nconst NavigationLink = ({ to, children, className, ...rest }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default NavigationLink;\r\n","import React from \"react\";\r\nimport {\r\n CheckMark,\r\n RadioGroup,\r\n RadioLabel,\r\n RadioWrapper,\r\n} from \"../../../../../components/elements/form-elements/Radio\";\r\nimport PaymentService from \"../../../../../services/Payment/PaymentService\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n Separator,\r\n KeyText,\r\n ValueText,\r\n VSpace,\r\n PrimarySpan,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport ValidationError from \"../../../../../components/elements/form-elements/ValidationError\";\r\nimport helpers from \"../../../../../core/helpers\";\r\nimport PaymentType from \"../../../../../core/enums/PaymentType\";\r\nimport Globals from \"../../../../../globalVars\";\r\nimport NavigationLink from \"../../../../../components/elements/links/NavigationLink\";\r\nimport ModalWizard from \"../../../../../components/modal/ModalWizard\";\r\n\r\nconst defaultInitialValues = {\r\n paymentMethod: PaymentType.MainWalletToTransaction,\r\n};\r\n\r\nconst WizardPayForOffer = (\r\n t,\r\n currentLanguage,\r\n currency,\r\n price,\r\n offerInfo = \"\",\r\n offerer = true,\r\n customTitle = \"\",\r\n contentTitle = \"\",\r\n customInfo = \"\",\r\n bidCompanyCountryId\r\n) => {\r\n price = Number(price);\r\n let vatPercentage = Globals.VATPercentage;\r\n let vatPercString = Globals.VATPercString;\r\n if (\r\n bidCompanyCountryId !== undefined &&\r\n Globals.userCountryId !== bidCompanyCountryId\r\n ) {\r\n vatPercentage = 1;\r\n vatPercString = \"0\";\r\n }\r\n\r\n const vatOnly = ((vatPercentage - 1) * price).toFixed(2);\r\n const withVat = (vatPercentage * price).toFixed(2);\r\n return {\r\n title: t(\"forms:payForOffer.wizard.payIn\"),\r\n // title: customTitle\r\n // ? customTitle\r\n // : offerer\r\n // ? t(\"forms:payForOffer.wizard.offerer.title\")\r\n // : t(\"forms:payForOffer.wizard.buyer.title\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: customTitle\r\n ? customTitle\r\n : offerer\r\n ? t(\"forms:payForOffer.wizard.payInCgrade\")\r\n : t(\"forms:payForOffer.wizard.payInAgrade\"),\r\n fieldNames: [\"paymentMethod\"],\r\n onStepRender: async (props) => {\r\n // get wallet\r\n let wallets = await PaymentService.getMyWallets();\r\n let walletBalance = 0;\r\n\r\n if (wallets && wallets.length > 0) {\r\n let mainWallet = wallets.filter(\r\n (w) => w.tag === \"MAIN\"\r\n );\r\n if (mainWallet) {\r\n walletBalance = mainWallet[0].amount;\r\n }\r\n }\r\n let remainingBalance =\r\n walletBalance - price * vatPercentage;\r\n\r\n props.updatePropertyBag({\r\n walletBalanceExceeded:\r\n walletBalance < price * vatPercentage,\r\n walletBalance: helpers.formatCurrency(\r\n walletBalance,\r\n \"\",\r\n \"EUR\"\r\n ),\r\n remainingBalance: helpers.formatCurrency(\r\n remainingBalance,\r\n \"\",\r\n \"EUR\"\r\n ),\r\n });\r\n return walletBalance < price * vatPercentage;\r\n },\r\n onStepSubmit: ({ propertyBag }) => {\r\n return !propertyBag.walletBalanceExceeded;\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.walletBalanceExceeded ? (\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.noFunds\"\r\n )}\r\n \r\n \r\n {customInfo\r\n ? customInfo\r\n : t(\r\n \"forms:payForOffer.wizard.noFundsInfo\"\r\n )}\r\n \r\n {\r\n ModalWizard.hide();\r\n }}\r\n >\r\n {t(\r\n \"forms:payForOffer.wizard.gotoMyWallets\"\r\n )}\r\n \r\n
    \r\n
    \r\n ) : (\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.newPayment\"\r\n )}\r\n \r\n \r\n {customInfo\r\n ? customInfo\r\n : t(\r\n \"forms:payForOffer.wizard.deductedAmount\"\r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n \r\n {contentTitle\r\n ? contentTitle\r\n : offerer\r\n ? t(\r\n \"forms:payForOffer.wizard.cGradeDeposit\"\r\n )\r\n : t(\r\n \"forms:payForOffer.wizard.aGradeDeposit\"\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.mainBallance\"\r\n )}\r\n \r\n \r\n {propertyBag.walletBalance}\r\n \r\n
    \r\n
    \r\n \r\n {offerInfo}\r\n \r\n \r\n -{price.toFixed(2)} EUR\r\n \r\n
    \r\n
    \r\n {`${t(\r\n \"filters:company.vat\"\r\n )} (${vatPercString}%)`}\r\n \r\n -{vatOnly} EUR\r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n {t(\"table:headers.total\")}:\r\n \r\n \r\n -{withVat} EUR\r\n \r\n
    \r\n\r\n {!propertyBag.walletBalanceExceeded && (\r\n <>\r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.newMainBalance\"\r\n )}\r\n :\r\n \r\n \r\n {propertyBag.remainingBalance}\r\n \r\n
    {\" \"}\r\n \r\n )}\r\n
    \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default WizardPayForOffer;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\nimport useReclaimedMarketFilterState from \"./components/ReclaimedMarketFilterState\";\r\nimport ReclaimedMarketplaceFilter from \"./components/ReclaimedMarketFilter\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport DateCell from \"../../../components/data/DateCell\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport ReclaimedMarketSidebar from \"./components/ReclaimedMarketSidebar\";\r\nimport WizardPayForOffer from \"./components/wizard/WizardPayForOffer\";\r\n\r\nconst tabItems = (t, isMasterAdmin) => {\r\n let items = [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: isMasterAdmin ? RouteCreator.admin.reclaimedMarketplace() : RouteCreator.salesCenter.reclaimedMarketplace(),\r\n },\r\n ];\r\n if (!isMasterAdmin) {\r\n items.push({\r\n name: t(\"navigation:myPurchases\"),\r\n path: RouteCreator.salesCenter.reclaimedMarketPurchases(),\r\n });\r\n }\r\n return items;\r\n};\r\n\r\nconst ReclaimedMarketplace = (props) => {\r\n const { t, i18n } = useTranslation([\"screens\", \"table\"]);\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n const [globalState] = useSharedState(\"global\");\r\n const [tabIndex, setTabIndex] = useState(0);\r\n const [\r\n filterState,\r\n filterDispatch,\r\n filterActions,\r\n sortChange,\r\n currentSortBy,\r\n pageChange,\r\n gasTypes,\r\n ] = useReclaimedMarketFilterState();\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [selected, setSelected] = useState({ offer: null });\r\n\r\n const [tableState, setTableState] = useState({\r\n data: [],\r\n loading: false,\r\n error: null,\r\n });\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:salesCenter\"),\r\n },\r\n {\r\n text: t(\"navigation:marketplace\"),\r\n },\r\n ]);\r\n\r\n const getInstallationCompanyReclaimedOffers = async () => {\r\n const res =\r\n await MarketplaceService.getInstallationCompanyReclaimedOffers(\r\n filterState\r\n );\r\n setTableState({ data: res.data.data });\r\n };\r\n\r\n useEffect(() => {\r\n getInstallationCompanyReclaimedOffers();\r\n }, [filterState]);\r\n\r\n //purchase action\r\n const purchaseOffer = useCallback(\r\n async (offer) => {\r\n ModalWizard.show(\r\n WizardPayForOffer(\r\n t,\r\n currentLanguage,\r\n currency,\r\n offer.price,\r\n `${t(\"navigation:reclaimedGas\")}/${offer.quantity} KG`,\r\n false,\r\n t(\"navigation:reclaimedGas\"),\r\n t(\"forms:payForOffer.wizard.reclaimedDeposit\"),\r\n \"\",\r\n offer.offererCountryId\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const res = await MarketplaceService.acceptReclaimOffer(\r\n offer.reclaimedOfferId,\r\n values.paymentMethod\r\n );\r\n if (res && res.error) {\r\n ModalWizard.submitFailed(t(res.error.message));\r\n } else {\r\n toast.success(\r\n t(\r\n \"actions:dialogs.payAClass.toastNotifications.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n getInstallationCompanyReclaimedOffers();\r\n }\r\n },\r\n onCancel: () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n },\r\n [filterState]\r\n );\r\n\r\n const columns = useMemo(() => {\r\n const tabColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"type\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { row, value } }) =>\r\n GreenCell({\r\n cell: {\r\n value: value.toFixed(2) + ` kg`,\r\n },\r\n }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"grade\",\r\n Cell: ({ cell: { value } }) => t(\"filters:cylinders.reclaimed\"),\r\n },\r\n {\r\n Header: t(\"table:headers.owner\"),\r\n accessor: \"seller\",\r\n },\r\n {\r\n Header: t(\"forms:cylinder.price\"),\r\n accessor: \"price\",\r\n Cell: ({ cell: { row, value } }) => {\r\n const ppk = (value / row.original.quantity).toFixed(2);\r\n return (\r\n \r\n {`${value.toFixed(2)} EUR`}\r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n if (tabIndex === 0)\r\n tabColumns.push({\r\n Header: t(\"table:headers.published\"),\r\n accessor: \"offerDateTime\",\r\n Cell: (params) => {\r\n return DateCell(params);\r\n },\r\n });\r\n\r\n tabColumns.push({\r\n Header: \"\",\r\n accessor: \"reclaimedOfferId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n return (\r\n \r\n \r\n {\r\n purchaseOffer(original);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n });\r\n return tabColumns;\r\n }, [t, tabIndex]);\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (offerId) => {\r\n const selectedOffer = tableState.data.filter(\r\n (of) => of.reclaimedOfferId === offerId\r\n )[0];\r\n const res = await MarketplaceService.getReclaimedOfferById({\r\n id: offerId,\r\n });\r\n setSelected({\r\n details: res.data.data[0],\r\n offer: selectedOffer,\r\n });\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row.original.reclaimedOfferId);\r\n },\r\n [tableState]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:marketplace.title\")}\r\n \r\n \r\n purchaseOffer(selected.offer)}\r\n />\r\n }\r\n onSelect={onSelect}\r\n closeSideBar={() => setDetailViewIsOpened(false)}\r\n detailViewIsOpened={detailViewIsOpened}\r\n filterComponent={() => {\r\n return (\r\n \r\n );\r\n }}\r\n showTitle={true}\r\n filterTitle={t(\"filters:reclaimedMarketPlace.filterTitle\")}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ReclaimedMarketplace;\r\n","import React from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport globalAdminMenuItems from \"../../data/menu/globalAdminMenuItems\";\r\nimport MarketplaceStatisticsDashboard from \"./views/marketplace/MarketplaceStatisticsDashboard\";\r\nimport MarketplaceAdminDashboard from \"./views/marketplace/MarketplaceAdminDashboard\";\r\nimport MarketplaceListing from \"../SalesCenter/views/MarketplaceListing\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport ReclaimedMarketplace from \"../SalesCenter/views/ReclaimedMarketplace\";\r\n\r\nconst MarketplaceStatisticsScreen = () => {\r\n useLeftMenu(globalAdminMenuItems);\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MarketplaceStatisticsScreen;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Anchor = styled.a`\r\n color: ${props => props.theme.textColor};\r\n text-align: center;\r\n text-decoration: none;\r\n display: inline-block;\r\n padding: 30px 0 0;\r\n`;\r\n\r\nconst HTMLAnchor = (props) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n};\r\n\r\nexport default HTMLAnchor;\r\n","import Color from \"color\";\r\nimport React, { useCallback, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport HTMLAnchor from \"../../../../components/elements/form-elements/HTMLAnchor\";\r\nimport FlexContainer from \"../../../../components/layout/flex/FlexContainer\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport { config } from \"../../../../services/Config/config.prod\";\r\nimport { getApiUrl } from \"../../../../services/getAxios\";\r\n\r\nconst QRViewWrapper = styled.div`\r\n padding: 15px;\r\n`;\r\n\r\nconst ExportSection = styled.div`\r\n margin-top: 15px;\r\n`;\r\n\r\nconst ExportButton = styled(HTMLAnchor)`\r\n cursor: pointer;\r\n transition: all 0.5s ease-in-out;\r\n border-radius: ${(props) => props.theme.buttonsBorderRadius};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n padding: ${(props) => props.theme.paddingButton};\r\n box-shadow: ${(props) => props.theme.buttonShadow};\r\n height: ${(props) => props.theme.heightButtonBig};\r\n line-height: ${(props) => props.theme.heightButtonBig};\r\n vertical-align: middle;\r\n font-size: 0.875rem;\r\n\r\n &.primary {\r\n background: ${(props) => props.theme.primaryColor};\r\n border: 1px solid ${(props) => props.theme.primaryColorBorder};\r\n color: ${(props) => props.theme.primaryColorText};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n\r\n &:hover:enabled {\r\n background: ${(props) =>\r\n Color(props.theme.primaryColor).lighten(0.15).string()};\r\n }\r\n }\r\n`;\r\n\r\nconst QRGenerationView = () => {\r\n const { t } = useTranslation();\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:qrTags\"),\r\n },\r\n ]);\r\n\r\n const [selectedValues, setSelectedValues] = useState({ amount: 500 });\r\n const [selectedType, setSelectedType] = useState({ type: 0 });\r\n\r\n const selectableAmounts = useMemo(() => {\r\n return [\r\n {\r\n key: 1,\r\n value: 1,\r\n label: 1,\r\n },\r\n {\r\n key: 2,\r\n value: 100,\r\n label: 100,\r\n },\r\n {\r\n key: 3,\r\n value: 500,\r\n label: 500,\r\n },\r\n {\r\n key: 4,\r\n value: 1000,\r\n label: 1000,\r\n },\r\n ];\r\n }, []);\r\n\r\n const selectableTypes = useMemo(() => {\r\n return [\r\n {\r\n key: 0,\r\n value: 0,\r\n label: \"CSV\",\r\n },\r\n {\r\n key: 1,\r\n value: 1,\r\n label: \"Excel\",\r\n },\r\n ];\r\n }, []);\r\n\r\n const handleChange = (evt) => {\r\n setSelectedValues({ amount: evt.target.value });\r\n };\r\n\r\n const handleTypeChange = (evt) => {\r\n setSelectedType({ type: evt.target.value });\r\n };\r\n\r\n const downloadUrl = useMemo(() => {\r\n const url = getApiUrl + config.apiUrl.generateQr + \"/\" + selectedValues.amount+ \"/\" + selectedType.type;\r\n return url;\r\n }, [selectedValues, selectedType]);\r\n\r\n\r\n const onDownload = useCallback(() => {\r\n toast.success(\"Succesfully downloaded GUID list for tag printing\");\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"screens:adminQr.generate\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default QRGenerationView;\r\n","import React from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport globalAdminMenuItems from \"../../data/menu/globalAdminMenuItems\";\r\nimport QRGenerationView from \"./views/qr/QRGenerationView\";\r\n\r\nconst QRTagsScreen = () => {\r\n useLeftMenu(globalAdminMenuItems);\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default QRTagsScreen;\r\n","import { useFormik } from \"formik\";\r\nimport PropTypes from \"prop-types\";\r\nimport React, { useRef } from \"react\";\r\n\r\nconst DataEntry = props => {\r\n let {\r\n onSubmit,\r\n renderForm,\r\n initialValues,\r\n validationSchema,\r\n isLoading,\r\n validateOnChange = true,\r\n validateOnBlur = false,\r\n ...rest\r\n } = props;\r\n\r\n const onKeyDown = (keyEvent) => {\r\n if ((keyEvent.charCode || keyEvent.keyCode) === 13) {\r\n keyEvent.preventDefault();\r\n }\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: initialValues || {},\r\n onSubmit: values => {\r\n onSubmit(values, formik);\r\n },\r\n validateOnBlur,\r\n validateOnChange,\r\n validationSchema: validationSchema,\r\n enableReinitialize: true\r\n });\r\n const fieldRef = useRef();\r\n if (!validateOnBlur) {\r\n const oldHandleChenge = formik.handleChange;\r\n const handleFormikChange = data => {\r\n fieldRef.current = data.target.name;\r\n oldHandleChenge(data);\r\n };\r\n const oldHandleSubmit = formik.handleSubmit;\r\n const handleFormikSubmit = data => {\r\n fieldRef.current = null;\r\n oldHandleSubmit(data);\r\n };\r\n formik.handleChange = handleFormikChange;\r\n formik.handleSubmit = handleFormikSubmit;\r\n\r\n if (fieldRef.current) {\r\n const fieldError = {};\r\n if (formik.errors[fieldRef.current]) {\r\n fieldError[fieldRef.current] = formik.errors[fieldRef.current];\r\n }\r\n formik.errors = fieldError;\r\n }\r\n }\r\n let formRendered = renderForm(formik, isLoading);\r\n\r\n return (\r\n
    \r\n {formRendered}\r\n
    \r\n );\r\n};\r\n\r\nexport default DataEntry;\r\n\r\nDataEntry.propTypes = {\r\n initialValues: PropTypes.any.isRequired,\r\n validationSchema: PropTypes.any.isRequired,\r\n renderForm: PropTypes.any.isRequired,\r\n onSubmit: PropTypes.any.isRequired,\r\n isLoading: PropTypes.any.isRequired\r\n};\r\n","import styled from \"styled-components\";\r\n\r\nconst DashboardWrapper = styled.div`\r\n\r\n padding: 0px 25px;\r\n box-sizing: border-box;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow:1;\r\n @media ${(p) => p.theme.device.mobile} {\r\n margin-top: 90px;\r\n }\r\n`;\r\n\r\nexport default DashboardWrapper;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\n\r\nconst Element = styled(Flex.Row)`\r\n margin: 0 0 40px;\r\n max-width: 960px;\r\n\r\n &.nomargin {\r\n margin: 0;\r\n }\r\n\r\n &.animated {\r\n max-height: 600px;\r\n transition: max-height 0.25s ease-in;\r\n }\r\n\r\n &.animated.open {\r\n max-height: 900px;\r\n }\r\n\r\n &.login {\r\n flex-grow: 1;\r\n display: flex;\r\n align-items: center;\r\n padding: 0px 30px;\r\n margin:0;\r\n }\r\n`;\r\n\r\nconst FormWrapper = ({ children, variant, ...rest }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default FormWrapper;\r\n","import styled from \"styled-components\";\r\n\r\nconst Wrapper = styled.div`\r\n display: inline-block; /*needed because browsers are stupid */\r\n width: 100%;\r\n margin-bottom: 20px;\r\n\r\n &.buttons-wrapper {\r\n margin: 15px 0 0;\r\n }\r\n\r\n &.buttons-wrapper.mt-0{\r\n margin-top:0px;\r\n }\r\n\r\n &.form-links-wrapper {\r\n margin: 35px 0 0;\r\n /* padding-bottom: 100px; */\r\n position: relative;\r\n text-align: center;\r\n }\r\n\r\n &.edit-forms-wrapper {\r\n margin: 20px 0;\r\n }\r\n\r\n &.md-10 {\r\n margin-bottom:10px;\r\n }\r\n `;\r\n\r\nexport default Wrapper;\r\n","import DashboardWrapper from \"./DashboardWrapper\";\r\nimport FormWrapper from \"./FormWrapper\";\r\nimport ListingWrapper from './ListingWrapper';\r\nimport Wrapper from \"./Wrapper\";\r\n\r\nconst Wrappers = {\r\n FormWrapper: FormWrapper,\r\n Wrapper: Wrapper,\r\n DashboardWrapper: DashboardWrapper,\r\n ListingWrapper: ListingWrapper\r\n};\r\n\r\nexport default Wrappers;\r\n","import React, { Fragment, memo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ApiRouteError from \"../../core/exceptions/ApiRouteError\";\r\nimport HTMLAnchor from \"../elements/form-elements/HTMLAnchor\";\r\nimport ValidationError from \"../elements/form-elements/ValidationError\";\r\nimport Wrappers from \"../wrappers/Wrappers\";\r\n\r\nconst getStandardErrorMessages = (errors, t) => {\r\n let translatedMessages = [];\r\n\r\n const getStandardErrorMessage = (error, t) => {\r\n let msg = \"\";\r\n\r\n if (error.localizationKey) {\r\n let translation = t(error.localizationKey);\r\n\r\n if (!translation) {\r\n translation = error.localizationKey;\r\n }\r\n\r\n if (msg) msg += \" \";\r\n\r\n msg += translation;\r\n } else if (error.message) {\r\n if (msg) msg += \" \";\r\n\r\n msg += error.message;\r\n }\r\n\r\n if (error.redirectUrl) {\r\n return {\r\n msg: msg,\r\n redirectUrl: error.redirectUrl,\r\n redirectUrlBtnText: t(error.localizationKey + \"RedirectUrl\"),\r\n };\r\n }\r\n\r\n return { msg };\r\n };\r\n\r\n errors.forEach((error) => {\r\n translatedMessages.push(getStandardErrorMessage(error, t));\r\n });\r\n\r\n return translatedMessages;\r\n};\r\n\r\nconst EffectError = ({ error, children, clearErrors, onlyNotification = false }) => {\r\n const [t] = useTranslation();\r\n let errors = [];\r\n let errorLocalizationMessagePairs = [];\r\n\r\n const isApiRouteError = error instanceof ApiRouteError;\r\n\r\n if (isApiRouteError) {\r\n errorLocalizationMessagePairs = getStandardErrorMessages(\r\n error.getMessages(),\r\n t\r\n );\r\n } else {\r\n errorLocalizationMessagePairs.push(t(\"exceptions:error.general\"));\r\n }\r\n\r\n if (onlyNotification) {\r\n errorLocalizationMessagePairs.forEach((err) => {\r\n if (err.msg) toast.error(t(err.msg));\r\n });\r\n clearErrors && setTimeout(() => {\r\n clearErrors();\r\n }, 1);\r\n }\r\n\r\n if (!error || error.length === 0 || onlyNotification) {\r\n return <> {children} ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {errors &&\r\n errors.map((err, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n {errorLocalizationMessagePairs &&\r\n errorLocalizationMessagePairs.map((err, index) => {\r\n return (\r\n \r\n \r\n {err.redirectUrl && (\r\n \r\n {err.redirectUrlBtnText}\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nconst areEqual = (prevProps, nextProps) =>\r\n prevProps.error === nextProps.error &&\r\n prevProps.children === nextProps.children;\r\n\r\nexport default memo(EffectError, areEqual);\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Title = styled.p`\r\n /* font-family: 'Open Sans', sans-serif; */\r\n color: ${props => props.theme.primaryColor};\r\n margin: 20px 0;\r\n font-size: 1.125rem;\r\n width: 100%;\r\n`;\r\n\r\nconst FormTitle = (props) => {\r\n const {title} = props;\r\n\r\n return (\r\n <>\r\n {\r\n title &&\r\n (\r\n {title}\r\n )\r\n }\r\n \r\n )\r\n};\r\n\r\nexport default FormTitle;\r\n\r\nFormTitle.propTypes = {\r\n title: PropTypes.any.isRequired\r\n};\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Button from \"../../components/elements/buttons/Button\";\r\nimport { InputSubmit } from \"../../components/elements/form-elements\";\r\nimport FormTitle from \"../../components/elements/form-elements/FormTitle\";\r\nimport InputElement from \"../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\n\r\nconst CreateAdministratorForm = ({ formik, isLoading }) => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n ev.preventDefault();\r\n history.goBack();\r\n }}\r\n >\r\n {t(\"cancel\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateAdministratorForm;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport DataEntry from \"../../components/data-entry/DataEntry\";\r\nimport EffectError from \"../../components/errors/EffectError\";\r\nimport LayoutInnerContainer from \"../../components/layout/split/one/LayoutInnerContainer\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport adminUsersListStateModule from \"../../core/state/admin/users/adminUsersListStateModule\";\r\nimport useActiveNavigationPath from \"../../core/state/navigation/useActiveNavigationPath\";\r\nimport useBreadcrumbs from \"../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport commonValidation from \"../../core/validations/common\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../core/validations/ValidationRule\";\r\nimport CreateAdministratorForm from \"./CreateAdministratorForm\";\r\nimport {Helmet} from \"react-helmet\";\r\n\r\nconst defaultInitialValues = {\r\n email: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n roleId: \"-1\",\r\n};\r\n\r\nconst getAdminValidation = (t) => {\r\n const validation = buildValidation({\r\n email: commonValidation.email(t).rule,\r\n firstName: ValidationRule.isStringRule().required(\r\n t(\"forms:firstName.required\")\r\n ).rule,\r\n lastName: ValidationRule.isStringRule().required(\r\n t(\"forms:lastName.required\")\r\n ).rule,\r\n });\r\n\r\n return validation;\r\n};\r\n\r\nconst CreateAdministratorScreen = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const {\r\n createAdministrator,\r\n createData,\r\n loadRoles,\r\n rolesData,\r\n } = useStateModule(adminUsersListStateModule);\r\n\r\n useActiveNavigationPath(RouteCreator.admin.users.admins());\r\n useEffect(() => {\r\n loadRoles();\r\n }, [loadRoles]);\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t('navigation:users'),\r\n },\r\n {\r\n text: t('navigation:administrationListing'),\r\n url: RouteCreator.admin.users.admins(),\r\n },\r\n {\r\n text: t('navigation:createNewAdministrator'),\r\n },\r\n ]);\r\n\r\n const handleSubmit = (values) => {\r\n values.roleId = rolesData.roles.find(\r\n (role) => role.name === Roles.Admin\r\n ).id;\r\n createAdministrator(values);\r\n };\r\n\r\n if (!createData.error && createData.isCompleted) {\r\n return ;\r\n }\r\n return (\r\n <>\r\n\r\n \r\n {t(\"seo:createAdministrator.title\")}\r\n \r\n \r\n {createData.error && (\r\n \r\n )}\r\n {\r\n return (\r\n \r\n );\r\n }}\r\n onSubmit={handleSubmit}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateAdministratorScreen;\r\n","import React, { memo } from \"react\";\r\nimport styled from \"styled-components\";\r\nexport const TabContent = styled.div`\r\n display: ${(props) => (props.show ? \"block\" : \"none\")};\r\n`;\r\n\r\nconst TabsWrapper = styled.div`\r\n --i: ${(props) => (props.index !== undefined ? props.index : -1)};\r\n --numTabs: ${(props) => (props.numTabs !== undefined ? props.numTabs : 10)};\r\n --tabWidth: calc(100% / var(--numTabs));\r\n --tabHeight: ${(props) =>\r\n props.tabHeight !== undefined ? props.tabHeight : \"32px\"};\r\n --activeColor: ${(props) =>\r\n props.activeColor !== undefined ? props.activeColor : \"#48b05e\"};\r\n user-select: none;\r\n display: flex;\r\n margin: 0 10px 15px 0;\r\n position: relative;\r\n overflow: hidden;\r\n z-index: 0;\r\n width: calc(150px * var(--numTabs));\r\n min-height: var(--tabHeight);\r\n background: #fff;\r\n border: 1px solid #e2e2e2;\r\n border-radius: 16px;\r\n\r\n \r\n &.wide {\r\n width: calc(180px * var(--numTabs));\r\n }\r\n\r\n &.minimal {\r\n background: transparent;\r\n border: none;\r\n border-radius: 0;\r\n width: auto;\r\n height: 40px;\r\n padding: 0px 20px 0px 78px;\r\n margin: -25px -120px 0px -80px;\r\n background: linear-gradient(\r\n 180deg,\r\n rgba(255, 255, 255, 1) 0%,\r\n rgba(220, 220, 220, 1) 100%\r\n );\r\n box-shadow: -2px 9px 11px -16px rgb(0 0 0 / 75%);\r\n border-bottom: 1px solid #ffffff;\r\n\r\n &.mr-0 {\r\n margin-right: 0px;\r\n }\r\n }\r\n\r\n &:before {\r\n box-sizing: border-box;\r\n content: \"\";\r\n position: absolute;\r\n z-index: -1;\r\n width: var(--tabWidth);\r\n top: 0;\r\n left: calc(var(--i) * var(--tabWidth));\r\n height: 100%;\r\n background: var(--activeColor);\r\n transition: all 300ms ease;\r\n border-radius: 15px;\r\n }\r\n\r\n &.minimal:before {\r\n content: none;\r\n }\r\n\r\n & div {\r\n width: var(--tabWidth);\r\n display: inline;\r\n margin: 0;\r\n position: relative;\r\n z-index: 2;\r\n text-align: center;\r\n /* text-shadow: none; */\r\n color: #000;\r\n font-size: 0.875rem;\r\n transition: color 300ms linear 100ms;\r\n height: 100%;\r\n line-height: var(--tabHeight);\r\n cursor: pointer;\r\n }\r\n\r\n &.minimal div {\r\n font-size: 16px;\r\n font-weight: 500;\r\n text-align: center;\r\n width: auto;\r\n margin-right: 20px;\r\n padding: 0px 15px;\r\n line-height: 36px;\r\n height: 36px;\r\n }\r\n\r\n & div.active {\r\n color: white;\r\n }\r\n\r\n &.minimal div {\r\n color: #000;\r\n text-decoration: none;\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0px;\r\n bottom: -3px;\r\n width: 100%;\r\n height: 4px;\r\n background-color: #898989;\r\n border-radius: 8px 8px 0px 0px;\r\n background-color: transparent;\r\n }\r\n }\r\n\r\n &.minimal div:hover {\r\n &:after {\r\n background-color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n }\r\n\r\n &.minimal div.active {\r\n color: #000;\r\n /* text-shadow: 1px 0 0 #000; */\r\n font-weight: 700;\r\n text-decoration: none;\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0px;\r\n bottom: -3px;\r\n width: 100%;\r\n height: 4px;\r\n background-color: var(--activeColor);\r\n border-radius: 8px 8px 0px 0px;\r\n }\r\n }\r\n`;\r\n\r\nconst RoundTabs = ({\r\n tabIndex,\r\n tabs,\r\n activeFn,\r\n activeColor,\r\n onChange,\r\n variant,\r\n language,\r\n ...rest\r\n}) => {\r\n let index = tabIndex !== undefined ? tabIndex : -1;\r\n\r\n const handleChange = (ev) => {\r\n const tgt = ev.target;\r\n if (tgt.dataset.i !== undefined) {\r\n index = Number(tgt.dataset.i);\r\n activeFn && activeFn(tabs[index].activeValue);\r\n onChange && onChange(index);\r\n }\r\n };\r\n\r\n const options = tabs.map((item, idx) => (\r\n \r\n
    \r\n {item.label}\r\n
    \r\n
    \r\n ));\r\n\r\n return (\r\n \r\n {options}\r\n \r\n );\r\n};\r\n\r\nconst areEqual = (prevProps, nextProps) =>\r\n prevProps.tabIndex === nextProps.tabIndex && prevProps.language === nextProps.language;\r\n\r\nexport default memo(RoundTabs, areEqual);\r\n","import React from \"react\";\r\nimport useAuthorization from \"./useAuthorization\";\r\n\r\nconst AuthorizeComponentByUserId = ({ children, userId, fullAccessRoles }) => {\r\n const canAccess = useAuthorization({\r\n allowedUserId: userId,\r\n overrideUserIdRoles: fullAccessRoles\r\n });\r\n if (canAccess) {\r\n return children;\r\n }\r\n return <>;\r\n};\r\n\r\nexport default AuthorizeComponentByUserId;\r\n","import React from \"react\";\r\nimport Wrappers from \"../../../components/wrappers/Wrappers\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {\r\n InputSubmit,\r\n Select,\r\n Checkbox,\r\n} from \"../../../components/elements/form-elements\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\n\r\nconst expires = [\r\n { key: \"0\", value: 0, label: \"Never\" },\r\n { key: \"1\", value: 30, label: \"1 month\" },\r\n { key: \"2\", value: 90, label: \"3 months\" },\r\n];\r\n\r\nconst User2faForm = ({ formik, isLoading, isCompleted, }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default User2faForm;\r\n","import React from \"react\";\r\nimport DataEntry from \"../../../../../components/data-entry/DataEntry\";\r\nimport { buildValidation } from \"../../../../../core/validations/ValidationRule\";\r\nimport User2faForm from \"../../../../User/components/User2faForm\";\r\n\r\nconst defVals = {\r\n passwordExpiration: 0,\r\n twoFactorEnabled: false,\r\n};\r\n\r\nconst Change2faSection = ({ onSubmit, defaultValues = defVals }) => {\r\n const handleSubmit = async (values) => {\r\n values.passwordExpiration = Number(values.passwordExpiration);\r\n onSubmit && onSubmit(values);\r\n };\r\n\r\n const twoFAValidation = buildValidation({});\r\n return (\r\n }\r\n onSubmit={handleSubmit}\r\n isLoading={false}\r\n />\r\n );\r\n};\r\n\r\nexport default Change2faSection;\r\n","import React from \"react\";\r\nimport Wrappers from \"../../../components/wrappers/Wrappers\";\r\nimport InputElement from \"../../../components/elements/form-elements/InputElement\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { InputSubmit } from \"../../../components/elements/form-elements\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\n\r\nconst UserPasswordForm = ({ formik, isLoading, isCompleted }) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserPasswordForm;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport DataEntry from \"../../../../../components/data-entry/DataEntry\";\r\nimport EffectError from \"../../../../../components/errors/EffectError\";\r\nimport userStateModule from \"../../../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../../../core/state/useStateModule\";\r\nimport commonValidation from \"../../../../../core/validations/common\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport UserPasswordForm from \"../../../../User/components/UserPasswordForm\";\r\n\r\nconst passwordDefaultValues = {\r\n password: \"\",\r\n repeatPassword: \"\",\r\n};\r\nconst getPasswordValidation = (t) => {\r\n return buildValidation({\r\n password: commonValidation.password(t).rule,\r\n repeatPassword: ValidationRule.shouldBeEqual(\r\n \"password\",\r\n t(\"forms:repeatPassword.invalid\"),\r\n t(\"forms:repeatPassword.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst ChangePasswordSection = () => {\r\n const { t } = useTranslation();\r\n const {\r\n password,\r\n changePassword,\r\n changePasswordResetState,\r\n } = useStateModule(userStateModule);\r\n useEffect(() => {\r\n return changePasswordResetState;\r\n }, [changePasswordResetState]);\r\n\r\n const handlePasswordSubmit = async (newPassword) => {\r\n await changePassword(newPassword);\r\n\r\n toast.success(t(\"screens:employeeEdit.passwordSuccess\"));\r\n };\r\n\r\n const passwordValidation = getPasswordValidation(t);\r\n\r\n return (\r\n \r\n (\r\n \r\n )}\r\n onSubmit={handlePasswordSubmit}\r\n isLoading={password.isLoading}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ChangePasswordSection;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst ImagePlaceholder = styled.div`\r\n width: 84px;\r\n height: 84px;\r\n border-radius: 50%;\r\n margin: 0px 30px;\r\n box-shadow: 4px 4px 16px 0px rgba(0,0,0,0.16);\r\n background: center url(${props => props.image}) no-repeat;\r\n background: ${(props) => (props.image ? `center url(${props => props.image}) no-repeat` : \"#C9C6BA\")};\r\n display:flex;\r\n align-items:center;\r\n justify-content:center;\r\n\r\n &.big {\r\n width:300px;\r\n height:300px;\r\n }\r\n`;\r\nconst RoundedImage = (props) => {\r\n const {image, dragging, ...rest} = props;\r\n return (\r\n \r\n {dragging && \"camera\"}\r\n \r\n )\r\n};\r\n\r\nexport default RoundedImage;\r\n\r\n\r\n","import React, { useRef, useState,useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport RoundedImage from \"../../../components/elements/images/RoundedImage\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport useFileDrop from \"./hooks/useFileDrop\";\r\nimport { Input, ValidationError } from \"./index\";\r\n\r\nconst UploaderWrapper = styled.div`\r\n position: relative;\r\n min-height: 44px;\r\n width: 100%;\r\n text-align: center;\r\n border: 2px dashed #e2e2e2;\r\n font-size: 16px;\r\n border-radius: 18px;\r\n padding: 16px;\r\n transition: all 300ms ease;\r\n\r\n &.inline-form {\r\n margin: 24px 0 0;\r\n }\r\n\r\n &.dragging {\r\n border: 2px dashed #675b34;\r\n\r\n .infoWrapper *{\r\n color:#ABABAB !important;\r\n }\r\n }\r\n\r\n &.wide {\r\n width: 72%;\r\n }\r\n`;\r\nconst RealUploader = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n input[type=\"file\"] {\r\n position: absolute;\r\n height: 40px;\r\n opacity: 0;\r\n z-index: 1;\r\n width: 0;\r\n }\r\n \r\n .infoWrapper {\r\n text-align: left;\r\n margin-left: 20px;\r\n font-size: 20px;\r\n color: #000;\r\n font-weight: 700;\r\n line-height: 20px;\r\n padding-bottom: 4px;\r\n div {\r\n padding: 5px;\r\n }\r\n }\r\n\r\n .action {\r\n cursor: pointer;\r\n color: ${p => p.theme.primaryColor};\r\n font-size: 16px;\r\n font-weight: normal;\r\n }\r\n\r\n .action-remove {\r\n cursor: pointer;\r\n color: #e94e4e;\r\n }\r\n\r\n .action:hover {\r\n text-decoration: underline;\r\n }\r\n`;\r\n\r\nconst Avatar = styled.div`\r\n border-radius: 50%;\r\n min-width: 84px;\r\n width: 84px;\r\n height: 84px;\r\n color: #fff;\r\n background-color: ${(props) => props.theme.tertiaryColor};\r\n text-align: center;\r\n margin: 0px 30px;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n margin : 0;\r\n }\r\n\r\n & span {\r\n line-height: 84px;\r\n font-size: 38px;\r\n text-transform: uppercase;\r\n }\r\n\r\n .avatar {\r\n border-radius: 50%;\r\n background: no-repeat center;\r\n background-size: cover;\r\n display: inline-block;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n`;\r\n\r\nconst ProfilePictureUploader = (props) => {\r\n const { t } = useTranslation();\r\n const [inputHover, setInputHover] = useState(false);\r\n const [fileName, setFileName] = useState(\"\");\r\n\r\n let {\r\n labelText,\r\n name,\r\n errors,\r\n touched,\r\n values,\r\n handleChange,\r\n handleBlur,\r\n disabled,\r\n id,\r\n style,\r\n className,\r\n userData,\r\n otherUserData,\r\n autoSubmit,\r\n onDelete,\r\n fullName,\r\n } = props;\r\n\r\n let value = props.value ? props.value : values && values[name];\r\n let error = errors ? errors[name] : null;\r\n let isTouched = touched ? touched[name] : false;\r\n\r\n const realUserData=(userData.email===otherUserData.email) ? userData:otherUserData;\r\n const nameLabel = realUserData.firstName ? realUserData.firstName+\" \"+ realUserData.lastName : \"\";\r\n if(userData.email!==otherUserData.email) disabled = true;\r\n\r\n const fileInput = useRef(null);\r\n\r\n const handleHover = () => {\r\n if(disabled) return;\r\n setInputHover(!inputHover);\r\n };\r\n\r\n const onFileUpload = (e) => {\r\n if(disabled) return;\r\n if (e && e.currentTarget.files.length > 0) {\r\n setFileName(e.currentTarget.files[0].name);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n\r\n autoSubmit && autoSubmit();\r\n }, [fileName]);\r\n\r\n const onChange = (e) => {\r\n handleChange(e);\r\n onFileUpload(e);\r\n props.onChange && props.onChange(e);\r\n };\r\n\r\n const triggerFileInput = () => {\r\n fileInput.current.click();\r\n };\r\n const { isDragging, getUploaderProps } = useFileDrop((files) => {\r\n fileInput.current.files = files;\r\n\r\n let event = document.createEvent(\"UIEvents\");\r\n event.initUIEvent(\"change\", true, true);\r\n\r\n fileInput.current.dispatchEvent(event);\r\n });\r\n\r\n\r\n const Actions = ()=> realUserData.profilePictureUrl === \"\" ? (\r\n
    \r\n {labelText}\r\n
    \r\n ) : (\r\n
    \r\n {t(\"actions:deletePicture\")}\r\n
    \r\n )\r\n\r\n return (\r\n \r\n \r\n onChange(e)}\r\n onBlur={handleBlur}\r\n disabled={disabled && \"disabled\"}\r\n defaultValue={value || \"\"}\r\n className=\"file\"\r\n ref={fileInput}\r\n accept={props.accept ? props.accept : \"\"}\r\n />\r\n\r\n {realUserData.profilePictureUrl || isDragging ? (\r\n \r\n ) : (\r\n \r\n {helpers.getInitials(nameLabel)}\r\n \r\n )}\r\n\r\n
    \r\n
    {fullName || nameLabel}
    \r\n {!disabled && }\r\n\r\n
    \r\n
    \r\n\r\n {error && }\r\n \r\n );\r\n};\r\n\r\nexport default ProfilePictureUploader;\r\n","import React, { useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Wrappers from \"../../../components/wrappers/Wrappers\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport { InputSubmit } from \"../../../components/elements/form-elements\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport ProfilePictureUploader from \"../../../components/elements/form-elements/ProfilePictureUploader\";\r\nimport globals from \"../../../globalVars\";\r\n\r\n\r\nconst UserProfilePictureForm = ({ formik, isLoading, userData, otherUserData, onDelete, fullName }) => {\r\n const { t } = useTranslation();\r\n const fileChangeFormikObject = helpers.getFileUploadFormik(\r\n formik,\r\n \"profilePictureFile\"\r\n );\r\n const submitEl = useRef();\r\n\r\n const handleUpload = ()=>{\r\n if(!submitEl.current) return;\r\n submitEl.current.click();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserProfilePictureForm;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport DataEntry from \"../../../../../components/data-entry/DataEntry\";\r\nimport EffectError from \"../../../../../components/errors/EffectError\";\r\nimport Flex from \"../../../../../components/layout/flex/Flex\";\r\nimport helpers from \"../../../../../core/helpers\";\r\nimport userStateModule from \"../../../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../../../core/state/useStateModule\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport UserProfilePictureForm from \"../../../../User/components/UserProfilePictureForm\";\r\n\r\nconst profilePicDefaultValues = {\r\n profilePicture: \"\",\r\n};\r\n\r\nconst getProfilePicValidation = (t) => {\r\n return buildValidation({\r\n profilePicture: ValidationRule.isStringRule().required(\r\n t(\"forms:userPicture.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst ChangePictureSection = ({ fullName, otherUserData, style }) => {\r\n const { t } = useTranslation();\r\n\r\n const {\r\n userData,\r\n loadUserData,\r\n userProfilePictureUpdate,\r\n updateUserPicture,\r\n updateUserPictureResetState,\r\n deleteUserPicture,\r\n } = useStateModule(userStateModule);\r\n\r\n const isProfilePictureLoading =\r\n userData.isLoading || userProfilePictureUpdate.isLoading;\r\n useEffect(() => {\r\n return updateUserPictureResetState;\r\n }, [updateUserPictureResetState]);\r\n\r\n useEffect(() => {\r\n if (userProfilePictureUpdate.isCompleted) {\r\n toast.success(\r\n t(\"screens:userPictureEdit.toastNotification.success\")\r\n );\r\n } else if (userProfilePictureUpdate.error) {\r\n //toast.error(t('screens:userPictureEdit.toastNotification.fail'));\r\n }\r\n }, [userProfilePictureUpdate.isCompleted, userProfilePictureUpdate.error]);\r\n\r\n // useEffect(() => {\r\n // if (userProfilePictureDelete.isCompleted) {\r\n // toast.success(t('screens:userPictureEdit.toastNotification.imageDeleted'));\r\n // }\r\n // }, [userProfilePictureDelete.isCompleted]);\r\n\r\n const profilePicValidation = getProfilePicValidation(t);\r\n\r\n const handleProfilePicSubmit = async (values) => {\r\n let formData = helpers.getFormData(values);\r\n if (values.profilePictureFile) {\r\n formData.append(\r\n \"profilePicture\",\r\n values.profilePictureFile,\r\n values.profilePictureFile.name\r\n );\r\n }\r\n await updateUserPicture(formData);\r\n loadUserData();\r\n };\r\n\r\n const handleProfilePicDelete = async () => {\r\n await deleteUserPicture();\r\n toast.success(\r\n t(\"screens:userPictureEdit.toastNotification.imageDeleted\")\r\n );\r\n loadUserData();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {userProfilePictureUpdate.error && (\r\n \r\n )}\r\n\r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ChangePictureSection;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { InputSubmit } from \"../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport Wrappers from \"../../../../components/wrappers/Wrappers\";\r\n\r\nconst AdministratorEditForm = ({ formik, isLoading, roles }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default AdministratorEditForm;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataEntry from \"../../../../components/data-entry/DataEntry\";\r\nimport RoundTabs from \"../../../../components/elements/tabs/RoundTabs\";\r\nimport EffectError from \"../../../../components/errors/EffectError\";\r\nimport LayoutInnerContainer from \"../../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport AuthorizeComponentByUserId from \"../../../../core/AuthorizeComponentByUserId\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport employeeListStateModule from \"../../../../core/state/company/employeeListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport userStateModule from \"../../../../core/state/user/userStateModule.js\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useAuthorization from \"../../../../core/useAuthorization\";\r\nimport commonValidation from \"../../../../core/validations/common\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport Change2faSection from \"../../../Company/views/employees/edit-employee/Change2faSection\";\r\nimport ChangePasswordSection from \"../../../Company/views/employees/edit-employee/ChangePasswordSection\";\r\nimport ChangePictureSection from \"../../../Company/views/employees/edit-employee/ChangePictureSection\";\r\nimport AdministratorEditForm from \"./AdministratorEditForm\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst TabContent = styled.div`\r\n display: ${(props) => (props.show ? \"block\" : \"none\")};\r\n`;\r\n\r\nconst TabsWrapper = styled.div`\r\n margin: 0px 0px 0px -95px;\r\n padding: 25px 60px 0px 78px;\r\n border-radius: 15px 15px 0px 0px;\r\n background: linear-gradient(\r\n 180deg,\r\n rgba(245, 245, 245, 1) 0%,\r\n rgba(240, 240, 240, 1) 100%\r\n );\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n`;\r\n\r\nconst defaultEditEmployeeValues = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n phoneNumber: \"\",\r\n username: \"\",\r\n};\r\n\r\nconst tabIndices = {\r\n Profile: 0,\r\n Information: 1,\r\n};\r\n\r\nconst validationEditEmployee = (t) => {\r\n return buildValidation({\r\n firstName: ValidationRule.isStringRule().required(\r\n t(\"forms:firstName.required\")\r\n ).rule,\r\n lastName: ValidationRule.isStringRule().required(\r\n t(\"forms:lastName.required\")\r\n ).rule,\r\n email: commonValidation.email(t).rule,\r\n });\r\n};\r\n\r\nconst AdministratorEditScreen = () => {\r\n const { t } = useTranslation();\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n const { loadUserData } = useStateModule(userStateModule);\r\n\r\n const [tabIndex, setTabIndexState] = useState(tabIndices.Profile);\r\n\r\n /* Edit */\r\n let { employeeId } = useParams();\r\n\r\n const ownProfile = useAuthorization({\r\n allowedUserId: employeeId,\r\n });\r\n\r\n const { loadEmployeeById, details, updateData, resetState, rolesData } =\r\n useStateModule(employeeListStateModule);\r\n\r\n useEffect(() => {\r\n loadEmployeeById(employeeId);\r\n }, [employeeId, loadEmployeeById]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n resetState();\r\n };\r\n }, [resetState]);\r\n\r\n let [submittedValues, setSubmittedValues] = React.useState({\r\n values: null,\r\n fullName: null,\r\n });\r\n\r\n const handleSubmit = async (\r\n values,\r\n { setSubmitting, setErrors, setStatus, resetForm }\r\n ) => {\r\n const updateValues = {\r\n ...values,\r\n id: employeeId,\r\n };\r\n if (ownProfile) {\r\n await UserService.setUserDetails(updateValues);\r\n loadUserData();\r\n\r\n toast.success(t(\"screens:adminEdit.completed.title\"));\r\n setSubmittedValues({\r\n values: values,\r\n fullName: values.firstName + \" \" + values.lastName,\r\n });\r\n loadEmployeeById(employeeId);\r\n }\r\n };\r\n\r\n const handle2FASubmit = async (values) => {\r\n const updateValues = {\r\n ...details.employeeData,\r\n ...values,\r\n id: employeeId,\r\n };\r\n if (ownProfile) {\r\n await UserService.setUserDetails(updateValues);\r\n loadUserData();\r\n toast.success(t(\"screens:adminEdit.completed.title\"));\r\n loadEmployeeById(employeeId);\r\n }\r\n };\r\n\r\n const twoFAValues = {\r\n passwordExpiration: details.employeeData.passwordExpiration || 0,\r\n twoFactorEnabled: details.employeeData.twoFactorEnabled || false,\r\n };\r\n\r\n let initializedValues = helpers.getInitialFormValues(\r\n defaultEditEmployeeValues,\r\n details.employeeData\r\n );\r\n\r\n if (employeeId) {\r\n initializedValues[\"id\"] = employeeId;\r\n }\r\n\r\n const employeeBreadcrumbs = [\r\n {\r\n text: \"Administrators\",\r\n },\r\n {\r\n text: \"Edit\",\r\n },\r\n ];\r\n\r\n const { update: updateBreadcrumbs } = useBreadcrumbs(employeeBreadcrumbs);\r\n\r\n useEffect(() => {\r\n employeeBreadcrumbs[1].text = details.employeeData.fullName;\r\n updateBreadcrumbs(employeeBreadcrumbs);\r\n }, [details.employeeData.fullName]);\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:editAdministrator.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n onSubmit={handleSubmit}\r\n isLoading={details.isLoading}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AdministratorEditScreen;\r\n","import Color from \"color\";\r\nimport React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\nconst StyledAnchor = styled(Link)`\r\n outline: none;\r\n -webkit-tap-highlight-color: transparent;\r\n border-radius: ${(props) => props.theme.buttonsBorderRadius};\r\n text-align: center;\r\n padding: 0 20px;\r\n text-decoration: none;\r\n color: ${(props) => props.theme.primaryColor};\r\n ${(props) =>\r\n props.margin &&\r\n css`\r\n margin: ${props.margin};\r\n `};\r\n box-shadow: ${(props) => props.theme.buttonShadow};\r\n box-sizing: border-box;\r\n transition: all 0.5s ease-in-out;\r\n display: inline-block;\r\n height: ${(props) => props.theme.heightButtonBig};\r\n line-height: ${(props) => props.theme.heightButtonBig};\r\n vertical-align: middle;\r\n font-size: 0.875rem;\r\n\r\n &.primary {\r\n background: ${(props) => props.theme.primaryColor};\r\n border: 1px solid ${(props) => props.theme.primaryColorBorder};\r\n color: ${(props) => props.theme.primaryColorText};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n }\r\n\r\n &.secondary {\r\n background: ${(props) => props.theme.secondaryColor};\r\n border: 1px solid ${(props) => props.theme.secondaryColorBorder};\r\n color: ${(props) => props.theme.secondaryColorText};\r\n min-width: ${(props) => props.theme.widthButtonMin};\r\n\r\n &:hover {\r\n background: ${(props) =>\r\n Color(props.theme.secondaryColor).darken(0.09).string()};\r\n }\r\n }\r\n\r\n &.block {\r\n display: block;\r\n }\r\n\r\n &.horizontal-space {\r\n margin: 0 10px;\r\n }\r\n\r\n &.form-button {\r\n }\r\n\r\n &.filter {\r\n background: #675b34;\r\n border: 1px solid #675b34;\r\n height: 32px;\r\n line-height: 32px;\r\n padding: 0px 8px;\r\n margin: 0px;\r\n }\r\n\r\n &.pwa-filter {\r\n transition: all 0.1s;\r\n background: ${(p) => p.theme.primaryColor};\r\n color: #fff;\r\n border: 1px solid ${(p) => p.theme.primaryColor};\r\n height: 32px;\r\n line-height: 32px;\r\n padding: 0px 16px;\r\n margin: 0px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n box-shadow: none;\r\n text-transform: uppercase;\r\n &:active {\r\n box-shadow: inset 0 0 6px #000000;\r\n }\r\n }\r\n\r\n &.pwa-filter.clear {\r\n background: #fff;\r\n border: 1px solid ${(p) => p.theme.secondaryNegativeColor};\r\n color: ${(p) => p.theme.secondaryNegativeColor};\r\n }\r\n\r\n &.pwa-filter.back {\r\n background: transparent;\r\n border: 1px transparent;\r\n color: ${(p) => p.theme.primaryColor};\r\n padding: 8px 0px;\r\n &:active {\r\n box-shadow: none;\r\n }\r\n }\r\n\r\n &.logout {\r\n background: transparent;\r\n border: 1px solid transparent;\r\n height: 26px;\r\n line-height: 26px;\r\n border-radius: 26px;\r\n padding: 0px 15px;\r\n margin: 0px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #bc3535;\r\n box-shadow: none;\r\n padding: 0px;\r\n display: flex;\r\n align-items: center;\r\n & img {\r\n margin-left:5px;\r\n }\r\n }\r\n`;\r\n\r\nconst Anchor = (props) => {\r\n return ;\r\n};\r\n\r\nexport default Anchor;\r\n","import { useEffect, useState } from \"react\";\r\nconst isAray = (obj) => !!obj && obj.constructor === Array;\r\n\r\nconst usePromises = (tasks = [], selectorFn, initialValues = {}, deps = []) => {\r\n if (!isAray(tasks))\r\n throw new Error(\"parameter asyncApiResults is not an array\");\r\n\r\n const [state, setState] = useState(initialValues);\r\n useEffect(() => {\r\n Promise.all(tasks.map((t) => t())).then((values) => {\r\n if (selectorFn) values = selectorFn(values);\r\n setState(values);\r\n });\r\n }, deps);\r\n return state;\r\n};\r\n\r\nexport default usePromises;\r\n","import React from \"react\";\r\nimport {Title} from \"./SidebarStyle\";\r\n\r\nconst SidebarTitle = (props) => {\r\n const {title} = props;\r\n\r\n return (\r\n <>\r\n {\r\n title &&\r\n (\r\n {title}\r\n )\r\n }\r\n \r\n )\r\n};\r\n\r\nexport default SidebarTitle;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../../../../components/elements/sidebar/SidebarField\";\r\nimport SidebarTitle from \"../../../../../components/elements/sidebar/SidebarTitle\";\r\nimport AccordionWrapper from \"../../../../../components/toggle-view/AccordionWrapper\";\r\nimport useAccordionGroup from \"../../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst AdminDetailSideBar = ({ adminUser }) => {\r\n const { adminData } = adminUser;\r\n let { fullName, username, userStatus, roleNames, email, phoneNumber } =\r\n adminUser.adminData;\r\n const { t } = useTranslation(\"sidebar\");\r\n let sideBarRoles = [];\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n if (roleNames) {\r\n sideBarRoles = roleNames.map((role) => {\r\n return <>{t(\"common:roles.\" + role)};\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {adminData && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AdminDetailSideBar;\r\n","const actionTypes = {\r\n SEARCH_EMAIL: \"SEARCH_USERNAME\",\r\n RESET_SEARCH_EMAIL: \"RESET_SEARCH_EMAIL\",\r\n SEARCH_FULLNAME: \"SEARCH_FULLNAME\",\r\n RESET_SEARCH_FULLNAME: \"RESET_SEARCH_FULLNAME\",\r\n SEARCH_ROLE: \"SEARCH_ROLE\",\r\n RESET_SEARCH_ROLE: \"RESET_SEARCH_ROLE\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n SEARCH_STATUS: \"SEARCH_STATUS\",\r\n SEARCH_COMPANYNAME: \"SEARCH_COMPANYNAME\",\r\n SET_COUNTRY:\"SET_COUNTRY\",\r\n RESET_COUNTRY:\"RESET_COUNTRY\",\r\n};\r\n\r\nexport default actionTypes;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst RoleCell = ({ cell: { value } }) => {\r\n const { t } = useTranslation(\"common\");\r\n if (value && value.length > 0) {\r\n return value.map((role) => {\r\n return {t(\"roles.\" + role)};\r\n });\r\n }\r\n return null;\r\n};\r\n\r\nexport default RoleCell;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../../components/filter/Filters\";\r\nimport useDebouncedCallback from \"../../../../../hooks/_shared/useDebouncedCallback\";\r\nimport actionTypes from \"./filterActionsTypes\";\r\nimport globals from \"../../../../../globalVars\";\r\n\r\nconst UserFilter = ({\r\n filterState,\r\n dispatch,\r\n roles,\r\n showFgasFilter = false,\r\n showStatusFilter = true,\r\n isMasterAdmin = false,\r\n isAdminList = false,\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [emailChanged] = useDebouncedCallback((text) => {\r\n dispatch({ type: actionTypes.SEARCH_EMAIL, payload: text.trim() });\r\n });\r\n const [fullNameChanged] = useDebouncedCallback((text) => {\r\n dispatch({ type: actionTypes.SEARCH_FULLNAME, payload: text.trim() });\r\n });\r\n const [companyNameChanged] = useDebouncedCallback((text) => {\r\n dispatch({ type: actionTypes.SEARCH_COMPANYNAME, payload: text.trim() });\r\n });\r\n\r\n /* some filters have additional property \"filter\" and some don't have */\r\n const hasFilterObject = filterState.filter !== undefined;\r\n let email = filterState.email;\r\n let fullName = filterState.fullName;\r\n let companyName = filterState.companyName;\r\n\r\n if (hasFilterObject) {\r\n email = filterState.filter.email;\r\n fullName = filterState.filter.fullName;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n fullNameChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"fullName\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n \r\n {\r\n emailChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"email\")}\r\n className=\"filters\"\r\n />\r\n \r\n {showFgasFilter && (\r\n \r\n \r\n dispatch({\r\n type: actionTypes.SEARCH_CERTIFICATE,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"status\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n )}\r\n {!isAdminList && (\r\n \r\n \r\n {\r\n companyNameChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"company.companyName\")}\r\n className=\"filters\"\r\n />\r\n \r\n )}\r\n \r\n \r\n dispatch({\r\n type: actionTypes.SEARCH_ROLE,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"roles.allRoles\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n {!isAdminList && (\r\n \r\n ({\r\n key: country.id,\r\n value: country.id,\r\n label: country.localName,\r\n })\r\n )\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n if (evt.currentTarget.value === \"\") {\r\n dispatch({\r\n type: actionTypes.RESET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"filters:clients.country\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n )}\r\n {showStatusFilter && (\r\n \r\n \r\n dispatch({\r\n type: actionTypes.SEARCH_STATUS,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"status\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(UserFilter);\r\n","import React from \"react\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport commonValidation from \"../../../../core/validations/common\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nconst getAdminValidation = (t) => {\r\n const validation = buildValidation({\r\n email: commonValidation.email(t).rule,\r\n firstName: ValidationRule.isStringRule().required(\r\n t(\"forms:firstName.required\")\r\n ).rule,\r\n lastName: ValidationRule.isStringRule().required(\r\n t(\"forms:lastName.required\")\r\n ).rule,\r\n });\r\n\r\n return validation;\r\n};\r\n\r\nconst defaultInitialValues = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n email: \"\",\r\n};\r\n\r\nconst CreateAdministratorWizard = (t) => {\r\n return {\r\n title: t(\"forms:administrator.create\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:administrator.information\"),\r\n fieldNames: [\"firstName\", \"lastName\", \"phoneNumber\", \"email\"],\r\n validation: getAdminValidation(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default CreateAdministratorWizard;\r\n","import React, {useState} from \"react\";\r\nimport styled from 'styled-components';\r\nimport Tooltip from \"../../tooltip/Tooltip\";\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n\r\n & + div {\r\n margin: 0 0 0 20px;\r\n }\r\n`;\r\n\r\nconst Button = styled.button`\r\n cursor: pointer;\r\n min-width: ${(props) => props.theme.widthActionButtonMin};\r\n min-width: ${(props) => props.minWidth? props.minWidth: 192};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid ${props => props.theme.primaryColor};\r\n height: ${props => props.theme.heightButtonSmall};\r\n line-height: ${props => props.theme.heightButtonSmall};\r\n box-shadow: ${props => props.theme.buttonShadow};\r\n font-size: 12px;\r\n text-align: left;\r\n padding: 0 20px;\r\n position: relative;\r\n border-radius: 16px;\r\n text-align: center;\r\n\r\n &.invisible {\r\n opacity:0;\r\n cursor: default;\r\n }\r\n\r\n &.primary {\r\n background: ${(props) => props.theme.primaryColor};\r\n color: ${props => props.theme.textWhite};\r\n\r\n &:enabled:hover {\r\n background: ${p => p.theme.primaryColorHover};\r\n border: 1px solid ${props => props.theme.primaryColorHover};\r\n }\r\n }\r\n\r\n &.secondary {\r\n background: ${(props) => props.theme.bgWhite};\r\n color: ${(props) => props.theme.tertiaryColor};\r\n }\r\n\r\n &:disabled {\r\n background: ${props => props.theme.bgDisabled};\r\n color: ${props => props.theme.textDisabled};\r\n border-color: ${props => props.theme.borderColorDisabled};\r\n }\r\n`;\r\n\r\nconst Icon = styled.img`\r\n position: relative;\r\n max-height: 20px;\r\n margin: 0 0 0 7px;\r\n height: ${props => props.size || 'auto'};\r\n max-height: ${props => props.size || 'auto'};\r\n`;\r\n\r\nconst ActionButton = ({className, dataTest, onClick, disabled, icon, iconSize, tooltip, children, as = \"button\", ...rest}) => {\r\n const [tooltipVisible, setTooltipVisible] = useState(false);\r\n return (\r\n \r\n \r\n {\r\n tooltip &&\r\n \r\n }\r\n\r\n \r\n\r\n )\r\n}\r\n\r\nexport default ActionButton;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport Anchor from \"../../../../components/elements/form-elements/Link\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport adminUsersListStateModule from \"../../../../core/state/admin/users/adminUsersListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport usePromises from \"../../../../hooks/_shared/usePromises\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport AdminDetailSideBar from \"./components/AdminDetailSideBar\";\r\nimport actionTypes from \"./components/filterActionsTypes\";\r\nimport RoleCell from \"./components/RoleCell\";\r\nimport UserFilter from \"./components/UserFilter\";\r\nimport CreateAdministratorWizard from \"./CreateAdministratorWizard\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport ActionButton from \"../../../../components/elements/buttons/ActionButton\";\r\n\r\nconst filterReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SEARCH_COMPANYNAME:\r\n state.filter.companyName = action.payload;\r\n break;\r\n case actionTypes.SEARCH_EMAIL:\r\n state.filter.email = action.payload;\r\n break;\r\n case actionTypes.SEARCH_FULLNAME:\r\n state.filter.fullName = action.payload;\r\n break;\r\n case actionTypes.SEARCH_ROLE:\r\n if (action.payload) {\r\n state.filter.roleNames = [action.payload];\r\n } else {\r\n state.filter.roleNames = [];\r\n }\r\n break;\r\n case actionTypes.SEARCH_STATUS:\r\n if (action.payload === \"-1\") {\r\n delete state.filter.userStatus;\r\n } else if (action.payload === \"0\") {\r\n state.filter.userStatus = true;\r\n } else {\r\n state.filter.userStatus = false;\r\n }\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.page = action.payload.pageIndex + 1;\r\n state.pageSize = action.payload.pageSize;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.SET_COUNTRY:\r\n state.filter.countryId = action.payload;\r\n break;\r\n case actionTypes.RESET_COUNTRY:\r\n delete state.filter.countryId;\r\n break;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nconst AdministratorListing = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n const { t } = useTranslation(\"screens\");\r\n const {\r\n adminUsers,\r\n isLoading,\r\n error,\r\n loadAdminUsers,\r\n loadUserById,\r\n details,\r\n deleteUser,\r\n } = useStateModule(adminUsersListStateModule);\r\n\r\n const adminRoles = usePromises(\r\n [() => UserService.getAdminRolesAsync()],\r\n (res) => ({\r\n adminId: res[0].data.data.find((role) => role.name === Roles.Admin)\r\n .id,\r\n })\r\n );\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n email: \"\",\r\n fullName: \"\",\r\n roleNames: [],\r\n },\r\n\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"fullName\",\r\n descending: false,\r\n });\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:users\"),\r\n },\r\n {\r\n text: t(\"navigation:f-cycleAdmins\"),\r\n },\r\n ]);\r\n\r\n useEffect(() => {\r\n loadAdminUsers(filterState);\r\n }, [loadAdminUsers, filterState]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const [, setUserEnabled] = useDataReducer(UserService.setUserEnabled);\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"administratorListing.fullName\"),\r\n accessor: \"fullName\",\r\n },\r\n {\r\n Header: t(\"administratorListing.email\"),\r\n accessor: \"email\",\r\n },\r\n {\r\n Header: t(\"administratorListing.roles\"),\r\n accessor: \"roleNames\",\r\n Cell: RoleCell,\r\n },\r\n {\r\n Header: t(\"administratorListing.userStatus\"),\r\n accessor: \"userStatus\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {\r\n await deleteUser(value);\r\n loadAdminUsers(filterState);\r\n }}\r\n />\r\n {row.original.enabled &&\r\n row.original.roleNames.indexOf(\r\n Roles.MasterAdmin\r\n ) < 0 && (\r\n {\r\n await setUserEnabled({\r\n id: value,\r\n enabled: false,\r\n });\r\n loadAdminUsers(filterState);\r\n }}\r\n />\r\n )}\r\n {!row.original.enabled && (\r\n {\r\n await setUserEnabled({\r\n id: value,\r\n enabled: true,\r\n });\r\n loadAdminUsers(filterState);\r\n }}\r\n />\r\n )}\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ],\r\n // eslint-disable-next-line\r\n [t]\r\n );\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n await loadUserById(row.original.id);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [loadUserById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n if (sortBy.length > 0) {\r\n dispatch({ type: \"SET_SORT\", payload: sortBy });\r\n }\r\n };\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const createNewAdmin = (ev) => {\r\n ev.preventDefault();\r\n ModalWizard.show(CreateAdministratorWizard(t), {\r\n onSubmit: async (values) => {\r\n values.roleId = adminRoles.adminId;\r\n const result = await UserService.createAdministratorAsync(\r\n values\r\n );\r\n if (result && result.error) {\r\n ModalWizard.submitFailed(t(result.error.message));\r\n } else {\r\n loadAdminUsers(filterState);\r\n toast.success(t(\"actions:dialogs.createAdmin.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:administratorListing.title\")}\r\n \r\n {\r\n return (\r\n \r\n \r\n {t(\"administratorListing.addAdmin\")}\r\n \r\n \r\n );\r\n },\r\n }}\r\n filterTitle={t(\"filters:adminAdministratorListing.filterTitle\")}\r\n filterComponent={() => (\r\n \r\n )}\r\n paging={{\r\n enablePaging: true,\r\n pageCount: adminUsers.totalPages,\r\n pageSize: adminUsers.pageSize,\r\n onPageChange: pageChange,\r\n totalRows: adminUsers.totalRows,\r\n currentPageIndex: adminUsers.currentPage - 1,\r\n }}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortChange,\r\n currentSortBy: currentSortBy,\r\n }}\r\n onSelect={onSelect}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailView={}\r\n closeSideBar={closeSideBar}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default AdministratorListing;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_970\",\n \"data-name\": \"Group 970\",\n transform: \"translate(-271.223 -10)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_967\",\n \"data-name\": \"Group 967\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_47\",\n \"data-name\": \"Ellipse 47\",\n transform: \"translate(292.723 34) rotate(180)\",\n fill: \"#fff\",\n stroke: \"#000\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 4.5,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 3.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_55\",\n \"data-name\": \"Line 55\",\n x2: 12,\n transform: \"translate(284.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_56\",\n \"data-name\": \"Line 56\",\n x2: 4,\n transform: \"translate(296.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_968\",\n \"data-name\": \"Group 968\",\n transform: \"translate(568.445 44) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_47-2\",\n \"data-name\": \"Ellipse 47\",\n transform: \"translate(292.723 34) rotate(180)\",\n fill: \"#fff\",\n stroke: \"#000\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 4.5,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 3.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_55-2\",\n \"data-name\": \"Line 55\",\n x2: 12,\n transform: \"translate(284.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_56-2\",\n \"data-name\": \"Line 56\",\n x2: 4,\n transform: \"translate(296.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n})));\n\nvar SvgFilters = function SvgFilters(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26,\n height: 24,\n viewBox: \"0 0 26 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFilters, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/filters.2d8d1495.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_6\",\n className: \"arrow\",\n \"data-name\": \"Group 6\",\n transform: \"translate(-228.793 -209.793)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_6\",\n \"data-name\": \"Line 6\",\n x2: 3.077,\n y2: 3.077,\n transform: \"translate(229.5 210.5)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_7\",\n \"data-name\": \"Line 7\",\n y1: 3.077,\n x2: 3.077,\n transform: \"translate(229.5 213.577)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgPwaRight = function SvgPwaRight(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 4.491,\n height: 7.568,\n viewBox: \"0 0 4.491 7.568\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPwaRight, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/pwa-right.8c3f58dc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_556\",\n \"data-name\": \"Group 556\",\n transform: \"translate(-21.793 -25.293)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_3\",\n \"data-name\": \"Line 3\",\n y1: 14.751,\n x2: 14.048,\n transform: \"translate(22.5 26)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_6\",\n \"data-name\": \"Path 6\",\n d: \"M15,0\",\n transform: \"translate(24.358 26.255)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_5\",\n \"data-name\": \"Line 5\",\n x2: 14.048,\n y2: 14.241,\n transform: \"translate(22.5 26)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgPwaClose = function SvgPwaClose(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17.565,\n height: 16.165,\n viewBox: \"0 0 17.565 16.165\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPwaClose, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/pwa-close.aaae227a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1121\",\n \"data-name\": \"Group 1121\",\n transform: \"translate(-143.097 -505.097)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1069\",\n \"data-name\": \"Group 1069\",\n transform: \"translate(-117 272)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_741\",\n \"data-name\": \"Group 741\",\n transform: \"translate(265 234)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_676\",\n \"data-name\": \"Path 676\",\n d: \"M70.435,63.5H7.826A7.631,7.631,0,0,1,0,55.935V21.761a7.686,7.686,0,0,1,7.826-7.826H28.7a2.26,2.26,0,0,0,1.826-1.043L32.348,6.63A4.465,4.465,0,0,1,36.522,3.5H54.783a4.8,4.8,0,0,1,4.435,3.13l1.826,6.261a1.43,1.43,0,0,0,1.565,1.043h7.826a7.686,7.686,0,0,1,7.826,7.826V55.935A7.8,7.8,0,0,1,70.435,63.5ZM7.826,16.543a5.233,5.233,0,0,0-5.217,5.217V55.935a5.016,5.016,0,0,0,5.217,4.957H70.435a5.186,5.186,0,0,0,5.217-4.957V21.761a5.233,5.233,0,0,0-5.217-5.217H62.609a4.232,4.232,0,0,1-4.174-2.87L56.609,7.413a1.962,1.962,0,0,0-1.826-1.3H36.522a1.962,1.962,0,0,0-1.826,1.3L32.87,13.674a4.02,4.02,0,0,1-4.174,2.87Z\",\n transform: \"translate(0 -3.5)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_742\",\n \"data-name\": \"Group 742\",\n transform: \"translate(272.826 236.609)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_677\",\n \"data-name\": \"Path 677\",\n d: \"M9.522,7.109H4.3A1.232,1.232,0,0,1,3,5.8,1.232,1.232,0,0,1,4.3,4.5H9.522a1.232,1.232,0,0,1,1.3,1.3A1.232,1.232,0,0,1,9.522,7.109Z\",\n transform: \"translate(-3 -4.5)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_743\",\n \"data-name\": \"Group 743\",\n transform: \"translate(272.826 252.261)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_678\",\n \"data-name\": \"Path 678\",\n d: \"M9.522,13.109H4.3A1.232,1.232,0,0,1,3,11.8a1.232,1.232,0,0,1,1.3-1.3H9.522a1.232,1.232,0,0,1,1.3,1.3A1.232,1.232,0,0,1,9.522,13.109Z\",\n transform: \"translate(-3 -10.5)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_744\",\n \"data-name\": \"Group 744\",\n transform: \"translate(298.913 257.478)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_679\",\n \"data-name\": \"Path 679\",\n d: \"M24.739,35.978A11.739,11.739,0,1,1,36.478,24.239,11.69,11.69,0,0,1,24.739,35.978Zm0-20.87a9.13,9.13,0,1,0,9.13,9.13A9.243,9.243,0,0,0,24.739,15.109Z\",\n transform: \"translate(-13 -12.5)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_745\",\n \"data-name\": \"Group 745\",\n transform: \"translate(291.087 249.652)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_680\",\n \"data-name\": \"Path 680\",\n d: \"M29.565,48.63A19.565,19.565,0,1,1,49.13,29.065,19.708,19.708,0,0,1,29.565,48.63Zm0-36.522A16.957,16.957,0,1,0,46.522,29.065,16.923,16.923,0,0,0,29.565,12.109Z\",\n transform: \"translate(-10 -9.5)\",\n fill: \"#d5d5d5\"\n}))), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_69\",\n \"data-name\": \"Line 69\",\n y1: 61,\n x2: 79,\n transform: \"translate(147.5 508.5)\",\n fill: \"none\",\n stroke: \"#d5d5d5\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_70\",\n \"data-name\": \"Line 70\",\n y1: 61.772,\n x2: 80,\n transform: \"translate(144.5 506.5)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_71\",\n \"data-name\": \"Line 71\",\n y1: 61.772,\n x2: 80,\n transform: \"translate(148.5 510.5)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}));\n\nvar SvgNoImage = function SvgNoImage(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 86.805,\n height: 68.578,\n viewBox: \"0 0 86.805 68.578\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNoImage, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/no-image.ca7f73c4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_993\",\n \"data-name\": \"Group 993\",\n transform: \"translate(-271 -16)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_989\",\n \"data-name\": \"Group 989\",\n transform: \"translate(63.391 -69.03)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_599\",\n \"data-name\": \"Path 599\",\n d: \"M2.9-17.366H9.242V-23.71H2.9Z\",\n transform: \"translate(209.711 114.24)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_602\",\n \"data-name\": \"Path 602\",\n d: \"M6.32-20.169H7.785\",\n transform: \"translate(208.047 113.573)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_990\",\n \"data-name\": \"Group 990\",\n transform: \"translate(63.391 -69.03)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_600\",\n \"data-name\": \"Path 600\",\n d: \"M2.9-3.93H9.242v-6.344H2.9Z\",\n transform: \"translate(209.711 109.961)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_603\",\n \"data-name\": \"Path 603\",\n d: \"M6.32-6.733H8.426\",\n transform: \"translate(208.047 110.9)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_991\",\n \"data-name\": \"Group 991\",\n transform: \"translate(63.391 -69.03)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_601\",\n \"data-name\": \"Path 601\",\n d: \"M17-17.366h6.344V-23.71H17Z\",\n transform: \"translate(205.305 114.24)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_604\",\n \"data-name\": \"Path 604\",\n d: \"M20.418-20.169h1.154\",\n transform: \"translate(205.359 113.573)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_992\",\n \"data-name\": \"Group 992\",\n transform: \"translate(63.391 -69.03)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605\",\n \"data-name\": \"Path 605\",\n d: \"M17.207-11.885h4.067v6.151H15.188v-3.08h3.819\",\n transform: \"translate(207.113 111.765)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_701\",\n \"data-name\": \"Path 701\",\n d: \"M.5-22.4v-4.939A3.113,3.113,0,0,1,3.662-30.4H8.507\",\n transform: \"translate(271.5 47.399)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_702\",\n \"data-name\": \"Path 702\",\n d: \"M20.576-30.237h4.912a3.144,3.144,0,0,1,3.095,3.191v4.809\",\n transform: \"translate(267.418 47.366)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_703\",\n \"data-name\": \"Path 703\",\n d: \"M28.821-10.911V-6A3.058,3.058,0,0,1,27.9-3.817a3.2,3.2,0,0,1-2.234.905H20.9\",\n transform: \"translate(267.18 43.911)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_704\",\n \"data-name\": \"Path 704\",\n d: \"M8.5-2.75H3.556A3.008,3.008,0,0,1,1.4-3.674,3.206,3.206,0,0,1,.5-5.9V-10.75\",\n transform: \"translate(271.5 43.75)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}));\n\nvar SvgScan = function SvgScan(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26.001,\n height: 26,\n viewBox: \"0 0 26.001 26\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgScan, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/scan.f6083e6c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1324\",\n \"data-name\": \"Group 1324\",\n transform: \"translate(-94.597 -571.097)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Document-File\",\n transform: \"translate(127.929 579.862)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1290\",\n \"data-name\": \"Group 1290\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1289\",\n \"data-name\": \"Group 1289\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1287\",\n \"data-name\": \"Group 1287\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_775\",\n \"data-name\": \"Path 775\",\n d: \"M62.866,82.1H4.71A1.711,1.711,0,0,1,3,80.391V22.236a1.723,1.723,0,0,1,.5-1.211L24.025.5A1.723,1.723,0,0,1,25.236,0h37.63a1.711,1.711,0,0,1,1.71,1.71V80.391A1.711,1.711,0,0,1,62.866,82.1ZM6.421,78.681H61.155V3.421H25.944L6.421,22.944Z\",\n transform: \"translate(-3)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1288\",\n \"data-name\": \"Group 1288\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_776\",\n \"data-name\": \"Path 776\",\n d: \"M25.236,23.946H4.71a1.71,1.71,0,1,1,0-3.421H23.525V1.71a1.71,1.71,0,0,1,3.421,0V22.236A1.711,1.711,0,0,1,25.236,23.946Z\",\n transform: \"translate(-3)\",\n fill: \"#d5d5d5\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1291\",\n \"data-name\": \"Group 1291\",\n transform: \"translate(10.263 27.367)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_777\",\n \"data-name\": \"Path 777\",\n d: \"M45.34,11.421H7.71A1.71,1.71,0,0,1,7.71,8H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -8)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1292\",\n \"data-name\": \"Group 1292\",\n transform: \"translate(30.788 17.105)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_778\",\n \"data-name\": \"Path 778\",\n d: \"M30.815,8.421H13.71A1.71,1.71,0,0,1,13.71,5h17.1a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-12 -5)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1293\",\n \"data-name\": \"Group 1293\",\n transform: \"translate(10.263 37.63)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_779\",\n \"data-name\": \"Path 779\",\n d: \"M45.34,14.421H7.71A1.71,1.71,0,1,1,7.71,11H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -11)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1294\",\n \"data-name\": \"Group 1294\",\n transform: \"translate(10.263 47.893)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_780\",\n \"data-name\": \"Path 780\",\n d: \"M45.34,17.421H7.71A1.71,1.71,0,0,1,7.71,14H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -14)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1295\",\n \"data-name\": \"Group 1295\",\n transform: \"translate(10.263 58.155)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_781\",\n \"data-name\": \"Path 781\",\n d: \"M45.34,20.421H7.71A1.71,1.71,0,0,1,7.71,17H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -17)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1296\",\n \"data-name\": \"Group 1296\",\n transform: \"translate(10.263 68.418)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_782\",\n \"data-name\": \"Path 782\",\n d: \"M45.34,23.421H7.71A1.71,1.71,0,0,1,7.71,20H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -20)\",\n fill: \"#d5d5d5\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1323\",\n \"data-name\": \"Group 1323\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_69\",\n \"data-name\": \"Line 69\",\n y1: 92.744,\n x2: 120.112,\n transform: \"translate(99.562 574.541)\",\n fill: \"none\",\n stroke: \"#d5d5d5\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_70\",\n \"data-name\": \"Line 70\",\n y1: 93.918,\n x2: 121.632,\n transform: \"translate(96 572.5)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_774\",\n \"data-name\": \"Path 774\",\n d: \"M0,93.918,121.632,0\",\n transform: \"translate(100.082 576.582)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n})));\n\nvar SvgNoData = function SvgNoData(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128.519,\n height: 100.806,\n viewBox: \"0 0 128.519 100.806\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNoData, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/no-data.d4c08113.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Pencil\",\n transform: \"translate(0.507 0.689)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1265\",\n \"data-name\": \"Group 1265\",\n transform: \"translate(0 0.024)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1261\",\n \"data-name\": \"Group 1261\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_764\",\n \"data-name\": \"Path 764\",\n d: \"M.521,25a.52.52,0,0,1-.5-.664L2.1,17.043a.505.505,0,0,1,.132-.225L18.292.761a2.667,2.667,0,0,1,3.682,0l2.262,2.261a2.607,2.607,0,0,1,0,3.684L8.181,22.763a.521.521,0,0,1-.225.132L.665,24.979A.526.526,0,0,1,.521,25Zm2.547-7.539-1.79,6.26,6.261-1.789L23.5,5.97a1.565,1.565,0,0,0,0-2.21L21.238,1.5h0a1.6,1.6,0,0,0-2.209,0Zm4.745,4.935h0Z\",\n transform: \"translate(0 -0.024)\",\n fill: \"#48b05e\",\n stroke: \"#48b05e\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1262\",\n \"data-name\": \"Group 1262\",\n transform: \"translate(2.085)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_765\",\n \"data-name\": \"Path 765\",\n d: \"M7.729,22.915a.52.52,0,0,1-.369-.889L23.417,5.97a1.565,1.565,0,0,0,0-2.21L21.155,1.5a1.6,1.6,0,0,0-2.209,0L2.89,17.555a.521.521,0,0,1-.736-.736L18.209.761a2.667,2.667,0,0,1,3.682,0l2.262,2.261a2.607,2.607,0,0,1,0,3.683L8.1,22.763A.523.523,0,0,1,7.729,22.915Z\",\n transform: \"translate(-2.001 -0.024)\",\n fill: \"#48b05e\",\n stroke: \"#48b05e\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1263\",\n \"data-name\": \"Group 1263\",\n transform: \"translate(2.083 16.642)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_766\",\n \"data-name\": \"Path 766\",\n d: \"M7.729,22.25A.523.523,0,0,1,7.36,22.1L2.152,16.89a.521.521,0,0,1,.736-.736L8.1,21.361a.52.52,0,0,1-.368.889Z\",\n transform: \"translate(-2 -16.001)\",\n fill: \"#48b05e\",\n stroke: \"#48b05e\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1264\",\n \"data-name\": \"Group 1264\",\n transform: \"translate(6.25 3.101)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_767\",\n \"data-name\": \"Path 767\",\n d: \"M6.521,18.625a.52.52,0,0,1-.369-.889L20.735,3.153a.521.521,0,1,1,.736.736L6.889,18.473A.519.519,0,0,1,6.521,18.625Z\",\n transform: \"translate(-6 -3.001)\",\n fill: \"#48b05e\"\n}))));\n\nvar SvgEdit = function SvgEdit(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26.007,\n height: 26.187,\n viewBox: \"0 0 26.007 26.187\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEdit, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/edit.d1c0c3ca.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_469\",\n \"data-name\": \"Path 469\",\n d: \"M33.52-347.74a.654.654,0,0,1,.477.206.654.654,0,0,1,.176.488l-1.014,16.353a2.428,2.428,0,0,1-2.424,2.278H15.918a2.428,2.428,0,0,1-2.424-2.278s-.816-13.154-1.014-16.353a.654.654,0,0,1,.176-.488.654.654,0,0,1,.477-.206Zm-11.831,9.668-2.64-2.641a1.171,1.171,0,0,1,0-1.655,1.171,1.171,0,0,1,1.655,0l2.64,2.64,2.625-2.625a1.171,1.171,0,0,1,1.655,0,1.171,1.171,0,0,1,0,1.655L25-338.072l2.625,2.625a1.171,1.171,0,0,1,0,1.655,1.171,1.171,0,0,1-1.655,0l-2.625-2.625-2.64,2.64a1.171,1.171,0,0,1-1.655,0,1.171,1.171,0,0,1,0-1.655Z\",\n transform: \"translate(-11.301 356.285)\",\n fill: \"#bc3535\",\n fillRule: \"evenodd\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_470\",\n \"data-name\": \"Path 470\",\n d: \"M15.66-354.145v-1.119a3.788,3.788,0,0,1,1.11-2.678,3.79,3.79,0,0,1,2.679-1.11H26.39a3.79,3.79,0,0,1,2.679,1.11,3.788,3.788,0,0,1,1.11,2.678v1.119h3.573a1.169,1.169,0,0,1,1.168,1.168,1.169,1.169,0,0,1-1.168,1.169H12.087a1.169,1.169,0,0,1-1.168-1.169,1.169,1.169,0,0,1,1.168-1.168Zm12.056,0v-1.208a1.283,1.283,0,0,0-.375-.907,1.283,1.283,0,0,0-.906-.375H19.317a1.283,1.283,0,0,0-.907.375,1.283,1.283,0,0,0-.375.907v1.208Z\",\n transform: \"translate(-10.919 359.053)\",\n fill: \"#bc3535\",\n fillRule: \"evenodd\"\n});\n\nvar SvgDelete = function SvgDelete(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Group_898\",\n \"data-name\": \"Group 898\",\n width: 24,\n height: 27.871,\n viewBox: \"0 0 24 27.871\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDelete, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/delete.55e463cf.svg\";\nexport { ForwardRef as ReactComponent };","import styled from \"styled-components\";\r\n\r\nimport { ReactComponent as FilterSvg } from \"../../../assets/pwa/filters.svg\";\r\nimport { ReactComponent as ArrowSvg } from \"../../../assets/pwa-right.svg\";\r\nimport { ReactComponent as CloseSvg } from \"../../../assets/pwa/pwa-close.svg\";\r\nimport { ReactComponent as NoImageSvg } from \"../../../assets/pwa/no-image.svg\";\r\nimport { ReactComponent as ScanSvg } from \"../../../assets/pwa/scan.svg\";\r\nimport { ReactComponent as NoDataSvg } from \"../../../assets/pwa/no-data.svg\";\r\nimport { ReactComponent as EditSvg } from \"../../../assets/pwa/edit.svg\";\r\nimport { ReactComponent as DeleteSvg } from \"../../../assets/pwa/delete.svg\";\r\n\r\nconst SvgScan = styled(ScanSvg)`\r\n&.white {\r\n & path {\r\n stroke: #fff;\r\n }\r\n}\r\n`;\r\n\r\nconst SvgEdit = styled(EditSvg)`\r\n`;\r\n\r\nconst SvgDelete = styled(DeleteSvg)`\r\n&.disabled * {\r\n opacity: 0.3;\r\n }\r\n`;\r\n\r\n\r\nconst SvgNoData = styled(NoDataSvg)`\r\n`;\r\n\r\nconst SvgNoImage = styled(NoImageSvg)`\r\n padding: 9% 16%;\r\n &.hidden {\r\n display:none;\r\n }\r\n`;\r\n\r\nconst StyledFilter = styled(FilterSvg)`\r\n width: 32px;\r\n height: 32px;\r\n transition: all 0.3s ease;\r\n margin-left: 24px;\r\n padding: 4px;\r\n\r\n & g,\r\n & line {\r\n stroke: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n &.menu {\r\n margin-left: 0px;\r\n margin-right: 12px;\r\n & g,\r\n & line {\r\n stroke: #000;\r\n }\r\n }\r\n\r\n &.disabled * {\r\n stroke: #d5d0d0;\r\n pointer-events: none;\r\n }\r\n &:not(.disabled):active {\r\n background-color: #ddd;\r\n }\r\n`;\r\n\r\nconst StyledBack = styled(ArrowSvg)`\r\n width: 20px;\r\n height: 20px;\r\n margin-left: 8px;\r\n transform: rotate(180deg);\r\n\r\n &.disabled line {\r\n stroke: #d5d0d0;\r\n }\r\n`;\r\n\r\nconst StyledClose = styled(CloseSvg)`\r\n width: 12px;\r\n height: 12px;\r\n margin-left: 8px;\r\n & line,\r\n & path {\r\n stroke: #e94e4e;\r\n }\r\n\r\n &.active line {\r\n stroke: #fff;\r\n }\r\n`;\r\n\r\nconst StyledArrow = styled(ArrowSvg)`\r\n width: 12px;\r\n height: 12px;\r\n\r\n & .arrow {\r\n stroke: #d5d0d0;\r\n }\r\n\r\n &.active line {\r\n stroke: #fff;\r\n }\r\n\r\n &.filter {\r\n width: 10px;\r\n height: 10px;\r\n }\r\n\r\n &.filter line {\r\n stroke: #fff;\r\n }\r\n\r\n &.back {\r\n width: 18px;\r\n height: 18px;\r\n transform: rotate(180deg);\r\n\r\n & line {\r\n stroke: ${(p) => p.theme.primarColor};\r\n }\r\n }\r\n`;\r\n\r\nexport { StyledFilter, StyledBack, StyledClose, StyledArrow, SvgNoImage, SvgNoData, SvgScan, SvgDelete, SvgEdit };\r\n","import styled from \"styled-components\";\r\n\r\nconst ScanButton = styled.button`\r\n width: 52px;\r\n height: 52px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 50%;\r\n border: none;\r\n outline: none;\r\n background-color: ${(p) => p.theme.secondaryColor};\r\n /* box-shadow: ${(props) => props.theme.buttonShadow}; */\r\n\r\n &.close {\r\n background-color:#ff0000;\r\n }\r\n`;\r\n\r\nconst ScreenWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst ScreenHeader = styled.div`\r\n padding: 0px 16px;\r\n min-height: 60px;\r\n height: 60px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n &.right {\r\n justify-content: flex-end;\r\n }\r\n\r\n &.big {\r\n height: 100px;\r\n }\r\n\r\n &.gray {\r\n background-color: #ebebeb;\r\n padding: 0px 20px;\r\n margin: 0px -20px;\r\n }\r\n`;\r\n\r\nconst ListTitle = styled.div`\r\n font-size: 16px;\r\n padding: 20px 0px 0px 30px;\r\n color: ${p => p.theme.primaryColor};\r\n margin: 0;\r\n color: ${(p) => p.theme.primaryColor};\r\n\r\n &.wizard {\r\n padding:0;\r\n }\r\n\r\n &.content {\r\n padding-left: 8px;\r\n }\r\n\r\n &.scanner {\r\n padding-left: 0px;\r\n padding-top: 10px;\r\n }\r\n\r\n &.content.outset {\r\n margin-left: -22px;\r\n }\r\n`;\r\n\r\nconst FlexForm = styled.form`\r\n display: flex;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nconst FilterClear = styled.div`\r\n height: 24px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fff;\r\n font-size: 12px;\r\n font-weight: 700;\r\n box-shadow: 0px 12px 20px 0px rgba(0, 0, 0, 0.16);\r\n border-color: ${(props) => props.theme.primaryColorBorder};\r\n padding: 2px 6px;\r\n border-radius: 6px;\r\n margin-left: 12px;\r\n`;\r\n\r\nconst FilterWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst HR = styled.div`\r\n border-bottom: 1px solid #d5d5d5;\r\n height: 1px;\r\n margin: 0px 24px;\r\n\r\n &.content {\r\n margin: 10px 0px;\r\n }\r\n\r\n &.section {\r\n margin: 20px 0px;\r\n }\r\n`;\r\n\r\nconst Box16A9 = styled.div`\r\n position: relative;\r\n padding-bottom: 56.2%;\r\n border: 1px solid #d5d5d5;\r\n border-radius: 10px;\r\n & > * {\r\n position: absolute;\r\n object-fit: cover;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n & > .thumb {\r\n padding: 10px;\r\n }\r\n`;\r\n\r\nconst VSpace = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size || \"0px\"};\r\n min-height: ${(p) => p.size || \"0px\"};\r\n`;\r\nconst KeyVal = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n font-size: 14px;\r\n color: #000;\r\n font-weight: 700;\r\n margin-bottom: 10px;\r\n\r\n &.tight {\r\n margin-bottom: 5px;\r\n }\r\n\r\n &.single {\r\n margin-bottom: 0;\r\n }\r\n & span {\r\n font-weight: 500;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n & b + span {\r\n font-size: 12px;\r\n margin-left: 10px;\r\n }\r\n\r\n &.swap {\r\n color: ${(p) => p.theme.primaryColor};\r\n span {\r\n color: #000;\r\n }\r\n }\r\n`;\r\n\r\nconst LevelWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n max-height: 100%;\r\n overflow-y: auto;\r\n \r\n & > div{\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nexport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n ListTitle,\r\n FlexForm,\r\n FilterClear,\r\n FilterWrapper,\r\n HR,\r\n Box16A9,\r\n VSpace,\r\n ScanButton,\r\n KeyVal,\r\n LevelWrapper\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport AccordionWrapper from \"../../../components/toggle-view/AccordionWrapper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../../components/elements/sidebar/SidebarField\";\r\nimport SidebarLicence from \"../../../components/elements/sidebar/SidebarLicence\";\r\nimport { SvgNoImage } from \"../../pwa/components/StyledSvg\";\r\nimport { Box16A9, VSpace } from \"../../pwa/components/StyledElements\";\r\nimport useAccordionGroup from \"../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst Section = styled.section`\r\n width: 100%;\r\n margin: 10px 0 10px 0;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid #eaeaea;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 16px;\r\n color: #7f7f7f;\r\n font-weight: 600;\r\n margin: 10px 0 0 20px;\r\n`;\r\n\r\nconst getDateFormat = (currentLanguage) =>\r\n Intl.DateTimeFormat(currentLanguage, {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n\r\nconst GetShortDate = (dateValue) => {\r\n if (dateValue && typeof dateValue === \"string\")\r\n dateValue = new Date(dateValue);\r\n const currentLanguage = \"sk\";\r\n return getDateFormat(currentLanguage).format(dateValue);\r\n};\r\n\r\nconst UserDetailSideBar = ({ user, id, userData = \"userData\" }) => {\r\n let {\r\n fullName,\r\n username,\r\n roleNames,\r\n email,\r\n phoneNumber,\r\n licences = [],\r\n profilePictureUrl,\r\n } = user[userData];\r\n let hasUser = user[userData] !== undefined;\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n\r\n let sideBarRoles = [];\r\n if (roleNames) {\r\n sideBarRoles = roleNames.map((role) => {\r\n return <>{t(\"common:roles.\" + role)};\r\n });\r\n }\r\n\r\n if (!hasUser) return null;\r\n\r\n const userLicences = [];\r\n const uLicences = licences.sort((a, b) => {\r\n const aDate = a.approvalDate\r\n ? new Date(a.approvalDate)\r\n : new Date(\"1900/1/1\");\r\n const bDate = b.approvalDate\r\n ? new Date(b.approvalDate)\r\n : new Date(\"1900/1/1\");\r\n return bDate - aDate;\r\n });\r\n\r\n const minValidDate = new Date(\"2000/1/1\");\r\n uLicences.forEach((lic) =>\r\n userLicences.push({\r\n name: fullName,\r\n licNum: lic.licenceNumber,\r\n approver: lic.approver,\r\n approvalDate: new Date(lic.approvalDate || new Date(\"1900/1/1\")),\r\n })\r\n );\r\n\r\n const userApprovals = () => {\r\n if (userLicences.length === 0)\r\n return (\r\n

    \r\n {t(\"title.noInformation\")}\r\n

    \r\n );\r\n\r\n return userLicences.map((lic) => (\r\n
    \r\n (${lic.name})`,\r\n }}\r\n />\r\n \r\n minValidDate\r\n ? GetShortDate(lic.approvalDate)\r\n : \"-\"\r\n }\r\n />\r\n \r\n
    \r\n ));\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {userApprovals()}\r\n \r\n\r\n \r\n \r\n \r\n {profilePictureUrl ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserDetailSideBar;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst CertificateStatusCell = ({ cell: { value } }) => {\r\n const { t } = useTranslation(\"common\");\r\n if (value) {\r\n return {t(\"certificateStatus.\" + value)};\r\n }\r\n return null;\r\n};\r\nexport default CertificateStatusCell;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport NullableCell from \"../../../../components/data/NullableCell\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport usersListStateModule from \"../../../../core/state/admin/users/usersListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport LoginService from \"../../../../services/Login/LoginService\";\r\nimport UserDetailSideBar from \"../../../User/components/UserDetailSideBar\";\r\nimport CertificateStatusCell from \"./components/CertificateStatusCell\";\r\nimport actionTypes from \"./components/filterActionsTypes\";\r\nimport RoleCell from \"./components/RoleCell\";\r\nimport UserFilter from \"./components/UserFilter\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\n\r\nconst filterReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) {\r\n state.page = 1;\r\n }\r\n switch (action.type) {\r\n case actionTypes.SEARCH_EMAIL:\r\n state.filter.email = action.payload;\r\n break;\r\n case actionTypes.RESET_SEARCH_EMAIL:\r\n delete state.filter.email;\r\n break;\r\n case actionTypes.SEARCH_FULLNAME:\r\n state.filter.fullName = action.payload;\r\n break;\r\n case actionTypes.RESET_SEARCH_FULLNAME:\r\n delete state.filter.fullName;\r\n break;\r\n case actionTypes.SEARCH_ROLE:\r\n if (action.payload) {\r\n state.filter.roleNames = [action.payload];\r\n } else {\r\n state.filter.roleNames = [];\r\n }\r\n break;\r\n case actionTypes.SEARCH_STATUS:\r\n if (action.payload === \"-1\") {\r\n delete state.filter.userStatus;\r\n } else if (action.payload === \"0\") {\r\n state.filter.userStatus = true;\r\n } else {\r\n state.filter.userStatus = false;\r\n }\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.page = action.payload.pageIndex + 1;\r\n state.pageSize = action.payload.pageSize;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.SEARCH_COMPANYNAME:\r\n state.filter.companyName = action.payload;\r\n break;\r\n case actionTypes.SEARCH_CERTIFICATE:\r\n if (action.payload === \"-1\") {\r\n delete state.filter.hasCertificate;\r\n } else if (action.payload === \"0\") {\r\n state.filter.hasCertificate = true;\r\n } else {\r\n state.filter.hasCertificate = false;\r\n }\r\n break;\r\n case actionTypes.SET_COUNTRY:\r\n state.filter.countryId = action.payload;\r\n break;\r\n case actionTypes.RESET_COUNTRY:\r\n delete state.filter.countryId;\r\n break;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nconst UserListing = () => {\r\n const {\r\n users,\r\n isLoading,\r\n error,\r\n loadUsers,\r\n loadUserById,\r\n details,\r\n deleteUser,\r\n } = useStateModule(usersListStateModule);\r\n\r\n const { t } = useTranslation(\"screens\");\r\n const [globalState] = useSharedState(\"global\");\r\n const [selectedUserId,setSelectedUserId ] = useState({userId:null, companyId:null});\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n roleNames: [],\r\n },\r\n\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"fullName\",\r\n descending: false,\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [detailViewKey, setDetailViewKey] = useState(null);\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:users\"),\r\n },\r\n {\r\n text: t(\"navigation:f-cycleUsers\"),\r\n },\r\n ]);\r\n\r\n useEffect(() => {\r\n loadUsers(filterState);\r\n }, [loadUsers, filterState]);\r\n\r\n const [, setUserEnabled] = useDataReducer(UserService.setUserEnabled);\r\n\r\n const impersonate = async (email) => {\r\n const result = await LoginService.impersonate(email);\r\n if (result) {\r\n localStorage.setItem(\"token\", result.token);\r\n localStorage.setItem(\"refreshToken\", result.refreshToken);\r\n window.location.replace(\"/\");\r\n }\r\n };\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"userList.headers.fullName\"),\r\n accessor: \"fullName\",\r\n },\r\n {\r\n Header: t(\"userList.headers.email\"),\r\n accessor: \"email\",\r\n },\r\n {\r\n Header: t(\"userList.headers.fGasCertificate\"),\r\n accessor: \"certificationStatus\",\r\n Cell: CertificateStatusCell,\r\n },\r\n {\r\n Header: t(\"userList.headers.companyName\"),\r\n accessor: \"companyName\",\r\n Cell: NullableCell,\r\n },\r\n {\r\n Header: t(\"userList.headers.roles\"),\r\n accessor: \"roleNames\",\r\n Cell: RoleCell,\r\n },\r\n {\r\n Header: t(\"userList.headers.userStatus\"),\r\n accessor: \"userStatus\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n \r\n impersonate(row.original.email)\r\n }\r\n />\r\n {\r\n await deleteUser(value);\r\n loadUsers(filterState);\r\n }}\r\n />\r\n {row.original.enabled && (\r\n {\r\n await setUserEnabled({\r\n id: value,\r\n enabled: false,\r\n });\r\n loadUsers(filterState);\r\n }}\r\n />\r\n )}\r\n {!row.original.enabled && (\r\n {\r\n await setUserEnabled({\r\n id: value,\r\n enabled: true,\r\n });\r\n loadUsers(filterState);\r\n }}\r\n />\r\n )}\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n const onSelect = useCallback((row) => {\r\n const selectRow = async (row) => {\r\n setDetailViewKey(row.original.id);\r\n await loadUserById(row.original.id);\r\n setSelectedUserId({userId:row.original.id, companyId:row.original.companyId});\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n }, []);\r\n\r\n const closeSideBar = () => {\r\n setDetailViewKey(null);\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n const sortChange = (sortBy) => {\r\n if (sortBy.length > 0) {\r\n dispatch({ type: \"SET_SORT\", payload: sortBy });\r\n }\r\n };\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:userListing.title\")}\r\n \r\n (\r\n \r\n )}\r\n paging={{\r\n enablePaging: true,\r\n pageCount: users.totalPages,\r\n pageSize: users.pageSize,\r\n onPageChange: pageChange,\r\n totalRows: users.totalRows,\r\n currentPageIndex: users.currentPage - 1,\r\n }}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortChange,\r\n currentSortBy: currentSortBy,\r\n }}\r\n onSelect={onSelect}\r\n detailViewKey={detailViewKey}\r\n detailView={}\r\n detailViewIsOpened={detailViewIsOpened}\r\n closeSideBar={closeSideBar}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default UserListing;\r\n","import React, { useMemo, useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport NullableCell from \"../../../../components/data/NullableCell\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport CertificateStatusCell from \"./components/CertificateStatusCell\";\r\nimport usersListStateModule from \"../../../../core/state/admin/users/usersListStateModule\";\r\n\r\nconst RecentUserListing = () => {\r\n const {\r\n users,\r\n isLoading,\r\n error,\r\n loadUsers,\r\n } = useStateModule(usersListStateModule);\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n useEffect(() => {\r\n loadUsers({\r\n page: 1,\r\n pageSize: 6,\r\n orderColumn: \"creationDate\",\r\n descending: true,\r\n\r\n });\r\n }, [loadUsers]);\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"userList.headers.fullName\"),\r\n accessor: \"fullName\",\r\n },\r\n {\r\n Header: t(\"userList.headers.email\"),\r\n accessor: \"email\",\r\n },\r\n {\r\n Header: t(\"userList.headers.fGasCertificate\"),\r\n accessor: \"certificationStatus\",\r\n Cell: CertificateStatusCell,\r\n },\r\n {\r\n Header: t(\"userList.headers.companyName\"),\r\n accessor: \"companyName\",\r\n Cell: NullableCell,\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n return (\r\n <> \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RecentUserListing;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ChartHeader from \"../../../../components/dashboard/ChartHeader\";\r\nimport styled from \"styled-components\";\r\nimport DASHBOARD_CONSTANTS from \"../../../../components/dashboard/DashboardConstants\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport DashboardStyles from \"../../../../components/dashboard/DashboardStyles\";\r\nimport DashboardTheme from \"../../../../components/dashboard/DashboardTheme\";\r\nimport ProgressStyles from \"../../../../components/dashboard/ProgressStyles\";\r\nimport CustomLegend from \"../../../../components/dashboard/CustomLegend\";\r\nimport ChartPieGasQuality from \"../../../../components/dashboard/ChartPieGasQuality\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport ProgressBar from \"../../../../components/dashboard/ProgressBar\";\r\nimport useDataReducerImmediate from \"../../../../hooks/_shared/useDataReducerImmediate\";\r\nimport AdminDashboardMenu from \"./components/AdminDashboardMenu\";\r\nimport RecentUserListing from \"./RecentUserListing\";\r\nimport StatisticsService from \"../../../../services/Statistics/StatisticsService\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport FilterableLineChart from \"../../../../components/dashboard/FilterableLineChart\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport dataFunctions from \"../../../../components/dashboard/DataFunctions\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport CustomTooltip from \"../../../../components/dashboard/CustomTooltip\";\r\nimport {\r\n XAxis,\r\n YAxis,\r\n Tooltip,\r\n ResponsiveContainer,\r\n Cell,\r\n BarChart,\r\n Bar,\r\n Legend,\r\n CartesianGrid,\r\n} from \"recharts\";\r\n\r\nconst MainContainer = styled(Flex.Container)`\r\n height: 100%;\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst LeftContainer = styled(Flex.Container)`\r\n width: 80%;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n order: 2;\r\n width: 100%;\r\n margin: 40px 0px 0px 0px;\r\n }\r\n`;\r\n\r\nconst RightContainer = styled(Flex.Column)`\r\n min-width: 260px;\r\n width: 20%;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n width: 100%;\r\n }\r\n\r\n`;\r\n\r\nconst DashboardWrapper = styled.div`\r\n padding: 25px 60px 25px;\r\n height: 100%;\r\n width: 100%\r\n`;\r\n\r\n\r\nconst UserContainer = styled(Flex.Column)`\r\n padding-top: 25px;\r\n min-width: 200px;\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst CertificateContainer = styled(Flex.Column)`\r\n width: 260px;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst UserOnboardingContainer = styled(Flex.Row)`\r\n min-height: 441px;\r\n height: 412px;\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n height: 412px;\r\n }\r\n padding-right: 30px;\r\n padding-left: 25px;\r\n`;\r\n\r\nconst RecentUsersContainer = styled(Flex.Row)`\r\n\r\n flex-grow: 1;\r\n\r\n @media all and (max-width: ${props => props.theme.extraLargeDevices}) {\r\n padding: 0px;\r\n }\r\n`;\r\n\r\nconst UserStatisticsDashboard = () => {\r\n const { t } = useTranslation();\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:users\"),\r\n },\r\n ]);\r\n\r\n const userUnit = t(\r\n \"screens:statistics.usersTitle\"\r\n );\r\n\r\n\r\n const [userCountsDataState] = useDataReducerImmediate(\r\n StatisticsService.getUsersCounts\r\n );\r\n\r\n const [onboardedUserState, loadOnboardedUsers] = useDataReducer(async (filter) => {\r\n return await StatisticsService.getUserOnboarding(filter);\r\n });\r\n\r\n const filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case DASHBOARD_CONSTANTS.actionTypes.SET_FILTERS:\r\n state.from = action.payload.from;\r\n state.to = action.payload.to;\r\n break;\r\n case DASHBOARD_CONSTANTS.actionTypes.RESET_FILTERS:\r\n delete state.from\r\n delete state.to\r\n break;\r\n default:\r\n return state;\r\n }\r\n };\r\n\r\n const onChangeFilter = ((filters) => {\r\n dispatch({\r\n type: DASHBOARD_CONSTANTS.actionTypes.SET_FILTERS,\r\n payload: filters,\r\n });\r\n });\r\n\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n\r\n from: \"\",\r\n to: \"\",\r\n\r\n });\r\n\r\n useEffect(() => {\r\n loadOnboardedUsers({ filter: filterState });\r\n\r\n }, [filterState]);\r\n\r\n const ActiveUsers = 'ActiveUsers';\r\n const DisabledUsers = 'DisabledUsers';\r\n const DeletedUsers = 'DeletedUsers';\r\n\r\n\r\n const buildUrl = dataFunctions.buildUrl;\r\n\r\n const getUserMenu = () => {\r\n const rawData =\r\n userCountsDataState && userCountsDataState.data\r\n ? userCountsDataState.data\r\n : null;\r\n let items = [];\r\n if (rawData !== null) {\r\n items.push({\r\n id: ActiveUsers,\r\n name: t(\r\n \"screens:statistics.activeUsers\"\r\n ),\r\n url: buildUrl(RouteCreator.admin.users.nonAdmins(), ActiveUsers),\r\n count: rawData.numberOfActiveUsers\r\n });\r\n\r\n items.push({\r\n id: DisabledUsers,\r\n name: t(\r\n \"screens:statistics.disabledUsers\"\r\n ),\r\n url: buildUrl(RouteCreator.admin.users.nonAdmins(), DisabledUsers),\r\n count: rawData.numberOfInactiveUsers\r\n });\r\n\r\n items.push({\r\n id: DeletedUsers,\r\n name: t(\r\n \"screens:statistics.deletedUsers\"\r\n ),\r\n url: buildUrl(RouteCreator.admin.users.nonAdmins(), DeletedUsers),\r\n count: rawData.numberOfDeletedUsers\r\n });\r\n }\r\n\r\n return items;\r\n\r\n };\r\n\r\n\r\n const renderUserRoles = () => {\r\n const rawData =\r\n userCountsDataState && userCountsDataState.data\r\n ? userCountsDataState.data\r\n : null;\r\n let items = [];\r\n let colors = [];\r\n\r\n if (rawData !== null) {\r\n items.push({\r\n name: t(\r\n \"common:roles.MasterAdmin\"\r\n ),\r\n value: rawData.numberOfMasterAdministrators,\r\n color: DashboardTheme.PrimaryBarColor\r\n });\r\n\r\n items.push({\r\n name: t(\r\n \"common:roles.Admin\"\r\n ),\r\n value: rawData.numberOfAdministrators,\r\n color: DashboardTheme.SecondaryBarColor\r\n });\r\n\r\n items.push({\r\n name: t(\r\n \"common:roles.InstallerCompanyTechnician\"\r\n ),\r\n value: rawData.numberOfTechnicians,\r\n color: DashboardTheme.ThirdBarColor\r\n });\r\n\r\n items.map(item => {\r\n colors.push(item.color);\r\n });\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n\r\n \r\n \r\n \r\n {items.map((item, index) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \"\"}\r\n cursor={false}\r\n content={}\r\n />\r\n \r\n }\r\n wrapperStyle={DashboardStyles.Legend.Wrapper}\r\n />\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const renderFGasCertificates = () => {\r\n\r\n const rawData =\r\n userCountsDataState && userCountsDataState.data\r\n ? userCountsDataState.data\r\n : null;\r\n let items = [];\r\n if (rawData !== null) {\r\n items.push({\r\n name: t(\"common:Yes\"),\r\n value: rawData.numberOfUsersWithFGasCertificate,\r\n percent: rawData.numberOfUsersWithFGasCertificate / rawData.numberOfUsers * 100,\r\n color: DashboardTheme.SecondaryBarColor\r\n });\r\n\r\n items.push({\r\n name: t(\"common:No\"),\r\n percent: rawData.numberOfUsersWithoutFGasCertificate / rawData.numberOfUsers * 100,\r\n value: rawData.numberOfUsersWithoutFGasCertificate,\r\n color: DashboardTheme.ThirdBarColor\r\n });\r\n\r\n }\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n {items.map((item, idx) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n {item.value}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:userStatistics.title\")}\r\n \r\n {userCountsDataState.isCompleted && userCountsDataState.data && (\r\n \r\n \r\n \r\n \r\n \r\n {renderFGasCertificates()}\r\n \r\n \r\n\r\n \r\n \r\n {renderUserRoles()}\r\n
    \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {t(\r\n \"screens:statistics.viewAll\"\r\n )}\r\n }\r\n\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default UserStatisticsDashboard;\r\n","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as BackSvg } from \"../../../assets/goback.svg\";\r\n\r\nconst StyledBackButton = styled.div`\r\n width: 160px;\r\n height: 100%;\r\n position: relative;\r\n\r\n &.company {\r\n height: 40px;\r\n position: fixed;\r\n top: 60px;\r\n z-index: 101;\r\n }\r\n\r\n &.icon {\r\n width: 32px;\r\n height: 32px;\r\n }\r\n\r\n & [data-ctrl=\"back\"] {\r\n pointer-events: none;\r\n }\r\n`;\r\n\r\nexport const StyledBackIcon = styled(BackSvg)`\r\n cursor: pointer;\r\n position: absolute;\r\n right: 80px;\r\n top: 8px;\r\n width: 18px;\r\n height: auto;\r\n transition: all 300ms ease;\r\n\r\n &.company {\r\n right: 32px;\r\n top: 12px;\r\n }\r\n\r\n &.clients {\r\n position: absolute;\r\n left: 0;\r\n top: 4px;\r\n }\r\n\r\n /* &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n &:hover .arrow {\r\n stroke: ${(p) => p.theme.primaryColorHover};\r\n } */\r\n`;\r\n\r\nconst Background = styled.div`\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 78px;\r\n border-radius: 15px 15px 0px 0px;\r\n background: linear-gradient(\r\n 180deg,\r\n rgba(245, 245, 245, 1) 0%,\r\n rgba(240, 240, 240, 1) 100%\r\n );\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n\r\n &.company {\r\n height: 40px;\r\n background: linear-gradient(\r\n 180deg,\r\n rgba(255, 255, 255, 1) 0%,\r\n rgba(220, 220, 220, 1) 100%\r\n );\r\n box-shadow: -2px 9px 11px -16px rgb(0 0 0 / 75%);\r\n border-bottom: 1px solid #ffffff;\r\n margin-top: 0px;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n right: 22px;\r\n bottom: 1px;\r\n width: 36px;\r\n height: 4px;\r\n background-color: transparent;\r\n border-radius: 8px 8px 0px 0px;\r\n }\r\n\r\n &:hover {\r\n cursor: pointer;\r\n ${StyledBackButton} ${StyledBackIcon} {\r\n background-color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n }\r\n\r\n &:hover:after {\r\n background-color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n &:hover .arrow {\r\n background-color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n`;\r\n\r\nconst BackButton = (props) => {\r\n const history = useHistory();\r\n return (\r\n {\r\n if (!props.dummy) {\r\n if (\r\n props.onGoBack &&\r\n props.onGoBack(window.location.pathname) === true\r\n ) {\r\n history.goBack();\r\n } else {\r\n if (props.returnTo) history.push(props.returnTo);\r\n else history.goBack();\r\n }\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BackButton;\r\n","import React from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport globalAdminMenuItems from \"../../data/menu/globalAdminMenuItems\";\r\nimport QRGenerationView from \"./views/qr/QRGenerationView\";\r\nimport { useEffect, useRef, useState, useMemo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory, useParams, useLocation } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport AuthorizeComponent from \"../../core/AuthorizeComponent\";\r\nimport HamburgerMenu from \"../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../components/menu/HamburgerMenuAction\";\r\nimport DateCell from \"../../components/data/DateCell\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport useBreadcrumbs from \"../../core/state/navigation/useBreadcrumbs\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport LayoutInnerContainer from \"../../components/layout/split/one/LayoutInnerContainer\";\r\nimport AccordionWrapper from \"../../components/toggle-view/AccordionWrapper\";\r\nimport CompanyService from \"../../services/Company/CompanyService\";\r\nimport UserService from \"../../services/User/UserService\";\r\nimport ListingPage from \"../../components/data/ListingPage\";\r\nimport AdminCertSidebar from \"./AdminCertSidebar\";\r\n\r\nconst ECertificateStatus = {\r\n Submitted: 0,\r\n Valid: 1,\r\n Rejected: 2,\r\n Expired: 99,\r\n NoAttestation: -1, //display only\r\n};\r\n\r\nconst EmptyGuid = \"00000000-0000-0000-0000-000000000000\";\r\n\r\nconst ContentWrapper = styled.div`\r\n display: block;\r\n width: 100%;\r\n padding-right: 20px;\r\n @media ${(props) => props.theme.device.mobile} {\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n }\r\n`;\r\n\r\nconst InfoWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n color: #000;\r\n\r\n & .topSpace {\r\n margin-top: 14px;\r\n }\r\n\r\n & .info {\r\n font-size: 14px;\r\n }\r\n\r\n & li {\r\n font-size: 12px;\r\n line-height: 18px;\r\n }\r\n`;\r\n\r\nconst GreenInfo = styled.img`\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst ColoredText = styled.div`\r\n color: ${(p) => p.theme.primaryColor};\r\n\r\n &.error {\r\n color: ${(p) => p.theme.error};\r\n }\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 2px;\r\n background-color: #000;\r\n margin-top: 24px;\r\n`;\r\n\r\nconst RightContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n\r\n margin-top: 20px;\r\n`;\r\n\r\nconst HolderCell = ({ cell: { row } }) => {\r\n const holder = row.original.certificateHolder;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {holder}\r\n \r\n );\r\n};\r\n\r\nconst StatusCell = ({ cell: { row } }) => {\r\n const text = row.original.licenceStatusName;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nconst employeeBreadcrumbs = (t) => [\r\n {\r\n text: t(\"navigation:users\"),\r\n },\r\n {\r\n text: \"\",\r\n },\r\n {\r\n text: t(\"filters:certificate.certificates\"),\r\n },\r\n];\r\n\r\nconst UserCertificateScreen = () => {\r\n useLeftMenu(globalAdminMenuItems);\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n\r\n const [userCerts, setUserCerts] = useState([]);\r\n const [userName, setUserName] = useState(\"\");\r\n const { userId } = useParams();\r\n const { search } = useLocation();\r\n const companyId = new URLSearchParams(search).get(\"companyId\");\r\n const [sidebarOpen, setSidebarOpen] = useState(false);\r\n const [selectedRow, setSelectedRow] = useState(null);\r\n\r\n const { update: updateBreadcrumbs } = useBreadcrumbs(\r\n employeeBreadcrumbs(t)\r\n );\r\n\r\n const getCertsAsync = async () => {\r\n const resUsers = await CompanyService.getEmployeesCertificates(\r\n userId,\r\n companyId\r\n );\r\n if (!resUsers.error) {\r\n const myCerts = resUsers.data.data.filter(\r\n (cert) => cert.userId === userId\r\n );\r\n setUserCerts(myCerts);\r\n }\r\n };\r\n\r\n const updateCertificateStatus = async (certId, status) => {\r\n const res = await CompanyService.updateCertificateStatus(\r\n certId,\r\n status\r\n );\r\n if (res && res.error) {\r\n toast.error(t(res.error.message));\r\n } else {\r\n toast.success(t(\"actions:certificate.toastNotification.updated\"));\r\n getCertsAsync();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const getUserName = async () => {\r\n const res = await UserService.getUserById(userId);\r\n setUserName(res.fullName);\r\n };\r\n\r\n getCertsAsync();\r\n getUserName();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userName !== \"\") {\r\n const bc = employeeBreadcrumbs(t);\r\n bc[1].text = userName;\r\n updateBreadcrumbs(bc);\r\n }\r\n }, [userName]);\r\n\r\n const onSelect = (row) => {\r\n const selectRow = async (row) => {\r\n setSelectedRow(row.original);\r\n setSidebarOpen(true);\r\n };\r\n selectRow(row);\r\n };\r\n\r\n const onCloseSidebar = () => {\r\n setSidebarOpen(false);\r\n };\r\n\r\n const certColumns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certHolder\"),\r\n accessor: \"certificateHolder\",\r\n Cell: HolderCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certNumber\"),\r\n accessor: \"licenceNumber\",\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.expiration\"),\r\n accessor: \"licenceExpiryDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.submitDate\"),\r\n accessor: \"licenceUploadDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.procDate\"),\r\n accessor: \"processedDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.status\"),\r\n accessor: \"licenceStatusName\",\r\n Cell: StatusCell,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { row } }) => {\r\n return (\r\n \r\n {row.original.licenceId !== EmptyGuid && (\r\n \r\n \r\n window.open(\r\n row.original\r\n .licenceCertificateFile,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n {row.original.licenceStatus === 0 && (\r\n <>\r\n \r\n updateCertificateStatus(\r\n row.original.licenceId,\r\n 1\r\n )\r\n }\r\n />\r\n \r\n updateCertificateStatus(\r\n row.original.licenceId,\r\n 2\r\n )\r\n }\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n return (\r\n \r\n \r\n {t(\"screens:certificates.personalCert\")}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.allTechnicians\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.requirement\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.qualification\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.regulation\"\r\n )}\r\n
    \r\n
      \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.regulations\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.emission\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.recovery\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.handling\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.information\"\r\n )}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {/* */}\r\n \r\n }\r\n detailViewIsOpened={sidebarOpen}\r\n />\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default UserCertificateScreen;\r\n","import React, { useRef } from \"react\";\r\nimport { Redirect, Switch, useRouteMatch } from \"react-router-dom\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport globalAdminMenuItems from \"../../data/menu/globalAdminMenuItems\";\r\nimport CreateAdministratorScreen from \"./CreateAdministratorScreen\";\r\nimport AdministratorEditScreen from \"./views/user/AdministratorEditScreen\";\r\nimport AdministratorListing from \"./views/user/AdministratorListing\";\r\nimport UserListing from \"./views/user/UserListing\";\r\nimport UserStatisticsDashboard from \"./views/user/UserStatisticsDashboard\";\r\nimport BackButton from \"../../components/elements/buttons/BackButton\";\r\nimport useQueryString from \"../../hooks/_shared/useQueryString\";\r\nimport UserCertificateScreen from \"./UserCertificateScreen\";\r\n\r\nconst UserAdministrationScreen = () => {\r\n const returnUrl = useQueryString(\"returnUrl\", \"/\");\r\n const returnTo = useRef(\"/\");\r\n if (returnUrl !== \"/\") returnTo.current = returnUrl;\r\n\r\n const isAdminEdit = useRouteMatch({\r\n path: RouteCreator.admin.edit(\"\"),\r\n strict: false,\r\n });\r\n\r\n const isDashboard = useRouteMatch({\r\n path: RouteCreator.admin.users.statistics(),\r\n strict: false,\r\n });\r\n\r\n useLeftMenu(isAdminEdit ? null : globalAdminMenuItems);\r\n\r\n const onBackButtonClick = (pathName) => {\r\n if (pathName.indexOf(\"/employees/edit/\") >= 0) return true;\r\n };\r\n\r\n return (\r\n \r\n {isAdminEdit && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default UserAdministrationScreen;\r\n","import Roles from \"../../core/enums/Roles\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport UserService from \"../../services/User/UserService\";\r\n\r\nlet cache = [];\r\nlet lastGlobalState = {};\r\n\r\n\r\nconst companyAdminMenuItems = (globalState) => {\r\n if (globalState !== lastGlobalState) {\r\n lastGlobalState = globalState;\r\n cache = [\r\n {\r\n name: \"navigation:salesCenter\",\r\n url: RouteCreator.salesCenter.root(),\r\n showForRoles: [\r\n Roles.InstallerCompanyAdmin,\r\n Roles.InstallerCompanyUser,\r\n ],\r\n icon: {\r\n src: \"/images/menu/sales_center.svg\",\r\n srcHover: \"/images/menu/sales_center_hover.svg\",\r\n activeSrc: \"/images/menu/sales_center_active.svg\",\r\n alt: \"Sales Center\",\r\n style: {\r\n width: \"32px\",\r\n },\r\n },\r\n children: [\r\n {\r\n name: \"navigation:recoveredGas\",\r\n url: RouteCreator.salesCenter.marketplace(),\r\n activePaths: [\r\n RouteCreator.salesCenter.myOffers(),\r\n RouteCreator.salesCenter.myBids(),\r\n ],\r\n },\r\n {\r\n name: \"navigation:reclaimedGas\",\r\n url: RouteCreator.salesCenter.reclaimedMarketplace(),\r\n activePaths: [\r\n RouteCreator.salesCenter.reclaimedMarketplace(),\r\n RouteCreator.salesCenter.reclaimedMarketOffers(),\r\n RouteCreator.salesCenter.reclaimedMarketPurchases(),\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n name: \"navigation:services\",\r\n url: RouteCreator.services.root(),\r\n showForRoles: [\r\n Roles.InstallerCompanyAdmin,\r\n Roles.InstallerCompanyUser,\r\n ],\r\n get hide() {\r\n return globalState.showServicesSection !== true;\r\n },\r\n icon: {\r\n src: \"/images/menu/services.svg\",\r\n srcHover: \"/images/menu/services_hover.svg\",\r\n activeSrc: \"/images/menu/services_active.svg\",\r\n alt: \"Services\",\r\n style: {\r\n width: \"32px\",\r\n },\r\n },\r\n children: [\r\n {\r\n name: \"navigation:disposalService\",\r\n url: RouteCreator.services.disposal(),\r\n activePaths: [RouteCreator.services.disposalBids()],\r\n },\r\n {\r\n name: \"navigation:cleaningService\",\r\n url: RouteCreator.services.cleaning(),\r\n activePaths: [RouteCreator.services.cleaningBids()],\r\n },\r\n ],\r\n },\r\n {\r\n name: \"navigation:disputes\",\r\n url: RouteCreator.disputes.root(),\r\n showForRoles: [\r\n Roles.InstallerCompanyAdmin,\r\n Roles.InstallerCompanyUser,\r\n ],\r\n icon: {\r\n src: \"/images/menu/disputes.svg\",\r\n srcHover: \"/images/menu/disputes_hover.svg\",\r\n activeSrc: \"/images/menu/disputes_active.svg\",\r\n alt: \"Sales Center\",\r\n style: {\r\n width: \"32px\",\r\n },\r\n },\r\n },\r\n {\r\n name: \"navigation:stock\",\r\n get disabled() {\r\n return globalState.hasValidCompanyCertificate !== true;\r\n },\r\n icon: {\r\n src: \"/images/menu/stock.svg\",\r\n srcHover: \"/images/menu/stock_hover.svg\",\r\n activeSrc: \"/images/menu/stock_active.svg\",\r\n alt: \"Stock\",\r\n },\r\n url: RouteCreator.stock.root(),\r\n children: [\r\n {\r\n name: \"navigation:companyStock\",\r\n url: RouteCreator.stock.company(),\r\n },\r\n {\r\n name:\r\n UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser)\r\n ? \"navigation:installerStock\"\r\n : \"navigation:myStock\",\r\n\r\n showForRoles: [\r\n Roles.InstallerCompanyAdmin,\r\n Roles.InstallerCompanyTechnician,\r\n ],\r\n url: RouteCreator.stock.installer(),\r\n },\r\n ],\r\n },\r\n {\r\n name: \"navigation:equipment\",\r\n get disabled() {\r\n return globalState.hasValidCompanyCertificate !== true;\r\n },\r\n showForRoles: [\r\n Roles.InstallerCompanyAdmin,\r\n Roles.InstallerCompanyTechnician,\r\n ],\r\n icon: {\r\n src: \"/images/menu/equipment.svg\",\r\n srcHover: \"/images/menu/equipment_hover.svg\",\r\n activeSrc: \"/images/menu/equipment_active.svg\",\r\n alt: \"Equipment\",\r\n },\r\n url: RouteCreator.equipment.root(),\r\n children: [\r\n {\r\n name: \"navigation:cylinders\",\r\n url: RouteCreator.equipment.cylinders(),\r\n },\r\n {\r\n name: \"navigation:gasAnalyzers\",\r\n url: RouteCreator.equipment.analyzers(),\r\n disabled: !globalState.showGasAnalyzers,\r\n },\r\n ],\r\n },\r\n {\r\n name: \"navigation:clients\",\r\n showForRoles: [\r\n Roles.InstallerCompanyAdmin,\r\n Roles.InstallerCompanyUser,\r\n ],\r\n icon: {\r\n src: \"/images/menu/clients.svg\",\r\n srcHover: \"/images/menu/clients_hover.svg\",\r\n activeSrc: \"/images/menu/clients_active.svg\",\r\n alt: \"Clients\",\r\n },\r\n url: RouteCreator.clients.root(),\r\n },\r\n {\r\n name: \"navigation:finance\",\r\n showForRoles: [\r\n Roles.InstallerCompanyAdmin,\r\n Roles.InstallerCompanyUser,\r\n ],\r\n icon: {\r\n src: \"/images/menu/finance.svg\",\r\n srcHover: \"/images/menu/finance_hover.svg\",\r\n activeSrc: \"/images/menu/finance_active.svg\",\r\n alt: \"Finance\",\r\n },\r\n url: RouteCreator.finance.root(),\r\n children: [\r\n {\r\n name: \"navigation:walletView\",\r\n url: RouteCreator.finance.transactions(),\r\n },\r\n {\r\n name: \"navigation:hierarchyView\",\r\n url: RouteCreator.finance.hierarchy(),\r\n },\r\n {\r\n name: \"navigation:documents\",\r\n url: RouteCreator.finance.documents(),\r\n },\r\n ],\r\n },\r\n ];\r\n }\r\n return cache;\r\n};\r\n\r\nexport default companyAdminMenuItems;\r\n","const ClientsBreadcrumbs = {\r\n getBreadcrumbs: (t, level = \"1\", client = \"\", location = \"\") => {\r\n const clients = [\r\n {\r\n text: \"Clients\",\r\n },\r\n ];\r\n\r\n const locations = [\r\n {\r\n text: \"Clients\",\r\n },\r\n {\r\n text: client,\r\n },\r\n {\r\n text: \"Locations\",\r\n },\r\n ];\r\n\r\n const units = [\r\n {\r\n text: \"Clients\",\r\n },\r\n {\r\n text: client,\r\n },\r\n {\r\n text: location,\r\n },\r\n {\r\n text: \"Units\",\r\n },\r\n ];\r\n\r\n if (level === \"1\") {\r\n return clients;\r\n } else if (level === \"2\") {\r\n return locations;\r\n } else if (level === \"3\") {\r\n return units;\r\n }\r\n },\r\n};\r\n\r\nexport default ClientsBreadcrumbs;\r\n","const env = {\r\n isProduction : process.env.NODE_ENV === 'production'\r\n && window.location.hostname.indexOf('marketplace-dev') < 0\r\n && window.location.hostname.indexOf('marketplace-qa') < 0\r\n}\r\n\r\nexport default env;\r\n","import React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport Tooltip from \"../../../components/tooltip/Tooltip\";\r\n\r\nconst Star = styled.span`\r\n position: relative;\r\n margin-left: 4px;\r\n &:before {\r\n content: \"\\\\2605\";\r\n font-size: 20px;\r\n color: ${(props) => props.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst StarCell = ({ cell: { value, row } }) => {\r\n const { t } = useTranslation();\r\n const [tooltip, setTooltip] = useState({\r\n tip: t(\"table:headers.client.primaryAddress\"),\r\n visible: false,\r\n });\r\n\r\n const handleHover = (tooltipIsVisible) => {\r\n setTooltip((tooltip) => ({ ...tooltip, visible: tooltipIsVisible }));\r\n };\r\n\r\n if (row.original.locationTypeName === \"Primary\") {\r\n return (\r\n \r\n {value}\r\n handleHover(true)}\r\n onMouseLeave={() => handleHover(false)}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n return value;\r\n};\r\n\r\nexport default StarCell;\r\n","import React from \"react\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport env from \"../../../core/env\";\r\nimport StarCell from \"./StarCell\";\r\n\r\nconst ClientsColumns = {\r\n getColumns: (t, columns = \"clientColumns\", actions = {}) => {\r\n const clientsColumns = [\r\n {\r\n Header: t(\"table:headers.client.name\"),\r\n accessor: \"clientName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.contact.email\"),\r\n accessor: \"contactEmail\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.contact.phone\"),\r\n accessor: \"contactPhone\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.contact.person\"),\r\n accessor: \"contactPerson\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"clientId\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {\r\n actions.toggleClientEdit(value);\r\n }}\r\n />\r\n {\r\n actions.toggleClientDelete(row, value);\r\n }}\r\n />\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ];\r\n\r\n const locationColumns = [\r\n {\r\n Header: t(\"table:headers.client.location.name\"),\r\n accessor: \"locationName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.address\"),\r\n accessor: \"address\",\r\n Cell: StarCell,\r\n },\r\n {\r\n Header: t(\"table:headers.client.city\"),\r\n accessor: \"city\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.postalCode\"),\r\n accessor: \"postalCode\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.region\"),\r\n accessor: \"region\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.country\"),\r\n accessor: \"country\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.location.units\"),\r\n accessor: \"units\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"locationId\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {\r\n actions.toggleClientLocationEdit(value);\r\n }}\r\n />\r\n {\r\n actions.onLocationDelete(row, value);\r\n }}\r\n />\r\n {!env.isProduction && {\r\n actions.createNewUnit(value);\r\n }}\r\n />}\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ];\r\n\r\n const unitsColumns = [\r\n {\r\n Header: t(\"table:headers.client.units.manufacturerName\"),\r\n accessor: \"manufacturerName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.units.applicationTypeName\"),\r\n accessor: \"applicationTypeName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.units.refrigerantName\"),\r\n accessor: \"refrigerantName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.units.capacity\"),\r\n accessor: \"capacity\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"unitId\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {\r\n actions.editUnit(row.original.unitId);\r\n }}\r\n />\r\n {\r\n actions.onUnitDelete(row, value);\r\n }}\r\n />\r\n {/* {\r\n actions.reTagUnit(row.original.unitId);\r\n }}\r\n /> */}\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ];\r\n\r\n if (columns === \"clientColumns\") {\r\n return clientsColumns;\r\n } else if (columns === \"locationColumns\") {\r\n return locationColumns;\r\n } else if (columns === \"unitsColumns\") {\r\n return unitsColumns;\r\n }\r\n },\r\n};\r\n\r\nexport default ClientsColumns;\r\n","import { useGoogleMap } from \"@react-google-maps/api\";\r\n\r\nconst MapBounds = ({ markers }) => {\r\n const map = useGoogleMap();\r\n if (window.google) {\r\n var bounds = new window.google.maps.LatLngBounds();\r\n for (let i = 0; i < markers.length; i++) {\r\n bounds.extend(markers[i].getPosition());\r\n }\r\n //center the map to the geometric center of all markers\r\n map.setCenter(bounds.getCenter());\r\n window.google.maps.event.addListenerOnce(\r\n map,\r\n \"bounds_changed\",\r\n function (event) {\r\n if (map.getZoom() > 10) {\r\n map.setZoom(10);\r\n }\r\n return null;\r\n }\r\n );\r\n map.fitBounds(bounds);\r\n }\r\n return null;\r\n};\r\n\r\nexport default MapBounds;\r\n","import { InfoWindow, Marker } from \"@react-google-maps/api\";\r\nimport React, { useCallback, useMemo, useState } from \"react\";\r\nimport MapBounds from \"./MapBounds\";\r\n\r\nconst LocationMarker = ({ location, withBounds = false }) => {\r\n const [infoOpen, setInfoOpen] = useState(false);\r\n const markerClick = useCallback(() => {\r\n setInfoOpen((open) => !open);\r\n }, [setInfoOpen]);\r\n\r\n const onCloseClick = useCallback(() => {\r\n setInfoOpen(false);\r\n }, [setInfoOpen]);\r\n\r\n const latLng = useMemo(() => {\r\n return { lat: location.latitude, lng: location.longitude };\r\n }, [location.latitude, location.longitude]);\r\n\r\n if (!location || !location.latitude) {\r\n return null;\r\n }\r\n\r\n const boundsMarkers = []; \r\n if (withBounds) {\r\n boundsMarkers.push( new window.google.maps.Marker({\r\n position: latLng,\r\n }));\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {withBounds && }\r\n {infoOpen && (\r\n \r\n
    \r\n Location name: {location.locationName}\r\n
    \r\n Address: {location.address || location.street}{\" \"}\r\n {location.postalCode} {location.city}\r\n
    \r\n \r\n Get Directions\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\nexport default LocationMarker;\r\n","import {\r\n GoogleMap\r\n} from \"@react-google-maps/api\";\r\nimport React, { useMemo } from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst containerStyle = {\r\n width: \"350px\",\r\n height: \"100%\",\r\n};\r\n\r\nconst center = {\r\n lat: 45.81,\r\n lng: 16,\r\n};\r\n\r\nconst MapWrapper = styled.div`\r\n margin: 5px 0 0;\r\n border: 2px solid ${p => p.theme.primaryColor};\r\n border-radius: 6px;\r\n height: calc(100% - 7px);\r\n min-height: 200px;\r\n box-sizing: border-box;\r\n box-shadow: 4px 4px 6px rgba(0, 0, 0, 0.25);\r\n overflow: hidden;\r\n\r\n > div {\r\n min-height: 200px; // google map display fix\r\n }\r\n\r\n &.pwa {\r\n height: 200px;\r\n }\r\n\r\n &.mt-10 {\r\n margin-top:10px;\r\n }\r\n\r\n &.mt-20 {\r\n margin-top:20px;\r\n }\r\n\r\n &.no-border {\r\n border: none;\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nconst DaikinMap = ({ children, onMapLoad, className, ...rest }) => {\r\n const [, setMap] = React.useState(null);\r\n\r\n const onLoad = React.useCallback(function callback(map) {\r\n onMapLoad && onMapLoad(map);\r\n setMap(map);\r\n }, [onMapLoad]);\r\n\r\n const onUnmount = React.useCallback(function callback(map) {\r\n setMap(null);\r\n }, []);\r\n\r\n const options = useMemo(() => {\r\n return {\r\n disableDefaultUI: true,\r\n };\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(DaikinMap);\r\n","import styled from \"styled-components\";\r\nimport Headings from \"../../../../../components/elements/headings/Headings\";\r\n\r\nexport const DetailsWrapper = styled.div`\r\n font-weight: bold;\r\n margin: 0 32px 44px 0;\r\n padding-bottom: 42px;\r\n line-height: 1.3125rem;\r\n width: 100%;\r\n display: flex;\r\n flex: 1;\r\n justify-content: flex-start;\r\n border-bottom: 1px solid ${props => props.theme.borderSeparator};\r\n`;\r\n\r\nexport const Title = styled(Headings.H3)`\r\n margin-top: 0;\r\n color: ${props => props.theme.tertiaryColor};\r\n word-break: break-word;\r\n padding-left: 42px; // if you gonna change this, change Details.clients as well\r\n\r\n &.empty {\r\n min-height: 1.3125rem;\r\n visibility: hidden;\r\n }\r\n`;\r\n\r\nexport const Details = styled.div`\r\n margin: 0 18px 0 0;\r\n font-size: 0.875rem;\r\n display: inline-block;\r\n vertical-align: top;\r\n width: 340px;\r\n\r\n &:last-of-type {\r\n margin-left: auto;\r\n margin-right: 0;\r\n }\r\n\r\n &.clients {\r\n padding-left: 42px;\r\n }\r\n\r\n &.map {\r\n width: auto;\r\n margin-right: 42px;\r\n }\r\n`;\r\n\r\nexport const DetailSection = styled.div`\r\n margin: 0 0 12px;\r\n\r\n &:last-of-type {\r\n margin: 0;\r\n }\r\n`;\r\n\r\nexport const SectionTitle = styled.span`\r\n display: block;\r\n color: ${props => props.theme.primaryColor};\r\n`;\r\n\r\nexport const SectionContent = styled.p`\r\n margin: 0;\r\n line-height: 1.3;\r\n\r\n .normal {\r\n font-weight: normal;\r\n }\r\n`;\r\n","import React, { useMemo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport LocationMarker from \"../../../../../components/maps/components/LocationMarker\";\r\nimport MapBounds from \"../../../../../components/maps/components/MapBounds\";\r\nimport DaikinMap from \"../../../../../components/maps/DaikinMap\";\r\nimport {\r\n Details,\r\n DetailSection,\r\n DetailsWrapper,\r\n SectionContent,\r\n SectionTitle,\r\n Title,\r\n} from \"./DetailsStyling\";\r\n\r\nconst ClientDetails = ({ details, clientsLocations, currentLocationData }) => {\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const usedMapDetails = useMemo(() => {\r\n if (currentLocationData) {\r\n return currentLocationData;\r\n }\r\n return details;\r\n }, [details, currentLocationData]);\r\n\r\n const boundsMarkers = useMemo(() => {\r\n let markers = [];\r\n if (clientsLocations) {\r\n markers = clientsLocations.map((loc) => {\r\n if (!loc.latitude) {\r\n return new window.google.maps.Marker({\r\n position: {\r\n lat: 0,\r\n lng: 0,\r\n },\r\n });\r\n }\r\n return new window.google.maps.Marker({\r\n position: {\r\n lat: loc.latitude,\r\n lng: loc.longitude,\r\n },\r\n });\r\n });\r\n }\r\n if (!clientsLocations && usedMapDetails) {\r\n if (!usedMapDetails.latitude) {\r\n markers.push(\r\n new window.google.maps.Marker({\r\n position: {\r\n lat: 0,\r\n lng: 0,\r\n },\r\n })\r\n );\r\n } else {\r\n markers.push(\r\n new window.google.maps.Marker({\r\n position: {\r\n lat: usedMapDetails.latitude,\r\n lng: usedMapDetails.longitude,\r\n },\r\n })\r\n );\r\n }\r\n }\r\n return markers;\r\n }, [clientsLocations, usedMapDetails]);\r\n\r\n if (details === null) {\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {details.clientName}\r\n \r\n
    \r\n \r\n \r\n {t(\"clients.details.address\")}\r\n \r\n\r\n \r\n {details.street ? (\r\n <>\r\n {details.street}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n {details.postalCode || details.city ? (\r\n <>\r\n {details.postalCode} {details.city}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n {details.countryName ? details.countryName : \"-\"}\r\n
    \r\n
    \r\n\r\n \r\n \r\n {t(\"clients.details.contact\")}\r\n \r\n\r\n \r\n {details.contactPersonFirstName ||\r\n details.contactPersonLastName ? (\r\n <>\r\n {details.contactPersonFirstName}{\" \"}\r\n {details.contactPersonLastName}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n\r\n {details.email ? (\r\n <>\r\n {details.email}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n\r\n {details.phoneNumber ? (\r\n <>\r\n {details.phoneNumber}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {currentLocationData && (\r\n
    \r\n \r\n \r\n {t(\"clients.details.locationAddress\", {\r\n loc: currentLocationData.locationName\r\n ? currentLocationData.locationName\r\n : currentLocationData.street,\r\n })}\r\n \r\n \r\n {currentLocationData.street ? (\r\n <>\r\n {currentLocationData.street}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n\r\n {currentLocationData.postalCode ||\r\n currentLocationData.city ? (\r\n <>\r\n {currentLocationData.postalCode}{\" \"}\r\n {currentLocationData.city}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n\r\n {currentLocationData.countryName &&\r\n currentLocationData.countryName}\r\n
    \r\n
    \r\n \r\n \r\n {t(\"clients.details.locationContact\")}\r\n \r\n \r\n {currentLocationData.contactPersonFirstName ||\r\n currentLocationData.contactPersonLastName ? (\r\n <>\r\n {\r\n currentLocationData.contactPersonFirstName\r\n }{\" \"}\r\n {\r\n currentLocationData.contactPersonLastName\r\n }\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n\r\n {currentLocationData.email ? (\r\n <>\r\n {currentLocationData.email}\r\n
    \r\n \r\n ) : (\r\n <>\r\n -\r\n
    \r\n \r\n )}\r\n\r\n {currentLocationData.phoneNumber\r\n ? currentLocationData.phoneNumber\r\n : \"-\"}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n
    \r\n \r\n {clientsLocations && (\r\n <>\r\n {clientsLocations.map((loc) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n )}\r\n {!clientsLocations && usedMapDetails && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ClientDetails;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\n\r\nconst Section = styled.div`\r\n display: flex;\r\n`;\r\n\r\nconst LocationsFilter = ({ filterState, dispatch, actionTypes, actions }) => {\r\n const { t } = useTranslation(\"filters\");\r\n\r\n const [locationChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_LOCATION_FILTER, payload: text })\r\n : dispatch({ type: actionTypes.RESET_LOCATION_FILTER });\r\n });\r\n\r\n const [addressChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_ADDRESS_FILTER, payload: text })\r\n : dispatch({ type: actionTypes.RESET_ADDRESS_FILTER });\r\n });\r\n\r\n const [cityChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_CITY_FILTER, payload: text })\r\n : dispatch({ type: actionTypes.RESET_CITY_FILTER });\r\n });\r\n\r\n const [postalCodeChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_POSTAL_CODE_FILTER,\r\n payload: text,\r\n })\r\n : dispatch({ type: actionTypes.RESET_POSTAL_CODE_FILTER });\r\n });\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {\r\n locationChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"clients.locationName\")}\r\n title={t(\"clients.locationName\")}\r\n className=\"filters\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n addressChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"clients.address\")}\r\n title={t(\"clients.address\")}\r\n className=\"filters\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n cityChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"clients.city\")}\r\n title={t(\"clients.city\")}\r\n className=\"filters\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n postalCodeChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"clients.postalCode\")}\r\n title={t(\"clients.postalCode\")}\r\n className=\"filters\"\r\n />\r\n \r\n
    \r\n
    \r\n {actions && actions}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default LocationsFilter;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\n\r\nconst WizardClientDetails = (props) => {\r\n const {t} = useTranslation('forms');\r\n const {clientData} = props;\r\n\r\n if (!clientData) {\r\n return null;\r\n }\r\n\r\n const currentClientData = clientData.data;\r\n\r\n return (\r\n \r\n \r\n {currentClientData && currentClientData.clientName}\r\n \r\n \r\n {t('account.vatNumber')}:  \r\n {currentClientData ?\r\n currentClientData.vatNumber : '/'}\r\n \r\n \r\n {t('location.text')}: \r\n {currentClientData ?\r\n currentClientData.locationName : '/'}\r\n \r\n \r\n )\r\n};\r\n\r\nconst WizardCylinderDetails = (props) => {\r\n const {t} = useTranslation('forms');\r\n const {cylData} = props;\r\n\r\n return (\r\n \r\n \r\n {t(\"qualityTest.cylinder\")}\r\n \r\n \r\n {t('cylinderSize.text')}:  \r\n {cylData?.size ?\r\n cylData.size : '/'}\r\n \r\n \r\n {t('quantity.text')}: \r\n {cylData?.filled ?\r\n cylData.filled: '/'}\r\n \r\n \r\n )\r\n};\r\n\r\nexport default WizardClientDetails;\r\nexport {WizardCylinderDetails};\r\n\r\nWizardClientDetails.propTypes = {\r\n clientData: PropTypes.any.isRequired\r\n}\r\n","import React from \"react\";\r\nimport { Select } from \"../../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport WizardClientDetails from \"../details/WizardClientDetails\";\r\n\r\nconst validAddress = (t) => {\r\n return buildValidation({\r\n street: ValidationRule.isStringRule().required(\r\n t(\"forms:address.required\")\r\n ).rule,\r\n locationName: ValidationRule.isStringRule().required(\r\n t(\"forms:locationName.required\")\r\n ).rule,\r\n city: ValidationRule.isStringRule().required(t(\"forms:city.required\"))\r\n .rule,\r\n postalCode: ValidationRule.isStringRule().required(\r\n t(\"forms:postalCode.required\")\r\n ).rule,\r\n countryId: ValidationRule.isStringRule().required(\r\n t(\"forms:country.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n locationName: \"\",\r\n clientId: \"\",\r\n email: \"\",\r\n phoneNumber: \"\",\r\n street: \"\",\r\n contactPersonFirstName: \"\",\r\n contactPersonLastName: \"\",\r\n city: \"\",\r\n postalCode: \"\",\r\n countryId: \"\",\r\n region: \"\",\r\n};\r\n\r\nconst ClientLocationWizard = (t, initialValues, countries, clientData, isEdit) => {\r\n return {\r\n title: isEdit\r\n ? t(\"forms:clients.editLocation\")\r\n : t(\"forms:clients.addLocation\"),\r\n dataTest: \"add-client-location-modal\",\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:clients.step2Name\"),\r\n fieldNames: [\r\n \"locationName\",\r\n \"street\",\r\n \"postalCode\",\r\n \"city\",\r\n \"region\",\r\n \"countryId\",\r\n ],\r\n validation: validAddress(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n 0\r\n ? countries.map((country) => {\r\n return {\r\n key: country.id,\r\n value: country.id,\r\n label: country.countryName,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step3Name\"),\r\n fieldNames: [\r\n \"email\",\r\n \"phoneNumber\",\r\n \"contactPersonFirstName\",\r\n \"contactPersonLastName\",\r\n ],\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default ClientLocationWizard;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Select } from \"../../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport { InfoText, InfoTitle, InfoWrapper, RoundInfo } from \"../../../../../components/modal/components/WizardStyling\";\r\nimport ValidationRule, { buildValidation } from \"../../../../../core/validations/ValidationRule\";\r\nimport MoneyInputElement from \"../../../../../components/elements/form-elements/MoneyInputElement\";\r\nimport TagsService from \"../../../../../services/Tags/TagsService\";\r\n\r\nconst SiteInfo = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0 2%;\r\n`;\r\n\r\nconst SiteTitle = styled.div`\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: #48b05e;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nconst SiteSubTitle = styled.div`\r\n font-size: 14px;\r\n font-weight: 600;\r\n line-height: 16px;\r\n margin-left: 10px;\r\n color: #000;\r\n &.light {\r\n color: #8e8e8e;\r\n }\r\n`;\r\n\r\nconst SerialInfo = styled.div`\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #2294d2;\r\n margin: 0 2%;\r\n\r\n &.fail {\r\n color: #e94e4e;\r\n }\r\n\r\n &.info {\r\n font-weight: 400;\r\n color: #000;\r\n margin-bottom: 20px;\r\n }\r\n`;\r\n\r\nconst validUnit = (t) => {\r\n return buildValidation({\r\n manufacturerId: ValidationRule.isStringRule().required(t(\"forms:manufacturer.required\")).rule,\r\n applicationType: ValidationRule.isStringRule().required(t(\"forms:application.required\")).rule,\r\n refrigerantId: ValidationRule.isStringRule().required(t(\"forms:gasType.required\")).rule,\r\n capacity: ValidationRule.isNumber().required(t(\"forms:capacity.required\")).rule,\r\n });\r\n};\r\n\r\nconst validTagId = (t) => {\r\n return buildValidation({\r\n tagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n manufacturerId: \"\",\r\n applicationType: \"\",\r\n refrigerantId: \"\",\r\n capacity: \"0.00\",\r\n description: \"\",\r\n images: \"\",\r\n tagId: \"\",\r\n serialNumber: \"\",\r\n serialFound: \"\",\r\n};\r\n\r\nconst applicationTypes = [\"Residential\", \"Commercial\", \"Industrial\"];\r\n\r\nconst UnitWizardAdd = (\r\n t,\r\n initialValues,\r\n clientData,\r\n manufacturers,\r\n refrigerants,\r\n searchFn = () => {},\r\n clientlocationData\r\n) => {\r\n const locationData = clientlocationData.data;\r\n\r\n return {\r\n title: t(\"forms:clients.addUnit\"),\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:clients.step3NameUnits\"),\r\n fieldNames: [\"tagId\"],\r\n validation: validTagId(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n {t(\"forms:unit.newUnitInfoTitle\")}\r\n \r\n {t(\"forms:unit.newUnitInfoText\")}\r\n
    \r\n {t(\"forms:unit.newUnitInfoText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.daikinSerial\"),\r\n fieldNames: [\"serialNumber\"],\r\n fields: (formik) => (\r\n <>\r\n \r\n {t(\"sidebar:title.installationSite\")}\r\n {locationData.locationName}\r\n \r\n {`${locationData.street}, ${locationData.city}, ${locationData.countryName}`}\r\n \r\n \r\n \r\n \r\n
    \r\n {t(\"forms:clients.daikinSerialInfo\")}\r\n
    \r\n
    \r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step1NameUnits\"),\r\n fieldNames: [\"manufacturerId\", \"applicationType\", \"refrigerantId\", \"capacity\"],\r\n validation: validUnit(t),\r\n onStepRender: async ({ formik }) => {\r\n const serial = formik.values[\"serialNumber\"];\r\n if (!serial) return;\r\n const result = await TagsService.getDaikinSerial(serial);\r\n if (result.status !== 200) return;\r\n const response = result.data.response;\r\n if (response.message || !result.data.success) {\r\n formik.setFieldValue(\"serialFound\", \"N\");\r\n } else {\r\n formik.setFieldValue(\"serialFound\", \"Y\");\r\n const rfg = refrigerants.find((r) => r.code === response.refrigerantType);\r\n if (rfg) {\r\n formik.setFieldValue(\"refrigerantId\", rfg.id);\r\n }\r\n const mfc = manufacturers.find((r) => r.name === \"Daikin\");\r\n if (mfc) {\r\n formik.setFieldValue(\"manufacturerId\", mfc.id);\r\n }\r\n if(response.kWh) {\r\n formik.setFieldValue(\"capacity\", Number(response.kWh));\r\n }\r\n }\r\n },\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n {t(\"sidebar:title.installationSite\")}\r\n {locationData.locationName}\r\n \r\n {`${locationData.street}, ${locationData.city}, ${locationData.countryName}`}\r\n \r\n \r\n \r\n\r\n {formik.values[\"serialFound\"] && (\r\n <>\r\n \r\n {formik.values[\"serialFound\"] === \"N\"\r\n ? t(\"forms:clients.serialNotFound\")\r\n : t(\"forms:clients.serialFound\")}\r\n \r\n {t(\"forms:clients.manualInput\")}\r\n \r\n )}\r\n\r\n 0\r\n ? manufacturers.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.name,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n {\r\n return {\r\n key: idx,\r\n value: idx.toString(),\r\n label: `${t(\"common:applicationType.\" + item.toLowerCase())}`,\r\n };\r\n })}\r\n {...formik}\r\n />\r\n\r\n 0\r\n ? refrigerants.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.code,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n\r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step4NameNotes\"),\r\n fieldNames: [\"description\"],\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n {t(\"sidebar:title.installationSite\")}\r\n {locationData.locationName}\r\n \r\n {`${locationData.street}, ${locationData.city}, ${locationData.countryName}`}\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step2NameUnits\"),\r\n fieldNames: [\"images\"],\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default UnitWizardAdd;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport { StyledBackIcon } from \"../../../../components/elements/buttons/BackButton\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport clientsLocationListStateModule from \"../../../../core/state/clients/clientsLocationsListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport usePromises from \"../../../../hooks/_shared/usePromises\";\r\nimport ClientsService from \"../../../../services/Clients/ClientsService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\nimport ClientsBreadcrumbs from \"../../columns/ClientsBreadcrumbs\";\r\nimport ClientsColumns from \"../../columns/ClientsColumns\";\r\nimport ClientDetails from \"./details/ClientDetails\";\r\nimport LocationsFilter from \"./LocationsFilter\";\r\nimport ClientLocationWizard from \"./wizard/ClientLocationWizard\";\r\nimport UnitWizardAdd from \"./wizard/UnitWizardAdd\";\r\nimport useDataReducerImmediate from \"../../../../hooks/_shared/useDataReducerImmediate\";\r\nimport ActionButton from \"../../../../components/elements/buttons/ActionButton\";\r\nimport ModalDialog, { useModal } from \"../../../../components/modal/ModalDialog\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst actionTypes = {\r\n SET_ADDRESS_FILTER: \"SET_ADDRESS_FILTER\",\r\n RESET_ADDRESS_FILTER: \"RESET_ADDRESS_FILTER\",\r\n\r\n SET_CITY_FILTER: \"SET_CITY_FILTER\",\r\n RESET_CITY_FILTER: \"RESET_CITY_FILTER\",\r\n\r\n SET_LOCATION_FILTER: \"SET_LOCATION_FILTER\",\r\n RESET_LOCATION_FILTER: \"RESET_LOCATION_FILTER\",\r\n\r\n SET_POSTAL_CODE_FILTER: \"SET_POSTAL_CODE_FILTER\",\r\n RESET_POSTAL_CODE_FILTER: \"RESET_POSTAL_CODE_FILTER\",\r\n\r\n SET_COUNTRY_FILTER: \"SET_COUNTRY_FILTER\",\r\n RESET_COUNTRY_FILTER: \"RESET_COUNTRY_FILTER\",\r\n\r\n SET_CLIENT_ID: \"SET_CLIENT_ID\",\r\n RESET_CLIENT_ID: \"RESET_CLIENT_ID\",\r\n\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst ListingHeader = styled.div`\r\n position: relative;\r\n width: 100%;\r\n`;\r\n\r\nconst locationsReducer = (state, action) => {\r\n if ((action.type !== actionTypes.SET_PAGING) & (action.type !== actionTypes.SET_SORT))\r\n state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_CLIENT_ID:\r\n state.filter.clientId = action.payload;\r\n break;\r\n case actionTypes.RESET_CLIENT_ID:\r\n delete state.filter.clientId;\r\n break;\r\n case actionTypes.SET_LOCATION_FILTER:\r\n state.filter.locationName = action.payload;\r\n break;\r\n case actionTypes.RESET_LOCATION_FILTER:\r\n delete state.filter.locationName;\r\n break;\r\n case actionTypes.SET_ADDRESS_FILTER:\r\n state.filter.address = action.payload;\r\n break;\r\n case actionTypes.RESET_ADDRESS_FILTER:\r\n delete state.filter.address;\r\n break;\r\n case actionTypes.SET_CITY_FILTER:\r\n state.filter.city = action.payload;\r\n break;\r\n case actionTypes.RESET_CITY_FILTER:\r\n delete state.filter.city;\r\n break;\r\n case actionTypes.SET_POSTAL_CODE_FILTER:\r\n state.filter.postalCode = action.payload;\r\n break;\r\n case actionTypes.RESET_POSTAL_CODE_FILTER:\r\n delete state.filter.postalCode;\r\n break;\r\n case actionTypes.SET_COUNTRY_FILTER:\r\n state.filter.country = action.payload;\r\n break;\r\n case actionTypes.RESET_COUNTRY_FILTER:\r\n delete state.filter.country;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst ClientLocationsListing = ({ match }) => {\r\n const [selectedLocation, setSelectedLocation] = useState(null);\r\n const history = useHistory();\r\n const { t } = useTranslation([\"screens\", \"sidebar\"]);\r\n const {\r\n clientsLocations,\r\n isLoading: locationsIsLoading,\r\n error: locationsError,\r\n loadClientsLocations,\r\n countryData,\r\n loadCountries,\r\n deleteClientLocation,\r\n gasTypesData,\r\n loadGasTypes,\r\n } = useStateModule(clientsLocationListStateModule);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const wizardData = usePromises([() => ClientsService.getUnitManufacturersAsync()], (res) => ({\r\n manufacturers: res[0].data.data,\r\n }));\r\n\r\n const [currentClientData] = useDataReducerImmediate(\r\n ClientsService.getClientById,\r\n match.params.clientId\r\n );\r\n\r\n useEffect(() => {\r\n loadCountries();\r\n }, [loadCountries]);\r\n\r\n const [locationsState, locationsDispatch] = useImmerReducer(locationsReducer, {\r\n filter: {\r\n clientId: match.params.clientId,\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"locationName\",\r\n descending: false,\r\n });\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.deleteLocation.title\"),\r\n onConfirm: async (locationId) => {\r\n const result = await deleteClientLocation(locationId);\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.deleteLocation.success\"));\r\n }\r\n loadClientsLocations(locationsState);\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteUnit.confirmText\"),\r\n });\r\n\r\n const toggleClientLocationEdit = async (clientId) => {\r\n const result = await ClientsService.getClientLocationByIdAsync(clientId);\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n ModalWizard.show(\r\n ClientLocationWizard(\r\n t,\r\n result.data.data[0],\r\n countryData.countries,\r\n currentClientData,\r\n true\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n values.clientId = clientId;\r\n const result = await ClientsService.updateClientLocationAsync(values);\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n loadClientsLocations(locationsState);\r\n toast.success(t(\"actions:dialogs.updateClient.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"720px\" } }\r\n );\r\n }\r\n };\r\n\r\n const onLocationDelete = async (row, value) => {\r\n setSelectedLocation(row.original);\r\n toggleOpen(value);\r\n };\r\n\r\n const queryUnitsTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnitTags(tag, false);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const createNewUnit = async (locationId) => {\r\n const clientLocationData = { data: await ClientsService.getLocationById(locationId) };\r\n ModalWizard.show(\r\n UnitWizardAdd(\r\n t,\r\n null,\r\n currentClientData,\r\n wizardData.manufacturers,\r\n gasTypesData.gasTypes,\r\n queryUnitsTags,\r\n clientLocationData\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n values.locationId = locationId;\r\n const result = await ClientsService.addUnit(ModalWizard.asFormData());\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n loadClientsLocations(locationsState);\r\n toast.success(t(\"actions:dialogs.createUnit.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"630px\" } }\r\n );\r\n };\r\n\r\n const locationColumns = useMemo(() => {\r\n return ClientsColumns.getColumns(t, \"locationColumns\", {\r\n toggleClientLocationEdit,\r\n onLocationDelete,\r\n createNewUnit,\r\n });\r\n }, [t, wizardData, currentClientData, countryData]);\r\n\r\n if (!locationsState.filter.clientId) {\r\n locationsDispatch({\r\n type: actionTypes.SET_CLIENT_ID,\r\n payload: match.params.clientId,\r\n });\r\n }\r\n\r\n const locationsPageChange = usePageChange(locationsDispatch, locationsState);\r\n\r\n const { update: updateBreadcrumbs } = useBreadcrumbs([]);\r\n\r\n useEffect(() => {\r\n locationsState.filter.clientId && loadClientsLocations(locationsState);\r\n }, [loadClientsLocations, locationsState]);\r\n\r\n useEffect(() => {\r\n updateBreadcrumbs(\r\n ClientsBreadcrumbs.getBreadcrumbs(\r\n t,\r\n \"2\",\r\n currentClientData.data ? currentClientData.data.clientName : \"\"\r\n )\r\n );\r\n }, [currentClientData.data]);\r\n\r\n const currentLocationsSortBy = useMemo(() => {\r\n return [\r\n {\r\n id: locationsState.orderColumn,\r\n desc: locationsState.descending,\r\n },\r\n ];\r\n }, [locationsState.orderColumn, locationsState.descending]);\r\n\r\n const onLocationSelect = useCallback(\r\n (row, clientId) => {\r\n const selectLocationRow = (row) => {\r\n history.push(RouteCreator.clients.units(clientId, row.original.locationId));\r\n };\r\n selectLocationRow(row);\r\n },\r\n [history]\r\n );\r\n\r\n const sortLocations = (sortBy) => {\r\n sortBy.length > 0\r\n ? locationsDispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : locationsDispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const locationsFilterAction = (\r\n \r\n {\r\n ev.preventDefault();\r\n ModalWizard.show(\r\n ClientLocationWizard(\r\n t,\r\n null,\r\n countryData.countries,\r\n currentClientData,\r\n false\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n values.clientId = locationsState.filter.clientId;\r\n const result = await ClientsService.createClientLocationAsync(\r\n values\r\n );\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs.createClientLocation.success\")\r\n );\r\n ModalWizard.hide();\r\n locationsState.filter.clientId &&\r\n loadClientsLocations(locationsState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"720px\" } }\r\n );\r\n }}\r\n tooltip={t(\"screens:locations.tooltip.add\")}\r\n >\r\n {t(\"actions:addExtractionSite\")}\r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:locations.title\")}\r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n actions={{\r\n headerActions: () => {\r\n return (\r\n \r\n {\r\n history.push(RouteCreator.clients.root());\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n }}\r\n onSelect={(row) => {\r\n onLocationSelect(row, match.params.clientId);\r\n }}\r\n detailSideBarTitle={t(\"sidebar:title.location.title\")}\r\n />\r\n \r\n

    {t(\"actions:dialogs.deleteLocation.text\")}

    \r\n

    \r\n {selectedLocation &&\r\n `• ${selectedLocation.locationName} | ${selectedLocation.address} | ${selectedLocation.city}`}\r\n

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ClientLocationsListing;\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport ReactDOM from 'react-dom';\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as BackSvg } from \"../../assets/goback.svg\";\r\n\r\nconst afterMixin = () => `\r\n content: '';\r\n background: url('/images/actions/hover_bottom-line.svg') no-repeat bottom center;\r\n background-size: 40px 4px;\r\n width: 40px;\r\n height: 4px;\r\n position: absolute;\r\n top: calc(100% + 4px);\r\n left: -4px;\r\n opacity: 0;\r\n will-change: opacity;\r\n`;\r\n\r\n\r\nconst Gallery = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 500;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n background: rgba(0, 0, 0);\r\n position: absolute;\r\n z-index: 100;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst ImageWrapper = styled.div`\r\n width: 800px;\r\n height: 450px;\r\n margin: auto;\r\n padding: 0 0 60px;\r\n position: absolute;\r\n z-index: 600;\r\n top: 50%;\r\n left: 50%;\r\n transform-origin: 0 0;\r\n transform: translate(-50%,-50%);\r\n text-align: center;\r\n`;\r\n\r\nconst Image = styled.img`\r\n max-width: 100%;\r\n max-height: 100%;\r\n transition: 0.3s ease-in;\r\n`;\r\n\r\nconst CloseButtonWrapper = styled.div`\r\n position: absolute;\r\n top: 60px;\r\n left: 88px;\r\n z-index: 600;\r\n\r\n &:after {\r\n ${afterMixin};\r\n }\r\n\r\n &:hover {\r\n &:after {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nconst CloseButton = styled(BackSvg)`\r\n width: 24px;\r\n height: auto;\r\n cursor: pointer;\r\n transform: translate(0,0);\r\n\r\n line {\r\n stroke: #FFF;\r\n }\r\n\r\n &:after {\r\n ${afterMixin};\r\n }\r\n\r\n &:hover {\r\n &:after {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nconst ControlsWrapper = styled.div`\r\n -webkit-font-smoothing: auto;\r\n`;\r\n\r\nconst ArrowControls = styled.a`\r\n background: none;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n width: 200px;\r\n height: 200px;\r\n position: absolute;\r\n z-index: 600;\r\n will-change: display;\r\n\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n transition: all 0.2s ease;\r\n }\r\n\r\n &:after {\r\n ${afterMixin};\r\n }\r\n\r\n &:hover:after {\r\n width: 24px;\r\n left: 50%;\r\n top: calc(50% + 20px);\r\n transform: translate(-50%, -50%);\r\n background-size: 24px auto;\r\n }\r\n }\r\n\r\n &.previous {\r\n left: 0;\r\n\r\n &:before {\r\n background: url('/images/actions/arrow_white.svg') no-repeat center;\r\n transform: rotate(180deg);\r\n background-size: 12px 24px;\r\n }\r\n\r\n &:hover:after {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n &.next {\r\n right: 0;\r\n\r\n &:before {\r\n background: url('/images/actions/arrow_white.svg') no-repeat center;\r\n background-size: 12px 24px;\r\n }\r\n\r\n &:hover:after {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n &.hidden {\r\n display: none;\r\n }\r\n\r\n`;\r\n\r\nconst EditControls = styled.div`\r\n top: 60px;\r\n right: 188px;\r\n position: absolute;\r\n`;\r\n\r\nconst DownloadImage = styled.a`\r\n width: 30px;\r\n height: 38px;\r\n position: absolute;\r\n z-index: 600;\r\n left: 0;\r\n top: 0;\r\n\r\n &:before {\r\n content: '';\r\n background: url('/images/actions/icon-download.svg') no-repeat center;\r\n background-size: auto 36px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n &:after {\r\n ${afterMixin};\r\n }\r\n\r\n &:hover {\r\n &:after {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n`;\r\n\r\nconst DeleteImage = styled.a`\r\n width: 32px;\r\n height: 37px;\r\n position: absolute;\r\n z-index: 600;\r\n left: 68px;\r\n cursor: pointer;\r\n\r\n &:before {\r\n content: '';\r\n background: url('/images/actions/icon-delete.svg') no-repeat center;\r\n background-size: auto 36px;\r\n position: absolute;\r\n z-index: 10;\r\n width: 100%;\r\n height: 100%;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n }\r\n\r\n &:after {\r\n ${afterMixin};\r\n top:calc(100% + 6px);\r\n }\r\n\r\n &:hover {\r\n &:after {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nconst ImageDots = styled.div`\r\n width: 100%;\r\n text-align: center;\r\n height: 20px;\r\n position: absolute;\r\n bottom: 0;\r\n`;\r\n\r\nconst Dot = styled.span`\r\n width: 12px;\r\n height: 12px;\r\n box-sizing: border-box;\r\n border: 2px solid #FFF;\r\n background: #000;\r\n display: inline-block;\r\n border-radius: 50%;\r\n margin: 0 7px;\r\n cursor: pointer;\r\n\r\n &.active {\r\n background: #FFF;\r\n }\r\n`;\r\n\r\nconst ImageGalleryPopup = ({imageGallery, handleClose}) => {\r\n const images = imageGallery.images;\r\n const currentImage = imageGallery.currentImage;\r\n const currentImageObject = images.find(img => img.id === currentImage);\r\n const currentImagePosition = images.length > 0 && images.findIndex((img) => img.id === currentImage);\r\n\r\n const [currentObject, setCurrentObject] = useState({\r\n image: currentImageObject.imageUrl || '',\r\n position: currentImagePosition,\r\n previousVisible: currentImagePosition !== 0,\r\n nextVisible: currentImagePosition !== images.length - 1\r\n });\r\n\r\n let position = currentObject[\"position\"];\r\n const togglePreviousImage = useCallback(() => {\r\n if (position !== 0) {\r\n setCurrentObject(\r\n {\r\n image: images[position - 1].imageUrl,\r\n position: position - 1,\r\n previousVisible: position - 1 !== 0,\r\n nextVisible: position - 1 !== images.length - 1\r\n }\r\n );\r\n }\r\n }, [images, position]);\r\n\r\n const toggleNextImage = useCallback(() => {\r\n if (images.length - 1 > position) {\r\n setCurrentObject(\r\n {\r\n image: images[position + 1].imageUrl,\r\n position: position + 1,\r\n previousVisible: position + 1 !== 0,\r\n nextVisible: position + 1 !== images.length - 1\r\n });\r\n }\r\n }, [images, position]);\r\n\r\n const toggleCircle = useCallback((circleIndex) => {\r\n setCurrentObject({...currentObject, image: images[circleIndex].imageUrl, position: circleIndex});\r\n }, [currentObject, images]);\r\n\r\n const keyPress = useCallback((event) => {\r\n // 37 - prev, 39 - next, 27 - escape\r\n if (event.keyCode === 37) {\r\n togglePreviousImage();\r\n } else if (event.keyCode === 39) {\r\n toggleNextImage();\r\n } else if (event.keyCode === 27) {\r\n handleClose();\r\n }\r\n }, [handleClose, toggleNextImage, togglePreviousImage]);\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"keyup\", keyPress, true);\r\n return () => window.removeEventListener(\"keyup\", keyPress, true);\r\n }, [keyPress]);\r\n\r\n useEffect(() => {\r\n if (position === 0) {\r\n setCurrentObject({...currentObject, previousVisible: false, nextVisible: true})\r\n } else if (position === images.length - 1) {\r\n setCurrentObject({...currentObject, previousVisible: true, nextVisible: false})\r\n } else {\r\n setCurrentObject({...currentObject, previousVisible: true, nextVisible: true})\r\n }\r\n return () => {\r\n setCurrentObject({\r\n image: currentImageObject.imageUrl || '',\r\n position: currentImagePosition,\r\n previousVisible: currentImagePosition !== 0,\r\n nextVisible: currentImagePosition !== images.length - 1\r\n })\r\n }\r\n }, [currentObject.position]);\r\n\r\n const deleteImage = (imageId) => {\r\n //TODO image delete\r\n }\r\n\r\n return ReactDOM.createPortal(\r\n \r\n \r\n \r\n {\r\n currentImage &&\r\n \r\n }\r\n\r\n \r\n {\r\n images && images.map((image, index) => (\r\n index !== position ? toggleCircle(index) : ''}\r\n />\r\n ))\r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n deleteImage(currentImageObject.id)}/>\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n ,\r\n document.body\r\n )\r\n};\r\n\r\nexport default ImageGalleryPopup;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ImageGalleryPopup from \"./ImageGalleryPopup\";\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: row;\r\n justify-content: flex-start;\r\n`;\r\n\r\nconst Image = styled.div`\r\n --showRows: ${(props) => (props.showRows !== undefined ? props.showRows : 2)};\r\n width: calc((100% / var(--showRows)) - 18px);\r\n position: relative;\r\n background: url(${(props) => props.src}) no-repeat center center;\r\n background-size: contain;\r\n margin: 8px;\r\n height: 100px;\r\n border-radius: 4px;\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor};\r\n transition: all 0.3s ease-in-out;\r\n box-sizing: border-box;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n border-color: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n &.remove {\r\n opacity: 0.6;\r\n }\r\n\r\n &.remove:before {\r\n position: absolute;\r\n right: -1px;\r\n bottom: -1px;\r\n content: \"✂\";\r\n color: #e94e4e;\r\n background: #fff;\r\n font-size: 24px;\r\n }\r\n`;\r\n\r\nconst ImageGallery = ({ images, showRows }) => {\r\n const [imageGallery, setImageGallery] = useState({ images: [], currentImage: null });\r\n const [isGalleryVisible, setIsGalleryVisible] = useState(false);\r\n\r\n const handleOpenGallery = (imageId) => {\r\n setImageGallery({\r\n images: images,\r\n currentImage: imageId,\r\n });\r\n setIsGalleryVisible(true);\r\n };\r\n\r\n const handleCloseGallery = () => {\r\n setIsGalleryVisible(false);\r\n };\r\n\r\n return (\r\n \r\n {images &&\r\n images.map((image, index) => (\r\n handleOpenGallery(image.id)}\r\n />\r\n ))}\r\n {(!images || images.length === 0) && (\r\n \"no\r\n )}\r\n\r\n {images && imageGallery.images.length > 0 && isGalleryVisible && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ImageGallery;\r\n","import styled from \"styled-components\";\r\n\r\nexport const QRWrapper = styled.div`\r\n text-align: center;\r\n margin-top: 5px;\r\n span {\r\n display: inline-block;\r\n margin-top: 5px;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nexport const TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 24px;\r\n font-weight: 700;\r\n margin: 12px 0 0;\r\n`;\r\n","import QRCode from \"qrcode.react\";\r\nimport React, { useMemo } from \"react\";\r\nimport ImageGallery from \"../../../../../components/gallery/ImageGallery\";\r\nimport AccordionWrapper from \"../../../../../components/toggle-view/AccordionWrapper\";\r\nimport { QRWrapper } from \"../../../../Equipment/components/QRWrapper\";\r\nimport { TagTitle } from \"../../../../Equipment/components/TagTitle\";\r\nimport helpers from \"../../../../../core/helpers\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../../../../components/elements/sidebar/SidebarField\";\r\nimport DaikinMap from \"../../../../../components/maps/DaikinMap\";\r\nimport LocationMarker from \"../../../../../components/maps/components/LocationMarker\";\r\nimport MapBounds from \"../../../../../components/maps/components/MapBounds\";\r\nimport useAccordionGroup from \"../../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst UnitsDetailSideBar = ({ unit, location }) => {\r\n const unitData = unit.clientsLocationUnitsData\r\n ? unit.clientsLocationUnitsData\r\n : {};\r\n\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n\r\n const tagParts =\r\n unitData && unitData.tagId ? helpers.splitQRTag(unitData.tagId) : [];\r\n\r\n const boundsMarkers = useMemo(() => {\r\n let markers = [];\r\n if (location) {\r\n if (location.latitude) {\r\n markers.push(\r\n new window.google.maps.Marker({\r\n position: {\r\n lat: location.latitude,\r\n lng: location.longitude,\r\n },\r\n })\r\n );\r\n } else {\r\n markers.push(\r\n new window.google.maps.Marker({\r\n position: {\r\n lat: 0,\r\n lng: 0,\r\n },\r\n })\r\n );\r\n }\r\n }\r\n return markers;\r\n }, [location]);\r\n\r\n return (\r\n <>\r\n {unitData && (\r\n <>\r\n \r\n {unitData && unitData.tagId && (\r\n \r\n {\" \"}\r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n )}\r\n
    \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n

    \r\n {unitData.description ? unitData.description : \"-\"}\r\n

    \r\n \r\n\r\n {unitData.client && (\r\n \r\n \r\n\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default UnitsDetailSideBar;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport env from \"../../../../core/env\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\n\r\nconst Section = styled.div`\r\n display: flex;\r\n`;\r\n\r\nconst UnitsFilter = ({\r\n filterState,\r\n gasTypes,\r\n applicationTypes,\r\n dispatch,\r\n actionTypes,\r\n actions,\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [manufacturerChange] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_MANUFACTURER_FILTER,\r\n payload: text,\r\n })\r\n : dispatch({ type: actionTypes.RESET_MANUFACTURER_FILTER });\r\n });\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {\r\n manufacturerChange(e.currentTarget.value);\r\n }}\r\n placeholder={t(\"clients.manufacturerName\")}\r\n className=\"filters\"\r\n >\r\n \r\n\r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: value[index],\r\n })\r\n )\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_APPLICATION_TYPE_FILTER\r\n : actionTypes.SET_APPLICATION_TYPE_FILTER,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"clients.applicationType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n\r\n \r\n ({\r\n key: gas.id,\r\n value: gas.id,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_GAS_TYPE\r\n : actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n
    \r\n
    {actions}
    \r\n
    \r\n );\r\n};\r\n\r\nexport default UnitsFilter;\r\n","import React from \"react\";\r\nimport {Select} from \"../../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport WizardClientDetails from \"../details/WizardClientDetails\";\r\nimport MoneyInputElement from \"../../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst validUnit = (t) => {\r\n return buildValidation({\r\n manufacturerId: ValidationRule.isStringRule().required(\r\n t(\"forms:manufacturer.required\")\r\n ).rule,\r\n applicationType: ValidationRule.isStringRule().required(\r\n t(\"forms:application.required\")\r\n ).rule,\r\n refrigerantId: ValidationRule.isStringRule().required(\r\n t(\"forms:gasType.required\")\r\n ).rule,\r\n capacity: ValidationRule.isNumber().required(\r\n t(\"forms:capacity.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n manufacturerId: \"\",\r\n applicationType: \"\",\r\n refrigerantId: \"\",\r\n capacity: \"0.00\",\r\n description: \"\",\r\n images: \"\",\r\n};\r\nconst applicationTypes = [\"Residential\", \"Commercial\", \"Industrial\"];\r\n\r\nconst UnitWizardEdit = (\r\n t,\r\n initialValues,\r\n clientData,\r\n manufacturers,\r\n refrigerants,\r\n searchFn = () => {}\r\n) => {\r\n return {\r\n title: t(\"forms:clients.editUnit\"),\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:clients.step1NameUnits\"),\r\n fieldNames: [\r\n \"manufacturerId\",\r\n \"applicationType\",\r\n \"refrigerantId\",\r\n \"capacity\",\r\n ],\r\n validation: validUnit(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n 0\r\n ? manufacturers.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.name,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n {\r\n return {\r\n key: idx,\r\n value: idx.toString(),\r\n label: `${t(\r\n \"common:applicationType.\" +\r\n item.toLowerCase()\r\n )}`,\r\n };\r\n })}\r\n {...formik}\r\n />\r\n\r\n 0\r\n ? refrigerants.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.code,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n\r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step4NameNotes\"),\r\n fieldNames: [\"description\"],\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step2NameUnits\"),\r\n fieldNames: [\"images\"],\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default UnitWizardEdit;\r\n","import React from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { Checkbox } from \"../../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport {\r\n InfoTitle,\r\n InfoWrapper,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n skipValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\n\r\nconst defaultInitialValues = {\r\n tagId: \"\",\r\n tagCheck: false\r\n};\r\n\r\nconst validTagCheck = (t) => {\r\n yup.lazy((values) => {\r\n if (!values.tagCheck) return skipValidation();\r\n return buildValidation({\r\n tagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule\r\n });\r\n })\r\n}\r\n\r\nconst UnitWizardReTag = (t, searchFn = () => {\r\n}) => {\r\n\r\n let validateTagCheck = defaultInitialValues.tagCheck;\r\n const handleTagCheck = (ev, formik) => {\r\n validateTagCheck = ev.target.checked;\r\n formik.setFieldValue(\"tagCheck\", ev.target.checked);\r\n };\r\n\r\n return {\r\n title: t('forms:clients.reTagUnit'),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t('forms:clients.step1ReTag'),\r\n fieldNames: [\"tagId\"],\r\n validation: validTagCheck(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n
    \r\n \r\n \r\n handleTagCheck(ev, formik)\r\n }\r\n description={[t('forms:clients.reTagInfoText'), t('forms:clients.reTagInfoText2')]}\r\n {...formik}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n )\r\n }\r\n ]\r\n }\r\n};\r\n\r\nexport default UnitWizardReTag;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport { StyledBackIcon } from \"../../../../components/elements/buttons/BackButton\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport clientsUnitsListStateModule from \"../../../../core/state/clients/clientsUnitsListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useDataReducerImmediate from \"../../../../hooks/_shared/useDataReducerImmediate\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport usePromises from \"../../../../hooks/_shared/usePromises\";\r\nimport ClientsService from \"../../../../services/Clients/ClientsService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\nimport ClientsBreadcrumbs from \"../../columns/ClientsBreadcrumbs\";\r\nimport ClientsColumns from \"../../columns/ClientsColumns\";\r\nimport ClientDetails from \"./details/ClientDetails\";\r\nimport UnitsDetailSideBar from \"./sidebar/UnitsDetailSideBar\";\r\nimport UnitsFilter from \"./UnitsFilter\";\r\nimport UnitWizardAdd from \"./wizard/UnitWizardAdd\";\r\nimport UnitWizardEdit from \"./wizard/UnitWizardEdit\";\r\nimport UnitWizardReTag from \"./wizard/UnitWizardReTag\";\r\nimport ActionButton from \"../../../../components/elements/buttons/ActionButton\";\r\nimport {Helmet} from \"react-helmet\";\r\n\r\nconst ListingHeader = styled.div`\r\n position: relative;\r\n width: 100%;\r\n`;\r\n\r\nconst actionTypes = {\r\n SET_MANUFACTURER_FILTER: \"SET_MANUFACTURER_FILTER\",\r\n RESET_MANUFACTURER_FILTER: \"RESET_MANUFACTURER_FILTER\",\r\n\r\n SET_APPLICATION_TYPE_FILTER: \"SET_APPLICATION_TYPE_FILTER\",\r\n RESET_APPLICATION_TYPE_FILTER: \"RESET_APPLICATION_TYPE_FILTER\",\r\n\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n\r\n SET_CLIENT_ID: \"SET_CLIENT_ID\",\r\n RESET_CLIENT_ID: \"RESET_CLIENT_ID\",\r\n\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_LOCATION_ID: \"SET_LOCATION_ID\",\r\n RESET_LOCATION_ID: \"RESET_LOCATION_ID\",\r\n};\r\n\r\nconst unitsReducer = (state, action) => {\r\n if (\r\n (action.type !== actionTypes.SET_PAGING)\r\n )\r\n state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_LOCATION_ID:\r\n state.filter.locationId = action.payload;\r\n break;\r\n case actionTypes.RESET_LOCATION_ID:\r\n delete state.filter.clientId;\r\n break;\r\n case actionTypes.SET_MANUFACTURER_FILTER:\r\n state.filter.manufacturer = action.payload;\r\n break;\r\n case actionTypes.RESET_MANUFACTURER_FILTER:\r\n delete state.filter.manufacturer;\r\n break;\r\n case actionTypes.SET_APPLICATION_TYPE_FILTER:\r\n state.filter.applicationType = action.payload;\r\n break;\r\n case actionTypes.RESET_APPLICATION_TYPE_FILTER:\r\n delete state.filter.applicationType;\r\n break;\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.refrigerantId = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.refrigerantId;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst ClientLocationsUnitListing = ({ match }) => {\r\n const history = useHistory();\r\n const { t } = useTranslation(\"screens\");\r\n const [selectedUnit, setSelectedUnit] = useState(null);\r\n\r\n const {\r\n clientsLocationUnits,\r\n isLoading,\r\n error,\r\n gasTypesData,\r\n loadGasTypes,\r\n loadClientsLocationUnits,\r\n loadClientsLocationsUnitsById,\r\n details,\r\n deleteClientLocationUnit,\r\n } = useStateModule(clientsUnitsListStateModule);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const wizardData = usePromises(\r\n [() => ClientsService.getUnitManufacturersAsync()],\r\n (res) => ({\r\n manufacturers: res[0].data.data,\r\n })\r\n );\r\n\r\n const [currentClientData] = useDataReducerImmediate(\r\n ClientsService.getClientById,\r\n match.params.clientId\r\n );\r\n\r\n const applicationTypes = [\r\n {\r\n 0: t('common:applicationType.residential'),\r\n },\r\n {\r\n 1: t('common:applicationType.commercial'),\r\n },\r\n {\r\n 2: t('common:applicationType.industrial'),\r\n },\r\n ];\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.deleteUnit.title\"),\r\n onConfirm: async (unitId) => {\r\n let res = await deleteClientLocationUnit(unitId);\r\n\r\n if (res && res.error) toast.error(t(res.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.deleteUnit.success\"));\r\n }\r\n loadClientsLocationUnits(unitsState);\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteUnit.confirmText\"),\r\n });\r\n\r\n const editUnit = async (unitId) => {\r\n const unit = await ClientsService.getUnitByIdAsync(unitId);\r\n if (unit.error) {\r\n toast(unit.error.message);\r\n return;\r\n }\r\n ModalWizard.show(\r\n UnitWizardEdit(\r\n t,\r\n unit.data.data[0],\r\n currentClientData,\r\n wizardData.manufacturers,\r\n gasTypesData.gasTypes,\r\n queryUnitsTags\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const newImages = values.images.filter(\r\n (img) => img instanceof File\r\n );\r\n\r\n const oldImages = values.images.filter(\r\n (img) => !(img instanceof File)\r\n );\r\n\r\n const toDelete = unit.data.data[0].images\r\n .filter(\r\n (img) =>\r\n !oldImages.some(\r\n (oldImg) => img.id === oldImg.id\r\n )\r\n )\r\n .map((img) => img.id);\r\n\r\n values.images = newImages;\r\n values.deleteImages = toDelete;\r\n values.unitId = unitId;\r\n\r\n const result = await ClientsService.updateUnitAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result && result.error)\r\n toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.editUnit.success\"));\r\n ModalWizard.hide();\r\n loadClientsLocationUnits(unitsState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"630px\" } }\r\n );\r\n };\r\n\r\n const reTagUnit = async (unitId) => {\r\n const unit = await ClientsService.getUnitByIdAsync(unitId);\r\n if (unit && unit.error) {\r\n toast(t(unit.error.message));\r\n return;\r\n }\r\n ModalWizard.show(UnitWizardReTag(t, queryUnitsTags), {\r\n onSubmit: async (values) => {\r\n const client = unit.data.data[0].client[0];\r\n const allValues = Object.assign(\r\n {},\r\n { ...unit.data.data[0] },\r\n { ...client },\r\n { ...values }\r\n );\r\n const result = await ClientsService.updateUnitAsync(\r\n ModalWizard.asFormData(allValues)\r\n );\r\n if (result && result.error)\r\n toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.reTagUnit.success\"));\r\n ModalWizard.hide();\r\n loadClientsLocationUnits(unitsState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n };\r\n\r\n const onUnitDelete = async (row, value) => {\r\n const unit = await ClientsService.getUnitByIdAsync(row.original.unitId);\r\n setSelectedUnit(unit.data.data);\r\n toggleOpen(value);\r\n };\r\n\r\n const unitsColumns = useMemo(() => {\r\n return ClientsColumns.getColumns(\r\n t,\r\n \"unitsColumns\",\r\n {\r\n toggleOpen,\r\n editUnit,\r\n reTagUnit,\r\n onUnitDelete,\r\n },\r\n [t, wizardData]\r\n );\r\n });\r\n\r\n const [unitsState, unitsDispatch] = useImmerReducer(unitsReducer, {\r\n filter: {},\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"manufacturer\",\r\n descending: false,\r\n });\r\n\r\n const [currentLocationData] = useDataReducerImmediate(\r\n ClientsService.getLocationById,\r\n match.params.locationId\r\n );\r\n\r\n const { update: updateBreadcrumbs } = useBreadcrumbs([]);\r\n\r\n if (!unitsState.filter.locationId) {\r\n unitsDispatch({\r\n type: actionTypes.SET_LOCATION_ID,\r\n payload: match.params.locationId,\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n updateBreadcrumbs(\r\n ClientsBreadcrumbs.getBreadcrumbs(\r\n t,\r\n \"3\",\r\n currentClientData.data ? currentClientData.data.clientName : \"\",\r\n currentLocationData.data\r\n ? currentLocationData.data.street +\r\n \",\" +\r\n currentLocationData.data.city\r\n : \"\"\r\n )\r\n );\r\n }, [\r\n currentClientData.data,\r\n currentLocationData.data,\r\n t,\r\n updateBreadcrumbs,\r\n ]);\r\n\r\n useEffect(() => {\r\n unitsState.filter.locationId && loadClientsLocationUnits(unitsState);\r\n }, [loadClientsLocationUnits, unitsState]);\r\n\r\n const queryUnitsTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnassignedTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const unitsPageChange = usePageChange(unitsDispatch, unitsState);\r\n const unitsFilterAction = (\r\n \r\n {\r\n ev.preventDefault();\r\n ModalWizard.show(\r\n UnitWizardAdd(\r\n t,\r\n null,\r\n currentClientData,\r\n wizardData.manufacturers,\r\n gasTypesData.gasTypes,\r\n queryUnitsTags,\r\n currentLocationData\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.images) {\r\n const newImages = values.images.filter(\r\n (img) => img instanceof File\r\n );\r\n values.images = newImages;\r\n }\r\n\r\n values.locationId =\r\n currentLocationData.data.locationId;\r\n const result = await ClientsService.createClientLocationUnit(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result && result.error)\r\n toast.error(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs.createUnit.success\")\r\n );\r\n ModalWizard.hide();\r\n loadClientsLocationUnits(unitsState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"630px\" } }\r\n );\r\n }}\r\n tooltip={t(\"screens:units.tooltip.add\")}\r\n >\r\n {t(\"actions:addUnit\")}\r\n \r\n \r\n );\r\n\r\n const sortUnits = (sortBy) => {\r\n sortBy.length > 0\r\n ? unitsDispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : unitsDispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentUnitsSortBy = useMemo(() => {\r\n return [\r\n {\r\n id: unitsState.orderColumn,\r\n desc: unitsState.descending,\r\n },\r\n ];\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const onUnitsSelect = useCallback(\r\n (row) => {\r\n const selectUnitsRow = async (row) => {\r\n loadClientsLocationsUnitsById(row.original.unitId);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectUnitsRow(row);\r\n },\r\n [loadClientsLocationsUnitsById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:units.title\")}\r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n actions={{\r\n headerActions: () => {\r\n return (\r\n \r\n {\r\n history.push(\r\n RouteCreator.clients.locations(\r\n match.params.clientId\r\n )\r\n );\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n }}\r\n onSelect={onUnitsSelect}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortUnits,\r\n currentSortBy: currentUnitsSortBy,\r\n }}\r\n detailView={\r\n \r\n }\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailSideBarTitle={t(\"sidebar:title.unit.details\")}\r\n closeSideBar={closeSideBar}\r\n />\r\n \r\n

    {t(\"actions:dialogs.deleteUnit.text\")}

    \r\n

    \r\n •{\" \"}\r\n {selectedUnit &&\r\n `${selectedUnit[0].manufacturerName} | ${\r\n selectedUnit[0].applicationTypeName\r\n } ${t(\"application\")} | ${\r\n selectedUnit[0].capacity\r\n } kW | ${selectedUnit[0].refrigerantCode}`}\r\n

    \r\n
    \r\n \r\n );\r\n};\r\nexport default ClientLocationsUnitListing;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\n\r\nconst Section = styled.div`\r\n display: flex;\r\n`;\r\n\r\nconst ClientsFilter = ({\r\n filterState,\r\n dispatch,\r\n actionTypes,\r\n countryData,\r\n gasTypes,\r\n screen,\r\n actions,\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n\r\n const [nameChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_NAME_FILTER, payload: text.trim() })\r\n : dispatch({ type: actionTypes.RESET_NAME_FILTER });\r\n });\r\n\r\n return (\r\n \r\n
    \r\n {screen === \"1\" && (\r\n <>\r\n \r\n \r\n {\r\n nameChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"clients.name\")}\r\n title={t(\"clients.name\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n )}\r\n {screen === \"3\" && (\r\n <>\r\n \r\n \r\n {\r\n //quantityChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"forms:unitName.text\")}\r\n title={t(\"forms:unitName.text\")}\r\n className=\"filters\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n //quantityChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"forms:model.text\")}\r\n title={t(\"forms:model.text\")}\r\n className=\"filters\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n //quantityChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"forms:serialNumber.text\")}\r\n title={t(\"forms:serialNumber.text\")}\r\n className=\"filters\"\r\n />\r\n \r\n\r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n defaultValue={\r\n filterState.gasType !== undefined\r\n ? filterState.gasType\r\n : \"\"\r\n }\r\n handleChange={(evt) => {\r\n // dispatch({\r\n // type:\r\n // evt.currentTarget.value === \"\"\r\n // ? actionTypes.RESET_QUALITY_ASSURANCE\r\n // : actionTypes.SET_QUALITY_ASSURANCE,\r\n // payload: evt.currentTarget.value,\r\n // });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"forms:gasType.text\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n {actions && actions}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ClientsFilter;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport DataTable from \"../../../../../components/data/DataTable\";\r\nimport Anchor from \"../../../../../components/elements/form-elements/Link\";\r\nimport SidebarField from \"../../../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper from \"../../../../../components/toggle-view/AccordionWrapper\";\r\nimport RouteCreator from \"../../../../../core/RouteCreator\";\r\nimport useAccordionGroup from \"../../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ClientDetailSideBar = ({ client, locations }) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n const locationColumns = [\r\n {\r\n Header: t(\"table:headers.client.name\"),\r\n accessor: \"locationName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.address\"),\r\n accessor: \"address\",\r\n },\r\n ];\r\n\r\n const topTenLocations = locations.isCompleted\r\n ? locations.data.data.slice(0, 10)\r\n : [];\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n {locations && locations.isCompleted && (\r\n \r\n \r\n\r\n \r\n {t(\"button.clients.locations\")}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ClientDetailSideBar;\r\n","import React from \"react\";\r\nimport { Select } from \"../../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\n\r\nconst validCompany = (t) => {\r\n return buildValidation({\r\n clientName: ValidationRule.isStringRule().required(\r\n t(\"forms:clientName.required\")\r\n ).rule\r\n });\r\n};\r\n\r\nconst validAddress = (t) => {\r\n return buildValidation({\r\n street: ValidationRule.isStringRule().required(\r\n t(\"forms:address.required\")\r\n ).rule,\r\n locationName: ValidationRule.isStringRule().required(\r\n t(\"forms:locationName.required\")\r\n ).rule,\r\n city: ValidationRule.isStringRule().required(t(\"forms:city.required\"))\r\n .rule,\r\n postalCode: ValidationRule.isStringRule().required(\r\n t(\"forms:postalCode.required\")\r\n ).rule,\r\n countryId: ValidationRule.isStringRule().required(\r\n t(\"forms:country.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n email: \"\",\r\n locationName: \"\",\r\n clientName: \"\",\r\n phoneNumber: \"\",\r\n street: \"\",\r\n contactPersonFirstName: \"\",\r\n contactPersonLastName: \"\",\r\n city: \"\",\r\n postalCode: \"\",\r\n countryId: \"\",\r\n region: \"\",\r\n};\r\n\r\nconst ClientWizard = (t, initialValues, countries, isEdit) => {\r\n return {\r\n title: isEdit\r\n ? t(\"forms:clients.editClient\")\r\n : t(\"forms:clients.addClient\"),\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:clients.step1Name\"),\r\n fieldNames: [\"clientName\"],\r\n validation: validCompany(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step2Name\"),\r\n fieldNames: [\r\n \"locationName\",\r\n \"street\",\r\n \"postalCode\",\r\n \"city\",\r\n \"region\",\r\n \"countryId\",\r\n ],\r\n validation: validAddress(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n 0\r\n ? countries.map((country) => {\r\n return {\r\n key: country.id,\r\n value: country.id,\r\n label: country.countryName,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:clients.step3Name\"),\r\n fieldNames: [\r\n \"email\",\r\n \"phoneNumber\",\r\n \"contactPersonFirstName\",\r\n \"contactPersonLastName\",\r\n ],\r\n // validation: validContact(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default ClientWizard;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport clientsListStateModule from \"../../../../core/state/clients/clientsListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport ClientsService from \"../../../../services/Clients/ClientsService\";\r\nimport ClientsBreadcrumbs from \"../../columns/ClientsBreadcrumbs\";\r\nimport ClientsColumns from \"../../columns/ClientsColumns\";\r\nimport ClientsFilter from \"./ClientsFilter\";\r\nimport ClientDetailSideBar from \"./sidebar/ClientDetailSideBar\";\r\nimport ClientWizard from \"./wizard/ClientWizard\";\r\nimport ActionButton from \"../../../../components/elements/buttons/ActionButton\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport {Helmet} from \"react-helmet\";\r\n\r\nconst actionTypes = {\r\n SET_NAME_FILTER: \"SET_NAME_FILTER\",\r\n RESET_NAME_FILTER: \"RESET_NAME_FILTER\",\r\n\r\n SET_ADDRESS_FILTER: \"SET_ADDRESS_FILTER\",\r\n RESET_ADDRESS_FILTER: \"RESET_ADDRESS_FILTER\",\r\n\r\n SET_CITY_FILTER: \"SET_CITY_FILTER\",\r\n RESET_CITY_FILTER: \"RESET_CITY_FILTER\",\r\n\r\n SET_COUNTRY_FILTER: \"SET_COUNTRY_FILTER\",\r\n RESET_COUNTRY_FILTER: \"RESET_COUNTRY_FILTER\",\r\n\r\n SET_CLIENT_ID: \"SET_CLIENT_ID\",\r\n RESET_CLIENT_ID: \"RESET_CLIENT_ID\",\r\n\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst clientsReducer = (state, action) => {\r\n if (\r\n (action.type !== actionTypes.SET_PAGING) \r\n )\r\n state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_NAME_FILTER:\r\n state.filter.name = action.payload;\r\n break;\r\n case actionTypes.RESET_NAME_FILTER:\r\n delete state.filter.name;\r\n break;\r\n case actionTypes.SET_ADDRESS_FILTER:\r\n state.filter.address = action.payload;\r\n break;\r\n case actionTypes.RESET_ADDRESS_FILTER:\r\n delete state.filter.address;\r\n break;\r\n case actionTypes.SET_CITY_FILTER:\r\n state.filter.city = action.payload;\r\n break;\r\n case actionTypes.RESET_CITY_FILTER:\r\n delete state.filter.city;\r\n break;\r\n case actionTypes.SET_COUNTRY_FILTER:\r\n state.filter.country = action.payload;\r\n break;\r\n case actionTypes.RESET_COUNTRY_FILTER:\r\n delete state.filter.country;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst ClientsListing = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n const [selectedClient, setSelectedClient] = useState(null);\r\n useBreadcrumbs(ClientsBreadcrumbs.getBreadcrumbs(t, \"1\"));\r\n\r\n const {\r\n clients,\r\n isLoading,\r\n error,\r\n loadClients,\r\n countryData,\r\n loadCountries,\r\n details,\r\n deleteClient,\r\n } = useStateModule(clientsListStateModule);\r\n\r\n const [locationsListing, ] = useDataReducer(\r\n ClientsService.getClientsLocations\r\n );\r\n\r\n useEffect(() => {\r\n loadCountries();\r\n }, [loadCountries]);\r\n\r\n const toggleClientEdit = async (clientId) => {\r\n const result = await ClientsService.getClientByIdAsync(clientId);\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n ModalWizard.show(\r\n ClientWizard(\r\n t,\r\n result.data.data[0],\r\n countryData.countries,\r\n true\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await ClientsService.updateClientAsync(\r\n values\r\n );\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs.updateClient.success\")\r\n );\r\n ModalWizard.hide();\r\n loadClients();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n }\r\n };\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.deleteClient.title\"),\r\n onConfirm: async (clientId) => {\r\n const result = await deleteClient(clientId);\r\n\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.deleteClient.success\"));\r\n loadClients(clientsState);\r\n }\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteUnit.confirmText\"),\r\n });\r\n\r\n const toggleClientDelete = async (row, value) => {\r\n setSelectedClient(row.original);\r\n toggleOpen(value);\r\n };\r\n\r\n const clientsColumns = useMemo(() => {\r\n return ClientsColumns.getColumns(t, \"clientColumns\", {\r\n toggleClientEdit,\r\n toggleClientDelete,\r\n });\r\n }, [t]);\r\n\r\n const [clientsState, clientsDispatch] = useImmerReducer(clientsReducer, {\r\n filter: {},\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"clientName\",\r\n descending: false,\r\n });\r\n\r\n useEffect(() => {\r\n loadClients(clientsState);\r\n }, [loadClients, clientsState]);\r\n\r\n const clientsFilterAction = (\r\n \r\n {\r\n ev.preventDefault();\r\n ModalWizard.show(\r\n ClientWizard(t, null, countryData.countries),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await ClientsService.createClientAsync(\r\n values\r\n );\r\n if (result && result.error)\r\n toast.error(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\r\n \"actions:dialogs.createClient.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n loadClients();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n }}\r\n tooltip={t(\"screens:clients.tooltip.add\")}\r\n >\r\n {t(\"forms:clients.addClient\")}\r\n \r\n \r\n );\r\n\r\n const clientsPageChange = usePageChange(clientsDispatch, clientsState);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const onClientSelect = useCallback(\r\n (row) => {\r\n const selectRow = (row) => {\r\n history.push(\r\n RouteCreator.clients.locations(row.original.clientId)\r\n );\r\n };\r\n selectRow(row);\r\n },\r\n [history]\r\n );\r\n\r\n const sortClients = (sortBy) => {\r\n sortBy.length > 0\r\n ? clientsDispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : clientsDispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentClientsSortBy = useMemo(() => {\r\n return [\r\n {\r\n id: clientsState.orderColumn,\r\n desc: clientsState.descending,\r\n },\r\n ];\r\n }, [clientsState.orderColumn, clientsState.descending]);\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:clients.title\")}\r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n onSelect={onClientSelect}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortClients,\r\n currentSortBy: currentClientsSortBy,\r\n }}\r\n detailView={\r\n \r\n }\r\n detailViewIsOpened={detailViewIsOpened}\r\n closeSideBar={closeSideBar}\r\n detailSideBarTitle={t(\"sidebar:title.client.title\")}\r\n />\r\n \r\n

    {t(\"actions:dialogs.deleteClient.text\")}

    \r\n

    \r\n {selectedClient &&\r\n `• ${selectedClient.clientName} | ${selectedClient.vat}`}\r\n

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ClientsListing;\r\n","import { useLoadScript } from \"@react-google-maps/api\";\r\nimport React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport ClientLocationsListing from \"./components/ClientLocationsListing\";\r\nimport ClientLocationsUnitListing from \"./components/ClientLocationsUnitListing\";\r\nimport ClientsListing from \"./components/ClientsListing\";\r\n\r\nconst ClientsSection = () => {\r\n const { isLoaded } = useLoadScript({\r\n googleMapsApiKey: \"AIzaSyBQSju7sxgnuD4jrzA2cJLP2dVU3RDwHZY\", // ,\r\n // ...otherOptions\r\n });\r\n\r\n return (\r\n isLoaded && (\r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n );\r\n};\r\nexport default ClientsSection;\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport companyAdminMenuItems from \"../../data/menu/companyAdminMenuItems\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\nimport ClientsSection from \"./views/ClientsSection\";\r\n\r\nconst ClientsScreen = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n useLeftMenu(companyAdminMenuItems(globalState));\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ClientsScreen;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport { InputSubmit, Select } from \"../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport Wrappers from \"../../../../components/wrappers/Wrappers\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ButtonLink = styled.button`\r\n background: transparent;\r\n height: 25px;\r\n box-shadow: none;\r\n border: none;\r\n line-height: 25px;\r\n font-size: 16px;\r\n padding: 0;\r\n text-align: left;\r\n color: ${(p) => p.theme.primaryColor};\r\n font-weight: 500;\r\n margin: 15px 0px 20px 0px;\r\n outline: none;\r\n &:hover {\r\n font-weight: 600;\r\n cursor: pointer;\r\n }\r\n`;\r\nconst EmployeeEditForm = ({\r\n formik,\r\n details,\r\n isLoading,\r\n roles,\r\n handleUsernameChange,\r\n ownProfile,\r\n}) => {\r\n const { t } = useTranslation();\r\n const canEdit = !ownProfile;\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup([\"userAccount\", \"contact\"]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"forms:username.changeUsername\")}\r\n \r\n )\r\n }\r\n {...formik}\r\n />\r\n 0\r\n ? roles.map((role) => ({\r\n key: role.id,\r\n value: role.id,\r\n label: t(\"common:roles.\" + role.name),\r\n }))\r\n : []\r\n }\r\n wrapperVariant=\"flex-half\"\r\n disabled={!canEdit}\r\n {...formik}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default EmployeeEditForm;\r\n","import React from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { Checkbox } from \"../../../../../components/elements/form-elements\";\r\nimport DatePicker from \"../../../../../components/elements/form-elements/DatePicker\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../../../../components/layout/flex/Flex\";\r\nimport {\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n InfoText,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\n\r\nconst licenceValidation = (t) =>\r\n yup.lazy((values) => {\r\n return buildValidation({\r\n fGasCertificate: ValidationRule.isStringRule().required(\r\n t(\"forms:fGasCertificate.required\")\r\n ).rule,\r\n licenceNumber: ValidationRule.isStringRule().required(\r\n t(\"forms:licenceNumber.required\")\r\n ).rule,\r\n licenceExpirationDate: values.licenceNeverExpires\r\n ? yup.string()\r\n : ValidationRule.isStringRule().required(\r\n t(\"forms:licenceExpirationDate.required\")\r\n ).rule,\r\n });\r\n });\r\n\r\nconst defaultInitialValues = {\r\n licenceNeverExpires: false,\r\n fGasCertificate: \"\",\r\n licenceNumber: \"\",\r\n licenceExpirationDate: \"\",\r\n};\r\n\r\nconst AddCertificateWizard = (t, id) => {\r\n let certType = id === null ? \"Company\" : \"Personal\";\r\n let certValidForever = defaultInitialValues.licenceNeverExpires;\r\n\r\n const handleLicenceCheck = (ev, formik) => {\r\n certValidForever = ev.target.checked;\r\n formik.setFieldValue(\"licenceNeverExpires\", ev.target.checked);\r\n if (certValidForever) formik.setFieldValue(\"licenceExpirationDate\", \"\");\r\n };\r\n\r\n return {\r\n title: t(`screens:certificates.newCertWizard.title${certType}`),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\r\n `screens:certificates.newCertWizard.subtitle${certType}`\r\n ),\r\n fieldNames: [\r\n \"licenceNeverExpires\",\r\n \"fGasCertificate\",\r\n \"licenceNumber\",\r\n \"licenceExpirationDate\",\r\n ],\r\n validation: licenceValidation(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\r\n `screens:certificates.newCertWizard.${\r\n certType === \"Company\"\r\n ? \"infoTitleCompany\"\r\n : \"infoTitlePersonal\"\r\n }`\r\n )}\r\n \r\n \r\n {t(\r\n `screens:certificates.newCertWizard.${\r\n certType === \"Company\"\r\n ? \"infoTextCompany\"\r\n : \"infoTextPersonal\"\r\n }`\r\n )}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n handleLicenceCheck(ev, formik)\r\n }\r\n {...formik}\r\n />\r\n \r\n\r\n \r\n\r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default AddCertificateWizard;\r\n","import React, { useEffect, useRef, useState, useMemo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataEntry from \"../../../../components/data-entry/DataEntry\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport Headings from \"../../../../components/elements/headings/Headings\";\r\nimport RoundTabs from \"../../../../components/elements/tabs/RoundTabs\";\r\nimport EffectError from \"../../../../components/errors/EffectError\";\r\nimport LayoutInnerContainer from \"../../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport ModalDialog, { useModal } from \"../../../../components/modal/ModalDialog\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport AuthorizeComponentByUserId from \"../../../../core/AuthorizeComponentByUserId\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport employeeListStateModule from \"../../../../core/state/company/employeeListStateModule\";\r\nimport useActiveNavigationPath from \"../../../../core/state/navigation/useActiveNavigationPath\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport userStateModule from \"../../../../core/state/user/userStateModule.js\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useAuthorization from \"../../../../core/useAuthorization\";\r\nimport commonValidation from \"../../../../core/validations/common\";\r\nimport ValidationRule, { buildValidation } from \"../../../../core/validations/ValidationRule\";\r\nimport globals from \"../../../../globalVars\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport LoginService from \"../../../../services/Login/LoginService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport Change2faSection from \"./edit-employee/Change2faSection\";\r\nimport ChangePasswordSection from \"./edit-employee/ChangePasswordSection\";\r\nimport ChangePictureSection from \"./edit-employee/ChangePictureSection\";\r\nimport EmployeeEditForm from \"./EmployeeEditForm\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport DataTable from \"../../../../components/data/DataTable\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AddCertificateWizard from \"../company/wizard/AddCertificateWizard\";\r\nimport useQueryString from \"../../../../hooks/_shared/useQueryString\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ECertificateStatus = {\r\n Submitted: 0,\r\n Valid: 1,\r\n Rejected: 2,\r\n Expired: 99,\r\n NoAttestation: -1, //display only\r\n};\r\n\r\nconst EmptyGuid = \"00000000-0000-0000-0000-000000000000\";\r\n\r\nconst TabContent = styled.div`\r\n display: ${(props) => (props.show ? \"block\" : \"none\")};\r\n`;\r\n\r\nconst TabsWrapper = styled.div`\r\n position: fixed;\r\n top: 85px;\r\n width: 100%;\r\n z-index: 5;\r\n\r\n margin: 0px 0px 0px -65px;\r\n padding: 0px 60px 0px 65px;\r\n border-radius: 15px 15px 0px 0px;\r\n background: linear-gradient(180deg, rgba(245, 245, 245, 1) 0%, rgba(240, 240, 240, 1) 100%);\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n`;\r\n\r\nconst ContentWrapper = styled.div`\r\n display: block;\r\n @media ${(props) => props.theme.device.mobile} {\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n }\r\n`;\r\n\r\nconst InfoWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n color: #000;\r\n\r\n & .topSpace {\r\n margin-top: 14px;\r\n }\r\n\r\n & .info {\r\n font-size: 14px;\r\n }\r\n\r\n & li {\r\n font-size: 12px;\r\n line-height: 18px;\r\n }\r\n`;\r\n\r\nconst GreenInfo = styled.img`\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst ColoredText = styled.div`\r\n color: ${(p) => p.theme.primaryColor};\r\n\r\n &.error {\r\n color: ${(p) => p.theme.error};\r\n }\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 2px;\r\n background-color: #000;\r\n margin-top: 24px;\r\n`;\r\n\r\nconst RightContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n\r\n margin-top: 20px;\r\n`;\r\n\r\nconst HolderCell = ({ cell: { row } }) => {\r\n const holder = row.original.certificateHolder;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {holder}\r\n \r\n );\r\n};\r\n\r\nconst StatusCell = ({ cell: { row } }) => {\r\n const text = row.original.licenceStatusName;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nconst defaultEditEmployeeValues = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n phoneNumber: \"\",\r\n roleId: \"-1\",\r\n fGasCertificate: \"\",\r\n licenceNumber: \"\",\r\n licenceExpirationDate: \"\",\r\n username: \"\",\r\n};\r\n\r\nconst tabIndices = {\r\n Profile: 0,\r\n Information: 1,\r\n};\r\n\r\nconst validationEditEmployee = (t) => {\r\n return buildValidation({\r\n firstName: ValidationRule.isStringRule().required(t(\"forms:firstName.required\")).rule,\r\n lastName: ValidationRule.isStringRule().required(t(\"forms:lastName.required\")).rule,\r\n email: commonValidation.email(t).rule,\r\n roleId: ValidationRule.isStringRule().isNot(\"-1\", t(\"forms:roleid.pleaseselect\")).rule,\r\n });\r\n};\r\n\r\nconst EmployeeEditScreen = () => {\r\n let initialTab = Number(useQueryString(\"tab\", tabIndices.Profile));\r\n const { i18n, t } = useTranslation();\r\n const history = useHistory();\r\n useActiveNavigationPath(RouteCreator.employee.list());\r\n\r\n const { loadUserData } = useStateModule(userStateModule);\r\n const [tabIndex, setTabIndexState] = useState(initialTab);\r\n const [userCerts, setUserCerts] = useState([]);\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup([\"picture\", \"security\"]);\r\n\r\n /* Edit */\r\n let { employeeId } = useParams();\r\n if (!employeeId) {\r\n history.push(RouteCreator.employee.list());\r\n }\r\n\r\n const ownProfile = useAuthorization({\r\n allowedUserId: employeeId,\r\n });\r\n\r\n const {\r\n loadEmployeeById,\r\n details,\r\n updateEmployee,\r\n updateData,\r\n resetState,\r\n rolesData,\r\n loadRoles,\r\n } = useStateModule(employeeListStateModule);\r\n\r\n useEffect(() => {\r\n loadEmployeeById(employeeId);\r\n }, [employeeId, loadEmployeeById]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n resetState();\r\n };\r\n }, [resetState]);\r\n\r\n useEffect(() => {\r\n loadRoles();\r\n }, [loadRoles]);\r\n\r\n const getCertsAsync = async () => {\r\n const resUsers = await CompanyService.getMyEmployeesCertificates(employeeId);\r\n if (!resUsers.error) {\r\n const myCerts = resUsers.data.data.filter((cert) => cert.userId === employeeId);\r\n setUserCerts(myCerts);\r\n }\r\n };\r\n\r\n const addNewCertificate = (ev, id) => {\r\n ev.preventDefault();\r\n ModalWizard.show(\r\n AddCertificateWizard(t, id),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.licenceNeverExpires)\r\n values.licenceExpirationDate = new Date(\"1/1/3000\");\r\n delete values.licenceNeverExpires;\r\n values.id = id;\r\n\r\n let formData = helpers.getFormData(values);\r\n let result;\r\n result = await CompanyService.addUserCertificate(formData);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n ModalWizard.submitFailed();\r\n } else {\r\n toast.success(t(\"actions:certificate.toastNotification.success\"));\r\n ModalWizard.hide();\r\n getCertsAsync();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n {\r\n style: {\r\n minWidth: \"700px\",\r\n },\r\n }\r\n );\r\n };\r\n\r\n const certColumns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certHolder\"),\r\n accessor: \"certificateHolder\",\r\n Cell: HolderCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certNumber\"),\r\n accessor: \"licenceNumber\",\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.expiration\"),\r\n accessor: \"licenceExpiryDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.submitDate\"),\r\n accessor: \"licenceUploadDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.procDate\"),\r\n accessor: \"processedDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.status\"),\r\n accessor: \"licenceStatusName\",\r\n Cell: StatusCell,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { row } }) => {\r\n return (\r\n \r\n {row.original.licenceId !== EmptyGuid && (\r\n \r\n \r\n window.open(\r\n row.original.licenceCertificateFile,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n useEffect(() => {\r\n getCertsAsync();\r\n }, []);\r\n\r\n let [submittedValues, setSubmittedValues] = React.useState({\r\n values: null,\r\n fullName: null,\r\n });\r\n\r\n const handleSubmit = async (values, { setSubmitting, setErrors, setStatus, resetForm }) => {\r\n const updateValues = {\r\n ...values,\r\n id: employeeId,\r\n roleNames: getRoleNamesFromRoleId(values.roleId),\r\n };\r\n if (ownProfile) {\r\n await UserService.setUserDetails(updateValues);\r\n loadUserData();\r\n } else await updateEmployee(updateValues);\r\n toast.success(t(\"screens:employeeEdit.completed.title\"));\r\n setSubmittedValues({\r\n values: values,\r\n fullName: values.firstName + \" \" + values.lastName,\r\n });\r\n loadEmployeeById(employeeId);\r\n };\r\n\r\n const handle2FASubmit = async (values) => {\r\n const updateValues = {\r\n ...details.employeeData,\r\n ...values,\r\n id: employeeId,\r\n roleId: getRoleIdFromRoleName(),\r\n };\r\n if (ownProfile) {\r\n await UserService.setUserDetails(updateValues);\r\n loadUserData();\r\n } else await updateEmployee(updateValues);\r\n toast.success(t(\"screens:employeeEdit.completed.title\"));\r\n loadEmployeeById(employeeId);\r\n };\r\n\r\n function getRoleIdFromRoleName() {\r\n if (initializedValues.roleNames && rolesData.roles.length > 0) {\r\n return (initializedValues.roleId = rolesData.roles.find(\r\n (role) => role.name === initializedValues.roleNames[0]\r\n ).id);\r\n }\r\n }\r\n\r\n function getRoleNamesFromRoleId(roleId) {\r\n return [rolesData.roles.find((role) => role.id === roleId).name];\r\n }\r\n\r\n const twoFAValues = {\r\n passwordExpiration: details.employeeData.passwordExpiration || 0,\r\n twoFactorEnabled: details.employeeData.twoFactorEnabled || false,\r\n };\r\n\r\n let initializedValues = helpers.getInitialFormValues(\r\n defaultEditEmployeeValues,\r\n details.employeeData\r\n );\r\n initializedValues.roleId = getRoleIdFromRoleName();\r\n\r\n if (employeeId) {\r\n initializedValues[\"id\"] = employeeId;\r\n }\r\n\r\n const employeeBreadcrumbs = [\r\n {\r\n text: \"Company\",\r\n },\r\n {\r\n text: \"Employees\",\r\n url: RouteCreator.employee.list(),\r\n },\r\n {\r\n text: \"Edit\",\r\n },\r\n ];\r\n\r\n const { update: updateBreadcrumbs } = useBreadcrumbs(employeeBreadcrumbs);\r\n\r\n useEffect(() => {\r\n employeeBreadcrumbs[2].text = details.employeeData.fullName;\r\n updateBreadcrumbs(employeeBreadcrumbs);\r\n }, [details.employeeData.username]);\r\n\r\n // change Username\r\n const [usernameError, setUsernameError] = useState({});\r\n const [usernameRequested, setUsernameRequested] = useState(false);\r\n const newEmailRef = useRef();\r\n const { modalProps: changeUsernameModalProps, toggleOpen: toggleUsernameModal } = useModal({\r\n onConfirm: async () => {\r\n const schema = buildValidation({\r\n email: commonValidation.email(t).rule,\r\n });\r\n try {\r\n await schema.validate({ email: newEmailRef.current.value });\r\n setUsernameError({});\r\n await UserService.changeEmail({\r\n email: initializedValues.email,\r\n newEmail: newEmailRef.current.value,\r\n });\r\n toggleUsernameModal();\r\n setUsernameRequested(true);\r\n } catch (err) {\r\n setUsernameError({ newEmail: err.message });\r\n toast.error(err.message);\r\n }\r\n },\r\n onCancel: () => toggleUsernameModal(),\r\n isNegativeAction: false,\r\n });\r\n\r\n const handleUsernameChange = (ev) => {\r\n if (ev.detail === 0) return;\r\n ev.preventDefault();\r\n setUsernameError({});\r\n toggleUsernameModal();\r\n };\r\n\r\n if (usernameRequested) {\r\n LoginService.logout();\r\n window.location.replace(RouteCreator.user.login());\r\n }\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:employeeEdit.title\")}\r\n \r\n \r\n {!globals.isMobile && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n onSubmit={handleSubmit}\r\n isLoading={details.isLoading}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {t(\"screens:certificates.personalCertInfo.allTechnicians\")}\r\n
    \r\n
    \r\n {t(\"screens:certificates.personalCertInfo.requirement\")}\r\n
    \r\n
    \r\n {t(\"screens:certificates.personalCertInfo.qualification\")}\r\n
    \r\n
    \r\n {t(\"screens:certificates.personalCertInfo.regulation\")}\r\n
    \r\n
      \r\n
    • {t(\"screens:certificates.personalList.regulations\")}
    • \r\n
    • {t(\"screens:certificates.personalList.emission\")}
    • \r\n
    • {t(\"screens:certificates.personalList.recovery\")}
    • \r\n
    • {t(\"screens:certificates.personalList.handling\")}
    • \r\n
    • {t(\"screens:certificates.personalList.information\")}
    • \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n {\r\n addNewCertificate(ev, userCerts[0].userId);\r\n }}\r\n >\r\n {t(\"screens:certificates.add\")}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"actions:dialogs.changeUsername.title\")}\r\n

    {t(\"actions:dialogs.changeUsername.text\")}

    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default EmployeeEditScreen;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst DataImageWrapper = styled.div`\r\n background: ${(props) => props.theme.secondaryColor} url(\"/images/shared/user.svg\")\r\n no-repeat center;\r\n border-radius: 50%;\r\n width: 76px;\r\n height: 76px;\r\n overflow: hidden;\r\n margin: 0 auto 10px;\r\n\r\n & span {\r\n position: absolute;\r\n top: 52px;\r\n left: 0;\r\n width: 100%;\r\n color: #fff;\r\n font-size: 34px;\r\n }\r\n\r\n &.cell-image {\r\n background-color:transparent;\r\n }\r\n &.cell-image.empty {\r\n background-color:${(props) => props.theme.secondaryColor};\r\n }\r\n`;\r\n\r\nconst Image = styled.div`\r\n background: transparent no-repeat center;\r\n background-size: cover;\r\n width: 100%;\r\n height: 100%;\r\n\r\n`;\r\n\r\nconst getInitials = function (string) {\r\n if (string !== \"\") {\r\n let names = string.split(\" \"),\r\n initials = names[0].substring(0, 1).toUpperCase();\r\n\r\n if (names.length > 1) {\r\n initials += names[names.length - 1].substring(0, 1).toUpperCase();\r\n }\r\n return initials;\r\n }\r\n};\r\n\r\nconst DataCellImage = ({ image, fullName, width = \"100%\" }) => {\r\n return (\r\n \r\n {image ? (\r\n \r\n ) : (\r\n {fullName && getInitials(fullName)}\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DataCellImage;\r\n","import React from \"react\";\r\nimport UserDetailSideBar from \"../../../../User/components/UserDetailSideBar\";\r\n\r\nconst EmployeeDetailSideBar = ({ employee }) => {\r\n const hasEmployee = employee.employeeData.firstName !== undefined;\r\n\r\n return (\r\n <>\r\n {hasEmployee && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EmployeeDetailSideBar;\r\n","import React from \"react\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n Checkbox,\r\n Select,\r\n} from \"../../../../../../components/elements/form-elements\";\r\nimport DatePicker from \"../../../../../../components/elements/form-elements/DatePicker\";\r\nimport InputElement from \"../../../../../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../../../../../components/layout/flex/Flex\";\r\nimport {\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../../components/modal/components/WizardStyling\";\r\nimport commonValidation from \"../../../../../../core/validations/common\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n skipValidation,\r\n} from \"../../../../../../core/validations/ValidationRule\";\r\n\r\nconst getUserValidation = (t, adminRoleId) => {\r\n return buildValidation({\r\n firstName: ValidationRule.isStringRule().required(\r\n t(\"forms:firstName.required\")\r\n ).rule,\r\n lastName: ValidationRule.isStringRule().required(\r\n t(\"forms:lastName.required\")\r\n ).rule,\r\n email: commonValidation.email(t).rule,\r\n roleId: ValidationRule.isStringRule().isNot(\r\n \"-1\",\r\n t(\"forms:roleid.pleaseselect\")\r\n ).rule\r\n });\r\n};\r\n\r\nconst licenceValidation = (t) => (\r\n yup.lazy((values) => {\r\n if (!values.licenceCheck) return skipValidation();\r\n return buildValidation({\r\n fGasCertificate: ValidationRule.isStringRule().required(\r\n t(\"forms:fGasCertificate.required\")\r\n ).rule,\r\n licenceNumber: ValidationRule.isStringRule().required(\r\n t(\"forms:licenceNumber.required\")\r\n ).rule,\r\n licenceExpirationDate: ValidationRule.isStringRule().required(\r\n t(\"forms:licenceExpirationDate.required\")\r\n ).rule,\r\n });\r\n })\r\n);\r\n\r\nconst defaultInitialValues = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n phoneNumber: \"\",\r\n roleId: \"-1\",\r\n licenceCheck: false,\r\n fGasCertificate: \"\",\r\n licenceNumber: \"\",\r\n licenceExpirationDate: \"\",\r\n};\r\n\r\nconst NewEmployeeWizard = (t, rolesData) => {\r\n\r\n let validateCert = defaultInitialValues.licenceCheck;\r\n const handleLicenceCheck = (ev, formik) => {\r\n validateCert = ev.target.checked;\r\n formik.setFieldValue(\"licenceCheck\", ev.target.checked);\r\n };\r\n\r\n return {\r\n title: t(\"forms:employee.formTitle\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:employee.step1\"),\r\n fieldNames: [\r\n \"firstName\",\r\n \"lastName\",\r\n \"email\",\r\n \"phoneNumber\",\r\n \"roleId\"\r\n ],\r\n validation: getUserValidation(t),\r\n fields: formik => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t('forms:employee.infoTitle')}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n return {\r\n key: role.id,\r\n value: role.id,\r\n label: t(\"common:roles.\" + role.name),\r\n };\r\n })\r\n }\r\n {...formik}\r\n />\r\n \r\n )\r\n },\r\n {\r\n name: t(\"forms:employee.step2\"),\r\n fieldNames: [\r\n \"licenceCheck\",\r\n \"fGasCertificate\",\r\n \"licenceNumber\",\r\n \"licenceExpirationDate\"\r\n ],\r\n validation: licenceValidation(t),\r\n fields: formik => (\r\n <>\r\n \r\n
    \r\n \r\n \r\n handleLicenceCheck(ev, formik)\r\n }\r\n description={[t('forms:employee.licenceCheckInfoText'), t('forms:employee.licenceCheckInfoText2')]}\r\n {...formik}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n )\r\n }\r\n ]\r\n }\r\n};\r\n\r\nexport default NewEmployeeWizard;\r\n","import styled from \"styled-components\";\r\n\r\nconst VSpace = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size || 0}px;\r\n`;\r\n\r\nexport default VSpace;","import React, {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useState,\r\n useRef,\r\n} from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport DataCellImage from \"../../../../components/data/DataCellImage\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport employeeListStateModule from \"../../../../core/state/company/employeeListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport StatusCell from \"../../../Administration/views/company/components/StatusCell\";\r\nimport CertificateStatusCell from \"../../../Administration/views/user/components/CertificateStatusCell\";\r\nimport actionTypes from \"../../../Administration/views/user/components/filterActionsTypes\";\r\nimport RoleCell from \"../../../Administration/views/user/components/RoleCell\";\r\nimport UserFilter from \"../../../Administration/views/user/components/UserFilter\";\r\nimport EmployeeDetailSideBar from \"./components/EmployeeDetailSideBar\";\r\nimport NewEmployeeWizard from \"./components/wizard/NewEmployeeWizard\";\r\nimport VSpace from \"../../../../components/elements/general/vspace\";\r\nimport ActionButton from \"../../../../components/elements/buttons/ActionButton\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport styled from \"styled-components\";\r\n\r\nconst LongTextCell = styled.div`\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n`;\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SEARCH_EMAIL:\r\n state.filter.email = action.payload;\r\n break;\r\n case actionTypes.SEARCH_FULLNAME:\r\n state.filter.fullName = action.payload;\r\n break;\r\n case actionTypes.SEARCH_ROLE:\r\n if (action.payload) {\r\n state.filter.roleNames = [action.payload];\r\n } else {\r\n state.filter.roleNames = [];\r\n }\r\n break;\r\n case actionTypes.SEARCH_STATUS:\r\n if (action.payload === \"-1\") {\r\n delete state.filter.userStatus;\r\n } else state.filter.userStatus = action.payload === \"0\";\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.page = action.payload.pageIndex + 1;\r\n state.pageSize = action.payload.pageSize;\r\n break;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nconst EmployeeList = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const {\r\n employees,\r\n isLoading,\r\n error,\r\n loadEmployees,\r\n loadEmployeeById,\r\n details,\r\n deleteEmployee,\r\n loadRoles,\r\n rolesData,\r\n } = useStateModule(employeeListStateModule);\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n roleNames: [],\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const deleteThisEmployee = useRef(null);\r\n const history = useHistory();\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:company\"),\r\n },\r\n {\r\n text: t(\"navigation:employees\"),\r\n },\r\n ]);\r\n const [, setEmployeeEnabled] = useDataReducer(\r\n UserService.setEmployeeEnabled\r\n );\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: \"Profile picture url\",\r\n accessor: \"profilePictureUrl\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t(\"employeeList.headers.fullName\"),\r\n accessor: \"fullName\",\r\n Cell: ({ cell: { value, row } }) => (\r\n {value}\r\n ),\r\n },\r\n {\r\n Header: t(\"employeeList.headers.email\"),\r\n accessor: \"email\",\r\n Cell: ({ cell: { value, row } }) => (\r\n {value}\r\n ),\r\n },\r\n {\r\n Header: t(\"employeeList.headers.certificateStatus\"),\r\n accessor: \"certificationStatus\",\r\n Cell: CertificateStatusCell,\r\n },\r\n {\r\n Header: t(\"employeeList.headers.roles\"),\r\n accessor: \"roleNames\",\r\n Cell: RoleCell,\r\n },\r\n {\r\n Header: t(\"employeeList.headers.userStatus\"),\r\n accessor: \"userStatus\",\r\n Cell: StatusCell,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {userDetails.UserId !== value && (\r\n {\r\n deleteThisEmployee.current = [\r\n row.original,\r\n ];\r\n toggleOpen(value);\r\n }}\r\n />\r\n )}\r\n\r\n {\r\n history.push(\r\n RouteCreator.employee.edit(value)\r\n );\r\n }}\r\n />\r\n {row.original.enabled && (\r\n {\r\n await setEmployeeEnabled({\r\n id: value,\r\n enabled: false,\r\n });\r\n loadEmployees(filterState);\r\n }}\r\n />\r\n )}\r\n {!row.original.enabled && (\r\n {\r\n await setEmployeeEnabled({\r\n id: value,\r\n enabled: true,\r\n });\r\n loadEmployees(filterState);\r\n }}\r\n />\r\n )}\r\n \r\n \r\n ),\r\n },\r\n ],\r\n [t]\r\n );\r\n useEffect(() => {\r\n loadEmployees(filterState);\r\n }, [loadEmployees, filterState]);\r\n\r\n useEffect(() => {\r\n loadRoles();\r\n }, [loadRoles]);\r\n\r\n const onSelect = useCallback((row) => {\r\n const selectRow = async (row) => {\r\n await loadEmployeeById(row.original.id);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n }, []);\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const cardColumns = [\r\n \"profilePictureUrl\",\r\n \"fullName\",\r\n \"userStatus\",\r\n \"id\",\r\n \"email\",\r\n \"roleNames\",\r\n ];\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.deleteEmployee.title\"),\r\n onConfirm: async (employee) => {\r\n await deleteEmployee(employee);\r\n loadEmployees(filterState);\r\n toggleOpen();\r\n toast.success(t(\"employeeList.toastNotification.success\"));\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteEmployee.confirmText\"),\r\n type: \"danger\",\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:employeesList.title\")}\r\n \r\n \r\n (\r\n \r\n )}\r\n paging={{\r\n enablePaging: true,\r\n pageCount: employees.totalPages,\r\n pageSize: employees.pageSize || 10,\r\n onPageChange: pageChange,\r\n totalRows: employees.totalRows,\r\n currentPageIndex: employees.currentPage\r\n ? employees.currentPage - 1\r\n : 0,\r\n }}\r\n actions={{\r\n headerActions: () => {\r\n return (\r\n \r\n \r\n {\r\n ev.preventDefault();\r\n ModalWizard.show(\r\n NewEmployeeWizard(t, rolesData),\r\n {\r\n onSubmit: async (\r\n values\r\n ) => {\r\n const result = await CompanyService.createCompanyEmployeeAsync(\r\n ModalWizard.asFormData(\r\n values\r\n )\r\n );\r\n if (\r\n result &&\r\n result.error\r\n ) {\r\n toast.error(\r\n t(\r\n result.error\r\n .message\r\n )\r\n );\r\n } else {\r\n toast.success(\r\n t(\r\n \"actions:dialogs.createEmployee.toastNotification.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n loadEmployees(\r\n filterState\r\n );\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n {\r\n style: {\r\n minHeight: \"700px\",\r\n },\r\n }\r\n );\r\n }}\r\n >\r\n {t(\r\n \"screens:employeeCreate.button_text\"\r\n )}\r\n \r\n \r\n \r\n );\r\n },\r\n }}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailView={}\r\n detailSideBarTitle={details && details.employeeData.fullName}\r\n cardColumns={cardColumns}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n />\r\n \r\n

    {t(\"actions:dialogs.deleteEmployee.text\")}

    \r\n

    \r\n •{\" \"}\r\n {deleteThisEmployee.current &&\r\n deleteThisEmployee.current.length > 0\r\n ? `${deleteThisEmployee.current[0].fullName} | ${deleteThisEmployee.current[0].email}`\r\n : null}\r\n

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default EmployeeList;\r\n","import React, { useEffect, useState, useMemo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport LayoutInnerContainer from \"../../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport userStateModule from \"../../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport DataTable from \"../../../../components/data/DataTable\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AddCertificateWizard from \"./wizard/AddCertificateWizard\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst InfoWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n color: #000;\r\n\r\n & .topSpace {\r\n margin-top: 14px;\r\n }\r\n\r\n & .info {\r\n font-size: 14px;\r\n }\r\n\r\n & li {\r\n font-size: 12px;\r\n line-height: 18px;\r\n }\r\n`;\r\n\r\nconst GreenInfo = styled.img`\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 2px;\r\n background-color: #000;\r\n margin-top: 24px;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n width: 100%;\r\n height: 30px;\r\n min-height: 30px;\r\n`;\r\n\r\nconst RightContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n\r\n margin-top: 20px;\r\n`;\r\n\r\nconst ColoredText = styled.div`\r\n color: ${(p) => p.theme.primaryColor};\r\n\r\n &.error {\r\n color: ${(p) => p.theme.error};\r\n }\r\n`;\r\n\r\nexport const Wrapper = styled.div`\r\n margin-bottom: 20px;\r\n`;\r\n\r\nexport const FormWrapper = styled(Flex.Row)`\r\n width: 800px;\r\n margin: 30px auto;\r\n`;\r\n\r\nconst EmptyGuid = \"00000000-0000-0000-0000-000000000000\";\r\n\r\nconst ECertificateStatus = {\r\n Submitted: 0,\r\n Valid: 1,\r\n Rejected: 2,\r\n Expired: 99,\r\n NoAttestation: -1, //display only\r\n};\r\n\r\nexport const getCertificateValidation = (t) => {\r\n return buildValidation({\r\n fGasCertificate: ValidationRule.isStringRule().required(\r\n t(\"forms:fGasCertificate.required\")\r\n ).rule,\r\n licenceNumber: ValidationRule.isStringRule().required(\r\n t(\"forms:licenceNumber.required\")\r\n ).rule,\r\n licenceExpirationDate: ValidationRule.isStringRule().required(\r\n t(\"forms:licenceExpirationDate.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nfunction groupBy(arr, prop) {\r\n const map = new Map(Array.from(arr, (obj) => [obj[prop], []]));\r\n arr.forEach((obj) => map.get(obj[prop]).push(obj));\r\n return Array.from(map.values());\r\n}\r\n\r\nconst HolderCell = ({ cell: { row } }) => {\r\n const holder = row.original.certificateHolder;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {holder}\r\n \r\n );\r\n};\r\n\r\nconst StatusCell = ({ cell: { row } }) => {\r\n const text = row.original.licenceStatusName;\r\n const status = row.original.licenceStatus;\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nconst CompanyCertificateScreen = () => {\r\n const { t } = useTranslation([\"common\", \"forms\"]);\r\n const history = useHistory();\r\n const { isFullyRegistered } = useStateModule(userStateModule);\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const userCompanyId = userDetails.CompanyId || null;\r\n const [companyId] = useState(userCompanyId);\r\n const [userCerts, setUserCerts] = useState([]);\r\n const [companyCerts, setCompanyCerts] = useState([]);\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup(\"companyCert\");\r\n const getCertsAsync = async () => {\r\n const resUsers = await CompanyService.getMyEmployeesCertificates();\r\n const resCompany = await CompanyService.getMyCompanyCertificates();\r\n if (!resUsers.error && !resCompany.error) {\r\n const grp = groupBy(resUsers.data.data, \"userId\");\r\n setUserCerts(grp);\r\n setCompanyCerts(resCompany.data.data);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getCertsAsync();\r\n }, []);\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:company\"),\r\n },\r\n {\r\n text: t(\"navigation:companyCertificates\"),\r\n },\r\n ]);\r\n\r\n const addNewCertificate = (ev, id) => {\r\n ev.preventDefault();\r\n ModalWizard.show(\r\n AddCertificateWizard(t, id),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.licenceNeverExpires)\r\n values.licenceExpirationDate = new Date(\"1/1/3000\");\r\n delete values.licenceNeverExpires;\r\n if (id !== null) values.id = id;\r\n\r\n let formData = helpers.getFormData(values);\r\n let result;\r\n result = id\r\n ? await CompanyService.addUserCertificate(formData)\r\n : await CompanyService.addCompanyCertificate(formData);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n ModalWizard.submitFailed();\r\n } else {\r\n toast.success(\r\n t(\"actions:certificate.toastNotification.success\")\r\n );\r\n ModalWizard.hide();\r\n getCertsAsync();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n {\r\n style: {\r\n minWidth: \"700px\",\r\n },\r\n }\r\n );\r\n };\r\n\r\n const certColumns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certHolder\"),\r\n accessor: \"certificateHolder\",\r\n Cell: HolderCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.certNumber\"),\r\n accessor: \"licenceNumber\",\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.expiration\"),\r\n accessor: \"licenceExpiryDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.submitDate\"),\r\n accessor: \"licenceUploadDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.procDate\"),\r\n accessor: \"processedDate\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"screens:certificates.tableHeaders.status\"),\r\n accessor: \"licenceStatusName\",\r\n Cell: StatusCell,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { row } }) => {\r\n return (\r\n \r\n {row.original.licenceId !== EmptyGuid && (\r\n \r\n \r\n window.open(\r\n row.original\r\n .licenceCertificateFile,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n if (!companyId) {\r\n history.push(\"/\");\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {t(\"screens:certificates.companyCert\")}\r\n \r\n {isFullyRegistered && (\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {t(\"screens:certificates.companyInfo\")}\r\n
    \r\n
      \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.installation\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.maintenance\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.recovery\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyList.decommissioning\"\r\n )}\r\n
    • \r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.companyFullCert.info\"\r\n )}\r\n
    \r\n
      \r\n
    • \r\n {t(\r\n \"screens:certificates.companyFullCert.personel\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.companyFullCert.tools\"\r\n )}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n {\r\n addNewCertificate(ev, null);\r\n }}\r\n >\r\n {t(\"screens:certificates.add\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.allTechnicians\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.requirement\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.qualification\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:certificates.personalCertInfo.regulation\"\r\n )}\r\n
    \r\n
      \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.regulations\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.emission\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.recovery\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.handling\"\r\n )}\r\n
    • \r\n
    • \r\n {t(\r\n \"screens:certificates.personalList.information\"\r\n )}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n {userCerts.map((certs, idx) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n addNewCertificate(\r\n ev,\r\n certs[0].userId\r\n );\r\n }}\r\n >\r\n {t(\"screens:certificates.add\")}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n};\r\nexport default CompanyCertificateScreen;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport useTimeoutFn from \"../../hooks/_shared/useTimeoutFn\";\r\nimport LoginService from \"../../services/Login/LoginService\";\r\nimport Headings from \"../elements/headings/Headings\";\r\nimport RoundedImage from \"../elements/images/RoundedImage\";\r\nimport Flex from \"../layout/flex/Flex\";\r\nimport Logo from \"../logo/Logo\";\r\n\r\nconst NotificationWrapper = styled.div`\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: ${(props) => props.theme.bgWhite};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.5s ease-in;\r\n z-index: 500;\r\n\r\n &.inline {\r\n position: absolute;\r\n left: 0;\r\n z-index: 5;\r\n background: ${(props) => props.theme.bgIvory};\r\n }\r\n`;\r\n\r\nconst NotificationContainer = styled(Flex.Container)`\r\n /* max-width: 70%; */\r\n margin: 0 auto;\r\n align-items: center;\r\n width: auto;\r\n\r\n & .notificationContent {\r\n display: flex;\r\n flex-direction: column;\r\n padding-right: 10px;\r\n align-items: center;\r\n align-content: center;\r\n text-align: center;\r\n max-width: 800px;\r\n & a {\r\n max-width: 200px;\r\n }\r\n }\r\n\r\n @media all and (max-width: ${(props) => props.theme.smallDevices}) {\r\n max-width: 100%;\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n & h3.notification {\r\n font-size: 1.45rem;\r\n margin: 0 0 30px;\r\n }\r\n\r\n & .notificationContent {\r\n width: 100%;\r\n }\r\n }\r\n`;\r\n\r\nconst NotificationImage = styled(RoundedImage)`\r\n width: 174px;\r\n min-width: 174px;\r\n height: 174px;\r\n margin: 0 80px 0 0;\r\n\r\n &.confirmed {\r\n position: relative;\r\n\r\n &:after {\r\n content: \"\";\r\n border-left: 8px solid ${(props) => props.theme.primaryColor};\r\n border-bottom: 8px solid ${(props) => props.theme.primaryColor};\r\n width: 60px;\r\n height: 30px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: rotate(-53deg) translate(0, -100%);\r\n }\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n width: 50px;\r\n min-width: 50px;\r\n height: 50px;\r\n margin: 0px 10px;\r\n\r\n &.confirmed {\r\n position: absolute;\r\n left: calc(50% - 40px);\r\n top: 40px;\r\n }\r\n &.confirmed:after {\r\n width: 16px;\r\n height: 7px;\r\n border-left: 4px solid ${p => p.theme.primaryColor};\r\n border-bottom: 4px solid ${p => p.theme.primaryColor};\r\n }\r\n }\r\n`;\r\n\r\nconst NotificationText = styled.div`\r\n margin: 12px 0 36px 0;\r\n font-size: 1.125rem;\r\n\r\n`;\r\n\r\nconst FullScreenNotification = (props) => {\r\n const {\r\n image,\r\n title,\r\n text,\r\n button,\r\n className,\r\n redirectTo,\r\n redirect = false,\r\n redirectTime = 5000,\r\n executeFn,\r\n refreshToken,\r\n } = props;\r\n const { t } = useTranslation();\r\n const [counter, setCounter] = useState(redirectTime / 1000);\r\n\r\n const history = useHistory();\r\n useTimeoutFn(async () => {\r\n if (redirectTo && redirect) {\r\n if (refreshToken) {\r\n await LoginService.refresh();\r\n window.location.replace(redirectTo);\r\n } else {\r\n history.push(redirectTo);\r\n }\r\n }\r\n if (executeFn) {\r\n executeFn();\r\n }\r\n }, redirectTime);\r\n\r\n useEffect(() => {\r\n const timer =\r\n counter > 0 && setInterval(() => setCounter(counter - 1), 1000);\r\n return () => clearInterval(timer);\r\n }, [counter]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n {title}\r\n\r\n {text && {text}}\r\n {button}\r\n\r\n {redirect && (\r\n

    \r\n {t(\r\n \"screens:userPassword.notifications.redirection\"\r\n )}{\" \"}\r\n {counter}\r\n

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default FullScreenNotification;\r\n","import { useCallback, useEffect, useRef } from \"react\";\r\n\r\nexport default function useTimeoutFn(fn, ms = 0) {\r\n const ready = useRef(false);\r\n const timeout = useRef();\r\n const callback = useRef(fn);\r\n const isReady = useCallback(() => ready.current, []);\r\n const set = useCallback(() => {\r\n ready.current = false;\r\n timeout.current && clearTimeout(timeout.current);\r\n timeout.current = setTimeout(() => {\r\n ready.current = true;\r\n callback.current();\r\n }, ms);\r\n }, [ms]);\r\n const clear = useCallback(() => {\r\n ready.current = null;\r\n timeout.current && clearTimeout(timeout.current);\r\n }, []);\r\n // update ref when function changes\r\n useEffect(() => {\r\n callback.current = fn;\r\n }, [fn]);\r\n // set on mount, clear on unmount\r\n useEffect(() => {\r\n set();\r\n return clear;\r\n }, [ms]);\r\n return [isReady, clear, set];\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Prompt, useHistory, useRouteMatch } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { InputSubmit, Select } from \"../../../../components/elements/form-elements\";\r\nimport DatePicker from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport ModalDialog, { useModal } from \"../../../../components/modal/ModalDialog\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport Wrappers from \"../../../../components/wrappers/Wrappers\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport { toast } from \"react-toastify\";\r\nimport CountryService from \"../../../../services/User/CountryService\";\r\nimport Globals from \"../../../../globalVars.js\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ScreenWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-top: 56px;\r\n\r\n &.firstTime {\r\n padding-left: 145px;\r\n }\r\n`;\r\n\r\nlet nationalityLookupResult = [];\r\n\r\nconst nationalityLookup = async (filter) => {\r\n if (!filter || filter.length < 3) return [];\r\n const res = await CompanyService.getNationalities(filter);\r\n if (res.error) {\r\n toast.error(res.error.message);\r\n return [];\r\n }\r\n nationalityLookupResult = res.data.data;\r\n return res.data.data.map((r) => r.nationality);\r\n};\r\n\r\nconst getNationalId = (nationality) => {\r\n const match = nationalityLookupResult.filter((itm) => itm.nationality === nationality);\r\n return match.length > 0 ? match[0].id : \"\";\r\n};\r\n\r\nlet countryLookupResult = [];\r\nconst countryLookup = async (getAllCountries) => {\r\n if (!getAllCountries || getAllCountries.length < 3) return [];\r\n const res = await CountryService.getCountryNames(getAllCountries);\r\n if (res.error) {\r\n toast.error(res.error.message);\r\n return [];\r\n }\r\n countryLookupResult = res.data.data;\r\n return res.data.data.map((r) => r.countryName);\r\n};\r\n\r\nconst getCountryId = (country) => {\r\n const match = countryLookupResult.filter((c) => c.countryName === country);\r\n return match.length > 0 ? match[0].id : \"\";\r\n};\r\n\r\nexport const CompanyEditForm = ({\r\n formik,\r\n isLoading,\r\n countryData,\r\n isCompleted,\r\n fullyRegister,\r\n resetState,\r\n}) => {\r\n const { t } = new useTranslation();\r\n const [isMasterAdmin] = useState(UserService.isInRole(Roles.InstallerCompanyAdmin));\r\n const history = useHistory();\r\n let unregisterListener = useRef(() => {});\r\n const lastPrompt = useRef({\r\n date: new Date(),\r\n nextLocation: null,\r\n shouldLeave: false,\r\n });\r\n\r\n const isFirstTime = useRouteMatch({\r\n path: \"/company/edit\",\r\n strict: false,\r\n });\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup([\r\n \"title\",\r\n \"title_companyAddressInformation\",\r\n \"title_legalInformation\",\r\n \"title_contactInformation\",\r\n ]);\r\n useEffect(() => {\r\n if (isCompleted) {\r\n unregisterListener.current = history.listen((location) => {\r\n if (location.pathname !== \"/company/edit\") {\r\n fullyRegister();\r\n }\r\n });\r\n }\r\n\r\n return unregisterListener.current;\r\n }, [isCompleted, history, fullyRegister]);\r\n useEffect(() => {\r\n return resetState;\r\n }, [resetState]);\r\n\r\n const handleBlockedNavigation = (nextLocation, dirty) => {\r\n if (!dirty || lastPrompt.current.shouldLeave) return true;\r\n const promptDate = new Date();\r\n if (\r\n nextLocation === window.location.pathname ||\r\n promptDate.getTime() - lastPrompt.current.date.getTime() < 600\r\n ) {\r\n return false;\r\n }\r\n lastPrompt.current = {\r\n date: promptDate,\r\n nextLocation,\r\n shouldLeave: false,\r\n };\r\n toggleOpen();\r\n return false;\r\n };\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n isWarning: true,\r\n title: t(\"actions:dialogs.signOut.title\"),\r\n onConfirm: async (equipment) => {\r\n lastPrompt.current.shouldLeave = true;\r\n toggleOpen();\r\n history.push(lastPrompt.current.nextLocation);\r\n },\r\n onCancel: () => {\r\n lastPrompt.current = {\r\n date: new Date(),\r\n nextLocation: \"\",\r\n shouldLeave: false,\r\n };\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.signOut.yes\"),\r\n });\r\n\r\n return (\r\n \r\n handleBlockedNavigation(nextLocation, formik.dirty)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n 0\r\n ? countryData.countries.map((country) => {\r\n return {\r\n key: country.id,\r\n value: country.id,\r\n label: country.countryName,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {\r\n setTimeout(() => {\r\n formik.setFieldValue(\r\n \"legalRepresentativeNationalitySelected\",\r\n sel\r\n );\r\n formik.setFieldValue(\r\n \"legalRepresentativeNationalityId\",\r\n getNationalId(sel)\r\n );\r\n }, 250);\r\n }}\r\n wrapperVariant=\"flex-half\"\r\n {...formik}\r\n />\r\n\r\n {\r\n setTimeout(() => {\r\n formik.setFieldValue(\r\n \"legalRepresentativeCountryOfResidenceSelected\",\r\n sel\r\n );\r\n formik.setFieldValue(\r\n \"legalRepresentativeCountryOfResidenceId\",\r\n getCountryId(sel)\r\n );\r\n }, 250);\r\n }}\r\n wrapperVariant=\"flex-half\"\r\n {...formik}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"actions:dialogs.unsaved.text\")}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataEntry from \"../../../../components/data-entry/DataEntry\";\r\nimport Anchor from \"../../../../components/elements/form-elements/Link\";\r\nimport EffectError from \"../../../../components/errors/EffectError\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport LayoutInnerContainer from \"../../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport FullScreenNotification from \"../../../../components/notifications/FullScreenNotification\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport companyStateModule from \"../../../../core/state/company/companyStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport userStateModule from \"../../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport commonValidation from \"../../../../core/validations/common\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport { CompanyEditForm } from \"./CompanyEditForm\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport * as yup from \"yup\";\r\n\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nexport const Wrapper = styled.div`\r\n margin-bottom: 20px;\r\n`;\r\n\r\nexport const FormWrapper = styled(Flex.Row)`\r\n width: 800px;\r\n margin: 30px auto;\r\n`;\r\n\r\nconst LinerNotesDialog = styled.div`\r\n margin-top: 10px;\r\n font-size: 12px;\r\n font-weight: 300;\r\n line-height: 1.5;\r\n`;\r\n\r\nconst getCompanyValidation = (t) => {\r\n return yup.lazy((values) => {\r\n return buildValidation({\r\n email: commonValidation.email(t).rule,\r\n companyName: ValidationRule.isStringRule().required(\r\n t(\"forms:companyName.required\")\r\n ).rule,\r\n companyNumber: ValidationRule.isStringRule().required(\r\n \"forms:companyNumber.required\"\r\n ).rule,\r\n vatNumber: commonValidation\r\n .vatNumber(t)\r\n .required(t(\"forms:VAT.required\")).rule,\r\n address: ValidationRule.isStringRule().required(\r\n t(\"forms:address.required\")\r\n ).rule,\r\n contactPersonFirstName: ValidationRule.isStringRule().required(\r\n t(\"forms:contactFirstName.required\")\r\n ).rule,\r\n contactPersonLastName: ValidationRule.isStringRule().required(\r\n t(\"forms:contactLastName.required\")\r\n ).rule,\r\n city: ValidationRule.isStringRule().required(\r\n t(\"forms:city.required\")\r\n ).rule,\r\n postalCode: ValidationRule.isStringRule().required(\r\n t(\"forms:postalCode.required\")\r\n ).rule,\r\n legalRepresentativeRegion: ValidationRule.isStringRule().required(\r\n t(\"forms:region.required\")\r\n ).rule,\r\n legalRepresentativePostalCode:\r\n ValidationRule.isStringRule().required(\r\n t(\"forms:postalCode.required\")\r\n ).rule,\r\n legalRepresentativeCity: ValidationRule.isStringRule().required(\r\n t(\"forms:city.required\")\r\n ).rule,\r\n legalRepresentativeAddress: ValidationRule.isStringRule().required(\r\n t(\"forms:address.required\")\r\n ).rule,\r\n legalRepresentativeNationality: ValidationRule.shouldBeEqual(\r\n \"legalRepresentativeNationalitySelected\",\r\n t(\"forms:nationality.invalid\"),\r\n t(\"forms:nationality.required\")\r\n ).rule,\r\n legalRepresentativeCountryOfResidence: ValidationRule.shouldBeEqual(\r\n \"legalRepresentativeCountryOfResidenceSelected\",\r\n t(\"forms:countryOfResidence.invalid\"),\r\n t(\"forms:countryOfResidence.required\")\r\n ).rule,\r\n });\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n phoneNumber: \"\",\r\n address: \"\",\r\n postalCode: \"\",\r\n city: \"\",\r\n countryId: \"\",\r\n region: \"\",\r\n companyNumber: \"\",\r\n contactPersonFirstName: \"\",\r\n contactPersonLastName: \"\",\r\n email: \"\",\r\n companyName: \"\",\r\n vatNumber: \"\",\r\n legalRepresentativeFirstName: \"\",\r\n legalRepresentativeLastName: \"\",\r\n legalRepresentativeNationality: \"\",\r\n legalRepresentativeNationalitySelected: \"\",\r\n legalRepresentativeNationalityId: \"\",\r\n legalRepresentativeEmail: \"\",\r\n legalRepresentativeCountryOfResidence: \"\",\r\n legalRepresentativeCountryOfResidenceId: \"\",\r\n legalRepresentativeCountryOfResidenceSelected: \"\",\r\n legalRepresentativeBirthDate: \"\",\r\n legalRepresentativeAddress: \"\",\r\n legalRepresentativeCity: \"\",\r\n legalRepresentativePostalCode: \"\",\r\n legalRepresentativeRegion: \"\",\r\n};\r\n\r\nconst CompanyEditScreen = () => {\r\n const { t } = useTranslation([\"common\", \"forms\"]);\r\n const yupValidation = getCompanyValidation(t);\r\n const history = useHistory();\r\n const { isFullyRegistered, fullyRegister } =\r\n useStateModule(userStateModule);\r\n const {\r\n companyData,\r\n updateCompany,\r\n updateCompanyData,\r\n countryData,\r\n loadCountries,\r\n loadCompany,\r\n resetState,\r\n } = useStateModule(companyStateModule);\r\n\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const userCompanyId = userDetails.CompanyId || null;\r\n const [companyId] = useState(userCompanyId);\r\n\r\n useEffect(() => {\r\n if (!companyData.data.id && !companyData.isLoading) {\r\n loadCompany(companyId);\r\n }\r\n }, [companyId, companyData.isLoading, companyData]);\r\n\r\n useEffect(() => {\r\n loadCountries();\r\n }, [companyId, loadCountries]);\r\n\r\n let initialValues = helpers.getInitialFormValues(\r\n defaultInitialValues,\r\n companyData.data\r\n );\r\n\r\n initialValues.legalRepresentativeNationalitySelected =\r\n companyData.data.legalRepresentativeNationality;\r\n initialValues.legalRepresentativeCountryOfResidenceSelected =\r\n companyData.data.legalRepresentativeCountryOfResidence;\r\n\r\n const handleCompanySubmit = async (values, formik) => {\r\n if (IsLegalRepresentativeChanged(values)) {\r\n toggleOpen({ values, formik });\r\n } else await finalizeSubmit(values, formik);\r\n };\r\n\r\n const finalizeSubmit = async (values, formik) => {\r\n let formData = helpers.getFormData(values, { vatNumber: \"VATNumber\" });\r\n formData.delete(\"Id\");\r\n formData.delete(\"legalRepresentativeNationalitySelected\");\r\n formData.delete(\"legalRepresentativeCountryOfResidenceSelected\");\r\n if (IsLegalRepresentativeChanged(values)) {\r\n toggleOpen({ values, formik });\r\n }\r\n await updateCompany(formData);\r\n formik.setSubmitting(false);\r\n formik.resetForm({ values: values });\r\n if (isFullyRegistered) {\r\n toast.success(t(\"screens:companyEdit.successfullySaved\"));\r\n }\r\n };\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.changeLegalRepresentative.title\"),\r\n onConfirm: async ({ values, formik }) => {\r\n await finalizeSubmit(values, formik);\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.changeLegalRepresentative.confirmText\"),\r\n });\r\n\r\n const IsLegalRepresentativeChanged = (newValues) => {\r\n const { data } = companyData;\r\n\r\n const isChanged =\r\n newValues.legalRepresentativeBirthDate !==\r\n data.legalRepresentativeBirthDate ||\r\n newValues.legalRepresentativeCountryOfResidenceId !==\r\n data.legalRepresentativeCountryOfResidenceId ||\r\n newValues.legalRepresentativeEmail !==\r\n data.legalRepresentativeEmail ||\r\n newValues.legalRepresentativeFirstName !==\r\n data.legalRepresentativeFirstName ||\r\n newValues.legalRepresentativeLastName !==\r\n data.legalRepresentativeLastName ||\r\n newValues.legalRepresentativeNationalityId !==\r\n data.legalRepresentativeNationalityId ||\r\n newValues.legalRepresentativeAddress !==\r\n data.legalRepresentativeAddress ||\r\n newValues.legalRepresentativeCity !==\r\n data.legalRepresentativeCity ||\r\n newValues.legalRepresentativePostalCode !==\r\n data.legalRepresentativePostalCode ||\r\n newValues.legalRepresentativeRegion !==\r\n data.legalRepresentativeRegion;\r\n return isChanged;\r\n };\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:company\"),\r\n },\r\n {\r\n text: t(\"navigation:companyDetails\"),\r\n },\r\n ]);\r\n\r\n if (!companyId) {\r\n history.push(\"/\");\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:companyEdit.title\")}\r\n \r\n {}}>\r\n (\r\n \r\n )}\r\n initialValues={initialValues}\r\n validationSchema={yupValidation}\r\n />\r\n \r\n {!isFullyRegistered && updateCompanyData.isCompleted && (\r\n \r\n {t(\"screens:companyEdit.successfullySavedLink\")}\r\n \r\n }\r\n refreshToken={true}\r\n redirect={true}\r\n redirectTo=\"/\"\r\n />\r\n )}\r\n \r\n

    {t(\"actions:dialogs.changeLegalRepresentative.text\")}

    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\nexport default CompanyEditScreen;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Flex from \"../../../../../components/layout/flex/Flex\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\n\r\nconst WizardCompanyDetails = (props) => {\r\n const {t} = useTranslation('forms');\r\n const {companyData} = props;\r\n\r\n if (!companyData) {\r\n return null;\r\n }\r\n\r\n const currentCompanyData = companyData.data;\r\n\r\n return (\r\n \r\n \r\n {currentCompanyData && currentCompanyData.companyName}\r\n \r\n \r\n {\r\n currentCompanyData.address &&\r\n <>\r\n {t('account.address')}:\r\n  \r\n {currentCompanyData.address}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {\r\n currentCompanyData.city &&\r\n <>\r\n {t('account.city')}:\r\n  \r\n {currentCompanyData.city}\r\n \r\n }\r\n \r\n \r\n {\r\n currentCompanyData.region &&\r\n <>\r\n {t('account.region')}:\r\n  \r\n {currentCompanyData.region}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {\r\n currentCompanyData.postalCode &&\r\n <>\r\n {t('account.postal')}:\r\n  \r\n {currentCompanyData.postalCode}\r\n \r\n }\r\n \r\n \r\n {\r\n currentCompanyData.countryName &&\r\n <>\r\n {t('account.country')}:\r\n  \r\n {currentCompanyData.countryName}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default WizardCompanyDetails;\r\n\r\nWizardCompanyDetails.propTypes = {\r\n companyData: PropTypes.any.isRequired\r\n}\r\n","import React from \"react\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport helpers from \"../../../../../core/helpers\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport WizardCompanyDetails from \"../details/WizardCompanyDetails\";\r\n\r\nconst defaultInitialValues = {\r\n IBAN: '',\r\n}\r\n\r\nconst validForm = (t) => {\r\n return buildValidation({\r\n IBAN: ValidationRule.isStringRule().isIBAN(t('forms:iban.invalid'))\r\n .required(t('forms:iban.required')).rule\r\n })\r\n};\r\n\r\nconst IBANWizard = (t, companyData) => {\r\n let initialValues = null;\r\n if (companyData) {\r\n const extendedValues = {\r\n address: companyData.data.address,\r\n city: companyData.data.city,\r\n postalCode: companyData.data.postalCode,\r\n countryId: companyData.data.countryId,\r\n region: companyData.data.region\r\n }\r\n\r\n initialValues = helpers.getInitialFormValues(defaultInitialValues, extendedValues);\r\n }\r\n\r\n return {\r\n title: t('forms:iban.step1'),\r\n initialValues: initialValues,\r\n steps: [{\r\n name: 'Owner and Bank account information',\r\n fieldNames: ['IBAN', 'address', 'city', 'postalCode', 'countryId', 'region'],\r\n validation: validForm(t),\r\n fields: formik => (\r\n <>\r\n \r\n \r\n \r\n )\r\n }]\r\n }\r\n }\r\n;\r\n\r\nexport default IBANWizard;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_794\",\n \"data-name\": \"Path 794\",\n d: \"M50.973,6.6,57.81,33.755h.2L64.843,6.6h9.768V43.718H67.188V32.974l.586-14.457-7.424,25.2H55.466L48.238,18.712l.586,14.261V43.718H41.4V6.6Z\",\n transform: \"translate(39.479 6.294)\",\n fill: \"#d85527\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_795\",\n \"data-name\": \"Path 795\",\n d: \"M80.227,35.709H70.068l-2.149,8.01H60.3L71.045,6.6h7.814L89.6,43.718H81.985Zm-8.6-5.665h7.033L75.147,16.954h-.2Z\",\n transform: \"translate(57.502 6.294)\",\n fill: \"#d85527\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_796\",\n \"data-name\": \"Path 796\",\n d: \"M101.8,43.718H94.764L83.628,19.884l-.2.2V43.718H76.4V6.6h7.033L94.568,30.239h.2V6.6H101.8Z\",\n transform: \"translate(72.855 6.294)\",\n fill: \"#d85527\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_797\",\n \"data-name\": \"Path 797\",\n d: \"M118.1,38.144a13.166,13.166,0,0,1-4.493,4.1A14.663,14.663,0,0,1,105.989,44a13.141,13.141,0,0,1-9.573-3.516Q92.9,36.972,92.9,30.525V19.584c0-4.3,1.172-7.424,3.516-9.768A12.521,12.521,0,0,1,105.6,6.3c4.1,0,7.228.977,9.182,2.93,2.149,1.954,3.126,4.884,3.126,8.6v.2h-6.838a6.828,6.828,0,0,0-1.368-4.493c-.781-.977-2.149-1.368-4.1-1.368a4.675,4.675,0,0,0-4.1,1.954,8.913,8.913,0,0,0-1.563,5.665V31.111a8.913,8.913,0,0,0,1.563,5.665,5.718,5.718,0,0,0,4.493,1.954,6.317,6.317,0,0,0,3.126-.586,5.043,5.043,0,0,0,1.758-1.758V29.353h-4.884V24.273H118.1V38.144Z\",\n transform: \"translate(88.59 6.008)\",\n fill: \"#d85527\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_798\",\n \"data-name\": \"Path 798\",\n d: \"M133.988,30.425c0,4.3-1.172,7.619-3.516,10.159a12.8,12.8,0,0,1-9.377,3.712c-3.907,0-7.033-1.172-9.377-3.712-2.344-2.344-3.516-5.861-3.516-10.159V20.071c0-4.3,1.172-7.619,3.516-10.159s5.47-3.712,9.377-3.712,7.033,1.172,9.377,3.712,3.516,5.861,3.516,10.159V30.425Zm-7.228-10.354a10.207,10.207,0,0,0-1.563-6.056,5.7,5.7,0,0,0-8.6,0c-.977,1.368-1.368,3.321-1.368,6.056V30.425c0,2.735.391,4.689,1.368,6.056a5.7,5.7,0,0,0,8.6,0,10.207,10.207,0,0,0,1.563-6.056V20.071Z\",\n transform: \"translate(103.18 5.912)\",\n fill: \"#d85527\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_799\",\n \"data-name\": \"Path 799\",\n d: \"M131.028,30.139V43.423H123.8V6.5h12.894a11.935,11.935,0,0,1,8.791,3.321c2.149,2.149,3.126,5.079,3.126,8.6a11.785,11.785,0,0,1-3.321,8.6,11.935,11.935,0,0,1-8.791,3.321h-5.47v-.2Zm0-5.861h5.665a3.944,3.944,0,0,0,3.516-1.758,7.43,7.43,0,0,0,1.172-4.3,7.429,7.429,0,0,0-1.172-4.3,3.944,3.944,0,0,0-3.516-1.758h-5.665V24.278Z\",\n transform: \"translate(118.056 6.198)\",\n fill: \"#d85527\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_800\",\n \"data-name\": \"Path 800\",\n d: \"M154.95,35.509h-9.768l-1.954,7.814H136L146.549,6.4h7.619l10.354,36.923h-7.228Zm-8.4-5.665h6.838l-3.321-13.089h-.2Z\",\n transform: \"translate(129.69 6.103)\",\n fill: \"#d85527\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_801\",\n \"data-name\": \"Path 801\",\n d: \"M163.466,22.324,169.717,6.5h7.814L166.982,30.334V43.423h-7.228V29.748L149.4,6.5h7.814Z\",\n transform: \"translate(142.468 6.198)\",\n fill: \"#d85527\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_802\",\n \"data-name\": \"Path 802\",\n d: \"M15.154,25.7,4.8,15.154,15.154,4.8Z\",\n transform: \"translate(4.577 4.577)\",\n fill: \"#edc05c\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_803\",\n \"data-name\": \"Path 803\",\n d: \"M15.154,36.208,4.8,25.854,15.154,15.5Z\",\n transform: \"translate(4.577 14.781)\",\n fill: \"#a9be68\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_804\",\n \"data-name\": \"Path 804\",\n d: \"M20.649,31,10.1,20.649,20.649,10.1Z\",\n transform: \"translate(9.631 9.631)\",\n fill: \"#e7804c\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_805\",\n \"data-name\": \"Path 805\",\n d: \"M15.5,10.1,25.854,20.649,15.5,31Z\",\n transform: \"translate(14.781 9.631)\",\n fill: \"#d43d29\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_806\",\n \"data-name\": \"Path 806\",\n d: \"M20.8,25.7,31.154,15.154,20.8,4.8Z\",\n transform: \"translate(19.835 4.577)\",\n fill: \"#cd302f\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_807\",\n \"data-name\": \"Path 807\",\n d: \"M20.8,36.208,31.154,25.854,20.8,15.5Z\",\n transform: \"translate(19.835 14.781)\",\n fill: \"#d43d29\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_808\",\n \"data-name\": \"Path 808\",\n d: \"M35.577,20.554a2.218,2.218,0,0,0-.586-1.563L26.2,10.2V30.908l8.791-8.6A6.209,6.209,0,0,0,35.577,20.554Z\",\n transform: \"translate(24.984 9.727)\",\n fill: \"#c22b2b\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_809\",\n \"data-name\": \"Path 809\",\n d: \"M.781,18.7A2.121,2.121,0,0,0,0,20.454a2.218,2.218,0,0,0,.586,1.563l8.791,8.791V10.1Z\",\n transform: \"translate(0 9.631)\",\n fill: \"#c7cd2c\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_810\",\n \"data-name\": \"Path 810\",\n d: \"M18.891,39.945a2.476,2.476,0,0,0,1.758.781V20.8L10.1,31.349Z\",\n transform: \"translate(9.631 19.835)\",\n fill: \"#ed9b32\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_811\",\n \"data-name\": \"Path 811\",\n d: \"M15.5,40.727a3.151,3.151,0,0,0,1.758-.586l8.791-8.791L15.5,20.8Z\",\n transform: \"translate(14.781 19.835)\",\n fill: \"#e26550\"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_812\",\n \"data-name\": \"Path 812\",\n d: \"M20.649,0a3.151,3.151,0,0,0-1.758.586L10.1,9.182,20.649,19.731Z\",\n transform: \"translate(9.631)\",\n fill: \"#e7804c\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_813\",\n \"data-name\": \"Path 813\",\n d: \"M17.258.781A2.386,2.386,0,0,0,15.5,0V19.731L26.049,9.182Z\",\n transform: \"translate(14.781)\",\n fill: \"#ed9b32\"\n});\n\nvar SvgMangopay = function SvgMangopay(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"mangopay\",\n width: 320,\n height: 60.562,\n viewBox: \"0 0 320 60.562\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMangopay, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/mangopay.b71636fa.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataTable from \"../../../../components/data/DataTable\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport LayoutInnerContainer from \"../../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport ModalDialog, { useModal } from \"../../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport companyStateModule from \"../../../../core/state/company/companyStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport PaymentService from \"../../../../services/Payment/PaymentService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport IBANWizard from \"./wizard/IBANWizard\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { ReactComponent as MangoSvg } from \"../../../../assets/mangopay.svg\";\r\n\r\nconst Information = styled.div`\r\n margin-bottom: 75px;\r\n\r\n img {\r\n &.mangopay {\r\n width: 320px;\r\n margin: 0 0 44px 0;\r\n }\r\n &.file-icon {\r\n width: 32px;\r\n vertical-align: middle;\r\n margin: 0 16px 0 0;\r\n }\r\n }\r\n\r\n p {\r\n &.larger {\r\n font-size: 20px;\r\n }\r\n\r\n &.status {\r\n font-weight: bold;\r\n margin: 0 0 36px;\r\n }\r\n\r\n &.success {\r\n color: ${(props) => props.theme.textActive};\r\n }\r\n\r\n &.fail {\r\n color: ${(props) => props.theme.error};\r\n }\r\n &.mt-0 {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n a {\r\n color: ${(props) => props.theme.primaryActionColor};\r\n font-weight: bold;\r\n text-decoration: none;\r\n\r\n &.file {\r\n color: ${(props) => props.theme.tertiaryColor};\r\n font-weight: normal;\r\n }\r\n }\r\n`;\r\n\r\nconst InfoWrapper = styled.div`\r\n display: flex;\r\n margin: 56px 0px 0px 0px;\r\n\r\n & .left {\r\n width: 60%;\r\n }\r\n\r\n & .right {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n flex: 1;\r\n border-left: 1px solid #fff;\r\n\r\n & .end {\r\n align-self: flex-end;\r\n margin-bottom: 155px;\r\n width: 100%;\r\n }\r\n\r\n & a {\r\n text-decoration: none;\r\n color: ${(p) => p.theme.primaryActionColor};\r\n }\r\n }\r\n`;\r\n\r\nconst LinkWrapper = styled.div`\r\n background: url(\"/images/mangopay-bg.svg\") no-repeat;\r\n background-size: 130%;\r\n margin-left: 100px;\r\n height: 100%;\r\n display: flex;\r\n margin-top: 60px;\r\n text-align: right;\r\n padding-right: 60px;\r\n`;\r\n\r\nconst MangoWrapper = styled.div`\r\n text-align: right;\r\n`;\r\n\r\nconst StyledMango = styled(MangoSvg)`\r\n width: 320px;\r\n height: auto;\r\n margin-right: 60px;\r\n`;\r\n\r\nconst PaymentsScreen = () => {\r\n const [isMasterAdmin] = useState(UserService.isInRole(Roles.InstallerCompanyAdmin));\r\n const { t } = useTranslation();\r\n const { companyData, loadCompany } = useStateModule(companyStateModule);\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:company\"),\r\n },\r\n {\r\n text: t(\"navigation:paymentSettings\"),\r\n },\r\n ]);\r\n\r\n const [bankAccount, setBankAccount] = useState(null);\r\n\r\n // BANK ACCOUNT\r\n const [myBankAccounts, loadMyBankAccounts] = useDataReducer(async () => {\r\n return await PaymentService.getMyBankAccounts();\r\n });\r\n\r\n useEffect(() => {\r\n loadMyBankAccounts();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (companyData.data.id && !companyData.isLoading) {\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const userCompanyId = userDetails.CompanyId || null;\r\n loadCompany(userCompanyId);\r\n }\r\n }, []);\r\n\r\n const ibanColumns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"forms:iban.text\"),\r\n accessor: \"iban\",\r\n },\r\n {\r\n Header: t(\"forms:swift.text\"),\r\n accessor: \"bic\",\r\n Cell: ({ cell: { value } }) => (value ? value : \"/\"),\r\n },\r\n {\r\n Header: t(\"forms:status.text\"),\r\n accessor: \"archived\",\r\n Cell: ({ cell: { value } }) =>\r\n !value ? t(\"filters:ibanStatus.active\") : t(\"filters:ibanStatus.deactivated\"),\r\n },\r\n {\r\n Header: \"\",\r\n id: \"id\",\r\n Cell: ({ cell: { value, row } }) => {\r\n return (\r\n \r\n \r\n {\r\n deactivateIban(row.original);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n [t, myBankAccounts]\r\n );\r\n\r\n const { modalProps: modalPropsDeactivateIban, toggleOpen: toggleOpenDeactivateIban } = useModal(\r\n {\r\n title: t(\"actions:dialogs.ibanDeactivate.title\"),\r\n isWarning: true,\r\n onConfirm: async (bankAccountId) => {\r\n const result = await PaymentService.deactivateBankAccount(bankAccountId);\r\n if (result && result.error) {\r\n toast.error(t(\"result.error.message\"));\r\n } else {\r\n toast.success(\"actions:dialogs.ibanDeactivate.toastNotification.success\");\r\n loadMyBankAccounts();\r\n }\r\n toggleOpenDeactivateIban();\r\n },\r\n onCancel: () => {\r\n toggleOpenDeactivateIban();\r\n },\r\n confirmText: t(\"actions:dialogs.ibanDeactivate.confirmText\"),\r\n }\r\n );\r\n\r\n const {\r\n modalProps: modalPropsCannotDeactivateIban,\r\n toggleOpen: toggleOpenCannotDeactivateIban,\r\n } = useModal({\r\n title: t(\"actions:dialogs.ibanDeactivate.titleAlt\"),\r\n type: \"warning\",\r\n isWarning: false,\r\n onConfirm: async () => {\r\n toggleOpenCannotDeactivateIban();\r\n },\r\n confirmText: t(\"actions:dialogs.ibanDeactivate.ok\"),\r\n });\r\n\r\n const deactivateIban = (original) => {\r\n if (!myBankAccounts.data) return;\r\n const activeBankAccounts = myBankAccounts?.data.filter((acc) => !acc.archived);\r\n if (activeBankAccounts.length < 2) {\r\n toggleOpenCannotDeactivateIban();\r\n return;\r\n }\r\n const bankAccountId = helpers.getFormData({\r\n bankAccountId: original.id,\r\n });\r\n setBankAccount(original.iban);\r\n toggleOpenDeactivateIban(bankAccountId);\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:paymentSettings.title\")}\r\n \r\n\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {myBankAccounts.data && (\r\n \r\n )}\r\n\r\n {isMasterAdmin && (\r\n {\r\n ModalWizard.show(IBANWizard(t, companyData), {\r\n onSubmit: async (values) => {\r\n const result =\r\n await PaymentService.createBankAccount(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result && result.error)\r\n toast.error(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\r\n \"actions:dialogs.createBankAccount.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n await loadMyBankAccounts();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n }}\r\n >\r\n {t(\"screens:payments.iban.btn\")}\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {t(\"screens:payments.mangopay.frameworkAgreement\")}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n

    {t(\"actions:dialogs.ibanDeactivate.singularTitle\")}

    \r\n

    {t(\"actions:dialogs.ibanDeactivate.singularMessage\")}

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PaymentsScreen;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport {\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\n\r\nconst initialValues = {\r\n files: \"\",\r\n};\r\n\r\nconst KYCValidation = (t) => {\r\n return buildValidation({\r\n files: ValidationRule.isStringRule().required(\r\n t(\"forms:kyc.documentFiles.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst StyledHtml = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n font-size: 12px;\r\n font-weight: 600;\r\n\r\n & a {\r\n color: #2294d2;\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst StyledDiv = styled.div`\r\n color: #8e8e8e;\r\n line-height: 18px;\r\n & b {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst StyledList = styled.ul`\r\n color: ${(p) => p.theme.primaryColor};\r\n margin: 0;\r\n padding: 0 0 0 56px;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size || 1}px;\r\n`;\r\n\r\nfunction markup(markup) {\r\n return { __html: markup };\r\n}\r\n\r\nconst Bullet = styled.span`\r\n display: list-item;\r\n &:after {\r\n content: \":\";\r\n }\r\n min-width: 100px;\r\n`;\r\n\r\nconst RequirementContainer = styled.div`\r\n padding: 10px 0px 20px 30px;\r\n`;\r\n\r\nconst RequirementRow = styled.div`\r\n display: flex;\r\n`;\r\n\r\nconst RequirementLabel = styled.div`\r\n padding: 0px 10px;\r\n`;\r\nconst RequirementDescription = styled.div`\r\n color: ${(props) => props.theme.primaryColor};\r\n`;\r\n\r\nconst KYCWizard = (t, documentType, showGuide) => {\r\n const docName = t(`forms:kyc.docType.${documentType}`);\r\n return {\r\n title: docName,\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t(\r\n `${t(\"forms:kyc.create\")} ${docName} ${t(\r\n \"forms:kyc.documentFiles.uploadTitle\"\r\n )}`\r\n ),\r\n validation: KYCValidation(t),\r\n fieldNames: [\"files\"],\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(`forms:kyc.createDoc.${documentType}`)}\r\n \r\n {documentType === \"IDENTITY_PROOF\" && (\r\n \r\n \r\n\r\n \r\n
    \r\n {t(\"forms:kyc.info.pleaseRead\")}{\" \"}\r\n showGuide()}>\r\n {t(\"forms:kyc.info.guidelines\")}\r\n \r\n
    \r\n
    \r\n )}\r\n {documentType === \"ARTICLES_OF_ASSOCIATION\" && (\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n {t(\r\n \"forms:kyc.info.countries.czechRepublic\"\r\n )}\r\n \r\n \r\n \r\n {t(\r\n \"forms:kyc.info.articleOfAssociationCountry.czechRepublic\"\r\n )}\r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n {t(\r\n \"forms:kyc.info.countries.hungary\"\r\n )}\r\n \r\n \r\n \r\n {t(\r\n \"forms:kyc.info.articleOfAssociationCountry.hungary\"\r\n )}\r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n {t(\r\n \"forms:kyc.info.countries.slovakia\"\r\n )}\r\n \r\n \r\n \r\n {t(\r\n \"forms:kyc.info.articleOfAssociationCountry.slovakia\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {documentType === \"REGISTRATION_PROOF\" && (\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\" \"}\r\n \r\n {t(\r\n \"forms:kyc.info.countries.czechRepublic\"\r\n )}\r\n \r\n \r\n \r\n {t(\r\n \"forms:kyc.info.regProofCountry.czechRepublic\"\r\n )}\r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n {t(\r\n \"forms:kyc.info.countries.hungary\"\r\n )}\r\n \r\n \r\n \r\n {t(\r\n \"forms:kyc.info.regProofCountry.hungary\"\r\n )}\r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n {t(\r\n \"forms:kyc.info.countries.slovakia\"\r\n )}\r\n \r\n \r\n \r\n {t(\r\n \"forms:kyc.info.regProofCountry.slovakia\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {documentType ===\r\n \"SHAREHOLDER_DECLARATION\" && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default KYCWizard;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Radio } from \"../form-elements\";\r\n\r\nconst TableWrapper = styled.table`\r\n width: 100%;\r\n border: none;\r\n border-collapse: collapse;\r\n & th {\r\n font-weight: 600;\r\n padding-bottom: 20px;\r\n }\r\n\r\n & td {\r\n padding: 12px 0px;\r\n }\r\n & tr.selected {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n & tr:not(:last-child) td {\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n &.desktop {\r\n font-size: 0.875rem;\r\n }\r\n\r\n &.desktop-table {\r\n font-size: 0.875rem;\r\n font-weight: 500;\r\n th {\r\n text-transform: uppercase;\r\n text-align: left;\r\n }\r\n }\r\n\r\n &.modal {\r\n font-size: 0.875rem;\r\n font-weight: 500;\r\n\r\n th {\r\n text-transform: uppercase;\r\n }\r\n }\r\n`;\r\n\r\nconst SimpleTable = ({\r\n columns = [],\r\n data = [],\r\n selected = [],\r\n wrapperVariant = \"\",\r\n shouldScrollInfoView = false,\r\n radioSelect = false,\r\n}) => {\r\n const scrollIntoView = (elemId) => {\r\n if (elemId && document.getElementById(elemId)) {\r\n document.getElementById(elemId).scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"nearest\",\r\n inline: \"start\",\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {columns.map((col, idx) => (\r\n {col.header}\r\n ))}\r\n \r\n \r\n \r\n {data.map((item, idx) => {\r\n if (shouldScrollInfoView && selected.includes(idx)) {\r\n scrollIntoView(`tr-${idx + 1}`);\r\n }\r\n\r\n return (\r\n \r\n {columns.map((col, colIdx) => {\r\n const value = col.cell\r\n ? col.cell(item[col.accessor], item)\r\n : item[col.accessor];\r\n return {value};\r\n })}\r\n {radioSelect && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SimpleTable;\r\n","const KYCDocumentType= {\r\n IDENTITY_PROOF: \"Identity Proof\",\r\n ARTICLES_OF_ASSOCIATION: \"Articles of Association\",\r\n REGISTRATION_PROOF: \"Registration Proof\",\r\n UBO_DECLARATION: \"UBO Declaration\"\r\n};\r\n\r\nexport default KYCDocumentType;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport styled from \"styled-components\";\r\nimport Color from \"color\";\r\n\r\nconst ModalOverlay = styled.div`\r\n display: block;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${(props) =>\r\n props.color\r\n ? props.color\r\n : Color(props.theme.bgOverlay).fade(0.17).string()};\r\n z-index: 700;\r\n`;\r\n\r\nconst ModalContainer = ({ children, isOpen, bgColor, zIndex = 1000 }) => {\r\n if (!isOpen) {\r\n return null;\r\n }\r\n\r\n return ReactDOM.createPortal(\r\n {children},\r\n document.body\r\n );\r\n};\r\n\r\nexport default ModalContainer;\r\n","import styled from \"styled-components\";\r\nimport FlexRow from \"../../layout/flex/FlexRow\";\r\n\r\nexport const FieldWrapper = styled(FlexRow)`\r\n margin: 4px 0;\r\n font-size: 0.875rem;\r\n display: flex;\r\n // justify-content: space-between;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n\r\nexport const FieldLabel = styled.label`\r\n display: inline-block;\r\n margin: 0 20px 0 0;\r\n padding: 0 0 0 20px;\r\n font-weight: bold;\r\n min-width: 150px;\r\n\r\n &:after {\r\n content: \":\"; \r\n }\r\n`;\r\n\r\nexport const FieldValue = styled.span`\r\n padding: 0;\r\n color: ${props => props.theme.primaryColor};\r\n text-align: right;\r\n\r\n a {\r\n color: ${props => props.theme.primaryColor};\r\n }\r\n`;\r\n\r\nexport const Title = styled.p`\r\n color: ${props => props.theme.primaryColor};\r\n margin: 0 0 40px;\r\n font-size: 1.125rem;\r\n`;\r\n\r\nexport const NumSection = styled.div`\r\n padding: 4px 0 4px 0px;\r\n display: flex;\r\n`;\r\n\r\nexport const Num = styled.div`\r\n display:flex;\r\n align-items:center;\r\n /* width: 30px; */\r\n min-width: 30px;\r\n font-weight: 700;\r\n font-size: 24px;\r\n text-align: left;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border-right: 3px solid ${(p) => p.theme.primaryColor};\r\n margin: 0 12px 0 0;\r\n \r\n\r\n &.tight {\r\n font-size:18px;\r\n /* letter-spacing: -4px; */\r\n padding-right: 15px;\r\n }\r\n`;\r\n\r\nexport const NumInfo = styled.div`\r\n font-size: 0.875rem;\r\n line-height: 1.1875rem;\r\n`;\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport {FieldWrapper, FieldLabel, FieldValue} from \"./WizardSummaryFieldStyle\";\r\n\r\nconst WizardSummaryField = (props) => {\r\n const {label, value, multipleValues, dangerousHtml, valueVariant} = props;\r\n\r\n let fieldValue = '';\r\n if (value) {\r\n fieldValue = value;\r\n } else if (multipleValues && multipleValues.length > 0) {\r\n fieldValue = multipleValues.map(val => {\r\n return val.props.children\r\n });\r\n } else {\r\n fieldValue = '-';\r\n }\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n {\r\n dangerousHtml ?\r\n \r\n :\r\n typeof value===\"function\" ? value(): fieldValue.toString()\r\n }\r\n \r\n \r\n )\r\n};\r\n\r\nexport default WizardSummaryField;\r\n\r\nWizardSummaryField.propTypes = {\r\n label: PropTypes.any.isRequired\r\n};\r\n","import React from \"react\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport WizardSummaryField from \"../../../../../components/modal/components/WizardSummaryField\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport { toast } from \"react-toastify\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport CountryService from \"../../../../../services/User/CountryService\";\r\nimport CompanyService from \"../../../../../services/Company/CompanyService\";\r\nimport styled from \"styled-components\";\r\nimport DatePicker from \"../../../../../components/elements/form-elements/DatePicker\";\r\nimport helpers from \"../../../../../core/helpers\";\r\n\r\nconst StyledInfoWrapper = styled(InfoWrapper)`\r\n min-height: auto;\r\n`;\r\n\r\nconst SectionSummaryTitleWrapper = styled.div`\r\n flex-basis: 100%;\r\n display: flex;\r\n flex: 0;\r\n position: relative;\r\n margin-bottom: 20px;\r\n padding: 0px 20px;\r\n \r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n bottom: -10px;\r\n left: 0;\r\n width: 100%;\r\n height: 1px;\r\n border-top: 1px solid #dddddd;\r\n }\r\n`;\r\n\r\nconst SectionSummaryFieldsWrapper = styled.div`\r\n flex: 1; \r\n`;\r\n\r\nconst SummaryInfoTitle = styled.div`\r\n font-size: 1rem;\r\n color: #000;\r\n flex-grow: 1;\r\n font-weight: bold;\r\n line-height: 16px;\r\n display: block;\r\n margin: 8px 0px 0px;\r\n padding-bottom: 10px;\r\n &.primary {\r\n color: ${props => props.theme.primaryColor};\r\n font-size: 1rem;\r\n }\r\n\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n display: block;\r\n`;\r\n\r\nconst SummaryInfoWrapper = styled.div`\r\n width: 100%;\r\n margin: 10px 0px;\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n & > section {\r\n width: 48%;\r\n display: flex;\r\n flex-direction: column;\r\n font-size: 12px;\r\n font-weight: 600;\r\n\r\n & > div.wrong {\r\n color: #f0c40d !important;\r\n }\r\n }\r\n\r\n & > section.bold {\r\n font-size: 14px;\r\n font-weight: 700;\r\n }\r\n\r\n & > section.green {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\n\r\nconst validUboStep1 = (t) => {\r\n return buildValidation({\r\n firstName: ValidationRule.isStringRule().required(\r\n t(\"forms:firstName.required\")\r\n ).rule,\r\n lastName: ValidationRule.isStringRule().required(\r\n t(\"forms:lastName.required\")\r\n ).rule,\r\n addressLine1: ValidationRule.isStringRule().required(\r\n t(\"forms:address.required\")\r\n ).rule,\r\n city: ValidationRule.isStringRule().required(t(\"forms:city.required\"))\r\n .rule,\r\n postalCode: ValidationRule.isStringRule().required(\r\n t(\"forms:postalCode.required\")\r\n ).rule,\r\n region: ValidationRule.isStringRule().required(\r\n t(\"forms:region.required\")\r\n ).rule,\r\n addressCountry: ValidationRule.isStringRule().required(\r\n t(\"forms:country.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst validUboStep2 = (t) => {\r\n return buildValidation({\r\n nationality: ValidationRule.isStringRule().required(\r\n t(\"forms:nationalityId.required\")\r\n ).rule,\r\n birthday: ValidationRule.isStringRule().required(\r\n t(\"forms:birthday.required\")\r\n ).rule,\r\n birthplaceCity: ValidationRule.isStringRule().required(\r\n t(\"forms:birthPlaceCity.required\")\r\n ).rule,\r\n birthplaceCountry: ValidationRule.isStringRule().required(\r\n t(\"forms:birthPlaceCountryId.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {};\r\n\r\nlet nationalityLookupResult = [];\r\n\r\nconst nationalityLookup = async (filter) => {\r\n if (!filter || filter.length < 3) return [];\r\n const res = await CompanyService.getNationalities(filter);\r\n if (res.error) {\r\n toast.error(res.error.message);\r\n return [];\r\n }\r\n nationalityLookupResult = res.data.data;\r\n return res.data.data.map((r) => r.nationality);\r\n};\r\n\r\nlet countryLookupResult = [];\r\nconst countryLookup = async (getAllCountries) => {\r\n if (!getAllCountries || getAllCountries.length < 3) return [];\r\n const res = await CountryService.getCountryNames(getAllCountries);\r\n\r\n if (res.error) {\r\n toast.error(res.error.message);\r\n return [];\r\n }\r\n countryLookupResult = res.data.data;\r\n return res.data.data.map((r) => r.countryName);\r\n};\r\n\r\nconst getCountryId = (country) => {\r\n const match = countryLookupResult.filter((c) => c.countryName === country);\r\n return match.length > 0 ? match[0].id : \"\";\r\n};\r\n\r\n\r\nconst getNationalId = (nationality) => {\r\n const match = nationalityLookupResult.filter(\r\n (itm) => itm.nationality === nationality\r\n );\r\n return match.length > 0 ? match[0].id : \"\";\r\n};\r\n\r\nconst UboDeclarationWizard = (t, initialValues, isEdit) => {\r\n return {\r\n title: isEdit\r\n ? t(\"forms:ubo.editUbo\")\r\n : t(\"forms:ubo.addUbo\"),\r\n dataTest: \"add-ubo-modal\",\r\n className: \"wide\",\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:ubo.firstStep\"),\r\n fieldNames: [\r\n \"firstName\",\r\n \"lastName\",\r\n \"addressLine1\",\r\n \"postalCode\",\r\n \"city\",\r\n \"id\",\r\n \"region\",\r\n \"addressCountryId\",\r\n \"addressCountry\",\r\n \"declarationId\"\r\n ],\r\n validation: validUboStep1(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n {t(\"forms:ubo.primarySection\")}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n {t(\"forms:ubo.addressSection\")}\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {\r\n setTimeout(() => {\r\n formik.setFieldValue(\r\n \"addressCountry\",\r\n sel\r\n );\r\n formik.setFieldValue(\r\n \"addressCountryId\",\r\n getCountryId(sel)\r\n );\r\n }, 250);\r\n }}\r\n wrapperVariant=\"flex-2\"\r\n {...formik}\r\n />\r\n\r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:ubo.secondStep\"),\r\n fieldNames: [\r\n \"nationalityId\",\r\n \"nationality\",\r\n \"birthday\",\r\n \"birthplaceCity\",\r\n \"birthplaceCountryId\",\r\n \"birthplaceCountry\",\r\n ],\r\n validation: validUboStep2(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n {t(\"forms:ubo.primarySection\")}\r\n \r\n \r\n {\r\n setTimeout(() => {\r\n formik.setFieldValue(\r\n \"nationality\",\r\n sel\r\n );\r\n formik.setFieldValue(\r\n \"nationalityId\",\r\n getNationalId(sel)\r\n );\r\n }, 250);\r\n\r\n }}\r\n wrapperVariant=\"flex-2\"\r\n {...formik}\r\n />\r\n\r\n\r\n \r\n \r\n {t(\"forms:ubo.address\")}\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n setTimeout(() => {\r\n formik.setFieldValue(\r\n \"birthplaceCountryId\",\r\n getCountryId(sel)\r\n );\r\n\r\n formik.setFieldValue(\r\n \"birthplaceCountry\",\r\n sel\r\n );\r\n\r\n }, 250);\r\n }}\r\n wrapperVariant=\"flex-2\"\r\n {...formik}\r\n />\r\n \r\n ),\r\n },\r\n\r\n {\r\n name: t(\"forms:ubo.summaryStep\"),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:ubo.info.title\")}\r\n\r\n \r\n \r\n {t(\"forms:ubo.info.text\")}\r\n \r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n {t(\"forms:ubo.primarySection\")}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {t(\"forms:ubo.nationality\")}\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n {t(\"forms:ubo.address\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {t(\"forms:ubo.additionalInformation\")}\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default UboDeclarationWizard;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { HR } from \"../../../pwa/components/StyledElements\";\r\nconst UboDetailSideBar = ({ ubo }) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n\r\n return (\r\n <>\r\n {ubo && (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default UboDetailSideBar;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Value = styled.label`\r\n font-weight: 700;\r\n`;\r\n\r\n\r\nconst UboOwnerCell = ({ cell: { row } }) => {\r\n const { t } = useTranslation(\"table\");\r\n if (row) {\r\n return {`${t('headers.ubo.uboOwner')} ${row.index + 1}`};\r\n }\r\n return null;\r\n};\r\nexport default UboOwnerCell;\r\n","import React, { useEffect, useMemo, useCallback, useState, useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataTable from \"../../../../components/data/DataTable\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport DateTimeCell from \"../../../../components/data/DateCell\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport PaymentService from \"../../../../services/Payment/PaymentService\";\r\nimport UboDeclarationWizard from \"./wizard/UboDeclarationWizard\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport UboDetailSideBar from \"./UboDetailSideBar\";\r\nimport DetailSideBar from \"../../../../components/modal/DetailSideBar\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport useClickAway from \"../../../../hooks/_shared/useClickAway\";\r\nimport {\r\n DataListingContainer,\r\n} from \"../../../../components/data/styles/StyledDataContainer\";\r\nimport SimpleTable from \"../../../../components/elements/general/SimpleTable\";\r\nimport UboOwnerCell from \"./UboOwnerCell\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\n\r\n\r\nconst Container = styled.div`\r\n margin: 0px 0px 0px 20px;\r\n`;\r\n\r\nconst HR = styled.div`\r\n border-bottom: 2px solid #d5d5d5;\r\n height: 2px;\r\n margin: 10px 0px;\r\n\r\n &.heavy {\r\n border-color: black;\r\n }\r\n\r\n &.small {\r\n border-color: black;\r\n height: 1px;\r\n }\r\n`;\r\n\r\nconst CreateUboButton = styled(Button)`\r\n margin: 0 !important;\r\n font-size: 14px;\r\n font-weight: 500 !important;\r\n outline: none !important;\r\n color: #2294D2;\r\n padding: 0px;\r\n\r\n background: transparent !important;\r\n box-shadow: none;\r\n border: none !important;\r\n font-size: 16px;\r\n font-weight: 700;\r\n :hover {\r\n text-decoration: underline;\r\n }\r\n`;\r\n\r\nconst LeftContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-start;\r\n margin-top: 20px;\r\n`;\r\n\r\nconst LinerNotesDialog = styled.div`\r\n margin-top: 10px;\r\n font-size: 12px;\r\n font-weight: 300;\r\n line-height: 1.5;\r\n`;\r\n\r\nconst RightContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n\r\n margin-top: 20px;\r\n\r\n`;\r\n\r\nconst SubmitList = styled.ul`\r\n font-style: italic;\r\n`;\r\n\r\nconst ValidationStatus = styled.span`\r\n text-transform: uppercase;\r\n`;\r\n\r\nconst UboTableContainer = styled.div`\r\n padding-left: 50px;\r\n\r\n tbody > tr td:first-child {\r\n width: 250px;\r\n }\r\n`;\r\n\r\nconst UboScreen = () => {\r\n\r\n const { t } = useTranslation();\r\n const [isMasterAdmin] = useState(\r\n UserService.isInRole(Roles.InstallerCompanyAdmin)\r\n );\r\n\r\n const [myUboDocuments, loadMyUboDocuments] = useDataReducer(async () => {\r\n return await PaymentService.getMyUbos();\r\n });\r\n\r\n const declaration = myUboDocuments?.data && myUboDocuments.data.length > 0 ? myUboDocuments.data[0] : null;\r\n const canSubmit = declaration && (declaration.status === \"CREATED\" || declaration.status === \"INCOMPLETE\");\r\n const canEdit = canSubmit;\r\n const canCreateNewDeclaration = declaration && (declaration.status === \"VALIDATED\" || declaration.status === \"REFUSED\");\r\n const canAddNew = declaration && declaration.ubos && declaration.ubos.length < 4 && canSubmit;\r\n const numberOfUbos = declaration && declaration.ubos ? declaration.ubos.length : 0;\r\n const [selectedUbo, setSelectedUbo] = useState(null);\r\n\r\n useEffect(() => {\r\n loadMyUboDocuments();\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n setSelectedUbo(null);\r\n }, [myUboDocuments]);\r\n\r\n\r\n const handleCreateUbo = async (values) => {\r\n\r\n const body = { ...values, declarationId: declaration?.id };\r\n const result = await PaymentService.addMyUbo(\r\n body\r\n );\r\n if (result && result.error) {\r\n ModalWizard.submitFailed(t(result.error.message));\r\n } else {\r\n loadMyUboDocuments();\r\n toast.success(t(\"actions:dialogs.createUbo.success\"));\r\n ModalWizard.hide();\r\n }\r\n\r\n };\r\n\r\n const handleCreateNewUboDeclaration = async (values) => {\r\n\r\n const body = { ...values };\r\n const result = await PaymentService.addMyUbo(\r\n body\r\n );\r\n if (result && result.error) {\r\n ModalWizard.submitFailed(t(result.error.message));\r\n } else {\r\n loadMyUboDocuments();\r\n toast.success(t(\"actions:dialogs.createNewUboDeclaration.success\"));\r\n ModalWizard.hide();\r\n }\r\n\r\n };\r\n\r\n const handleEditUbo = async (values) => {\r\n\r\n const result = await PaymentService.updateUbo(\r\n values\r\n );\r\n if (result && result.error) {\r\n ModalWizard.submitFailed(t(result.error.message));\r\n } else {\r\n loadMyUboDocuments();\r\n toast.success(t(\"actions:dialogs.editUbo.success\"));\r\n ModalWizard.hide();\r\n }\r\n };\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.deleteUbo.title\"),\r\n onConfirm: async () => {\r\n if (selectedUbo) {\r\n const values = { uboId: selectedUbo.id, declarationId: declaration?.id };\r\n const result = await PaymentService.deleteUbo(values);\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.deleteUbo.success\"));\r\n }\r\n loadMyUboDocuments();\r\n toggleOpen();\r\n }\r\n\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteUnit.confirmText\"),\r\n });\r\n\r\n const submitModal = useModal({\r\n title: t(\"actions:dialogs.submitUbo.title\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: async () => {\r\n const submitData = {\r\n declarationId: declaration?.id\r\n };\r\n\r\n var result = await PaymentService.submitUbo(submitData);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n\r\n } else {\r\n loadMyUboDocuments();\r\n toast.success(t(\"actions:dialogs.submitUbo.success\"));\r\n submitModal.toggleOpen();\r\n }\r\n\r\n },\r\n onCancel: () => {\r\n submitModal.toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.submitUbo.confirmText\"),\r\n });\r\n\r\n\r\n const createNewDeclarationModal = useModal({\r\n title: t(\"actions:dialogs.createNewUboDeclaration.title\").toUpperCase(),\r\n confirmText: t(\"actions:dialogs.createNewUboDeclaration.confirmText\"),\r\n onConfirm: async () => {\r\n createNewDeclarationModal.toggleOpen();\r\n ModalWizard.show(\r\n UboDeclarationWizard(\r\n t,\r\n null,\r\n false\r\n ),\r\n {\r\n onSubmit: handleCreateNewUboDeclaration,\r\n onCancel: async () => {\r\n\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n\r\n {\r\n wide: true,\r\n style: { minHeight: \"720px\" },\r\n footerContent: t(\"forms:ubo.footerText\"),\r\n finishButtonText: t(\"forms:ubo.createUboButtonText\")\r\n }\r\n );\r\n\r\n },\r\n onCancel: () => {\r\n createNewDeclarationModal.toggleOpen();\r\n },\r\n });\r\n\r\n\r\n const onDelete = async (row) => {\r\n setSelectedUbo(row.original);\r\n toggleOpen();\r\n };\r\n\r\n const uboDeclarationColumns = useMemo(\r\n () => [\r\n {\r\n header: t(\"table:headers.kyc.documentType\"),\r\n accessor: \"type\",\r\n cell: (value, row) => {\r\n let green = row.status === \"VALIDATED\";\r\n let error = row.status !== \"VALIDATION_ASKED\" && !green;\r\n let typeTranslation = t(\r\n \"table:headers.kyc.type.\" + value + \"\"\r\n );\r\n return (\r\n \r\n {typeTranslation || value}\r\n \r\n );\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.creationDate\"),\r\n accessor: \"creationDate\",\r\n cell: (value) => {\r\n return value ? DateTimeCell({ cell: { value } }) : \"-\";\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.processedDate\"),\r\n accessor: \"processedDate\",\r\n cell: (value) => {\r\n return value ? DateTimeCell({ cell: { value } }) : \"-\";\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.status\"),\r\n accessor: \"status\",\r\n cell: (value) => {\r\n let green = value === \"VALIDATED\";\r\n let error = value !== \"VALIDATION_ASKED\" && !green;\r\n let translation = t(\r\n \"table:headers.ubo.statusEnum.\" + value + \"\"\r\n );\r\n return (\r\n \r\n {translation || value}\r\n \r\n );\r\n\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.refusedReasonType\"),\r\n accessor: \"reason\",\r\n cell: (value) => {\r\n let translation = value\r\n ? t(\r\n \"table:headers.ubo.refusedReasonTypeEnum.\" +\r\n value +\r\n \"\"\r\n )\r\n : null;\r\n return translation || value || \"-\";;\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.justification\"),\r\n accessor: \"message\",\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n\r\n const uboColumns = useMemo(() => [\r\n {\r\n Header: t('table:headers.ubo.ubo'),\r\n accessor: 'lastName',\r\n Cell: UboOwnerCell\r\n },\r\n {\r\n Header: t('table:headers.ubo.ubo'),\r\n accessor: 'firstName',\r\n Cell: ({ cell: { row } }) => {\r\n return `${row.original.firstName} ${row.original.lastName}`;\r\n }\r\n },\r\n {\r\n Header: '',\r\n accessor: 'id',\r\n Cell: ({ cell: { row, value } }) => (\r\n\r\n \r\n {canEdit && 0}\r\n >\r\n\r\n {\r\n ModalWizard.show(\r\n UboDeclarationWizard(\r\n t,\r\n row.original,\r\n true\r\n ),\r\n {\r\n onSubmit: handleEditUbo,\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n\r\n {\r\n wide: true,\r\n style: { minHeight: \"720px\" },\r\n footerContent: t(\"forms:ubo.footerText\"),\r\n finishButtonText: t(\"forms:ubo.editUboButtonText\")\r\n }\r\n );\r\n }}\r\n />\r\n {\r\n onDelete(row, value)\r\n\r\n }}\r\n />\r\n \r\n }\r\n \r\n ),\r\n },\r\n\r\n ], [t, canEdit, numberOfUbos]);\r\n\r\n const onSelect = useCallback((row) => {\r\n const selectRow = async (row) => {\r\n setSelectedUbo({...row.original, order: row.index+1});\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n }, []);\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n const sideBarRef = useRef(null);\r\n\r\n useClickAway(sideBarRef, () => {\r\n try {\r\n closeSideBar();\r\n }\r\n catch (ex) { }\r\n });\r\n\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n return myUboDocuments?.data ? (\r\n\r\n \r\n {\r\n myUboDocuments.data.length > 0 ?\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n {declaration?.ubos && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n canAddNew && isMasterAdmin && \r\n {\r\n ModalWizard.show(\r\n UboDeclarationWizard(\r\n t,\r\n null,\r\n false\r\n ),\r\n {\r\n onSubmit: handleCreateUbo,\r\n onCancel: async () => {\r\n\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n\r\n {\r\n wide: true,\r\n style: { minHeight: \"720px\" },\r\n footerContent: t(\"forms:ubo.footerText\"),\r\n finishButtonText: t(\"forms:ubo.createUboButtonText\")\r\n }\r\n );\r\n }\r\n }\r\n >\r\n {t(\r\n \"screens:payments.ubo.createAnotherUbo\"\r\n )}\r\n \r\n \r\n }\r\n
    \r\n \r\n {canCreateNewDeclaration && isMasterAdmin && {\r\n\r\n createNewDeclarationModal.toggleOpen();\r\n\r\n }}\r\n className=\"secondary--negative \"\r\n >\r\n {t(\"screens:payments.ubo.create_new_declaration_button_text\")}\r\n \r\n }\r\n\r\n {declaration && !canCreateNewDeclaration && isMasterAdmin && {\r\n submitModal.toggleOpen();\r\n }\r\n }\r\n\r\n >\r\n {t(\r\n \"screens:payments.ubo.submit_button_text\"\r\n )}\r\n \r\n }\r\n\r\n \r\n
    \r\n\r\n :\r\n \r\n {\r\n ModalWizard.show(\r\n UboDeclarationWizard(\r\n t,\r\n null,\r\n false\r\n ),\r\n {\r\n onSubmit: handleCreateUbo,\r\n onCancel: async () => {\r\n\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n\r\n {\r\n wide: true,\r\n style: { minHeight: \"720px\" },\r\n footerContent: t(\"forms:ubo.footerText\"),\r\n finishButtonText: t(\"forms:ubo.createUboButtonText\")\r\n }\r\n );\r\n }}\r\n className=\"secondary--action\"\r\n >\r\n {t(\"screens:payments.ubo.create_new_button_text\")}\r\n \r\n \r\n }\r\n\r\n \r\n

    {t(\"actions:dialogs.deleteUbo.text\")}

    \r\n

    \r\n {selectedUbo &&\r\n `• ${selectedUbo.firstName} ${selectedUbo.lastName}`}\r\n

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

    {t(\"actions:dialogs.submitUbo.text\")}

    \r\n

    \r\n\r\n \r\n {\r\n declaration?.ubos.map((item, index) =>\r\n

  • {`UBO ${index + 1} ${item.firstName} ${item.lastName}`}
  • \r\n )\r\n }\r\n \r\n

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

    {t(\"actions:dialogs.createNewUboDeclaration.text\")}

    \r\n \r\n
    \r\n
    \r\n\r\n )\r\n : null;\r\n};\r\n\r\nexport default UboScreen;\r\n","import React, { useEffect, useMemo, useState, useCallback } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataTable from \"../../../../components/data/DataTable\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\nimport { DateTimeCell } from \"../../../../components/data/DateCell\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport LayoutInnerContainer from \"../../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport PaymentService from \"../../../../services/Payment/PaymentService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport KYCWizard from \"./wizard/KYCWizard\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport SimpleTable from \"../../../../components/elements/general/SimpleTable\";\r\nimport KYCDocumentType from \"../../../../core/enums/KYCDocumentType\";\r\nimport ModalContainer from \"../../../../components/modal/ModalContainer\";\r\nimport { ReactComponent as CloseSvg } from \"../../../../assets/pwa/pwa-close.svg\";\r\nimport { ReactComponent as MangoSvg } from \"../../../../assets/mangopay.svg\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport UboScreen from \"./UboScreen\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst InfoWrapper = styled.div`\r\n display: flex;\r\n width: 75%;\r\n`;\r\n\r\nconst StyledList = styled.ul`\r\n &.gray {\r\n color: #888;\r\n margin-top: 20px;\r\n font-style: italic;\r\n }\r\n margin: 0;\r\n padding: 0 0 0 56px;\r\n\r\n font-size: 0.875rem;\r\n`;\r\n\r\nconst Information = styled.div`\r\n &.primary {\r\n b {\r\n color: ${(props) => props.theme.primaryColor};\r\n }\r\n }\r\n\r\n p {\r\n &.micro {\r\n font-size: 12px;\r\n }\r\n\r\n &.tight {\r\n margin-top: -14px;\r\n }\r\n &.smaller {\r\n font-size: 0.875rem;\r\n }\r\n\r\n &.status {\r\n font-weight: bold;\r\n margin: 0 0 36px;\r\n }\r\n\r\n &.success {\r\n color: ${(props) => props.theme.textActive};\r\n }\r\n\r\n &.fail {\r\n color: ${(props) => props.theme.error};\r\n }\r\n }\r\n\r\n a {\r\n color: ${(props) => props.theme.textActive};\r\n font-weight: bold;\r\n text-decoration: none;\r\n\r\n &.file {\r\n color: ${(props) => props.theme.tertiaryColor};\r\n font-weight: normal;\r\n }\r\n }\r\n`;\r\n\r\nconst MangoWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n height: calc(100% - 50px);\r\n margin: 50px 80px 0px 150px;\r\n background-color: transparent;\r\n overflow-y: hidden;\r\n & img {\r\n width: 100%;\r\n height: auto;\r\n }\r\n`;\r\n\r\nconst ImgWrapper = styled.div`\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n overflow-y: auto;\r\n`;\r\n\r\nconst SecondInfoWrapper = styled.div`\r\n margin-top: 20px;\r\n`;\r\n\r\nconst GreenInfo = styled.img`\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst CloseMango = styled.div`\r\n width: 100%;\r\n height: 50px;\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n color: #000;\r\n font-size: 16px;\r\n font-weight: 700;\r\n padding-right: 15px;\r\n\r\n & > div {\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n & img {\r\n margin-right: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledClose = styled(CloseSvg)`\r\n width: 16px;\r\n height: 16px;\r\n margin-right: 12px;\r\n\r\n & line,\r\n & path {\r\n stroke: #e94e4e;\r\n }\r\n`;\r\n\r\nconst StyledMango = styled(MangoSvg)`\r\n width: 320px;\r\n height: auto;\r\n margin-top: 56px;\r\n`;\r\n\r\nconst StatusTItle = styled.div`\r\n margin-top: 56px;\r\n font-size: 36px;\r\n & span {\r\n color: ${(p) => p.theme.primaryColor};\r\n font-weight: 700;\r\n }\r\n\r\n &.invalid span {\r\n color: ${(p) => p.theme.error};\r\n }\r\n`;\r\n\r\nconst StatusTitleWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n`;\r\n\r\nconst StatusLimits = styled.div`\r\n margin-top: 13px;\r\n font-size: 20px;\r\n color: #8e8e8e;\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 2px;\r\n background-color: #000;\r\n margin-top: 24px;\r\n`;\r\nconst LightSeparator = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n background-color: #dddddd;\r\n margin-top: 24px;\r\n`;\r\n\r\nconst RightContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n`;\r\n\r\nconst GridWrap = styled.div`\r\n margin: 36px 0px 36px 15px;\r\n display: flex;\r\n width: 76.666%;\r\n &.light .col .line {\r\n border-bottom: 1px solid #dddddd;\r\n }\r\n\r\n & .col {\r\n display: flex;\r\n flex-direction: column;\r\n width: 33.333%;\r\n font-size: 12px;\r\n\r\n & > div {\r\n min-height: 45px;\r\n display: flex;\r\n align-items: center;\r\n color: #8e8e8e;\r\n\r\n & span {\r\n color: #000;\r\n font-weight: 700;\r\n }\r\n }\r\n\r\n & .line {\r\n border-bottom: 1px solid #000;\r\n }\r\n\r\n & .title {\r\n font-weight: 700;\r\n font-size: 14px;\r\n color: #000;\r\n }\r\n\r\n & .inset {\r\n margin-left: 20px;\r\n }\r\n\r\n & .full {\r\n width: 100%;\r\n }\r\n\r\n & .flex-col {\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n & .limited {\r\n color: ${(p) => p.theme.error};\r\n }\r\n }\r\n`;\r\n\r\nconst ValidationStatus = styled.span`\r\n text-transform: uppercase;\r\n`;\r\n\r\nconst SHAREHOLDER_DECLARATION = \"SHAREHOLDER_DECLARATION\";\r\n\r\nconst KycScreen = () => {\r\n const { t } = useTranslation();\r\n const [mangoOpen, setMangoOpen] = useState(false);\r\n const [isMasterAdmin] = useState(\r\n UserService.isInRole(Roles.InstallerCompanyAdmin)\r\n );\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:company\"),\r\n },\r\n {\r\n text: t(\"navigation:kycSettings\"),\r\n },\r\n ]);\r\n\r\n const [selectedKycDocument, setSelectedKycDocument] = useState(null);\r\n\r\n const IsKYCValidated =\r\n UserService.getUserDetailsFromToken().IsKYCValidated !== \"False\";\r\n\r\n const [myUboDocuments, loadMyUboDocuments] = useDataReducer(async () => {\r\n return await PaymentService.getMyUbos();\r\n });\r\n\r\n const uboValidated =\r\n myUboDocuments?.data && myUboDocuments.data.length > 0\r\n ? myUboDocuments.data[0].status === \"VALIDATED\"\r\n : false;\r\n\r\n const shareHoldersNeeded = () => {\r\n return myUboDocuments?.data && myUboDocuments.data.length > 0\r\n ? myUboDocuments.data[0].reason ===\r\n \"SHAREHOLDERS_DECLARATION_NEEDED\"\r\n : false;\r\n };\r\n\r\n const [myKYCDocuments, loadMyKYCDocuments] = useDataReducer(async () => {\r\n const docs = await PaymentService.getMyKYCDocuments();\r\n if (shareHoldersNeeded()) {\r\n let showWarning = false;\r\n let shareholders = docs.filter(\r\n (e) => e.type === SHAREHOLDER_DECLARATION\r\n );\r\n if (shareholders.length === 0) {\r\n docs.push({\r\n type: SHAREHOLDER_DECLARATION,\r\n history: [],\r\n });\r\n showWarning = true;\r\n } else showWarning = shareholders[0].history.length === 0;\r\n\r\n if (showWarning) {\r\n toggleshareholdersKYC();\r\n }\r\n }\r\n return docs;\r\n });\r\n\r\n useEffect(() => {\r\n loadMyUboDocuments();\r\n }, []);\r\n useEffect(() => {\r\n loadMyKYCDocuments();\r\n }, [myUboDocuments]);\r\n\r\n const isUpload = (documentType) =>\r\n documentType !== KYCDocumentType.UBO_DECLARATION;\r\n\r\n const KYCColumns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.kyc.documentType\"),\r\n accessor: \"type\",\r\n Cell: ({ cell: { row, value } }) => {\r\n let green = row.original.history[0]?.status === \"VALIDATED\";\r\n let typeTranslation = t(\r\n \"table:headers.kyc.type.\" + value + \"\"\r\n );\r\n return (\r\n \r\n {typeTranslation || value}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.kyc.creationDate\"),\r\n accessor: \"creationDate\",\r\n Cell: ({ cell: { row } }) => {\r\n if (row.original.history.length > 0) {\r\n let value = row.original.history[0].creationDate;\r\n return DateCell({ cell: { value } });\r\n }\r\n return null;\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.kyc.processedDate\"),\r\n accessor: \"processedDate\",\r\n Cell: ({ cell: { row } }) => {\r\n if (row.original.history.length > 0) {\r\n let value = row.original.history[0].processedDate;\r\n return DateCell({ cell: { value } });\r\n }\r\n return null;\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.kyc.status\"),\r\n accessor: \"status\",\r\n\r\n Cell: ({ cell: { row } }) => {\r\n if (row.original.history.length > 0) {\r\n let value = row.original.history[0].status;\r\n let statusTranslation = t(\r\n \"table:headers.kyc.statusEnum.\" + value + \"\"\r\n );\r\n return (\r\n \r\n {statusTranslation || value}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.kyc.refusedReasonType\"),\r\n accessor: \"refusedReasonType\",\r\n Cell: ({ cell: { row } }) => {\r\n if (row.original.history.length > 0) {\r\n let value = row.original.history[0].refusedReasonType;\r\n let translation = row.original.history[0]\r\n .refusedReasonType\r\n ? t(\r\n \"table:headers.kyc.refusedReasonTypeEnum.\" +\r\n value +\r\n \"\"\r\n )\r\n : null;\r\n return translation || value;\r\n }\r\n\r\n return null;\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.kyc.justification\"),\r\n accessor: \"refusedReasonMessage\",\r\n Cell: ({ cell: { row } }) => {\r\n if (row.original.history.length > 0) {\r\n let value = row.original.history[0].refusedReasonType;\r\n let translation = row.original.history[0]\r\n .refusedReasonType\r\n ? t(\r\n \"table:headers.kyc.refusedReasonTypeEnum.\" +\r\n value +\r\n \"\"\r\n )\r\n : null;\r\n return translation || value;\r\n }\r\n\r\n return null;\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { row } }) => {\r\n const existing = row.original.history.length > 0;\r\n const status = row.original.history[0]?.status;\r\n const showCreate =\r\n !existing ||\r\n status === \"CREATED\" ||\r\n status === \"REFUSED\" ||\r\n status === \"OUT_OF_DATE\";\r\n const showMenu = status !== \"VALIDATED\";\r\n const showShDownload =\r\n row.original.type === SHAREHOLDER_DECLARATION;\r\n return (\r\n \r\n {showMenu && (\r\n \r\n {isUpload(row.original.type) && showCreate && (\r\n {\r\n ModalWizard.show(\r\n KYCWizard(\r\n t,\r\n row.original.type,\r\n (ev) => {\r\n setMangoOpen(true);\r\n }\r\n ),\r\n {\r\n onSubmit: async (\r\n values\r\n ) => {\r\n const params = {\r\n ...values,\r\n KYCDocumentType:\r\n row.original\r\n .type,\r\n };\r\n const result =\r\n await PaymentService.addKYCDocument(\r\n ModalWizard.asFormData(\r\n params\r\n )\r\n );\r\n if (\r\n result &&\r\n result.error\r\n )\r\n toast.error(\r\n t(\r\n result\r\n .error\r\n .message\r\n )\r\n );\r\n else {\r\n toast.success(\r\n t(\r\n \"actions:dialogs.createKYCDocument.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n loadMyKYCDocuments();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n {\r\n style: {\r\n minWidth: \"740px\",\r\n },\r\n footerContent: t(\r\n \"forms:kyc.info.disclaimer\"\r\n ),\r\n }\r\n );\r\n }}\r\n />\r\n )}\r\n {status !== undefined && (\r\n {\r\n onSelect(row);\r\n }}\r\n />\r\n )}\r\n {showShDownload && (\r\n \r\n \r\n {t(\r\n \"table:headers.kyc.downloadTemplate\"\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n const kycHistoryColumns = useMemo(\r\n () => [\r\n {\r\n header: t(\"table:headers.kyc.status\"),\r\n accessor: \"status\",\r\n cell: (value) => {\r\n let translation = t(\r\n \"table:headers.kyc.statusEnum.\" + value + \"\"\r\n );\r\n return translation || value;\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.refusedReasonType\"),\r\n accessor: \"refusedReasonType\",\r\n cell: (value) => {\r\n let translation = value\r\n ? t(\r\n \"table:headers.kyc.refusedReasonTypeEnum.\" +\r\n value +\r\n \"\"\r\n )\r\n : null;\r\n return translation || value;\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.justification\"),\r\n accessor: \"RefusedReasonMessage\",\r\n },\r\n {\r\n header: t(\"table:headers.kyc.creationDate\"),\r\n accessor: \"creationDate\",\r\n cell: (value) => {\r\n return DateTimeCell({ cell: { value } });\r\n },\r\n },\r\n {\r\n header: t(\"table:headers.kyc.processedDate\"),\r\n accessor: \"processedDate\",\r\n cell: (value) => {\r\n return DateTimeCell({ cell: { value } });\r\n },\r\n },\r\n ],\r\n [t, myKYCDocuments]\r\n );\r\n\r\n const documentTitle = selectedKycDocument\r\n ? KYCDocumentType[selectedKycDocument.type]\r\n : \"\";\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"screens:payments.kyc.modalTitle\", { documentTitle }),\r\n style: { maxWidth: \"100%\", width: \"80%\" },\r\n onCancel: () => {\r\n setSelectedKycDocument(null);\r\n toggleOpen();\r\n },\r\n });\r\n\r\n const { modalProps: submitKYCprops, toggleOpen: toggleSubmitKYC } =\r\n useModal({\r\n title: t(\"forms:kyc.submit.title\"),\r\n type: \"info\",\r\n confirmText: t(\"forms:kyc.submit.action\"),\r\n onConfirm: async () => {\r\n const docIDs = getSubmitDocList().map((doc) => doc.id);\r\n const result = await PaymentService.submitKYC(docIDs);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n toggleSubmitKYC();\r\n loadMyKYCDocuments();\r\n }\r\n },\r\n onCancel: () => {\r\n toggleSubmitKYC();\r\n },\r\n });\r\n\r\n const {\r\n modalProps: shareholdersKYCprops,\r\n toggleOpen: toggleshareholdersKYC,\r\n } = useModal({\r\n title: t(\"forms:kyc.shareholders.title\").toUpperCase(),\r\n type: \"danger\",\r\n confirmText: t(\"forms:kyc.shareholders.action\"),\r\n onConfirm: async () => {\r\n toggleshareholdersKYC();\r\n let kycSectionEl = document.getElementById(\"kycsection\");\r\n kycSectionEl.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n },\r\n });\r\n\r\n const onSelect = useCallback((row) => {\r\n const selectRow = async (row) => {\r\n setSelectedKycDocument(row.original);\r\n toggleOpen();\r\n };\r\n selectRow(row);\r\n }, []);\r\n\r\n const submitEnabled = () => {\r\n let result = false;\r\n\r\n if (myKYCDocuments.data && myKYCDocuments.data.length > 0) {\r\n myKYCDocuments.data.forEach((doc) => {\r\n let isCreated =\r\n doc.history.length > 0 &&\r\n doc.history[0].status === \"CREATED\";\r\n if (isCreated) result = true;\r\n });\r\n }\r\n return result;\r\n };\r\n\r\n const getSubmitDocList = () => {\r\n const result = [];\r\n if (myKYCDocuments.data && myKYCDocuments.data.length > 0) {\r\n myKYCDocuments.data.forEach((doc) => {\r\n const created =\r\n doc.history.length > 0 &&\r\n doc.history[0].status === \"CREATED\";\r\n if (created)\r\n result.push({\r\n type: t(\"forms:kyc.docType.\" + doc.type),\r\n id: doc.history[0].id,\r\n });\r\n });\r\n }\r\n return result;\r\n };\r\n\r\n return (\r\n \r\n \r\n {`${t(\"screens:payments.kyc.accordionTitle\")} (${\r\n IsKYCValidated\r\n ? t(\"screens:payments.kyc.validated\")\r\n : t(\"screens:payments.kyc.notValidated\")\r\n })`}\r\n \r\n \r\n \r\n \r\n {t(\"screens:payments.kyc.status.title\")}\r\n {\": \"}\r\n \r\n {IsKYCValidated\r\n ? t(\"screens:payments.kyc.status.regular\")\r\n : t(\"screens:payments.kyc.status.light\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"screens:payments.kyc.status.statusLimits\")}\r\n \r\n \r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.country\")}\r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.france\")}\r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.germany\")}\r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.restOfEU\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.paymentLimits\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.payinTransfers\"\r\n )}\r\n :{\" \"}\r\n \r\n {t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )}\r\n \r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.payout\")}:{\" \"}\r\n \r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : t(\r\n \"screens:payments.kyc.statusTable.compulsory\"\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.payinTransfers\"\r\n )}\r\n :{\" \"}\r\n \r\n {t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )}\r\n \r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.payout\")}:{\" \"}\r\n \r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : t(\r\n \"screens:payments.kyc.statusTable.compulsory\"\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.payinTransfers\"\r\n )}\r\n :{\" \"}\r\n \r\n {t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )}\r\n \r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.payout\")}:{\" \"}\r\n \r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : t(\r\n \"screens:payments.kyc.statusTable.compulsory\"\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t(\"screens:payments.kyc.statusTable.moneyLimits\")}\r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.cumulatedPayout\"\r\n )}\r\n :\r\n \r\n {\" \"}\r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : \"150,00 EUR\"}\r\n \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.userBalance\"\r\n )}\r\n :{\" \"}\r\n \r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : \"150,00 EUR\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.cumulatedPayout\"\r\n )}\r\n :\r\n \r\n {\" \"}\r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : \"100,00 EUR\"}\r\n \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.userBalance\"\r\n )}\r\n :{\" \"}\r\n \r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : \"100,00 EUR\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.cumulatedPayout\"\r\n )}\r\n :\r\n \r\n {\" \"}\r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : \"150,00 EUR\"}\r\n \r\n
    \r\n
    \r\n {t(\r\n \"screens:payments.kyc.statusTable.userBalance\"\r\n )}\r\n :{\" \"}\r\n \r\n {IsKYCValidated\r\n ? t(\r\n \"screens:payments.kyc.statusTable.noLimit\"\r\n )\r\n : \"150,00 EUR\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {myKYCDocuments && myKYCDocuments.data && (\r\n <>\r\n \r\n {isMasterAdmin && (\r\n \r\n {\r\n toggleSubmitKYC();\r\n }}\r\n >\r\n {t(\r\n \"screens:payments.kyc.submitForValidation\"\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n
  • \r\n {t(\r\n \"screens:payments.ubo.list.criteria1\"\r\n )}\r\n
  • \r\n
  • \r\n {t(\r\n \"screens:payments.ubo.list.criteria2\"\r\n )}\r\n
  • \r\n
  • \r\n {t(\r\n \"screens:payments.ubo.list.criteria3\"\r\n )}\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n {t(\"forms:kyc.shareholders.text\")}\r\n
    \r\n \r\n {t(\"forms:kyc.shareholders.footer\")}\r\n \r\n
    \r\n \r\n {selectedKycDocument && (\r\n \r\n )}\r\n \r\n \r\n
    {t(\"forms:kyc.submit.text\")}
    \r\n\r\n \r\n {getSubmitDocList().map((item, idx) => (\r\n
  • {item.type}
  • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    setMangoOpen(false)}>\r\n \r\n {t(\"actions:close\")}\r\n
    \r\n
    \r\n \r\n \"guide\"\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default KycScreen;\r\n","import {useHistory} from 'react-router-dom';\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\n\r\nconst ProfileScreen = () => {\r\n\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const userId = userDetails ? userDetails.UserId : null;\r\n const history = useHistory();\r\n\r\n if (userId) {\r\n history.push(RouteCreator.employee.edit(userId));\r\n return null;\r\n } else {\r\n history.push(RouteCreator.user.login())\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default ProfileScreen;\r\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Redirect, Switch, useHistory, useRouteMatch } from \"react-router-dom\";\r\nimport BackButton from \"../../../../components/elements/buttons/BackButton\";\r\nimport RoundTabs from \"../../../../components/elements/tabs/RoundTabs\";\r\nimport LayoutInnerContainer from \"../../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport PrivateRoute from \"../../../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport useQueryString from \"../../../../hooks/_shared/useQueryString\";\r\nimport EmployeeEditScreen from \"../employees/EmployeeEditScreen\";\r\nimport EmployeeList from \"../employees/EmployeeList\";\r\nimport CompanyCertificateScreen from \"./CompanyCertificateScreen\";\r\nimport CompanyEditScreen from \"./CompanyEditScreen\";\r\nimport PaymentsScreen from \"./PaymentsScreen\";\r\nimport KycScreen from \"./KycScreen\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ProfileScreen from \"../employees/ProfileScreen\";\r\nimport useLeftMenu from \"../../../../core/state/navigation/useLeftMenu\";\r\n\r\nconst TabsWrapper = styled.div`\r\n position: fixed;\r\n top: 85px;\r\n width: 100%;\r\n z-index: 5;\r\n\r\n margin: 0px 0px 0px -95px;\r\n padding: 0px 60px 0px 78px;\r\n border-radius: 15px 15px 0px 0px;\r\n background: linear-gradient(180deg, rgba(245, 245, 245, 1) 0%, rgba(240, 240, 240, 1) 100%);\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n\r\n &.pr-0 {\r\n padding-right: 0px;\r\n }\r\n`;\r\n\r\nconst tabIndices = {\r\n CompanyDetails: 0,\r\n CompanyEmployees: 1,\r\n CompanyCertificates: 2,\r\n PaymentSettings: 3,\r\n Kyc: 4,\r\n};\r\n\r\nconst CompanyScreen = () => {\r\n const history = useHistory();\r\n const returnUrl = useQueryString(\"returnUrl\", \"/\");\r\n const returnTo = useRef(\"/\");\r\n const { i18n, t } = useTranslation();\r\n\r\n const { setIsVisible } = useLeftMenu();\r\n\r\n if (returnUrl !== \"/\") returnTo.current = returnUrl;\r\n\r\n const onBackButtonClick = (pathName) => {\r\n if (pathName.indexOf(\"/employees/edit/\") >= 0) return true;\r\n };\r\n\r\n const companyDetailsRouteMatch = useRouteMatch({\r\n path: RouteCreator.company.details(),\r\n strict: false,\r\n });\r\n\r\n const companyCertsRouteMatch = useRouteMatch({\r\n path: RouteCreator.company.certificates(),\r\n strict: false,\r\n });\r\n\r\n const companyPaymentsRouteMatch = useRouteMatch({\r\n path: RouteCreator.company.payments(),\r\n strict: false,\r\n });\r\n\r\n const companyQRRouteMatch = useRouteMatch({\r\n path: RouteCreator.company.requestQR(),\r\n strict: false,\r\n });\r\n\r\n const kycRouteMatch = useRouteMatch({\r\n path: RouteCreator.company.kyc(),\r\n strict: false,\r\n });\r\n\r\n const employeeEditRouteMatch = useRouteMatch({\r\n path: RouteCreator.employee.editEmployee(),\r\n strict: false,\r\n });\r\n\r\n const noTabsRouteMatch = useRouteMatch({\r\n path: \"/company/employees/*\",\r\n strict: false,\r\n });\r\n\r\n const [tabIndex, setTabIndexState] = useState(\r\n companyDetailsRouteMatch\r\n ? tabIndices.CompanyDetails\r\n : companyCertsRouteMatch\r\n ? tabIndices.CompanyCertificates\r\n : companyQRRouteMatch\r\n ? tabIndices.CompanyQR\r\n : companyPaymentsRouteMatch\r\n ? tabIndices.PaymentSettings\r\n : kycRouteMatch\r\n ? tabIndices.Kyc\r\n : tabIndices.CompanyEmployees\r\n );\r\n\r\n useEffect(() => {\r\n setIsVisible(false);\r\n }, []);\r\n\r\n const setTabIndex = useCallback(\r\n (index) => {\r\n if (index === tabIndices.CompanyDetails) {\r\n history.push(RouteCreator.company.details());\r\n } else if (index === tabIndices.CompanyEmployees) {\r\n history.push(RouteCreator.employee.list());\r\n } else if (index === tabIndices.CompanyCertificates) {\r\n history.push(RouteCreator.company.certificates());\r\n } else if (index === tabIndices.PaymentSettings) {\r\n history.push(RouteCreator.company.payments());\r\n } else if (index === tabIndices.Kyc) {\r\n history.push(RouteCreator.company.kyc());\r\n }\r\n setTabIndexState(index);\r\n },\r\n [history]\r\n );\r\n\r\n useEffect(() => {\r\n if (companyDetailsRouteMatch && tabIndex !== tabIndices.CompanyDetails)\r\n setTabIndex(tabIndices.CompanyDetails);\r\n }, [companyDetailsRouteMatch, setTabIndex, tabIndex]);\r\n\r\n useEffect(() => {\r\n if (\r\n !companyDetailsRouteMatch &&\r\n !companyCertsRouteMatch &&\r\n !companyQRRouteMatch &&\r\n !employeeEditRouteMatch &&\r\n !companyPaymentsRouteMatch &&\r\n !kycRouteMatch &&\r\n tabIndex !== tabIndices.CompanyEmployees\r\n )\r\n setTabIndex(tabIndices.CompanyEmployees);\r\n }, [\r\n companyDetailsRouteMatch,\r\n companyCertsRouteMatch,\r\n companyQRRouteMatch,\r\n employeeEditRouteMatch,\r\n companyPaymentsRouteMatch,\r\n kycRouteMatch,\r\n tabIndex,\r\n setTabIndex,\r\n ]);\r\n\r\n return (\r\n
    \r\n \r\n \r\n {noTabsRouteMatch === null && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CompanyScreen;\r\n","import Tippy from \"@tippyjs/react\";\r\nimport React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Card = styled.div`\r\n font-size: 1.125rem;\r\n position: relative;\r\n background: #fff;\r\n display: flex;\r\n justify-content:space-between;\r\n width: 500px;\r\n height: 235px;\r\n min-height: 235px;\r\n padding: 25px 15px;\r\n text-align: center;\r\n border-radius: 8px;\r\n margin: 40px 20px;\r\n box-shadow: 6px 6px 11px 0px rgba(0, 0, 0, 0.16),\r\n 0px 0px 20px 0px rgba(255, 255, 255, 1);\r\n transition: all 0.3s ease-in;\r\n box-sizing: border-box;\r\n border: 2px solid ${(props) => props.theme.bgModuleCards};\r\n text-decoration: none;\r\n @media ${(p) => p.theme.device.mobile} {\r\n height: 190px;\r\n min-height: 190px;\r\n }\r\n\r\n &.small {\r\n margin: 20px 20px;\r\n }\r\n\r\n &.disabled {\r\n opacity:0.5;\r\n pointer-events:none;\r\n }\r\n`;\r\n\r\nconst CardPopup = styled(Tippy)`\r\n background-color: ${(props) => props.theme.primaryColor};\r\n\r\n .tippy-content {\r\n border-radius: 4px;\r\n background-color: ${(props) => props.theme.primaryColor};\r\n }\r\n\r\n &[data-placement^=\"bottom\"] {\r\n > .tippy-arrow {\r\n border-bottom-color: ${(props) =>\r\n props.theme.primaryColor} !important;\r\n }\r\n }\r\n font-family: ${(props) => props.theme.fontFamily};\r\n`;\r\n\r\nconst CardLink = styled(Link)`\r\n color: white;\r\n cursor: pointer;\r\n background: ${(p) => p.theme.primaryColor};\r\n width: 158px;\r\n height: 40px;\r\n line-height: 40px;\r\n border-radius: 40px;\r\n font-size: 14px;\r\n font-weight: bold;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n background: ${(p) => p.theme.primaryColorHover};\r\n }\r\n\r\n &.disabled {\r\n background: ${(p) => p.theme.textDisabled};\r\n }\r\n`;\r\n\r\nconst CardTitle = styled.div`\r\n width:100%;\r\n font-size: 22px;\r\n font-weight: bold;\r\n color: ${(p) => p.theme.primaryColor};\r\n text-align:left;\r\n`;\r\n\r\nconst CardDesc= styled.div`\r\n font-size: 12px;\r\n font-weight: bold;\r\n color: #000;\r\n text-align:left;\r\n`;\r\n\r\nconst CardImage = styled.img`\r\n width: 100px;\r\n height: 100px;\r\n`;\r\n\r\nconst CardSplitter = styled.div`\r\n flex-grow: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n &.left {\r\n width: 50%;\r\n margin-right:32px;\r\n }\r\n &.right {\r\n max-width:158px;\r\n }\r\n`;\r\n\r\nconst Module = (props) => {\r\n return (\r\n \r\n {props.link && (\r\n \r\n \r\n {props.title}\r\n {props.desc}\r\n \r\n \r\n \r\n \r\n {props.name}{\" \"}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Module;\r\n","import React from 'react';\r\nimport styled from \"styled-components\";\r\nimport Module from \"./Module\";\r\n\r\nconst ModuleWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: start;\r\n max-width: 540px;\r\n flex-wrap: wrap;\r\n margin: 0 auto;\r\n\r\n @media (min-width:1134px) {\r\n max-width: 1080px;\r\n }\r\n\r\n @media (min-width:1850px) {\r\n max-width: 1620px;\r\n }\r\n\r\n`;\r\n\r\nconst ModuleCards = ({modules}) => {\r\n\r\n const modulesToShow = modules? modules.filter(m => m.shouldShowModule) :[];\r\n return (\r\n \r\n {\r\n modulesToShow.length> 0 &&\r\n (\r\n modulesToShow.map(m => {\r\n return 5 ? \"small\": null} popupEnabled={false} key={m.name} name={m.name} image={m.image} link={m.link} title={m.title} desc={m.desc} disabled={m.disabled}/>\r\n })\r\n )\r\n }\r\n \r\n )\r\n};\r\n\r\nexport default ModuleCards;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\n\r\nconst MenuBack = styled.div`\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: transparent;\r\n z-index: 1;\r\n transform: translateY(100%);\r\n\r\n &.open {\r\n transform: translateY(0);\r\n }\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n box-sizing: border-box;\r\n padding: 15px 20px;\r\n background: #ffffff;\r\n color: #000000;\r\n position: fixed;\r\n top: 100%;\r\n left: 5%;\r\n width: 90%;\r\n height: 75%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-content: center;\r\n transform: translateY(30px);\r\n transition: 0.3s ease all;\r\n z-index: 3;\r\n background: #f5f5f5;\r\n border-radius: 15px;\r\n box-shadow: 0 6px 40px rgba(0, 0, 0, 0.16);\r\n\r\n & * {\r\n user-select: none;\r\n }\r\n &.open {\r\n transform: translateY(-102%);\r\n }\r\n\r\n & .content {\r\n width: 100%;\r\n margin-top: 8px;\r\n }\r\n`;\r\n\r\nconst MenuList = styled.ul`\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n user-select: none;\r\n`;\r\n\r\nexport const Icon = styled.img`\r\n height: 29px;\r\n width: 28px;\r\n`;\r\n\r\nconst CloseButton = styled.div`\r\n padding: 4px 16px;\r\n min-width: 150px;\r\n width: max-content;\r\n height: 32px;\r\n border-radius: 40px;\r\n background: #bc3535;\r\n color: #fff;\r\n position: absolute;\r\n z-index: 4;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n top: -24px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 8px;\r\n &:active {\r\n background: #961c1c;\r\n }\r\n`;\r\n\r\nconst ListItem = styled.li`\r\n outline: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: transparent;\r\n list-style: none;\r\n transition: all 0.1s ease;\r\n cursor: pointer;\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 36px;\r\n margin: 16px 12px;\r\n padding: 0px 10px;\r\n background: #ededed;\r\n text-align: center;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n font-weight: bold;\r\n box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);\r\n\r\n &.disabled {\r\n background: #fefefe;\r\n box-shadow: none;\r\n color: #a0a0a0;\r\n }\r\n\r\n &:not(.disabled):active {\r\n background: ${(p) => p.theme.primaryColor};\r\n color: #fff;\r\n }\r\n\r\n & a {\r\n color: ${(props) => props.theme.menuItems};\r\n text-decoration: none;\r\n margin-left: 10px;\r\n &:hover {\r\n color: ${(props) => props.theme.textActive};\r\n }\r\n }\r\n`;\r\n\r\nconst Space = styled.div`\r\n height: 4px;\r\n`;\r\n\r\nlet listeners = [];\r\nlet state = { isOpen: false, active: 0 };\r\n\r\nconst setState = (newState) => {\r\n state = { ...state, ...newState };\r\n listeners.forEach((listener) => {\r\n listener(state);\r\n });\r\n};\r\n\r\nconst useBottomMenu = () => {\r\n const newListener = useState()[1];\r\n useEffect(() => {\r\n // Called just after component mount\r\n listeners.push(newListener);\r\n return () => {\r\n // Called just before the component unmount\r\n listeners = listeners.filter(\r\n (listener) => listener !== newListener\r\n );\r\n };\r\n }, []);\r\n return [state, setState];\r\n};\r\n\r\nconst menuItems = (t, globalState) => [\r\n {\r\n name: t(\"pwaMenu.newExtraction\"),\r\n link: RouteCreator.pwa.extraction(),\r\n show: !globalState.isDistributor,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n { name: \"_space_\", link: \"\", show: !globalState.isDistributor },\r\n {\r\n name: t(\"pwaMenu.toCompanyStock\"),\r\n link: RouteCreator.pwa.toCompanyStock(),\r\n show: true,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n {\r\n name: t(\"pwaMenu.toMyStock\"),\r\n link: RouteCreator.pwa.toMyStock(),\r\n show: true,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n {\r\n name: t(\"pwaMenu.toBuyerStock\"),\r\n link: RouteCreator.pwa.collect(),\r\n show: true,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n { name: \"_space_\", link: \"\", show: true },\r\n {\r\n name: t(\"pwaMenu.tagUnit\"),\r\n link: RouteCreator.pwa.addUnit(),\r\n show: !globalState.isDistributor,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n {\r\n name: t(\"pwaMenu.tagCylinder\"),\r\n link: RouteCreator.pwa.addCylinder(),\r\n show: true,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n {\r\n name: t(\"pwaMenu.tagAnalyzer\"),\r\n link: RouteCreator.pwa.addAnalyzer(),\r\n show: true,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n { name: \"_space_\", link: \"\", show: !globalState.isDistributor },\r\n {\r\n name: t(\"pwaMenu.collectCylinder\"),\r\n link: RouteCreator.pwa.collectEmptyCilinder(),\r\n show: true,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n {\r\n name: t(\"actions:startRecycling\"),\r\n link: RouteCreator.pwa.recycleCylinder(),\r\n show: globalState.isDistributor,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n {\r\n name: t(\"pwaMenu.finishRecycling\"),\r\n link: RouteCreator.pwa.finishRecycling(),\r\n show: globalState.isDistributor,\r\n disabled:!globalState.hasValidCompanyCertificate\r\n },\r\n // { name: t(\"pwaMenu.addQualityTest\"), link: \"\", disabled: true },\r\n //Collect Extraction Cylinder collectCylinder\r\n];\r\n\r\nconst BottomMenu = (props) => {\r\n const history = useHistory();\r\n const [menuState, setMenuState] = useBottomMenu();\r\n const { t } = useTranslation(\"screens\");\r\n const [globalState] = useSharedState(\"global\");\r\n\r\n const handleClick = (ev, item) => {\r\n if (item) {\r\n if (item.disabled) return;\r\n setTimeout(() => {\r\n item.link && history.push(item.link);\r\n }, 200);\r\n }\r\n setTimeout(() => {\r\n setMenuState({ isOpen: false });\r\n }, 200);\r\n };\r\n\r\n const shownItems = menuItems(t, globalState).filter(\r\n (item) => item.show === true\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n handleClick(ev)}>\r\n {t(\"pwaMenu.closeActions\")}\r\n \r\n
    \r\n \r\n {shownItems.map((item, index) => {\r\n return item.name === \"_space_\" ? (\r\n \r\n ) : (\r\n handleClick(ev, item)}\r\n >\r\n {item.name}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default BottomMenu;\r\nexport { useBottomMenu };\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1041\",\n \"data-name\": \"Group 1041\",\n transform: \"translate(21403 13296.305)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1038\",\n \"data-name\": \"Group 1038\",\n transform: \"translate(-21402.5 -13295.805)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_482\",\n \"data-name\": \"Path 482\",\n d: \"M311.127-275.438a5.654,5.654,0,0,0-5.652-5.652,5.654,5.654,0,0,0-5.652,5.652v3.113a5.655,5.655,0,0,0,5.652,5.652,5.655,5.655,0,0,0,5.652-5.652Z\",\n transform: \"translate(-294.601 281.09)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_483\",\n \"data-name\": \"Path 483\",\n d: \"M289.862-241.916l-3.66,1.478a1.4,1.4,0,0,0-.878,1.3v2.454a1.591,1.591,0,0,0,1.591,1.591h18.568a1.591,1.591,0,0,0,1.591-1.591v-2.454a1.4,1.4,0,0,0-.878-1.3l-3.661-1.478\",\n transform: \"translate(-285.324 256.027)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\",\n transform: \"translate(-21384 -13285.408)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M222.024-169.847a1.5,1.5,0,0,0-1.608-1.371h-6.783a1.5,1.5,0,0,0-1.608,1.371v8.772a1.5,1.5,0,0,0,1.608,1.371h6.783a1.5,1.5,0,0,0,1.608-1.371Z\",\n transform: \"translate(-212.024 172.79)\",\n fill: \"#48b05e\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-176.9H227v-1.547h-6.176Z\",\n transform: \"translate(-218.907 178.45)\",\n fill: \"#48b05e\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-116.419H227v-.387h-6.176Z\",\n transform: \"translate(-218.907 130.115)\",\n fill: \"#48b05e\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h9.938\",\n transform: \"translate(-212.137 165.703)\",\n fill: \"#48b05e\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h9.938\",\n transform: \"translate(-212.137 138.306)\",\n fill: \"#48b05e\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_747\",\n \"data-name\": \"Path 747\",\n d: \"M228.8-149.994a8,8,0,0,1,1.087,2.272,1.087,1.087,0,0,1-1.087,1.087,1.087,1.087,0,0,1-1.087-1.087A8,8,0,0,1,228.8-149.994Z\",\n transform: \"translate(-21607.797 -13129.663)\",\n fill: \"#fff\",\n fillRule: \"evenodd\"\n}));\n\nvar SvgMyStock = function SvgMyStock(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 29.375,\n height: 24.967,\n viewBox: \"0 0 29.375 24.967\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMyStock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/my-stock.20fd25a9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1040\",\n \"data-name\": \"Group 1040\",\n transform: \"translate(-21.463 -200.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1004\",\n \"data-name\": \"Group 1004\",\n transform: \"translate(19.713 265.145)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_589\",\n \"data-name\": \"Path 589\",\n d: \"M25.373-57.856a1,1,0,0,0-.294-.71,1,1,0,0,0-.71-.294H8.74a1.008,1.008,0,0,0-.712.3,1.008,1.008,0,0,0-.3.712v18.038H25.373Z\",\n transform: \"translate(-3.639 -3.508)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_590\",\n \"data-name\": \"Path 590\",\n d: \"M16.451-46.4H28.23v-3.769H16.451Z\",\n transform: \"translate(-9.427 -9.28)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-18.105H31.4v-7.631H26.138Z\",\n transform: \"translate(-15.858 -25.497)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_592\",\n \"data-name\": \"Path 592\",\n d: \"M2.25-2.25H23.4\",\n transform: \"translate(0 -41.088)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144H28.71\",\n transform: \"translate(-10.758)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1002\",\n \"data-name\": \"Group 1002\",\n transform: \"translate(-51 -276)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_910\",\n \"data-name\": \"Group 910\",\n transform: \"translate(89 487.592)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M222.024-169.847a1.5,1.5,0,0,0-1.608-1.371h-6.783a1.5,1.5,0,0,0-1.608,1.371v8.772a1.5,1.5,0,0,0,1.608,1.371h6.783a1.5,1.5,0,0,0,1.608-1.371Z\",\n transform: \"translate(-212.024 172.79)\",\n fill: \"#fff\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-176.9H227v-1.547h-6.176Z\",\n transform: \"translate(-218.907 178.45)\",\n fill: \"#fff\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-116.419H227v-.387h-6.176Z\",\n transform: \"translate(-218.907 130.115)\",\n fill: \"#fff\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h9.938\",\n transform: \"translate(-212.137 165.703)\",\n fill: \"#fff\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"bottle\",\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h9.938\",\n transform: \"translate(-212.137 138.306)\",\n fill: \"#fff\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75\n}))), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_747\",\n \"data-name\": \"Path 747\",\n d: \"M228.8-149.994a8,8,0,0,1,1.087,2.272,1.087,1.087,0,0,1-1.087,1.087,1.087,1.087,0,0,1-1.087-1.087A8,8,0,0,1,228.8-149.994Z\",\n transform: \"translate(-134.796 643.337)\",\n fill: \"#48b05e\",\n fillRule: \"evenodd\"\n})));\n\nvar SvgCompanyStock = function SvgCompanyStock(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26.912,\n height: 25.162,\n viewBox: \"0 0 26.912 25.162\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCompanyStock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/company-stock.d09fcb58.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_909\",\n \"data-name\": \"Group 909\",\n transform: \"translate(0.5 0.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_682\",\n \"data-name\": \"Group 682\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M230.024-168.75a2.708,2.708,0,0,0-2.9-2.468h-12.21a2.709,2.709,0,0,0-2.9,2.468v15.79a2.709,2.709,0,0,0,2.9,2.468h12.21a2.708,2.708,0,0,0,2.9-2.468Z\",\n transform: \"translate(-212.024 174.048)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-175.665h11.117v-2.785H220.819Z\",\n transform: \"translate(-217.377 178.45)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-116.109h11.117v-.7H220.819Z\",\n transform: \"translate(-217.377 140.761)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h17.888\",\n transform: \"translate(-212.112 168.511)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h17.888\",\n transform: \"translate(-212.112 147.132)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}))), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_587\",\n \"data-name\": \"Path 587\",\n d: \"M229.666-149.994s1.956,3.009,1.956,4.09a1.957,1.957,0,0,1-1.956,1.956,1.958,1.958,0,0,1-1.957-1.956C227.709-146.985,229.666-149.994,229.666-149.994Z\",\n transform: \"translate(-220.665 160.346)\",\n fill: \"#48b05e\",\n fillRule: \"evenodd\"\n}));\n\nvar SvgCylinders = function SvgCylinders(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 25.652,\n viewBox: \"0 0 19 25.652\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCylinders, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/cylinders.7e02322b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_864\",\n \"data-name\": \"Group 864\",\n transform: \"translate(-1410.5 -1177.605)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_767\",\n \"data-name\": \"Group 767\",\n transform: \"translate(1411 1178.105)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_637\",\n \"data-name\": \"Path 637\",\n d: \"M8.776-27.5v3.862\",\n transform: \"translate(-5.588 44.969)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_638\",\n \"data-name\": \"Path 638\",\n d: \"M16.277-22.79v1.931\",\n transform: \"translate(-10.013 42.191)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_639\",\n \"data-name\": \"Path 639\",\n d: \"M6.354-18.082h4.961v.412H6.354Z\",\n transform: \"translate(-4.158 39.413)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_640\",\n \"data-name\": \"Path 640\",\n d: \"M42.2-27.5v3.862\",\n transform: \"translate(-25.304 44.969)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_641\",\n \"data-name\": \"Path 641\",\n d: \"M34.7-22.79v1.931\",\n transform: \"translate(-20.879 42.191)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_642\",\n \"data-name\": \"Path 642\",\n d: \"M32.519-18.078H37.48v.41H32.519Z\",\n transform: \"translate(-19.595 39.411)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_631\",\n \"data-name\": \"Path 631\",\n d: \"M11-70.1a10,10,0,0,1,10,10,10,10,0,0,1-10,10,10,10,0,0,1-10-10A10,10,0,0,1,11-70.1Z\",\n transform: \"translate(-1 70.104)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_632\",\n \"data-name\": \"Path 632\",\n d: \"M14.272-64.558A7.729,7.729,0,0,1,22-56.832a7.729,7.729,0,0,1-7.726,7.726,7.729,7.729,0,0,1-7.726-7.726A7.729,7.729,0,0,1,14.272-64.558Z\",\n transform: \"translate(-4.272 66.832)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_643\",\n \"data-name\": \"Path 643\",\n d: \"M23.8-48.413A1.106,1.106,0,0,1,24.9-47.307,1.106,1.106,0,0,1,23.8-46.2a1.106,1.106,0,0,1-1.106-1.106A1.106,1.106,0,0,1,23.8-48.413Z\",\n transform: \"translate(-13.797 57.307)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_644\",\n \"data-name\": \"Path 644\",\n d: \"M7.66-45.716H9.427\",\n transform: \"translate(-4.929 55.716)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_645\",\n \"data-name\": \"Path 645\",\n d: \"M8.725-51.769l1.661.6\",\n transform: \"translate(-5.557 59.287)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_646\",\n \"data-name\": \"Path 646\",\n d: \"M11.793-57.094l1.355,1.134\",\n transform: \"translate(-7.367 62.429)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_647\",\n \"data-name\": \"Path 647\",\n d: \"M16.494-61.052l.887,1.529\",\n transform: \"translate(-10.141 64.764)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_648\",\n \"data-name\": \"Path 648\",\n d: \"M22.264-63.167l.311,1.74\",\n transform: \"translate(-13.545 66.012)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_649\",\n \"data-name\": \"Path 649\",\n d: \"M27.976-63.185l-.3,1.741\",\n transform: \"translate(-16.737 66.022)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_636\",\n \"data-name\": \"Path 636\",\n d: \"M32.929-61.1l-.878,1.534\",\n transform: \"translate(-19.319 64.795)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_635\",\n \"data-name\": \"Path 635\",\n d: \"M36.975-57.174l-1.349,1.142\",\n transform: \"translate(-21.428 62.476)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_633\",\n \"data-name\": \"Path 633\",\n d: \"M39.63-51.867l-1.658.613\",\n transform: \"translate(-22.812 59.345)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_634\",\n \"data-name\": \"Path 634\",\n d: \"M40.573-45.822l-1.767.011\",\n transform: \"translate(-23.304 55.778)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_650\",\n \"data-name\": \"Path 650\",\n d: \"M29.5-53,27.291-50.8\",\n transform: \"translate(-16.511 60.015)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_651\",\n \"data-name\": \"Path 651\",\n d: \"M20.309-43.814,18.1-41.607\",\n transform: \"translate(-11.089 54.594)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_652\",\n \"data-name\": \"Path 652\",\n d: \"M21.636-35.883H22.66v-1.024H21.636Z\",\n transform: \"translate(-13.175 50.519)\",\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_653\",\n \"data-name\": \"Path 653\",\n d: \"M26.647-35.883h1.024v-1.024H26.647Z\",\n transform: \"translate(-16.131 50.519)\",\n fillRule: \"evenodd\"\n})));\n\nvar SvgAnalyzers = function SvgAnalyzers(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 22.743,\n viewBox: \"0 0 21 22.743\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAnalyzers, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/analyzers.ace7e29e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1013\",\n \"data-name\": \"Group 1013\",\n transform: \"translate(-24.463 -398.5)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_750\",\n \"data-name\": \"Path 750\",\n d: \"M2.25-2.25h20\",\n transform: \"translate(22.713 422.057)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144h4\",\n transform: \"translate(13.955 468.145)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_748\",\n \"data-name\": \"Path 748\",\n d: \"M23.732-57.856a1.058,1.058,0,0,0-.267-.71.87.87,0,0,0-.644-.294H8.646a.873.873,0,0,0-.646.3,1.062,1.062,0,0,0-.268.712v18.038h16Z\",\n transform: \"translate(19.074 459.637)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_749\",\n \"data-name\": \"Path 749\",\n d: \"M18.456-64.144h8\",\n transform: \"translate(12.545 463.145)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1012\",\n \"data-name\": \"Group 1012\",\n transform: \"translate(0.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1011\",\n \"data-name\": \"Group 1011\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1009\",\n \"data-name\": \"Group 1009\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_57\",\n \"data-name\": \"Line 57\",\n x2: 12,\n transform: \"translate(28.5 411.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_65\",\n \"data-name\": \"Line 65\",\n x2: 12,\n transform: \"translate(28.5 409.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_58\",\n \"data-name\": \"Line 58\",\n x2: 12,\n transform: \"translate(28.5 413.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_59\",\n \"data-name\": \"Line 59\",\n x2: 12,\n transform: \"translate(28.5 415.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_60\",\n \"data-name\": \"Line 60\",\n x2: 12,\n transform: \"translate(28.5 417.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1008\",\n \"data-name\": \"Group 1008\",\n transform: \"translate(485 251) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_61\",\n \"data-name\": \"Line 61\",\n x2: 8,\n transform: \"translate(158.5 450.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_62\",\n \"data-name\": \"Line 62\",\n x2: 8,\n transform: \"translate(158.5 452.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_63\",\n \"data-name\": \"Line 63\",\n x2: 8,\n transform: \"translate(158.5 454.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_64\",\n \"data-name\": \"Line 64\",\n x2: 8,\n transform: \"translate(158.5 456.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1010\",\n \"data-name\": \"Group 1010\",\n transform: \"translate(491.5 251) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_61-2\",\n \"data-name\": \"Line 61\",\n x2: 8,\n transform: \"translate(158.5 450.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_62-2\",\n \"data-name\": \"Line 62\",\n x2: 8,\n transform: \"translate(158.5 452.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_63-2\",\n \"data-name\": \"Line 63\",\n x2: 8,\n transform: \"translate(158.5 454.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_64-2\",\n \"data-name\": \"Line 64\",\n x2: 8,\n transform: \"translate(158.5 456.5)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 0.5\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-23.1h5v-2.636h-5Z\",\n transform: \"translate(9.855 429.647)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgUnits = function SvgUnits(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 21.822,\n viewBox: \"0 0 21 21.822\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgUnits, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/units.e3448b0a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_752\",\n \"data-name\": \"Path 752\",\n d: \"M19,14.182a.546.546,0,0,0-.545.545v5.455a1.638,1.638,0,0,1-1.636,1.636H11.909V5.012a2.351,2.351,0,0,0-1.428-2.164l-4.1-1.756H16.818a1.638,1.638,0,0,1,1.636,1.636V8.182a.545.545,0,1,0,1.091,0V2.727A2.731,2.731,0,0,0,16.818,0H3.727A.535.535,0,0,0,3.6.025,2.321,2.321,0,0,0,3.355,0,2.359,2.359,0,0,0,1,2.355V21.17a2.351,2.351,0,0,0,1.428,2.164l6.2,2.656a2.356,2.356,0,0,0,3.285-2.164v-.917h4.909a2.731,2.731,0,0,0,2.727-2.727V14.727A.546.546,0,0,0,19,14.182Zm-8.182,9.645a1.266,1.266,0,0,1-1.763,1.163l-6.2-2.656a1.265,1.265,0,0,1-.767-1.163V2.355A1.266,1.266,0,0,1,3.355,1.091a1.244,1.244,0,0,1,.5.1l6.2,2.655a1.265,1.265,0,0,1,.767,1.163ZM9.182,12a.546.546,0,0,0-.545.545v2.182a.545.545,0,1,0,1.091,0V12.545A.546.546,0,0,0,9.182,12Zm15.789-.689a.6.6,0,0,0-.012-.061.527.527,0,0,0-.125-.185L21.567,7.8a.545.545,0,0,0-.771.771l2.34,2.34h-9.59a.545.545,0,0,0,0,1.091h9.592L20.8,14.342a.546.546,0,0,0,.771.772l3.273-3.273c.015-.015.021-.035.034-.05a.528.528,0,0,0,.084-.128.52.52,0,0,0,.029-.146A.435.435,0,0,0,25,11.455.528.528,0,0,0,24.971,11.311Z\",\n transform: \"translate(-1)\",\n fill: \"#bc3535\"\n});\n\nvar SvgLogout = function SvgLogout(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Group_1038\",\n \"data-name\": \"Group 1038\",\n width: 24,\n height: 26.182,\n viewBox: \"0 0 24 26.182\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogout, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logout.f5e614c4.svg\";\nexport { ForwardRef as ReactComponent };","import RouteCreator from \"../../../core/RouteCreator\";\r\nimport { ReactComponent as MyStockSvg } from \"../../../assets/pwa/my-stock.svg\";\r\nimport { ReactComponent as CompanyStockSvg } from \"../../../assets/pwa/company-stock.svg\";\r\nimport { ReactComponent as CylindersSvg } from \"../../../assets/pwa/cylinders.svg\";\r\nimport { ReactComponent as AnylizersSvg } from \"../../../assets/pwa/analyzers.svg\";\r\nimport { ReactComponent as UnitsSvg } from \"../../../assets/pwa/units.svg\";\r\nimport { ReactComponent as LogoutSvg } from \"../../../assets/pwa/logout.svg\";\r\nimport styled from \"styled-components\";\r\n\r\nconst IconLogout = styled(LogoutSvg)`\r\n width: 30px;\r\n height: 30px;\r\n padding-left: 4px;\r\n &.active path,\r\n &.active line {\r\n stroke: #fff;\r\n }\r\n\r\n &.active path.bottle {\r\n fill: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst IconUnits = styled(UnitsSvg)`\r\n width: 30px;\r\n height: 30px;\r\n\r\n & path,\r\n & line {\r\n stroke: #000;\r\n }\r\n\r\n & path.bottle {\r\n fill: #fff;\r\n }\r\n\r\n &.active path,\r\n &.active line {\r\n stroke: #fff;\r\n }\r\n\r\n &.active path.bottle {\r\n fill: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst IconAnalyzers = styled(AnylizersSvg)`\r\n width: 30px;\r\n height: 30px;\r\n\r\n & path {\r\n stroke: #000;\r\n }\r\n\r\n & path.bottle {\r\n fill: #fff;\r\n }\r\n\r\n &.active path {\r\n stroke: #fff;\r\n }\r\n\r\n &.active path.bottle {\r\n fill: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst IconMyStock = styled(MyStockSvg)`\r\n width: 30px;\r\n height: 30px;\r\n\r\n & path {\r\n stroke: #000;\r\n }\r\n\r\n & path.bottle {\r\n fill: #fff;\r\n }\r\n\r\n &.active path {\r\n stroke: #fff;\r\n }\r\n\r\n &.active path.bottle {\r\n fill: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst IconCompanytock = styled(CompanyStockSvg)`\r\n width: 30px;\r\n height: 30px;\r\n\r\n & path {\r\n stroke: #000;\r\n }\r\n\r\n & path.bottle {\r\n fill: #fff;\r\n }\r\n\r\n &.active path {\r\n stroke: #fff;\r\n }\r\n\r\n &.active path.bottle {\r\n fill: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst IconCylinders = styled(CylindersSvg)`\r\n width: 30px;\r\n height: 30px;\r\n\r\n & path {\r\n stroke: #000;\r\n }\r\n\r\n & path.bottle {\r\n fill: #fff;\r\n }\r\n\r\n &.active path {\r\n stroke: #fff;\r\n }\r\n\r\n &.active path.bottle {\r\n fill: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst PwaMenuItems = (enabled) => {\r\n return [\r\n {\r\n name: \"navigation:myStock\",\r\n Icon: IconMyStock,\r\n url: enabled ? RouteCreator.home() : null,\r\n },\r\n {\r\n name: \"navigation:companyStock\",\r\n Icon: IconCompanytock,\r\n url: enabled ? RouteCreator.pwa.stock() : null,\r\n },\r\n {\r\n name: \"navigation:extractionCylinders\",\r\n Icon: IconCylinders,\r\n url: enabled ? RouteCreator.pwa.cylinders() : null,\r\n },\r\n {\r\n name: \"navigation:gasAnalyzers\",\r\n Icon: IconAnalyzers,\r\n url: RouteCreator.pwa.analyzers(),\r\n },\r\n {\r\n name: \"navigation:units\",\r\n Icon: IconUnits,\r\n url: enabled ? RouteCreator.pwa.equipment() : null,\r\n },\r\n {\r\n name: \"navigation:logOut\",\r\n Icon: IconLogout,\r\n url: \"#\",\r\n action: \"logout\",\r\n },\r\n ];\r\n};\r\n\r\nexport default PwaMenuItems;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1042\",\n \"data-name\": \"Group 1042\",\n transform: \"translate(238.621 226.621) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_6\",\n \"data-name\": \"Line 6\",\n x2: 7,\n y2: 7,\n transform: \"translate(229.5 210.5)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_7\",\n \"data-name\": \"Line 7\",\n y1: 7,\n x2: 7,\n transform: \"translate(229.5 217.5)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}));\n\nvar SvgCloseArrow = function SvgCloseArrow(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11.243,\n height: 18.243,\n viewBox: \"0 0 11.243 18.243\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCloseArrow, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/close-arrow.b8f8190e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from \"react\";\r\nimport { NavLink, useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport userStateModule from \"../../core/state/user/userStateModule\";\r\nimport UserService from \"../../services/User/UserService\";\r\nimport helpers from \"../../core/helpers\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport pwaMenuItems from \"./components/PwaMenuItems\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\nimport { ReactComponent as ArrowSvg } from \"../../assets/pwa-right.svg\";\r\nimport { ReactComponent as CloseSvg } from \"../../assets/pwa/close-arrow.svg\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport Logo from \"../../components/logo/Logo\";\r\nimport LanguageSwitch from \"../../components/elements/header/components/LanguageSwitch\";\r\n\r\nconst StyledClose = styled(CloseSvg)`\r\n width: auto;\r\n height: 18px;\r\n margin-right: 8px;\r\n`;\r\n\r\nconst StyledArrow = styled(ArrowSvg)`\r\n width: 12px;\r\n height: 12px;\r\n\r\n & .arrow {\r\n stroke: #d5d0d0;\r\n }\r\n\r\n &.active line {\r\n stroke: #fff;\r\n }\r\n`;\r\n\r\nconst MenuBack = styled.div`\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(255, 255, 255, 0.7);\r\n z-index: 5;\r\n transform: translateX(-100%);\r\n\r\n &.open {\r\n transform: translateY(0);\r\n }\r\n`;\r\n\r\nconst Header = styled.div`\r\n box-sizing: border-box;\r\n padding: 15px 20px;\r\n background: #ffffff;\r\n color: #000000;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 55px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-content: center;\r\n\r\n & + .content {\r\n padding: 45px 0px 0px 0px;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst HeaderSection = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n & img + * {\r\n margin-left: 25px;\r\n }\r\n\r\n & .close {\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n box-sizing: border-box;\r\n padding: 15px 20px;\r\n background: #ffffff;\r\n color: #000000;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 83%;\r\n height: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-content: center;\r\n transform: translateX(-100%);\r\n transition: 0.3s ease all;\r\n z-index: 6;\r\n background: #f5f5f5;\r\n box-shadow: 0 6px 40px rgba(0, 0, 0, 0.16);\r\n\r\n &.open {\r\n transform: translateX(0);\r\n }\r\n`;\r\n\r\nconst Avatar = styled.div`\r\n border-radius: 50%;\r\n width: 32px;\r\n height: 32px;\r\n color: #fff;\r\n background-color: ${(p) => p.theme.secondaryColor};\r\n text-align: center;\r\n margin-right: 12px;\r\n\r\n & span {\r\n line-height: 34px;\r\n font-size: 16px;\r\n text-transform: uppercase;\r\n }\r\n\r\n .avatar {\r\n border-radius: 50%;\r\n background: no-repeat center;\r\n background-size: cover;\r\n display: inline-block;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n`;\r\n\r\nconst UserSection = styled.div`\r\n font-size: 12px;\r\n width: 100%;\r\n height: 60px;\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst UserName = styled.div`\r\n font-size: 14px;\r\n font-weight: 600;\r\n color: ${(p) => p.theme.primaryColor};\r\n`;\r\n\r\nconst MenuList = styled.ul`\r\n list-style: none;\r\n margin: 0px -20px;\r\n padding: 0;\r\n`;\r\n\r\nconst IconWrapper = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n min-width: 30px;\r\n`;\r\n\r\nexport const Icon = styled.img`\r\n height: 29px;\r\n width: 28px;\r\n`;\r\n\r\nconst ItemName = styled.div`\r\n color: ${(props) => props.theme.menuItems};\r\n margin-left: 10px;\r\n text-transform: uppercase;\r\n margin-left: 10px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n`;\r\n\r\nconst ListItem = styled.li`\r\n outline: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: transparent;\r\n list-style: none;\r\n width: 100%;\r\n cursor: pointer;\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n height: 60px;\r\n padding: 0px 20px;\r\n\r\n &.action * {\r\n color: #bc3535;\r\n stroke: #bc3535;\r\n fill: #bc3535;\r\n }\r\n\r\n &.disabled * {\r\n color: rgba(0, 0, 0, 0.25);\r\n stroke: rgba(0, 0, 0, 0.25);\r\n }\r\n\r\n & .inline {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n &.top-item {\r\n &:hover:not(.active) {\r\n box-shadow: 0 0 8px 6px rgba(0, 0, 0, 0.1);\r\n }\r\n }\r\n\r\n &.active {\r\n background: ${(p) => p.theme.primaryColor};\r\n color: #fff;\r\n a {\r\n color: #fff !important;\r\n }\r\n }\r\n\r\n & a {\r\n color: ${(props) => props.theme.menuItems};\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n margin-left: 10px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n &:hover {\r\n color: ${(props) => props.theme.textActive};\r\n }\r\n }\r\n\r\n .listitem-name {\r\n margin: 0 0 0 20px;\r\n }\r\n`;\r\n\r\nlet listeners = [];\r\nlet state = { isOpen: false, active: 0 };\r\n\r\nconst setState = (newState) => {\r\n state = { ...state, ...newState };\r\n listeners.forEach((listener) => {\r\n listener(state);\r\n });\r\n};\r\n\r\nconst useLeftMenu = () => {\r\n const newListener = useState()[1];\r\n useEffect(() => {\r\n // Called just after component mount\r\n listeners.push(newListener);\r\n return () => {\r\n // Called just before the component unmount\r\n listeners = listeners.filter(\r\n (listener) => listener !== newListener\r\n );\r\n };\r\n }, []);\r\n return [state, setState];\r\n};\r\n\r\nconst LeftMenu = (props) => {\r\n const { UserId } = UserService.getUserDetailsFromToken();\r\n const history = useHistory();\r\n const [menuState, setMenuState] = useLeftMenu();\r\n const { logout, userData } = useStateModule(userStateModule);\r\n const { t } = useTranslation(\"screens\");\r\n const avatarUrl = userData.profilePictureUrl;\r\n const userFullName = userData.firstName + \" \" + userData.lastName;\r\n const [headerState, setHeaderState] = useSharedState(\"pwaHeader\");\r\n const [globalState] = useSharedState(\"global\");\r\n\r\n const handleClick = (ev, idx, name, action) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n if (action && action === \"logout\") {\r\n setMenuState({ isOpen: false });\r\n logout();\r\n return;\r\n }\r\n var a = ev.currentTarget.getElementsByTagName(\"a\")[0];\r\n if (!a) return;\r\n const to = a.href.substring(a.origin.length);\r\n\r\n setMenuState({ active: idx });\r\n setHeaderState({ title: name, menuIndex: idx });\r\n setTimeout(() => {\r\n setMenuState({ isOpen: false });\r\n }, 100);\r\n setTimeout(() => {\r\n history.push(to);\r\n }, 300);\r\n };\r\n\r\n const handleUserEdit = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n\r\n setTimeout(() => {\r\n setMenuState({ active: -1, isOpen: false });\r\n setHeaderState({ title: t(\"navigation:userInfo\"), menuIndex: -1 });\r\n }, 200);\r\n history.push(RouteCreator.pwa.editUser(UserId));\r\n };\r\n\r\n return (\r\n <>\r\n setMenuState({ isOpen: false })}\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n setMenuState({ isOpen: false })}\r\n >\r\n \r\n
    {t(\"navigation:close\")}
    \r\n \r\n
    \r\n
    \r\n {\r\n handleUserEdit(ev);\r\n }}\r\n >\r\n \r\n {avatarUrl ? (\r\n
    \r\n ) : (\r\n {helpers.getInitials(userFullName)}\r\n )}\r\n \r\n
    \r\n Welcome,\r\n
    \r\n {userFullName}\r\n
    \r\n \r\n \r\n {pwaMenuItems(\r\n globalState.hasValidCompanyCertificate &\r\n globalState.hasValidUserCertificate\r\n ).map((item, index) => {\r\n return (\r\n \r\n handleClick(\r\n ev,\r\n index,\r\n t(item.name),\r\n item.action\r\n )\r\n }\r\n key={index}\r\n >\r\n
    \r\n {item.icon && (\r\n \r\n \r\n \r\n )}\r\n {item.Icon && (\r\n \r\n )}\r\n {item.url ? (\r\n \r\n {t(item.name)}\r\n \r\n ) : (\r\n {t(item.name)}\r\n )}\r\n
    \r\n {!item.action && (\r\n \r\n )}\r\n \r\n );\r\n })}\r\n
    \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default LeftMenu;\r\nexport { useLeftMenu };\r\n","const GradeStatus = {\r\n 0: 'A',\r\n 1: 'B',\r\n 2: 'C'\r\n};\r\n\r\nexport default GradeStatus;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1117\",\n \"data-name\": \"Group 1117\",\n transform: \"translate(-39.793 -84.793)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_970\",\n \"data-name\": \"Group 970\",\n transform: \"translate(-230.223 77)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_967\",\n \"data-name\": \"Group 967\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_47\",\n \"data-name\": \"Ellipse 47\",\n transform: \"translate(292.723 34) rotate(180)\",\n fill: \"#fff\",\n stroke: \"#bc3535\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 4.5,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 3.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_55\",\n \"data-name\": \"Line 55\",\n x2: 12,\n transform: \"translate(284.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#bc3535\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_56\",\n \"data-name\": \"Line 56\",\n x2: 4,\n transform: \"translate(296.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#bc3535\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_968\",\n \"data-name\": \"Group 968\",\n transform: \"translate(568.445 44) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_47-2\",\n \"data-name\": \"Ellipse 47\",\n transform: \"translate(292.723 34) rotate(180)\",\n fill: \"#fff\",\n stroke: \"#bc3535\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 4.5,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 3.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_55-2\",\n \"data-name\": \"Line 55\",\n x2: 12,\n transform: \"translate(284.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#bc3535\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_56-2\",\n \"data-name\": \"Line 56\",\n x2: 4,\n transform: \"translate(296.223 29.5) rotate(180)\",\n fill: \"none\",\n stroke: \"#bc3535\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}))), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_72\",\n \"data-name\": \"Line 72\",\n y1: 25,\n x2: 25,\n transform: \"translate(41.5 86.5)\",\n fill: \"none\",\n stroke: \"#bc3535\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_73\",\n \"data-name\": \"Line 73\",\n y1: 25,\n x2: 25,\n transform: \"translate(42.5 87.5)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_74\",\n \"data-name\": \"Line 74\",\n y1: 25,\n x2: 25,\n transform: \"translate(40.5 85.5)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgClearFilters = function SvgClearFilters(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 28.414,\n height: 28.414,\n viewBox: \"0 0 28.414 28.414\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgClearFilters, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/clear-filters.cc95be20.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1061\",\n \"data-name\": \"Group 1061\",\n transform: \"translate(-115 -111)\",\n opacity: 0.75\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_46\",\n \"data-name\": \"Ellipse 46\",\n cx: 6,\n cy: 6,\n r: 6,\n transform: \"translate(115 111)\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_937\",\n \"data-name\": \"Group 937\",\n transform: \"translate(119 115)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n x2: 4,\n y2: 4,\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_13\",\n \"data-name\": \"Line 13\",\n y1: 4,\n x2: 4,\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgDarkClose = function SvgDarkClose(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDarkClose, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/dark-close.bb9c829d.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useRef, memo } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {StyledFilter} from \"./components/StyledSvg\";\r\nimport { ReactComponent as ClearSvg } from \"../../assets/pwa/clear-filters.svg\";\r\nimport { ReactComponent as CloseSvg } from \"../../assets/pwa/dark-close.svg\";\r\n\r\nconst StyledClose = styled(CloseSvg)`\r\n width: 24px;\r\n height: 24px;\r\n\r\n & line,\r\n & path {\r\n stroke: #fff;\r\n }\r\n\r\n &.active line {\r\n stroke: #fff;\r\n }\r\n`;\r\n\r\nconst StyledClear = styled(ClearSvg)`\r\n width: 24px;\r\n height: 24px;\r\n margin-right: 12px;\r\n & line,\r\n & path {\r\n stroke: #bc3535;\r\n }\r\n`;\r\n\r\n\r\nconst MenuBack = styled.div`\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: transparent;\r\n z-index: 1;\r\n transform: translateY(100%);\r\n\r\n &.open {\r\n transform: translateY(0);\r\n }\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n box-sizing: border-box;\r\n padding: 20px 10px;\r\n background: #ffffff;\r\n color: #000000;\r\n position: fixed;\r\n bottom: 110%;\r\n left: 5%;\r\n width: 90%;\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: space-between;\r\n align-content: space-between;\r\n transform: translateY(30px);\r\n transition: 0.5s ease all;\r\n z-index: 3;\r\n border-radius: 15px;\r\n box-shadow: 0 6px 40px rgba(0, 0, 0, 0.16);\r\n\r\n &.open {\r\n transform: translateY(calc(100% + 150px));\r\n }\r\n\r\n & .content {\r\n width: 100%;\r\n margin-bottom: 20px;\r\n }\r\n`;\r\n\r\nconst ClearButton = styled.div`\r\n height: 24px;\r\n display: flex;\r\n align-items: center;\r\n color: #000;\r\n &.hasFilters {\r\n color: #bc3535;\r\n }\r\n & * {\r\n text-transform: uppercase;\r\n font-size: 14px;\r\n font-weight: 700;\r\n }\r\n`;\r\n\r\nconst Header = styled.div`\r\n margin: 0px 0px 40px 0px;\r\n padding: 0px 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n flex-basis: 100%;\r\n`;\r\n\r\nexport const Icon = styled.img`\r\n height: 12px;\r\n width: 12px;\r\n`;\r\n\r\nconst CloseButton = styled.div`\r\n width: 24px;\r\n height: 24px;\r\n border-radius: 50%;\r\n background: #000;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n &:active {\r\n background: #961c1c;\r\n }\r\n`;\r\n\r\nconst ApplyButton = styled.div`\r\n width: 120px;\r\n height: 40px;\r\n border-radius: 40px;\r\n background: ${(p) => p.theme.primaryColor};\r\n color: #fff;\r\n position: absolute;\r\n z-index: 4;\r\n left: calc(50% - 60px);\r\n bottom: -20px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 12px;\r\n font-weight: 600;\r\n\r\n &:active {\r\n box-shadow: inset 0 0 10px #000000;\r\n }\r\n`;\r\n\r\nconst FilterMenu = ({ control }) => {\r\n const [menuState, setMenuState] = useState({\r\n isOpen: false,\r\n active: 0,\r\n hasFilters: undefined,\r\n filterItems: undefined,\r\n applyFn: undefined,\r\n clearFn: undefined,\r\n text: undefined\r\n });\r\n const wrapRef = useRef();\r\n if (control) {\r\n control.state = menuState;\r\n control.setState = setMenuState;\r\n }\r\n\r\n const handleClick = (ev, apply) => {\r\n if (apply && menuState.applyFn) menuState.applyFn();\r\n setMenuState({ isOpen: false });\r\n };\r\n\r\n const handleClear = (ev) => {\r\n menuState.clearFn && menuState.clearFn();\r\n setMenuState({ isOpen: false });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n {menuState.hasFilters ? (\r\n handleClear(ev)}>\r\n \r\n {menuState.text}\r\n \r\n ) : (\r\n \r\n \r\n {menuState.text}\r\n \r\n )}\r\n handleClick(ev)}>\r\n \r\n \r\n
    \r\n
    {menuState.filterItems}
    \r\n handleClick(ev, true)}>\r\n Apply Filters\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default memo(FilterMenu);\r\n","import React, { useEffect, useMemo, useCallback, useRef } from \"react\";\r\nimport globals from \"../../../globalVars\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport GradeStatus from \"../../../core/enums/GradeStatus\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport stockListingStateModule from \"../../../core/state/stock/stockListingStateModule\";\r\nimport FilterMenu from \"../FilterMenu\";\r\nimport { Select } from \"../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../components/elements/form-elements/InputElement\";\r\nimport {\r\n StyledFilter,\r\n StyledArrow,\r\n StyledBack,\r\n StyledClose,\r\n} from \"./StyledSvg\";\r\n\r\nimport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n ListTitle,\r\n FlexForm,\r\n FilterClear,\r\n FilterWrapper,\r\n HR,\r\n} from \"./StyledElements\";\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"extractionDateTime\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_FILTERS:\r\n state.filter.refrigerantGasTypeCode = action.payload.gasType;\r\n state.filter.quantityTo = action.payload.quantityTo;\r\n state.filter.quantityFrom = action.payload.quantityFrom;\r\n state.filter.presumedGrade = action.payload.presumedGrade;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n delete state.filter.refrigerantGasTypeCode;\r\n delete state.filter.quantityTo;\r\n delete state.filter.quantityFrom;\r\n delete state.filter.presumedGrade;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst CompanyStockListing = (props) => {\r\n const {\r\n stockItems,\r\n isLoading,\r\n error,\r\n loadStockItems,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(stockListingStateModule);\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n locationStatusName: \"CompanyStock\",\r\n },\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"extractionDateTime\",\r\n descending: true,\r\n });\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const filterMenuControl = {};\r\n\r\n useEffect(() => {\r\n loadStockItems(filterState);\r\n }, [loadStockItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n className:\"right\",\r\n Cell: ({ cell: { value } }) => value.toFixed(2) + \" kg\",\r\n },\r\n {\r\n Header: t(\"stockListing.headers.quality\"),\r\n accessor: \"pressumedGradeName\",\r\n className:\"center\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"skuId\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [filterState.filter, t]);\r\n\r\n const filterData = useRef({\r\n gasType: \"\",\r\n quantityFrom: \"\",\r\n quantityTo: \"\",\r\n presumedGrade:\"\",\r\n });\r\n\r\n const tempFilterData = useRef({});\r\n\r\n const hasFilters = () =>\r\n filterData.current.gasType ||\r\n filterData.current.quantityFrom ||\r\n filterData.current.quantityTo ||\r\n filterData.current.presumedGrade;\r\n\r\n const filterItems = () => {\r\n tempFilterData.current = {};\r\n return (\r\n \r\n {\r\n return {\r\n key: gasType.code,\r\n value: gasType.code,\r\n label: gasType.code,\r\n };\r\n })\r\n }\r\n defaultValue={filterData.current.gasType}\r\n handleChange={(evt) =>\r\n (tempFilterData.current.gasType =\r\n evt.currentTarget.value)\r\n }\r\n />\r\n\r\n {\r\n tempFilterData.current.quantityFrom =\r\n evt.currentTarget.value;\r\n }}\r\n />\r\n\r\n {\r\n tempFilterData.current.quantityTo =\r\n evt.currentTarget.value;\r\n }}\r\n />\r\n\r\n ({\r\n key: key,\r\n value: key,\r\n label: GradeStatus[key],\r\n }))}\r\n handleChange={(evt) =>\r\n (tempFilterData.current.presumedGrade =\r\n evt.currentTarget.value)\r\n }\r\n className=\"filters big\"\r\n wrapperVariant=\"flex-1\"\r\n />\r\n \r\n );\r\n };\r\n\r\n const applyFilters = () => {\r\n Object.assign(filterData.current, tempFilterData.current);\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const clearFilters = () => {\r\n filterData.current = {\r\n gasType: \"\",\r\n quantityFrom: \"\",\r\n quantityTo: \"\",\r\n presumedGrade:\"\",\r\n };\r\n dispatch({\r\n type: actionTypes.RESET_FILTERS,\r\n });\r\n };\r\n\r\n const clearFilter = (name) => {\r\n switch (name) {\r\n case \"type\":\r\n filterData.current.gasType = \"\";\r\n break;\r\n case \"quantity\":\r\n filterData.current.quantityFrom = \"\";\r\n filterData.current.quantityTo = \"\";\r\n break;\r\n case \"quality\":\r\n filterData.current.presumedGrade = \"\";\r\n break;\r\n default:\r\n break;\r\n }\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const showFilter = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n filterMenuControl.setState({\r\n isOpen: true,\r\n hasFilters: hasFilters(),\r\n filterItems: filterItems(),\r\n applyFn: applyFilters,\r\n clearFn: clearFilters,\r\n text: hasFilters()\r\n ? t(\"screens:stockListing.filters.clearFilters\")\r\n : t(\"screens:stockListing.filters.filterMyStock\"),\r\n });\r\n };\r\n\r\n const onSelect = useCallback((row) => {\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const curFilters = filterData.current;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {curFilters.gasType && (\r\n clearFilter(\"type\")}>\r\n {t(\"screens:stockListing.filters.type\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n {(curFilters.quantityFrom || curFilters.quantityTo) && (\r\n clearFilter(\"quantity\")}>\r\n {t(\"screens:stockListing.filters.quantity\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n {(curFilters.presumedGrade ) && (\r\n clearFilter(\"quality\")}>\r\n {t(\"screens:stockListing.filters.quality\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
    \r\n {t(\"screens:technician.cylinders\")}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CompanyStockListing;\r\n","import React, {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport { ShortDateCell } from \"../../../components/data/DateCell\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport { Select } from \"../../../components/elements/form-elements\";\r\nimport { DateTimePicker } from \"../../../components/elements/form-elements/DatePicker\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport FilterMenu from \"../../../screens/pwa/FilterMenu\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport globals from \"../../../globalVars\";\r\nimport {\r\n FilterClear,\r\n FilterWrapper,\r\n FlexForm,\r\n HR,\r\n ListTitle,\r\n ScreenHeader,\r\n ScreenWrapper,\r\n} from \"./StyledElements\";\r\nimport {\r\n StyledArrow,\r\n StyledBack,\r\n StyledClose,\r\n StyledFilter,\r\n} from \"./StyledSvg\";\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst KeyValue = styled.div`\r\n padding: 20px 20px 0px 30px;\r\n width: 100%;\r\n font-size: 14px;\r\n display: flex;\r\n justify-content: space-between;\r\n & .value {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst KeyValueCell = (key, value) => {\r\n return (\r\n \r\n {key}\r\n {value.toFixed(2)} kg\r\n \r\n );\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"extractionDateTime\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_FILTERS:\r\n state.filter.clientName = action.payload.clientName;\r\n state.filter.extractFrom = action.payload.extractFrom;\r\n state.filter.extractTo = action.payload.extractTo;\r\n state.page = 1;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n delete state.filter.clientName;\r\n delete state.filter.extractFrom;\r\n delete state.filter.extractTo;\r\n state.page = 1;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nfunction dynamicSort(property, asc = true) {\r\n var sortOrder = asc ? 1 : -1;\r\n return function (a, b) {\r\n /* next line works with strings and numbers,\r\n * and you may want to customize it to your needs\r\n */\r\n var result =\r\n a[property] < b[property] ? -1 : a[property] > b[property] ? 1 : 0;\r\n return result * sortOrder;\r\n };\r\n}\r\n\r\nconst ExtractionListing = (props) => {\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n client: \"\",\r\n },\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"clientName\",\r\n descending: true,\r\n });\r\n\r\n\r\n const { t } = useTranslation(\"screens\");\r\n const [extState, setExtState] = useState({\r\n data: [],\r\n raw: undefined,\r\n initialQuantity:0\r\n });\r\n const filterMenuControl = {};\r\n const tempFilterData = useRef({});\r\n\r\n const filterData = useRef({\r\n clientName: \"\",\r\n extractFrom: \"\",\r\n extractTo: \"\",\r\n });\r\n \r\n useEffect(() => {\r\n\r\n //apply sorting and filtering\r\n let filtered = null;\r\n if (extState.raw && extState.raw.length) {\r\n extState.raw.sort(\r\n dynamicSort(filterState.orderColumn, !filterState.descending)\r\n );\r\n if (hasFilters()) {\r\n filtered = extState.raw.filter((itm) => {\r\n if (\r\n filterState.filter.clientName &&\r\n itm.clientName !== filterState.filter.clientName\r\n )\r\n return false;\r\n if (filterState.filter.extractFrom) {\r\n const extractDate = new Date(itm.extractionDateTime);\r\n extractDate.setHours(0, 0, 0, 0);\r\n if (\r\n extractDate <\r\n new Date(filterState.filter.extractFrom)\r\n )\r\n return false;\r\n }\r\n if (filterState.filter.extractTo) {\r\n const extractDate = new Date(itm.extractionDateTime);\r\n extractDate.setHours(0, 0, 0, 0);\r\n if (\r\n extractDate > new Date(filterState.filter.extractTo)\r\n )\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n const firstItem = (filterState.page - 1) * filterState.pageSize;\r\n setExtState({\r\n ...extState,\r\n data: filtered\r\n ? filtered.slice(firstItem, firstItem + 10)\r\n : extState.raw.slice(firstItem, firstItem + 10),\r\n });\r\n }\r\n }, [filterState]);\r\n\r\n const clearFilters = () => {\r\n filterData.current = {\r\n clientName: \"\",\r\n extractFrom: \"\",\r\n extractTo: \"\",\r\n };\r\n Object.assign(tempFilterData.current, filterData.current);\r\n dispatch({\r\n type: actionTypes.RESET_FILTERS,\r\n });\r\n };\r\n\r\n const getInitialQuantity = (extractions) => {\r\n if (!extractions || extractions.length === 0) return 0;\r\n let inQuantity = 0;\r\n extractions.forEach((curr) => {\r\n if (curr.extractedByCompanyId !== globals.companyId)\r\n inQuantity += curr.extractedQuantity;\r\n });\r\n return inQuantity;\r\n };\r\n\r\n const getExtractionData = async () => {\r\n if (!props.cylinder) return;\r\n const result = await StockService.getStockItemAsync(props.cylinder);\r\n\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n const raw = result.data.data[0].extractions;\r\n const cylSize = result.data.data[0].cylinderSize;\r\n for (var i = 0; i < raw.length; i++) raw[i].cylinderSize = cylSize;\r\n raw.sort(\r\n dynamicSort(filterState.orderColumn, !filterState.descending)\r\n );\r\n setExtState({\r\n raw: raw,\r\n data: raw.slice(0, extState.pageSize),\r\n initialQuantity: getInitialQuantity(raw),\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n clearFilters();\r\n dispatch({\r\n type: actionTypes.SET_PAGING,\r\n payload: { pageSize: 10, pageIndex: 0 },\r\n });\r\n getExtractionData();\r\n }, [props.cylinder]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"table:headers.client.name\"),\r\n accessor: \"clientName\",\r\n },\r\n {\r\n Header: t(\"table:headers.extractionDate\"),\r\n accessor: \"extractionDateTime\",\r\n className: \"right\",\r\n Cell: ShortDateCell,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [extState.data, t]);\r\n\r\n const onSelect = useCallback((row) => {\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n if (!props.cylinder) return ;\r\n\r\n const hasFilters = () =>\r\n filterData.current.clientName ||\r\n filterData.current.extractFrom ||\r\n filterData.current.extractTo;\r\n\r\n const uniqueClientNames = extState.raw\r\n ? extState.raw.filter(\r\n (v, i, a) =>\r\n a.findIndex((t) => t.clientName === v.clientName) === i\r\n )\r\n : [];\r\n\r\n const filterItems = () => (\r\n \r\n ({\r\n key: key.id,\r\n value: key.clientName,\r\n label: key.clientName,\r\n }))}\r\n handleChange={(evt) => {\r\n tempFilterData.current.clientName = evt.currentTarget.value;\r\n }}\r\n className=\"filters big\"\r\n labelText={t(\"forms:clients.client\")}\r\n wrapperVariant=\"flex-1\"\r\n />\r\n \r\n (tempFilterData.current.extractFrom = ev.target.value)\r\n }\r\n \r\n\r\n />\r\n \r\n (tempFilterData.current.extractTo = ev.target.value)\r\n }\r\n />\r\n \r\n );\r\n\r\n const applyFilters = () => {\r\n Object.assign(filterData.current, tempFilterData.current);\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const clearFilter = (name) => {\r\n switch (name) {\r\n case \"clientName\":\r\n filterData.current.clientName = \"\";\r\n break;\r\n case \"date\":\r\n filterData.current.extractFrom = \"\";\r\n filterData.current.extractTo = \"\";\r\n break;\r\n default:\r\n break;\r\n }\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const showFilter = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n filterMenuControl.setState({\r\n isOpen: true,\r\n hasFilters: hasFilters(),\r\n filterItems: filterItems(),\r\n applyFn: applyFilters,\r\n clearFn: clearFilters,\r\n text: hasFilters()\r\n ? t(\"screens:stockListing.filters.clearFilters\")\r\n : t(\"screens:stockListing.filters.filterExtractions\"),\r\n });\r\n };\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const curFilters = filterData.current;\r\n return (\r\n \r\n \r\n\r\n \r\n {\r\n props.onGoBack(ev);\r\n }}\r\n />\r\n \r\n {curFilters.clientName && (\r\n clearFilter(\"clientName\")}>\r\n {t(\"screens:stockListing.filters.client\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n {(curFilters.extractFrom || curFilters.extractTo) && (\r\n clearFilter(\"date\")}>\r\n {t(\"screens:stockListing.filters.date\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
    \r\n {t(\"screens:technician.extractions\")}\r\n {KeyValueCell(\r\n `${t(\"sidebar:shared.initialQuantity\")}:`,\r\n extState.initialQuantity\r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ExtractionListing;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"Ellipse_4\",\n x: 0,\n y: 0,\n width: 39,\n height: 39,\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 2,\n dy: 2,\n input: \"SourceAlpha\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5,\n result: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0.161\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n operator: \"in\",\n in2: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"SourceGraphic\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1382\",\n \"data-name\": \"Group 1382\",\n transform: \"translate(-1525.5 -584.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1316\",\n \"data-name\": \"Group 1316\",\n transform: \"translate(1528 587)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(1, 0, 0, 1, -2.5, -2.5)\",\n filter: \"url(#Ellipse_4)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_4-2\",\n \"data-name\": \"Ellipse 4\",\n transform: \"translate(2.5 2.5)\",\n fill: \"#fff\",\n stroke: \"#e69221\",\n strokeWidth: 3\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 15,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 13.5,\n fill: \"none\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1234\",\n \"data-name\": \"Group 1234\",\n transform: \"translate(1541.636 594.955)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_48\",\n \"data-name\": \"Ellipse 48\",\n cx: 1.364,\n cy: 1.364,\n r: 1.364,\n transform: \"translate(0 11.364)\",\n fill: \"#e69221\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_799\",\n \"data-name\": \"Path 799\",\n d: \"M.364,0c.5,0,1.364.407,1.364.909L1.273,8.636a.909.909,0,1,1-1.818,0L-1,.909C-1,.407-.138,0,.364,0Z\",\n transform: \"translate(1 0)\",\n fill: \"#e69221\"\n})));\n\nvar SvgOrangeInfo = function SvgOrangeInfo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 39,\n height: 39,\n viewBox: \"0 0 39 39\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgOrangeInfo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/orange-info.42bf1014.svg\";\nexport { ForwardRef as ReactComponent };","import { useLoadScript } from \"@react-google-maps/api\";\r\nimport QRCode from \"qrcode.react\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport LocationMarker from \"../../../components/maps/components/LocationMarker\";\r\nimport DaikinMap from \"../../../components/maps/DaikinMap\";\r\nimport { Box16A9, HR, ListTitle, ScreenHeader, ScreenWrapper, VSpace } from \"./StyledElements\";\r\nimport { StyledBack, StyledFilter, SvgNoImage } from \"./StyledSvg\";\r\nimport { ReactComponent as InfoSvg } from \"../../../assets/orange-info.svg\";\r\n\r\nconst NumSection = styled.div`\r\n padding: 4px 0 4px 0px;\r\n display: flex;\r\n &.col {\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst StyledInfo = styled(InfoSvg)`\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 16px;\r\n`;\r\n\r\nconst StyledQR = styled.div`\r\n width: 100%;\r\n text-align: center;\r\n span {\r\n display: inline-block;\r\n margin-top: 5px;\r\n font-size: 10px;\r\n }\r\n`;\r\nconst TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 16px;\r\n font-weight: 700;\r\n margin-top: 5px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 10px 24px 0px 24px;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 12px 20px;\r\n`;\r\n\r\nconst KeyVal = styled.div`\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n font-size: 14px;\r\n color: #000;\r\n font-weight: 700;\r\n margin-bottom: 6px;\r\n & span {\r\n text-align: right;\r\n max-width: 50%;\r\n font-weight: 500;\r\n color: ${(p) => p.theme.primaryColor};\r\n\r\n & a {\r\n color: ${(p) => p.theme.primaryColor};\r\n font-size: 14px;\r\n }\r\n }\r\n`;\r\n\r\nconst Num = styled.div`\r\n width: 24px;\r\n height: 24px;\r\n line-height: 19px;\r\n font-weight: 700;\r\n font-size: 16px;\r\n text-align: center;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border: 3px solid ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n float: left;\r\n`;\r\n\r\nconst SmallInfo = styled.div`\r\n float: right;\r\n font-size: 12px;\r\n width: 90%;\r\n`;\r\nconst splitTag = (x) => [`${x.slice(0, 4)} ${x.slice(4, 8)}`, x.slice(9)];\r\n\r\nconst formatDateStr = (str) => {\r\n const fmt = Intl.DateTimeFormat(\"sk\", {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n return fmt.format(new Date(str));\r\n};\r\n\r\nconst gradeNames = [\"A\", \"B\", \"C\"];\r\n\r\nconst ExtractionDetails = ({ cylinder, details, extraction, ...restProps }) => {\r\n const { t } = useTranslation(\"screens\");\r\n const { isLoaded } = useLoadScript({\r\n googleMapsApiKey: \"AIzaSyBQSju7sxgnuD4jrzA2cJLP2dVU3RDwHZY\", // ,\r\n // ...otherOptions\r\n });\r\n // const boundsMarkers = useMemo(() => {\r\n // let markers = [];\r\n // if (!details) return;\r\n // const loc = details.locationDetails;\r\n\r\n // if (loc) {\r\n // if (!loc.latitude) {\r\n // return [\r\n // new window.google.maps.Marker({\r\n // position: {\r\n // lat: 44.0,\r\n // lng: 16.0,\r\n // },\r\n // }),\r\n // ];\r\n // }\r\n // return new window.google.maps.Marker({\r\n // position: {\r\n // lat: loc.latitude,\r\n // lng: loc.longitude,\r\n // },\r\n // });\r\n // }\r\n // return markers;\r\n // }, [details]);\r\n\r\n if (!cylinder || !details) return ;\r\n const tagParts = cylinder.tagId ? splitTag(cylinder.tagId) : [];\r\n const tagPartsUnit = details.unitDetails ? splitTag(details.unitDetails.tagId) : [];\r\n const grade = cylinder.pressumedGradeValue;\r\n\r\n return (\r\n isLoaded && (\r\n \r\n \r\n {\r\n restProps.onGoBack(ev);\r\n }}\r\n />\r\n \r\n \r\n
    \r\n {t(\"sidebar:title.extraction.extractionCylinder\")}\r\n \r\n \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n
    \r\n \r\n \r\n {t(\"screens:technician.netQuantity\")}\r\n {details.cylinderSize.toFixed(2)} kg\r\n \r\n
    \r\n
    \r\n \r\n {t(\"screens:technician.extractionDetails\")}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.type\")}\r\n {cylinder.refrigerantGasTypeCode}\r\n \r\n \r\n {t(\"screens:technician.extractionQuantity\")}\r\n {details.extractedQuantity.toFixed(2)} kg\r\n \r\n \r\n {t(\"screens:technician.qualityEvaluation\")}\r\n \r\n {!extraction.hasAnalysis\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : extraction.isAnalysisReceived\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.pendingMeasurement\")}\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\r\n `sidebar:title.contaminated.${\r\n extraction.hasAnalysis ? \"measured\" : \"selfAssessed\"\r\n }`\r\n )}\r\n \r\n {extraction.hasAnalysis & !extraction.isAnalysisReceived ? (\r\n
    \r\n \r\n \r\n {t(\"sidebar:label.waitingForResult\")}\r\n \r\n
    \r\n ) : extraction.isAnalysisReceived ? (\r\n
    \r\n \r\n {t(\"sidebar:label.analysisDate\")}\r\n {formatDateStr(extraction.dataCollectionDateTime)}\r\n \r\n\r\n \r\n {t(\"sidebar:label.analysisResults\")}\r\n \r\n \r\n {t(\"actions:download\")}\r\n \r\n \r\n \r\n\r\n \r\n {t(\"sidebar:label.gasQuantity\")}\r\n {extraction.extractedQuantity + \" kg\"}\r\n \r\n \r\n {t(\"sidebar:label.gasGrade\")}\r\n {gradeNames[extraction.grade]}\r\n \r\n
    \r\n ) : (\r\n <>\r\n
    \r\n 1\r\n {t(\"screens:stock.aGradeText\")}\r\n
    \r\n {grade > 0 && (\r\n
    \r\n 2\r\n {t(\"screens:stock.bGradeText\")}\r\n
    \r\n )}\r\n {grade > 1 && (\r\n
    \r\n 3\r\n {t(\"screens:stock.cGradeText\")}\r\n
    \r\n )}\r\n \r\n )}\r\n
    \r\n {t(\"screens:technician.unit\")}\r\n \r\n \r\n {tagPartsUnit[0]}\r\n {tagPartsUnit[1]}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.manufacturer\")}\r\n {details.unitDetails.manufacturerName}\r\n \r\n \r\n {t(\"screens:technician.application\")}\r\n {details.unitDetails.applicationTypeName}\r\n \r\n \r\n {t(\"screens:technician.installedGas\")}\r\n {details.unitDetails.refrigerantTypeCode}\r\n \r\n \r\n {t(\"screens:technician.capacity\")}\r\n {details.unitDetails.capacity} kW\r\n \r\n
    \r\n {t(\"screens:technician.gallery\")}\r\n \r\n \r\n {details.unitDetails.images.length ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"screens:technician.installationSite\")}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.company\")}\r\n {details.clientName}\r\n \r\n \r\n {t(\"screens:technician.street\")}\r\n {details.locationDetails.street}\r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n {details.locationDetails.city}\r\n \r\n \r\n {t(\"screens:technician.zip\")}\r\n {details.locationDetails.postalCode}\r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n {details.locationDetails.countryName}\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n );\r\n};\r\n\r\nexport default ExtractionDetails;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport CompanyStockListing from \"./components/CompanyStockListing\";\r\nimport ExtractionListing from \"./components/ExtractionListing\";\r\nimport ExtractionDetails from \"./components/ExtractionDetails\";\r\nimport { LevelWrapper } from \"./components/StyledElements\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst CompanyStock = () => {\r\n const [state, setState] = useState({\r\n level: 0,\r\n cylinder: null,\r\n extraction: null,\r\n });\r\n\r\n useEffect(() => {\r\n document.querySelector(`#lvl${state.level + 1}`).scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }, [state.level]);\r\n\r\n return (\r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n level: 1,\r\n cylinder: cyl,\r\n extraction: null,\r\n });\r\n }}\r\n />\r\n \r\n \r\n {\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 2,\r\n extraction: ext,\r\n }));\r\n }}\r\n onGoBack={(ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 0,\r\n }));\r\n }}\r\n cylinder={state.cylinder ? state.cylinder.skuId : undefined}\r\n />\r\n \r\n \r\n {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((state) => ({ ...state, level: 1 }));\r\n }}\r\n cylinder={state.cylinder}\r\n details={state.extraction}\r\n extraction={state.extraction}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CompanyStock;\r\n","const CylinderType = {\r\n recovery : 0,\r\n reclaimed : 2\r\n};\r\n\r\nexport default CylinderType;","import React, { useEffect, useMemo, useCallback, useRef } from \"react\";\r\nimport globals from \"../../../globalVars\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport cylinderListStateModule from \"../../../core/state/company/cylinderListStateModule\";\r\nimport FilterMenu from \"../FilterMenu\";\r\nimport { Select } from \"../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../components/elements/form-elements/InputElement\";\r\nimport CylinderType from \"../../../core/enums/CylinderType\";\r\n\r\nimport {\r\n StyledFilter,\r\n StyledArrow,\r\n StyledBack,\r\n StyledClose,\r\n} from \"./StyledSvg\";\r\n\r\nimport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n FlexForm,\r\n FilterClear,\r\n FilterWrapper,\r\n HR,\r\n ListTitle,\r\n} from \"./StyledElements\";\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"extractionDateTime\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_FILTERS:\r\n state.filter.refrigerantTypeCode =\r\n action.payload.refrigerantTypeCode;\r\n state.filter.quantityTo = action.payload.quantityTo;\r\n state.filter.quantityFrom = action.payload.quantityFrom;\r\n state.filter.size = action.payload.size;\r\n state.filter.cylinderType = action.payload.cylinderType;\r\n state.filter.cylinderSizeFrom = action.payload.cylinderSizeFrom;\r\n state.filter.cylinderSizeTo = action.payload.cylinderSizeTo;\r\n state.page = 1;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n delete state.filter.refrigerantTypeCode;\r\n delete state.filter.quantityTo;\r\n delete state.filter.quantityFrom;\r\n delete state.filter.size;\r\n delete state.filter.cylinderType;\r\n delete state.filter.cylinderSizeFrom;\r\n delete state.filter.cylinderSizeTo;\r\n state.page = 1;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst CylinderStockListing = (props) => {\r\n const {\r\n cylinders,\r\n isLoading,\r\n error,\r\n loadCylinders,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(cylinderListStateModule);\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n locationStatusName: \"InstallerStock\",\r\n marketplaceStatusName: \"OnStock\",\r\n },\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"extractionDateTime\",\r\n descending: true,\r\n });\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const filterMenuControl = {};\r\n\r\n useEffect(() => {\r\n loadCylinders(filterState);\r\n }, [loadCylinders, filterState, props.reset]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"table:headers.cylinders.gas\"),\r\n accessor: \"refrigerantTypeCode\",\r\n Cell: ({ cell: { value } }) => (value ? value : \"N/A\"),\r\n },\r\n {\r\n Header: t(\"table:headers.cylinders.netWeight\"),\r\n accessor: \"size\",\r\n className: \"right\",\r\n Cell: ({ cell: { value } }) => value.toFixed(2) + \" kg\",\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.cylinders.quantity\"),\r\n accessor: \"filledQuantity\",\r\n className: \"right\",\r\n Cell: ({ cell: { value } }) => value.toFixed(2) + \" kg\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"skuId\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [filterState.filter, t]);\r\n\r\n const filterData = useRef({\r\n quantityFrom: \"\",\r\n quantityTo: \"\",\r\n size: \"\",\r\n refrigerantTypeCode: \"\",\r\n cylinderType: \"\",\r\n cylinderSizeFrom: \"\",\r\n cylinderSizeTo: \"\",\r\n });\r\n\r\n const tempFilterData = useRef({});\r\n\r\n const hasFilters = () =>\r\n filterData.current.refrigerantTypeCode ||\r\n filterData.current.quantityFrom ||\r\n filterData.current.quantityTo ||\r\n filterData.current.size ||\r\n filterData.cylinderType ||\r\n filterData.cylinderSizeFrom ||\r\n filterData.cylinderSizeTo;\r\n\r\n const filterItems = () => {\r\n tempFilterData.current = {};\r\n return (\r\n \r\n {/* \r\n (tempFilterData.current.cylinderType =\r\n evt.currentTarget.value)\r\n }\r\n labelText={t(\"filters:cylinders.type\")}\r\n wrapperVariant=\"flex-1\"\r\n />\r\n\r\n \r\n (tempFilterData.current.size = evt.currentTarget.value)\r\n }\r\n /> */}\r\n\r\n {\r\n return {\r\n key: gasType.code,\r\n value: gasType.code,\r\n label: gasType.code,\r\n };\r\n })\r\n }\r\n defaultValue={filterData.current.refrigerantTypeCode}\r\n handleChange={(evt) =>\r\n (tempFilterData.current.refrigerantTypeCode =\r\n evt.currentTarget.value)\r\n }\r\n />\r\n\r\n {\r\n tempFilterData.current.cylinderSizeFrom =\r\n evt.currentTarget.value;\r\n }}\r\n />\r\n\r\n {\r\n tempFilterData.current.cylinderSizeTo =\r\n evt.currentTarget.value;\r\n }}\r\n />\r\n \r\n );\r\n };\r\n\r\n const applyFilters = () => {\r\n Object.assign(filterData.current, tempFilterData.current);\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const clearFilters = () => {\r\n filterData.current = {\r\n refrigerantTypeCode: \"\",\r\n quantityFrom: \"\",\r\n quantityTo: \"\",\r\n size: \"\",\r\n cylinderType: \"\",\r\n cylinderSizeFrom: \"\",\r\n cylinderSizeTo: \"\",\r\n };\r\n dispatch({\r\n type: actionTypes.RESET_FILTERS,\r\n });\r\n };\r\n\r\n const clearFilter = (name) => {\r\n switch (name) {\r\n case \"cylinderType\":\r\n filterData.current.cylinderType = \"\";\r\n break;\r\n case \"weight\":\r\n filterData.current.size = \"\";\r\n break;\r\n case \"quantity\":\r\n filterData.current.quantityFrom = \"\";\r\n filterData.current.quantityTo = \"\";\r\n break;\r\n case \"gas\":\r\n filterData.current.refrigerantTypeCode = \"\";\r\n break;\r\n case \"size\":\r\n filterData.current.cylinderSizeFrom = \"\";\r\n filterData.current.cylinderSizeTo = \"\";\r\n break;\r\n default:\r\n break;\r\n }\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const showFilter = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n filterMenuControl.setState({\r\n isOpen: true,\r\n hasFilters: hasFilters(),\r\n filterItems: filterItems(),\r\n applyFn: applyFilters,\r\n clearFn: clearFilters,\r\n text: hasFilters()\r\n ? t(\"screens:stockListing.filters.clearFilters\")\r\n : t(\"screens:cylinderListing.filterCylinders\"),\r\n });\r\n };\r\n\r\n const onSelect = useCallback((row) => {\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const curFilters = filterData.current;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {curFilters.size && (\r\n clearFilter(\"weight\")}>\r\n {t(\"screens:cylinderListing.weight\")}\r\n \r\n \r\n )}\r\n\r\n {(curFilters.quantityFrom || curFilters.quantityTo) && (\r\n clearFilter(\"quantity\")}>\r\n {t(\"screens:cylinderListing.quantity\")}\r\n \r\n \r\n )}\r\n\r\n {(curFilters.cylinderSizeFrom ||\r\n curFilters.cylinderSizeTo) && (\r\n clearFilter(\"size\")}>\r\n {t(\"screens:cylinderListing.size\")}\r\n \r\n \r\n )}\r\n\r\n {curFilters.refrigerantTypeCode && (\r\n clearFilter(\"gas\")}>\r\n {t(\"screens:cylinderListing.gas\")}\r\n \r\n \r\n )}\r\n\r\n {curFilters.cylinderType && (\r\n clearFilter(\"cylinderType\")}\r\n >\r\n {t(\"filters:cylinders.type\")}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
    \r\n {t(\"screens:technician.cylinders\")}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CylinderStockListing;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport { KeyVal, ListTitle, HR } from \"../../components/StyledElements\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst validSize = (t) => {\r\n return buildValidation({\r\n size: ValidationRule.isStringRule().required(\r\n t(\"forms:cylinder.wizard.netWeightRequired\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst EditCylinderWizard = (t, initialValues) => {\r\n return {\r\n title: t(\"forms:cylinder.edit\"),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:extraction.wizard.title_step3\"),\r\n fieldNames: [\"imageFile\", \"size\"],\r\n validation: validSize(t),\r\n\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"forms:cylinder.cylinderGas\")}\r\n \r\n {formik.values[\r\n \"refrigerantTypeCode\"\r\n ]\r\n ? formik.values[\r\n \"refrigerantTypeCode\"\r\n ]\r\n : t(\r\n \"forms:cylinder.noCylinderGas\"\r\n )}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n \r\n {formik.values[\"filledQuantity\"]} kg\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default EditCylinderWizard;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport QRCode from \"qrcode.react\";\r\nimport CompanyService from \"../../../services/Company/CompanyService\";\r\nimport { StyledBack, SvgNoImage, SvgEdit, SvgDelete } from \"./StyledSvg\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport EditCylinderWizard from \"../actions/components/EditCylinderWizard\";\r\nimport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n ListTitle,\r\n HR,\r\n Box16A9,\r\n VSpace,\r\n} from \"./StyledElements\";\r\n\r\nconst StyledQR = styled.div`\r\n width: 100%;\r\n text-align: center;\r\n span {\r\n display: inline-block;\r\n margin-top: 5px;\r\n font-size: 10px;\r\n }\r\n`;\r\nconst TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 16px;\r\n font-weight: 700;\r\n margin-top: 5px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n /* height: 100%; */\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 10px 24px 0px 24px;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 12px 20px;\r\n`;\r\n\r\nconst KeyVal = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n font-size: 14px;\r\n color: #000;\r\n font-weight: 700;\r\n margin-bottom: 6px;\r\n & span {\r\n font-weight: 500;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst HeaderActions = styled.div`\r\n & svg + svg {\r\n margin-left: 18px;\r\n }\r\n`;\r\n\r\nconst splitAt = (index) => (x) => [x.slice(0, index), x.slice(index)];\r\n\r\nconst CylinderDetails = ({ cylinder, ...restProps }) => {\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const {\r\n modalProps: modalPropsDelete,\r\n toggleOpen: toggleOpenDelete,\r\n } = useModal({\r\n title: t(\"actions:dialogs.deleteCylinder.title\"),\r\n onConfirm: async (id) => {\r\n const res = await CompanyService.deleteCylinderAsync(id);\r\n if (res && res.error) {\r\n toast.error(t(res.error.message));\r\n } else {\r\n toast.success(t(\"cylinderListing.toastNotification.success\"));\r\n toggleOpenDelete();\r\n restProps.onGotoStart();\r\n }\r\n },\r\n onCancel: () => {\r\n toggleOpenDelete();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteEquipment.confirmText\"),\r\n });\r\n\r\n\r\n if (!cylinder) return ;\r\n const tagParts = cylinder.tagId ? splitAt(4)(cylinder.tagId) : [];\r\n\r\n const showCylinderEdit = () => {\r\n const initialValues = {\r\n id: cylinder.id,\r\n tagId: cylinder.tagId,\r\n imageFile: cylinder.imageUrl && (cylinder.imageUrl.indexOf(\"no_image\") < 0)\r\n ? [\r\n {\r\n id: \"1\",\r\n imageUrl: cylinder.imageUrl,\r\n imageThumbnailUrl: cylinder.imageUrl,\r\n },\r\n ]\r\n : [],\r\n size: cylinder.size.toString(),\r\n refrigerantTypeCode: cylinder.refrigerantTypeCode,\r\n filledQuantity: cylinder.filledQuantity,\r\n deleteImage: false,\r\n };\r\n\r\n ModalWizard.show(\r\n EditCylinderWizard(t, initialValues),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.imageFile.length === 0)\r\n values.deleteImage = true;\r\n else if (values.imageFile[0].id === \"1\")\r\n values.imageFile = undefined;\r\n const result = await CompanyService.updateCylinderAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs.editCylinder.success\")\r\n );\r\n ModalWizard.hide();\r\n restProps.onGotoStart();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n restProps.onGoBack(ev);\r\n }}\r\n />\r\n \r\n 0 ? \"disabled\" : \"\"\r\n }\r\n onClick={() => {\r\n if (cylinder.filledQuantity === 0)\r\n toggleOpenDelete(cylinder.id);\r\n }}\r\n />\r\n showCylinderEdit()} />\r\n \r\n \r\n
    \r\n {t(\"screens:technician.qrTag\")}\r\n \r\n \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"table:headers.cylinders.netWeight\")}\r\n {cylinder.size.toFixed(2) + \" kg\"}\r\n \r\n\r\n \r\n {t(\"table:headers.cylinders.gas\")}\r\n {cylinder.refrigerantTypeCode ? cylinder.refrigerantTypeCode:\"N/A\"}\r\n \r\n \r\n {t(\"table:headers.cylinders.quantity\")}\r\n {cylinder.filledQuantity.toFixed(2) +\" kg\"}\r\n \r\n \r\n {t(\"sidebar:label.owner\")}\r\n {cylinder.ownerCompanyName}\r\n \r\n \r\n \r\n {cylinder.imageUrl && (cylinder.imageUrl.indexOf(\"no_image\") < 0) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n

    {t(\"actions:dialogs.deleteCylinder.text\")}

    \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CylinderDetails;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport CylinderStockListing from \"./components/CylinderStockListing\";\r\nimport CylinderDetails from \"./components/CylinderDetails\";\r\nimport { LevelWrapper } from \"./components/StyledElements\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst CylinderStock = () => {\r\n\r\n\r\n const [state, setState] = useState({\r\n level: 0,\r\n cylinder: null,\r\n reset:false\r\n });\r\n\r\n useEffect(() => {\r\n document.querySelector(`#lvl${state.level + 1}`).scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }, [state.level]);\r\n\r\n return (\r\n\r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n level: 1,\r\n cylinder: cyl,\r\n });\r\n }}\r\n reset={state.reset}\r\n />\r\n \r\n \r\n {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((state) => ({ ...state, level: 0 }));\r\n }}\r\n cylinder={state.cylinder}\r\n onGotoStart={() => {\r\n setState((prevState) => ({\r\n level: 0,\r\n cylinder: null,\r\n reset:true\r\n }));\r\n }}\r\n />\r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default CylinderStock;\r\n","import React, { useEffect, useMemo, useCallback, useRef } from \"react\";\r\nimport globals from \"../../../globalVars\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport cylinderListStateModule from \"../../../core/state/company/cylinderListStateModule\";\r\nimport equipmentListStateModule from \"../../../core/state/company/equipmentListStateModule\";\r\nimport FilterMenu from \"../FilterMenu\";\r\nimport { Select } from \"../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../components/elements/form-elements/InputElement\";\r\nimport CylinderType from \"../../../core/enums/CylinderType\";\r\n\r\nimport { StyledFilter, StyledArrow, StyledBack, StyledClose } from \"./StyledSvg\";\r\n\r\nimport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n FlexForm,\r\n FilterClear,\r\n FilterWrapper,\r\n HR,\r\n ListTitle,\r\n} from \"./StyledElements\";\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"extractionDateTime\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_FILTERS:\r\n state.filter.name = action.payload.name;\r\n state.filter.macAddress = action.payload.macAddress;\r\n state.page = 1;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n delete state.filter.name;\r\n delete state.filter.macAddress;\r\n state.page = 1;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst AnalyzerStockListing = (props) => {\r\n const { equipment, isLoading, error, loadEquipment, loadEquipmentById, details } =\r\n useStateModule(equipmentListStateModule);\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n name: \"\",\r\n macAddress: \"\",\r\n },\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"name\",\r\n descending: false,\r\n });\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const filterMenuControl = {};\r\n\r\n useEffect(() => {\r\n loadEquipment(filterState);\r\n }, [loadEquipment, filterState, props.reset]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"filters:clients.name\"),\r\n accessor: \"name\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [filterState.filter, t]);\r\n\r\n const filterData = useRef({\r\n name: \"\",\r\n macAddress: \"\",\r\n });\r\n\r\n const tempFilterData = useRef({});\r\n\r\n const hasFilters = () => filterData.name || filterData.macAddress;\r\n\r\n const filterItems = () => {\r\n tempFilterData.current = {};\r\n return (\r\n \r\n {\r\n tempFilterData.current.name = evt.currentTarget.value;\r\n }}\r\n />\r\n\r\n {\r\n tempFilterData.current.macAddress = evt.currentTarget.value;\r\n }}\r\n />\r\n \r\n );\r\n };\r\n\r\n const applyFilters = () => {\r\n Object.assign(filterData.current, tempFilterData.current);\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const clearFilters = () => {\r\n filterData.current = {\r\n name: \"\",\r\n macAddress: \"\",\r\n };\r\n dispatch({\r\n type: actionTypes.RESET_FILTERS,\r\n });\r\n };\r\n\r\n const clearFilter = (name) => {\r\n switch (name) {\r\n case \"name\":\r\n filterData.current.name = \"\";\r\n break;\r\n case \"macAddress\":\r\n filterData.current.macAddress = \"\";\r\n break;\r\n default:\r\n break;\r\n }\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const showFilter = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n filterMenuControl.setState({\r\n isOpen: true,\r\n hasFilters: hasFilters(),\r\n filterItems: filterItems(),\r\n applyFn: applyFilters,\r\n clearFn: clearFilters,\r\n text: hasFilters()\r\n ? t(\"screens:stockListing.filters.clearFilters\")\r\n : t(\"forms:analyzer.filterAnalyzers\"),\r\n });\r\n };\r\n\r\n const onSelect = useCallback((row) => {\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const curFilters = filterData.current;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {curFilters.name && (\r\n clearFilter(\"name\")}>\r\n {t(\"forms:analyzer.wizard.name\")}\r\n \r\n \r\n )}\r\n\r\n {curFilters.macAddress && (\r\n clearFilter(\"macAddress\")}>\r\n {t(\"forms:analyzer.wizard.macAddress\")}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
    \r\n {t(\"forms:analyzer.analyzers\")}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AnalyzerStockListing;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport QRCode from \"qrcode.react\";\r\nimport CompanyService from \"../../../services/Company/CompanyService\";\r\nimport { StyledBack, SvgNoImage, SvgEdit, SvgDelete } from \"./StyledSvg\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport EditCylinderWizard from \"../actions/components/EditCylinderWizard\";\r\nimport { ScreenWrapper, ScreenHeader, ListTitle, HR, Box16A9, VSpace } from \"./StyledElements\";\r\n\r\nconst StyledQR = styled.div`\r\n width: 100%;\r\n text-align: center;\r\n span {\r\n display: inline-block;\r\n margin-top: 5px;\r\n font-size: 10px;\r\n }\r\n`;\r\nconst TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 16px;\r\n font-weight: 700;\r\n margin-top: 5px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n /* height: 100%; */\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 10px 24px 0px 24px;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 12px 20px;\r\n`;\r\n\r\nconst KeyVal = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n font-size: 14px;\r\n color: #000;\r\n font-weight: 700;\r\n margin-bottom: 6px;\r\n & span {\r\n font-weight: 500;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst HeaderActions = styled.div`\r\n & svg + svg {\r\n margin-left: 18px;\r\n }\r\n`;\r\n\r\nconst splitAt = (index) => (x) => [x.slice(0, index), x.slice(index)];\r\n\r\nconst AnalyzerDetails = ({ analyzer, ...restProps }) => {\r\n const { t } = useTranslation(\"screens\");\r\n\r\n // const {\r\n // modalProps: modalPropsDelete,\r\n // toggleOpen: toggleOpenDelete,\r\n // } = useModal({\r\n // title: t(\"actions:dialogs.deleteCylinder.title\"),\r\n // onConfirm: async (id) => {\r\n // const res = await CompanyService.deleteCylinderAsync(id);\r\n // if (res && res.error) {\r\n // toast.error(t(res.error.message));\r\n // } else {\r\n // toast.success(t(\"cylinderListing.toastNotification.success\"));\r\n // toggleOpenDelete();\r\n // restProps.onGotoStart();\r\n // }\r\n // },\r\n // onCancel: () => {\r\n // toggleOpenDelete();\r\n // },\r\n // confirmText: t(\"actions:dialogs.deleteEquipment.confirmText\"),\r\n // });\r\n\r\n if (!analyzer) return ;\r\n const tagParts = analyzer.tagId ? splitAt(4)(analyzer.tagId) : [];\r\n\r\n return (\r\n \r\n \r\n {\r\n restProps.onGoBack(ev);\r\n }}\r\n />\r\n \r\n
    \r\n {t(\"screens:statistics.fGasAnalyzerTitle\")}\r\n \r\n \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n\r\n {/* \r\n {t(\"screens:technician.details\")}\r\n */}\r\n
    \r\n \r\n {t(\"forms:analyzer.wizard.name\")}\r\n {analyzer.name}\r\n \r\n\r\n \r\n {t(\"forms:analyzer.wizard.macAddress\")}\r\n {analyzer.macAddress}\r\n \r\n
    \r\n\r\n \r\n {t(\"screens:technician.gallery\")}\r\n \r\n \r\n \r\n {analyzer.imageUrl && analyzer.imageUrl.indexOf(\"no_image\") < 0 ? (\r\n \"unit\"\r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n {t(\"forms:clients.notes\")}\r\n \r\n

    {analyzer.description ? analyzer.description : \"-\"}

    \r\n
    \r\n
    \r\n {/* \r\n

    {t(\"actions:dialogs.deleteCylinder.text\")}

    \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n
    */}\r\n
    \r\n );\r\n};\r\n\r\nexport default AnalyzerDetails;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport AnalyzerStockListing from \"./components/AnalyzerStockListing\";\r\nimport AnalyzerDetails from \"./components/AnalyzerDetails\";\r\nimport { LevelWrapper } from \"./components/StyledElements\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst AnalyzerStock = () => {\r\n\r\n\r\n const [state, setState] = useState({\r\n level: 0,\r\n analyzer: null,\r\n reset:false\r\n });\r\n\r\n useEffect(() => {\r\n document.querySelector(`#lvl${state.level + 1}`).scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }, [state.level]);\r\n\r\n return (\r\n\r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n level: 1,\r\n analyzer: row,\r\n });\r\n }}\r\n reset={state.reset}\r\n />\r\n \r\n \r\n {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((state) => ({ ...state, level: 0 }));\r\n }}\r\n analyzer={state.analyzer}\r\n onGotoStart={() => {\r\n setState((prevState) => ({\r\n level: 0,\r\n analyzer: null,\r\n reset:true\r\n }));\r\n }}\r\n />\r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default AnalyzerStock;\r\n","import React, { useEffect, useMemo, useCallback } from \"react\";\r\nimport globals from \"../../../globalVars\";\r\nimport styled from \"styled-components\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport clientsListStateModule from \"../../../core/state/clients/clientsListStateModule\";\r\nimport InputElement from \"../../../components/elements/form-elements/InputElement\";\r\nimport useDebouncedCallback from \"../../../hooks/_shared/useDebouncedCallback\";\r\nimport { StyledArrow, StyledBack } from \"./StyledSvg\";\r\n\r\nimport { ScreenWrapper, ScreenHeader, ListTitle, HR } from \"./StyledElements\";\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst SearchWrapper = styled.div`\r\n width: 85%;\r\n & * {\r\n margin: 0;\r\n }\r\n\r\n & div {\r\n padding: 0 !important;\r\n }\r\n`;\r\n\r\nconst clientsReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_NAME_FILTER:\r\n state.filter.name = action.payload;\r\n break;\r\n case actionTypes.RESET_NAME_FILTER:\r\n delete state.filter.name;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst ClientListing = (props) => {\r\n const { t } = useTranslation(\"screens\");\r\n const { clients, isLoading, error, loadClients } = useStateModule(\r\n clientsListStateModule\r\n );\r\n\r\n const [clientsState, clientsDispatch] = useImmerReducer(clientsReducer, {\r\n filter: {},\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"clientName\",\r\n descending: false,\r\n });\r\n\r\n useEffect(() => {\r\n loadClients(clientsState);\r\n props.onSearch && props.onSearch();\r\n }, [loadClients, clientsState]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"screens:clients.name\"),\r\n accessor: \"clientName\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"clientId\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [clientsState.filter, t]);\r\n\r\n const [nameChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? clientsDispatch({\r\n type: actionTypes.SET_NAME_FILTER,\r\n payload: text,\r\n })\r\n : clientsDispatch({ type: actionTypes.RESET_NAME_FILTER });\r\n });\r\n\r\n const searchClient = (text) => {\r\n nameChanged(text);\r\n return [];\r\n };\r\n\r\n const onSelect = useCallback((row) => {\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const clientsPageChange = usePageChange(clientsDispatch, clientsState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? clientsDispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : clientsDispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentClientsSortBy = useMemo(() => {\r\n return [\r\n {\r\n id: clientsState.orderColumn,\r\n desc: clientsState.descending,\r\n },\r\n ];\r\n }, [clientsState.orderColumn, clientsState.descending]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {t(\"screens:clients.text\")}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ClientListing;\r\n","import React, { useEffect, useMemo, useCallback } from \"react\";\r\nimport globals from \"../../../globalVars\";\r\nimport styled from \"styled-components\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport clientsLocationListStateModule from \"../../../core/state/clients/clientsLocationsListStateModule\";\r\n\r\nimport {\r\n StyledArrow,\r\n StyledBack,\r\n} from \"./StyledSvg\";\r\n\r\nimport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n ListTitle,\r\n HR,\r\n} from \"./StyledElements\";\r\n\r\nconst Address = styled.div`\r\n & > div {\r\n font-weight:600;\r\n }\r\n & > span {\r\n margin-right: 4px;\r\n }\r\n`;\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\n\r\nconst locationsReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst ClientLocationListing = (props) => {\r\n const { t } = useTranslation(\"screens\");\r\n const {\r\n clientsLocations,\r\n isLoading,\r\n error,\r\n loadClientsLocations,\r\n\r\n } = useStateModule(clientsLocationListStateModule);\r\n\r\n const [locationsState, locationsDispatch] = useImmerReducer(\r\n locationsReducer,\r\n {\r\n filter: {\r\n clientId: null,\r\n },\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"locationName\",\r\n descending: false,\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n locationsState.filter.clientId = props.clientId;\r\n locationsState.filter.clientId && loadClientsLocations(locationsState);\r\n }, [loadClientsLocations, locationsState, props.clientId]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n\r\n {\r\n Header: t(\"screens:clients.locations.address\"),\r\n accessor: \"locationName\",\r\n Cell: ({row}) => {\r\n const data = row.original;\r\n return (\r\n \r\n
    {data.locationName}
    \r\n {data.address}\r\n {data.postalCode}\r\n {data.city}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t(\"screens:clients.locations.units\"),\r\n accessor: \"units\",\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"locationId\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [locationsState.filter, t]);\r\n\r\n\r\n const onSelect = useCallback((row) => {\r\n if(row.original.units === 0) return;\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const locationsPageChange = usePageChange(\r\n locationsDispatch,\r\n locationsState\r\n );\r\n\r\n const currentLocationsSortBy = useMemo(() => {\r\n return [\r\n {\r\n id: locationsState.orderColumn,\r\n desc: locationsState.descending,\r\n },\r\n ];\r\n }, [locationsState.orderColumn, locationsState.descending]);\r\n\r\n const sortLocations = (sortBy) => {\r\n sortBy.length > 0\r\n ? locationsDispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : locationsDispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {\r\n props.onGoBack(ev);\r\n }} />\r\n \r\n
    \r\n {t(\"screens:clients.locations.text\")}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ClientLocationListing;\r\n","import React, { useCallback, useEffect, useMemo } from \"react\";\r\nimport globals from \"../../../globalVars\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport clientsUnitsListStateModule from \"../../../core/state/clients/clientsUnitsListStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport { HR, ListTitle, ScreenHeader, ScreenWrapper } from \"./StyledElements\";\r\nimport { StyledArrow, StyledBack } from \"./StyledSvg\";\r\n\r\nconst actionTypes = {\r\n SET_MANUFACTURER_FILTER: \"SET_MANUFACTURER_FILTER\",\r\n RESET_MANUFACTURER_FILTER: \"RESET_MANUFACTURER_FILTER\",\r\n\r\n SET_APPLICATION_TYPE_FILTER: \"SET_APPLICATION_TYPE_FILTER\",\r\n RESET_APPLICATION_TYPE_FILTER: \"RESET_APPLICATION_TYPE_FILTER\",\r\n\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n\r\n SET_CLIENT_ID: \"SET_CLIENT_ID\",\r\n RESET_CLIENT_ID: \"RESET_CLIENT_ID\",\r\n\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_LOCATION_ID: \"SET_LOCATION_ID\",\r\n RESET_LOCATION_ID: \"RESET_LOCATION_ID\",\r\n};\r\n\r\nconst unitsReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_LOCATION_ID:\r\n state.filter.locationId = action.payload;\r\n break;\r\n case actionTypes.RESET_LOCATION_ID:\r\n delete state.filter.clientId;\r\n break;\r\n case actionTypes.SET_MANUFACTURER_FILTER:\r\n state.filter.manufacturer = action.payload;\r\n break;\r\n case actionTypes.RESET_MANUFACTURER_FILTER:\r\n delete state.filter.manufacturer;\r\n break;\r\n case actionTypes.SET_APPLICATION_TYPE_FILTER:\r\n state.filter.applicationType = action.payload;\r\n break;\r\n case actionTypes.RESET_APPLICATION_TYPE_FILTER:\r\n delete state.filter.applicationType;\r\n break;\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.refrigerantId = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.refrigerantId;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst LocationUnitListing = (props) => {\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const {\r\n clientsLocationUnits,\r\n isLoading,\r\n error,\r\n loadClientsLocationUnits,\r\n } = useStateModule(clientsUnitsListStateModule);\r\n\r\n const [unitsState, unitsDispatch] = useImmerReducer(unitsReducer, {\r\n filter: { locationId: null },\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"manufacturer\",\r\n descending: false,\r\n });\r\n\r\n useEffect(() => {\r\n unitsState.filter.locationId = props.locationId;\r\n unitsState.filter.locationId && loadClientsLocationUnits(unitsState);\r\n }, [loadClientsLocationUnits, unitsState, props.locationId]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"table:headers.client.units.manufacturer\"),\r\n accessor: \"manufacturerName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.units.application\"),\r\n accessor: \"applicationTypeName\",\r\n },\r\n {\r\n Header: t(\"table:headers.client.units.refrigerantName\"),\r\n accessor: \"refrigerantName\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"unitId\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [unitsState.filter, t]);\r\n\r\n const onSelect = useCallback((row) => {\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const unitsPageChange = usePageChange(unitsDispatch, unitsState);\r\n\r\n const sortUnits = (sortBy) => {\r\n sortBy.length > 0\r\n ? unitsDispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : unitsDispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentUnitsSortBy = useMemo(() => {\r\n return [\r\n {\r\n id: unitsState.orderColumn,\r\n desc: unitsState.descending,\r\n },\r\n ];\r\n });\r\n\r\n return (\r\n \r\n \r\n {\r\n props.onGoBack(ev);\r\n }}\r\n />\r\n \r\n
    \r\n {t(\"screens:clients.units.text\")}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default LocationUnitListing;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\n\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport { KeyVal, ListTitle, HR } from \"../../components/StyledElements\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst SiteInfo = styled.div`\r\n font-size: 12px;\r\n &.title {\r\n font-weight: 700;\r\n }\r\n`;\r\n\r\nconst validUnitInfo = (t) => {\r\n return buildValidation({\r\n manufacturerId: ValidationRule.isStringRule().required(\r\n t(\"forms:manufacturer.required\")\r\n ).rule,\r\n applicationType: ValidationRule.isStringRule().required(\r\n t(\"forms:application.required\")\r\n ).rule,\r\n refrigerantId: ValidationRule.isStringRule().required(\r\n t(\"forms:gasType.required\")\r\n ).rule,\r\n capacity: ValidationRule.isNumber().required(\r\n t(\"forms:capacity.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst applicationTypes = [\"Residential\", \"Commercial\", \"Industrial\"];\r\n\r\nconst EditUnitWizard = (t, initialValues, manufacturers, refrigerants) => {\r\n return {\r\n title: t(\"forms:clients.editUnit\"),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep3\"),\r\n fieldNames: [\r\n \"manufacturerId\",\r\n \"applicationType\",\r\n \"refrigerantId\",\r\n \"capacity\",\r\n ],\r\n validation: validUnitInfo(t),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n 0\r\n ? manufacturers.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.name,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n\r\n 0\r\n ? refrigerants.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.code,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n {\r\n return {\r\n key: idx,\r\n value: idx.toString(),\r\n label: `${t(\r\n \"common:applicationType.\" +\r\n item.toLowerCase()\r\n )}`,\r\n };\r\n })}\r\n {...formik}\r\n />\r\n\r\n \r\n\r\n {propertyBag.selectedLocation && (\r\n \r\n
    \r\n \r\n {t(\r\n \"screens:technician.installationSite\"\r\n )}\r\n \r\n
    \r\n \r\n {\r\n propertyBag.selectedLocation\r\n .clientName\r\n }\r\n \r\n {`${propertyBag.selectedLocation.address}, ${propertyBag.selectedLocation.postalCode}, ${propertyBag.selectedLocation.city}, ${propertyBag.selectedLocation.country}`}\r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep4\"),\r\n fieldNames: [\"description\"],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.selectedLocation && (\r\n \r\n
    \r\n \r\n {t(\r\n \"screens:technician.installationSite\"\r\n )}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.company\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .clientName\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.street\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .address\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .city\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.zip\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .postalCode\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .country\r\n }\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep5\"),\r\n fieldNames: [\"images\"],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.selectedLocation && (\r\n \r\n
    \r\n \r\n {t(\r\n \"screens:technician.installationSite\"\r\n )}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.company\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .clientName\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.street\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .address\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .city\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.zip\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .postalCode\r\n }\r\n \r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n \r\n {\r\n propertyBag.selectedLocation\r\n .country\r\n }\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default EditUnitWizard;\r\n","import styled from \"styled-components\";\r\n\r\nexport const StyledQR = styled.div`\r\n width: 100%;\r\n text-align: center;\r\n span {\r\n display: inline-block;\r\n margin-top: 5px;\r\n font-size: 10px;\r\n }\r\n\r\n &.modal {\r\n margin-top: 20px;\r\n }\r\n`;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport { useLoadScript } from \"@react-google-maps/api\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClientsService from \"../../../services/Clients/ClientsService\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport QRCode from \"qrcode.react\";\r\nimport LocationMarker from \"../../../components/maps/components/LocationMarker\";\r\nimport DaikinMap from \"../../../components/maps/DaikinMap\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport EditUnitWizard from \"../actions/components/EditUnitWizard\";\r\nimport usePromises from \"../../../hooks/_shared/usePromises\";\r\nimport { StyledBack, SvgNoImage, SvgEdit, SvgDelete } from \"./StyledSvg\";\r\nimport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n ListTitle,\r\n HR,\r\n Box16A9,\r\n VSpace,\r\n} from \"./StyledElements\";\r\nimport { StyledQR } from \"../../Equipment/components/StyledQR\";\r\nimport { TagTitle } from \"../../Equipment/components/TagTitle\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 10px 24px 0px 24px;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 12px 20px;\r\n`;\r\n\r\nconst KeyVal = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n font-size: 14px;\r\n color: #000;\r\n font-weight: 700;\r\n margin-bottom: 6px;\r\n & span {\r\n font-weight: 500;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst HeaderActions = styled.div`\r\n & svg + svg {\r\n margin-left: 18px;\r\n }\r\n`;\r\n\r\nconst splitTag = (x) => [`${x.slice(0, 4)} ${x.slice(4, 8)}`, x.slice(9)];\r\n\r\nconst UnitDetails = ({ location, unitId, ...restProps }) => {\r\n const { t } = useTranslation(\"screens\");\r\n const { isLoaded } = useLoadScript({\r\n googleMapsApiKey: \"AIzaSyBQSju7sxgnuD4jrzA2cJLP2dVU3RDwHZY\", // ,\r\n // ...otherOptions\r\n });\r\n\r\n const [unit, setUnit] = useState();\r\n const [reload, setReload] = useState(1);\r\n\r\n useEffect(() => {\r\n async function getdata() {\r\n if (unitId) {\r\n const result = await ClientsService.getUnitByIdAsync(unitId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setUnit(result.data.data[0]);\r\n }\r\n } else setUnit(null);\r\n }\r\n getdata();\r\n }, [unitId, reload]);\r\n\r\n const {\r\n modalProps: modalPropsDelete,\r\n toggleOpen: toggleOpenDelete,\r\n } = useModal({\r\n title: t(\"actions:dialogs.deleteUnit.title\"),\r\n onConfirm: async (unitId) => {\r\n let res = await ClientsService.deleteClientLocationUnitAsync(\r\n unitId\r\n );\r\n\r\n if (res && res.error) {\r\n toast.error(t(res.error.message));\r\n } else {\r\n toast.success(t(\"actions:dialogs.deleteUnit.success\"));\r\n toggleOpenDelete();\r\n restProps.onGotoStart();\r\n }\r\n },\r\n onCancel: () => {\r\n toggleOpenDelete();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteUnit.confirmText\"),\r\n cancelFirst: true,\r\n });\r\n const wizardData = usePromises(\r\n [\r\n () => ClientsService.getUnitManufacturersAsync(),\r\n () => StockService.getRefrigerantTypesAsync(),\r\n ],\r\n (res) => ({\r\n manufacturers: res[0].data.data,\r\n refrigerants: res[1].data.data,\r\n })\r\n );\r\n\r\n if (!location || !unit) return ;\r\n const tagParts = unit.tagId ? splitTag(unit.tagId) : [];\r\n\r\n const showUnitEdit = () => {\r\n const initialValues = {\r\n manufacturerId: unit.manufacturerId,\r\n applicationType: unit.applicationType,\r\n refrigerantId: unit.refrigerantId,\r\n capacity: unit.capacity,\r\n images: unit.images,\r\n description: unit.description,\r\n tagId: unit.tagId\r\n };\r\n ModalWizard.show(\r\n EditUnitWizard(\r\n t,\r\n initialValues,\r\n wizardData.manufacturers,\r\n wizardData.refrigerants\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const newImages = values.images.filter(\r\n (img) => img instanceof File\r\n );\r\n\r\n const oldImages = values.images.filter(\r\n (img) => !(img instanceof File)\r\n );\r\n\r\n const toDelete = unit.images\r\n .filter(\r\n (img) =>\r\n !oldImages.some(\r\n (oldImg) => img.id === oldImg.id\r\n )\r\n )\r\n .map((img) => img.id);\r\n\r\n values.images = newImages;\r\n values.deleteImages = toDelete;\r\n values.unitId = unitId;\r\n\r\n const result = await ClientsService.updateUnitAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.editUnit.success\"));\r\n ModalWizard.hide();\r\n setReload(s=>s+1);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n };\r\n\r\n return (\r\n isLoaded && (\r\n \r\n \r\n {\r\n restProps.onGoBack(ev);\r\n }}\r\n />\r\n \r\n toggleOpenDelete(unit.unitId)}\r\n />\r\n showUnitEdit()} />\r\n \r\n \r\n
    \r\n {t(\"screens:technician.qrTag\")}\r\n \r\n \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n\r\n
    \r\n \r\n {t(\"screens:technician.manufacturer\")}\r\n {unit.manufacturerName}\r\n \r\n \r\n {t(\"screens:technician.application\")}\r\n {unit.applicationTypeName}\r\n \r\n \r\n {t(\"screens:technician.installedGas\")}\r\n {unit.refrigerantTypeCode}\r\n \r\n \r\n {t(\"screens:technician.capacity\")}\r\n {unit.capacity} kW\r\n \r\n
    \r\n \r\n {t(\"screens:technician.gallery\")}\r\n \r\n \r\n \r\n {unit.images.length ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n {t(\"screens:technician.notes\")}\r\n \r\n
    \r\n {unit.description ? unit.description:\"-\"}\r\n
    \r\n
    \r\n \r\n {t(\"screens:technician.installationSite\")}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.company\")}\r\n {unit.client.clientName}\r\n \r\n \r\n {t(\"screens:technician.street\")}\r\n {location.address}\r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n {location.city}\r\n \r\n \r\n {t(\"screens:technician.zip\")}\r\n {location.postalCode}\r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n {location.country}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n

    {t(\"actions:dialogs.deleteUnit.text\")}

    \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n
    \r\n
    \r\n )\r\n );\r\n};\r\n\r\nexport default UnitDetails;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ClientListing from \"./components/ClientListing\";\r\nimport ClientLocationListing from \"./components/ClientLocationListing\";\r\nimport LocationUnitListing from \"./components/LocationUnitListing\";\r\nimport UnitDetails from \"./components/UnitDetails\";\r\nimport { LevelWrapper } from \"./components/StyledElements\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst UnitStock = () => {\r\n const [state, setState] = useState({\r\n level: 0,\r\n client: null,\r\n location: null,\r\n unit: null,\r\n });\r\n\r\n const changeLevel = () => {\r\n document.querySelector(`#lvl${state.level + 1}`).scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (state.level === 1) {\r\n setTimeout(() => {\r\n changeLevel();\r\n }, 200);\r\n } else changeLevel();\r\n }, [state.level]);\r\n\r\n return (\r\n \r\n \r\n {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n level: 1,\r\n client: client,\r\n location: null,\r\n };\r\n });\r\n }}\r\n onSearch={() => {\r\n setState({ level: 0 });\r\n }}\r\n />\r\n \r\n \r\n {\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 2,\r\n location: location,\r\n }));\r\n }}\r\n onGoBack={(ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 0,\r\n }));\r\n }}\r\n clientId={state.client ? state.client.clientId : undefined}\r\n />\r\n \r\n \r\n {\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 3,\r\n unit,\r\n }));\r\n }}\r\n onGoBack={(ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 1,\r\n }));\r\n }}\r\n locationId={\r\n state.location ? state.location.locationId : undefined\r\n }\r\n />\r\n \r\n \r\n {\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 3,\r\n unit,\r\n }));\r\n }}\r\n onGoBack={(ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 2,\r\n }));\r\n }}\r\n onGotoStart={() => {\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 0,\r\n location: null,\r\n unit: null,\r\n client: null,\r\n }));\r\n }}\r\n unitId={state.unit ? state.unit.unitId : undefined}\r\n location={state.location}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UnitStock;\r\n","import React, { useEffect, useMemo, useCallback, useRef } from \"react\";\r\nimport globals from \"../../../globalVars\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ShortDateCell } from \"../../../components/data/DateCell\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport installerStockListingStateModule from \"../../../core/state/stock/installerStockListingStateModule\";\r\nimport FilterMenu from \"../FilterMenu\";\r\nimport { Select } from \"../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../components/elements/form-elements/InputElement\";\r\nimport { DateTimePicker } from \"../../../components/elements/form-elements/DatePicker\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\nimport {\r\n StyledFilter,\r\n StyledArrow,\r\n StyledBack,\r\n StyledClose,\r\n} from \"./StyledSvg\";\r\n\r\nimport {\r\n ScreenWrapper,\r\n ScreenHeader,\r\n ListTitle,\r\n FlexForm,\r\n FilterClear,\r\n FilterWrapper, HR\r\n} from \"./StyledElements\";\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"extractionDateTime\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_FILTERS:\r\n state.filter.refrigerantGasTypeCode = action.payload.gasType;\r\n state.filter.quantityTo = action.payload.quantityTo;\r\n state.filter.quantityFrom = action.payload.quantityFrom;\r\n state.filter.extractFrom = action.payload.extractFrom;\r\n state.filter.extractTo = action.payload.extractTo;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n delete state.filter.refrigerantGasTypeCode;\r\n delete state.filter.quantityTo;\r\n delete state.filter.quantityFrom;\r\n delete state.filter.extractFrom;\r\n delete state.filter.extractTo;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst TechnicianStockListing = (props) => {\r\n const [globalState] = useSharedState(\"global\");\r\n const {\r\n stockItems,\r\n isLoading,\r\n error,\r\n loadStockItems,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(installerStockListingStateModule);\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n locationStatusName: \"InstallerStock\",\r\n marketplaceStatusName: \"OnStock\",\r\n },\r\n page: 1,\r\n pageSize: globals.maxListingItemsPerPage,\r\n orderColumn: \"extractionDateTime\",\r\n descending: true,\r\n });\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const filterMenuControl = {};\r\n\r\n useEffect(() => {\r\n loadStockItems(filterState);\r\n }, [loadStockItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n className:\"right\",\r\n Cell: ({ cell: { value } }) => value.toFixed(2) + \" kg\",\r\n },\r\n {\r\n Header: t(\"stockListing.headers.lastExtraction\"),\r\n accessor: \"extractionDateTime\",\r\n className:\"right\",\r\n Cell: ShortDateCell,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"skuId\",\r\n className: \"right-arrow\",\r\n Cell: ({ cell: { value } }) => ,\r\n disableSortBy: true,\r\n },\r\n ];\r\n return columns;\r\n }, [filterState.filter, t]);\r\n\r\n const filterData = useRef({\r\n gasType: \"\",\r\n quantityFrom: \"\",\r\n quantityTo: \"\",\r\n extractFrom: \"\",\r\n extractTo: \"\",\r\n });\r\n\r\n const tempFilterData = useRef({});\r\n\r\n const hasFilters = () =>\r\n filterData.current.gasType ||\r\n filterData.current.quantityFrom ||\r\n filterData.current.quantityTo ||\r\n filterData.current.extractFrom ||\r\n filterData.current.extractTo;\r\n\r\n const filterItems = () => {\r\n tempFilterData.current = {};\r\n return (\r\n \r\n {\r\n return {\r\n key: gasType.code,\r\n value: gasType.code,\r\n label: gasType.code,\r\n };\r\n })\r\n }\r\n defaultValue={filterData.current.gasType}\r\n handleChange={(evt) =>\r\n (tempFilterData.current.gasType =\r\n evt.currentTarget.value)\r\n }\r\n />\r\n\r\n {\r\n tempFilterData.current.quantityFrom =\r\n evt.currentTarget.value;\r\n }}\r\n />\r\n\r\n {\r\n tempFilterData.current.quantityTo =\r\n evt.currentTarget.value;\r\n }}\r\n />\r\n\r\n \r\n (tempFilterData.current.extractFrom = ev.target.value)\r\n }\r\n />\r\n \r\n (tempFilterData.current.extractTo = ev.target.value)\r\n }\r\n />\r\n \r\n );\r\n };\r\n\r\n const applyFilters = () => {\r\n Object.assign(filterData.current, tempFilterData.current);\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const clearFilters = () => {\r\n filterData.current = {\r\n gasType: \"\",\r\n quantityFrom: \"\",\r\n quantityTo: \"\",\r\n extractFrom: \"\",\r\n extractTo: \"\",\r\n };\r\n dispatch({\r\n type: actionTypes.RESET_FILTERS,\r\n });\r\n };\r\n\r\n const clearFilter = (name) => {\r\n switch (name) {\r\n case \"type\":\r\n filterData.current.gasType = \"\";\r\n break;\r\n case \"quantity\":\r\n filterData.current.quantityFrom = \"\";\r\n filterData.current.quantityTo = \"\";\r\n break;\r\n case \"date\":\r\n filterData.current.extractFrom = \"\";\r\n filterData.current.extractTo = \"\";\r\n break;\r\n default:\r\n break;\r\n }\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const showFilter = (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n if(!globalState.hasValidUserCertificate) return;\r\n filterMenuControl.setState({\r\n isOpen: true,\r\n hasFilters: hasFilters(),\r\n filterItems: filterItems(),\r\n applyFn: applyFilters,\r\n clearFn: clearFilters,\r\n text: hasFilters()\r\n ? t(\"screens:stockListing.filters.clearFilters\")\r\n : t(\"screens:stockListing.filters.filterMyStock\"),\r\n });\r\n };\r\n\r\n const onSelect = useCallback((row) => {\r\n props.onSelect && props.onSelect(row.original);\r\n }, []);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const curFilters = filterData.current;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {curFilters.gasType && (\r\n clearFilter(\"type\")}>\r\n {t(\"screens:stockListing.filters.type\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n {(curFilters.quantityFrom || curFilters.quantityTo) && (\r\n clearFilter(\"quantity\")}>\r\n {t(\"screens:stockListing.filters.quantity\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n {(curFilters.extractFrom || curFilters.extractTo) && (\r\n clearFilter(\"date\")}>\r\n {t(\"screens:stockListing.filters.date\")}{\" \"}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
    \r\n {t(\"screens:technician.cylinders\")}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default TechnicianStockListing;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1324\",\n \"data-name\": \"Group 1324\",\n transform: \"translate(-94.597 -571.097)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Document-File\",\n transform: \"translate(127.929 579.862)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1290\",\n \"data-name\": \"Group 1290\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1289\",\n \"data-name\": \"Group 1289\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1287\",\n \"data-name\": \"Group 1287\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_775\",\n \"data-name\": \"Path 775\",\n d: \"M62.866,82.1H4.71A1.711,1.711,0,0,1,3,80.391V22.236a1.723,1.723,0,0,1,.5-1.211L24.025.5A1.723,1.723,0,0,1,25.236,0h37.63a1.711,1.711,0,0,1,1.71,1.71V80.391A1.711,1.711,0,0,1,62.866,82.1ZM6.421,78.681H61.155V3.421H25.944L6.421,22.944Z\",\n transform: \"translate(-3)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1288\",\n \"data-name\": \"Group 1288\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_776\",\n \"data-name\": \"Path 776\",\n d: \"M25.236,23.946H4.71a1.71,1.71,0,1,1,0-3.421H23.525V1.71a1.71,1.71,0,0,1,3.421,0V22.236A1.711,1.711,0,0,1,25.236,23.946Z\",\n transform: \"translate(-3)\",\n fill: \"#d5d5d5\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1291\",\n \"data-name\": \"Group 1291\",\n transform: \"translate(10.263 27.367)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_777\",\n \"data-name\": \"Path 777\",\n d: \"M45.34,11.421H7.71A1.71,1.71,0,0,1,7.71,8H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -8)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1292\",\n \"data-name\": \"Group 1292\",\n transform: \"translate(30.788 17.105)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_778\",\n \"data-name\": \"Path 778\",\n d: \"M30.815,8.421H13.71A1.71,1.71,0,0,1,13.71,5h17.1a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-12 -5)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1293\",\n \"data-name\": \"Group 1293\",\n transform: \"translate(10.263 37.63)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_779\",\n \"data-name\": \"Path 779\",\n d: \"M45.34,14.421H7.71A1.71,1.71,0,1,1,7.71,11H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -11)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1294\",\n \"data-name\": \"Group 1294\",\n transform: \"translate(10.263 47.893)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_780\",\n \"data-name\": \"Path 780\",\n d: \"M45.34,17.421H7.71A1.71,1.71,0,0,1,7.71,14H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -14)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1295\",\n \"data-name\": \"Group 1295\",\n transform: \"translate(10.263 58.155)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_781\",\n \"data-name\": \"Path 781\",\n d: \"M45.34,20.421H7.71A1.71,1.71,0,0,1,7.71,17H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -17)\",\n fill: \"#d5d5d5\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1296\",\n \"data-name\": \"Group 1296\",\n transform: \"translate(10.263 68.418)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_782\",\n \"data-name\": \"Path 782\",\n d: \"M45.34,23.421H7.71A1.71,1.71,0,0,1,7.71,20H45.34a1.71,1.71,0,0,1,0,3.421Z\",\n transform: \"translate(-6 -20)\",\n fill: \"#d5d5d5\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1323\",\n \"data-name\": \"Group 1323\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_69\",\n \"data-name\": \"Line 69\",\n y1: 92.744,\n x2: 120.112,\n transform: \"translate(99.562 574.541)\",\n fill: \"none\",\n stroke: \"#d5d5d5\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_70\",\n \"data-name\": \"Line 70\",\n y1: 93.918,\n x2: 121.632,\n transform: \"translate(96 572.5)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_774\",\n \"data-name\": \"Path 774\",\n d: \"M0,93.918,121.632,0\",\n transform: \"translate(100.082 576.582)\",\n fill: \"none\",\n stroke: \"#f5f5f5\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n})));\n\nvar SvgNoFile = function SvgNoFile(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128.519,\n height: 100.806,\n viewBox: \"0 0 128.519 100.806\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNoFile, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/no-file.1d16e234.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ReactComponent as NoDataSvg } from \"../../../assets/no-file.svg\";\r\nimport Button from \"../../../components/elements/buttons/Button\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport userStateModule from \"../../../core/state/user/userStateModule\";\r\n\r\nconst InvalidCertWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n position: absolute;\r\n left: 0;\r\n top: 125px;\r\n width: 100%;\r\n height: calc(100% - 125px);\r\n z-index: 5;\r\n background-color: #f5f5f5;\r\n padding: 32px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: #707070;\r\n\r\n & * {\r\n text-align: center;\r\n }\r\n\r\n & .title {\r\n color: #e94e4e;\r\n padding: 0px 32px;\r\n }\r\n\r\n & .subtitle {\r\n color: #000;\r\n }\r\n\r\n & .text {\r\n font-size: 12px;\r\n font-weight: 500;\r\n margin-bottom: 20px;\r\n }\r\n`;\r\n\r\nconst SvgNoData = styled(NoDataSvg)`\r\n width: 100%;\r\n`;\r\n\r\nconst InvalidUserCert = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const { logout } = useStateModule(userStateModule);\r\n\r\n return (\r\n \r\n
    {t(\"certificates.userCert.missing\")}
    \r\n \r\n
    \r\n {t(\"certificates.userCert.verification\")}\r\n
    \r\n
    \r\n
    {t(\"certificates.userCert.allTech\")}
    \r\n
    \r\n {t(\"certificates.userCert.requirement\")}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default InvalidUserCert;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport TechnicianStockListing from \"./components/TechnicianStockListing\";\r\nimport ExtractionListing from \"./components/ExtractionListing\";\r\nimport ExtractionDetails from \"./components/ExtractionDetails\";\r\nimport { LevelWrapper } from \"./components/StyledElements\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\nimport InvalidUserCert from \"./components/InvalidUserCert\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\n\r\nconst TechnicianStock = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n const [state, setState] = useState({\r\n level: 0,\r\n cylinder: null,\r\n extraction: null,\r\n });\r\n\r\n useEffect(() => {\r\n document.querySelector(`#lvl${state.level + 1}`).scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }, [state.level]);\r\n\r\n return (\r\n \r\n {!globalState.hasValidUserCertificate && (\r\n \r\n )}\r\n \r\n {\r\n setState({\r\n ...state,\r\n level: 1,\r\n cylinder: cyl,\r\n extraction: null,\r\n });\r\n }}\r\n />\r\n \r\n \r\n {\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 2,\r\n extraction: ext,\r\n }));\r\n }}\r\n onGoBack={(ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((prevState) => ({\r\n ...prevState,\r\n level: 0,\r\n }));\r\n }}\r\n cylinder={state.cylinder ? state.cylinder.skuId : undefined}\r\n />\r\n \r\n \r\n {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setState((state) => ({ ...state, level: 1 }));\r\n }}\r\n cylinder={state.cylinder}\r\n details={state.extraction}\r\n extraction={state.extraction}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TechnicianStock;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as CloseSvg } from \"../../../assets/pwa/dark-close.svg\";\r\nimport { HR, ListTitle, ScreenHeader } from \"../../../screens/pwa/components/StyledElements\";\r\nimport { SvgNoData } from \"../../../screens/pwa/components/StyledSvg\";\r\nimport ClientsService from \"../../../services/Clients/ClientsService\";\r\nimport CompanyService from \"../../../services/Company/CompanyService\";\r\nimport TagService from \"../../../services/Tags/TagsService\";\r\n\r\nconst StyledQrReader = styled.div`\r\n &.wizard {\r\n width: 100%;\r\n margin: px auto;\r\n margin-bottom: 10px;\r\n }\r\n\r\n &.wizard.small {\r\n width: 78%;\r\n margin: 0 auto;\r\n }\r\n margin-top: 20px;\r\n & section {\r\n border-radius: 12px;\r\n transition: all 0.5s linear;\r\n & div {\r\n transition: all 0.5s linear;\r\n border: 40px solid rgba(0, 0, 0, 0.5) !important;\r\n box-shadow: ${(p) => p.theme.primaryColor} 0px 0px 0px 4px inset !important;\r\n }\r\n }\r\n\r\n &.search section {\r\n & div {\r\n box-shadow: #ff0000 0px 0px 0px 4px inset !important;\r\n }\r\n }\r\n`;\r\n\r\nconst ImgNoData = styled(SvgNoData)`\r\n padding: 0;\r\n height: auto;\r\n margin: 10px auto;\r\n`;\r\n\r\nconst InfoNoData = styled.div`\r\n font-size: 14px;\r\n text-align: center;\r\n color: #aaa;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n`;\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 10px 0px 0px 0px;\r\n`;\r\n\r\nconst FSWrapper = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: #fff;\r\n color: #fff;\r\n z-index: 2000;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n padding: 0px 20px;\r\n`;\r\nconst StyledClose = styled(CloseSvg)`\r\n width: 32px;\r\n height: 32px;\r\n\r\n & line,\r\n & path {\r\n stroke: #fff;\r\n }\r\n\r\n &.active line {\r\n stroke: #fff;\r\n }\r\n`;\r\n\r\nconst HeaderTitle = styled.div`\r\n width: calc(100% - 32px);\r\n text-align: center;\r\n font-size: 16px;\r\n font-weight: 700;\r\n color: black;\r\n`;\r\n\r\nconst KeyVal = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n font-size: 14px;\r\n color: #000;\r\n font-weight: 700;\r\n margin-bottom: 10px;\r\n\r\n &.single {\r\n margin-bottom: 0;\r\n }\r\n & span {\r\n font-weight: 500;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n & b + span {\r\n font-size: 12px;\r\n margin-left: 10px;\r\n }\r\n\r\n &.swap {\r\n color: ${(p) => p.theme.primaryColor};\r\n span {\r\n color: #000;\r\n }\r\n }\r\n`;\r\n\r\nconst splitTag = (x) => [`${x.slice(0, 4)} ${x.slice(4, 8)}`, x.slice(9)];\r\n\r\nconst QrScanner = (props) => {\r\n const { t } = useTranslation(\"screens\");\r\n const [state, setState] = useState({});\r\n const [lookupResult, setLookupResult] = useState({\r\n cylinder: null,\r\n unit: null,\r\n analyzer: null,\r\n });\r\n\r\n const resetTimeout = 3000;\r\n\r\n useEffect(() => {\r\n async function lookup(tagId) {\r\n const tagData = await TagService.identifyTagAsync(tagId);\r\n if (tagData.error) {\r\n toast.error(t(tagData.error.message));\r\n setState({ ...state, search: false });\r\n setTimeout(() => {\r\n setState({ search: false, tag: null });\r\n }, resetTimeout);\r\n } else {\r\n if (tagData.data.data.length === 0) {\r\n setLookupResult({ unknown: true });\r\n setState((prevState) => ({ ...prevState, search: false }));\r\n } else if (tagData.data.data[0].unitId) {\r\n const unitData = await ClientsService.getUnitByIdAsync(\r\n tagData.data.data[0].unitId\r\n );\r\n if (unitData.error) {\r\n toast.error(unitData.error.message);\r\n setState({ ...state, search: false });\r\n setTimeout(() => {\r\n setState({ search: false, tag: null });\r\n }, resetTimeout);\r\n } else {\r\n setLookupResult({ unit: unitData.data.data[0] });\r\n setState((prevState) => ({\r\n ...prevState,\r\n search: false,\r\n }));\r\n }\r\n } else if (tagData.data.data[0].cylinderId) {\r\n const cylData = await CompanyService.getCompanyCylinderByIdAsync(\r\n tagData.data.data[0].cylinderId\r\n );\r\n if (cylData.error) {\r\n toast.error(cylData.error.message);\r\n setState({ ...state, search: false });\r\n setTimeout(() => {\r\n setState({ search: false, tag: null });\r\n }, resetTimeout);\r\n } else {\r\n setLookupResult({ cylinder: cylData.data.data[0] });\r\n setState((prevState) => ({\r\n ...prevState,\r\n search: false,\r\n }));\r\n }\r\n } else if (tagData.data.data[0].analyzerId) {\r\n const analData = await CompanyService.getMyGasAnalyzerByIdAsync(\r\n tagData.data.data[0].analyzerId\r\n );\r\n if (analData.error) {\r\n toast.error(analData.error.message);\r\n setState({ ...state, search: false });\r\n setTimeout(() => {\r\n setState({ search: false, tag: null });\r\n }, resetTimeout);\r\n } else {\r\n setLookupResult({ analyzer: analData.data.data[0] });\r\n setState((prevState) => ({\r\n ...prevState,\r\n search: false,\r\n }));\r\n }\r\n } else {\r\n setLookupResult({ unknown: true });\r\n setState((prevState) => ({\r\n ...prevState,\r\n search: false,\r\n }));\r\n }\r\n }\r\n }\r\n if (state.tag) lookup(state.tag);\r\n }, [state.tag]);\r\n\r\n if (!props.show) {\r\n return null;\r\n }\r\n\r\n const handleScan = (data) => {\r\n if (data) {\r\n if (data === state.tag || state.search) return;\r\n setState({ tag: data, search: true });\r\n if (props.onScan) props.onScan(data);\r\n }\r\n };\r\n const handleError = (err) => {\r\n console.error(err);\r\n };\r\n\r\n const handleClose = () => {\r\n setState({});\r\n setLookupResult({ cylinder: null, unit: null });\r\n if (props.onClose) props.onClose();\r\n };\r\n\r\n const tagParts = state.tag ? splitTag(state.tag) : [];\r\n return (\r\n \r\n \r\n {t(\"screens:pwaMenu.viewFinder\")}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"screens:technician.qrTag\")}\r\n\r\n {tagParts.length > 0 && (\r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n\r\n {!state.search && lookupResult.unknown && (\r\n <>\r\n \r\n {t(\"screens:technician.noTagData\")}\r\n \r\n )}\r\n\r\n {!state.search && lookupResult.analyzer && (\r\n <>\r\n {t(\"screens:technician.details\")}\r\n
    \r\n \r\n {t(\"filters:clients.name\")}\r\n {lookupResult.analyzer.name}\r\n \r\n \r\n {t(\"forms:equipmentDescription.text\")}\r\n {lookupResult.analyzer.description}\r\n \r\n \r\n \r\n {t(\"forms:analyzer.wizard.macAddress\")}\r\n \r\n {lookupResult.analyzer.macAddress}\r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!state.search && lookupResult.cylinder && (\r\n <>\r\n {t(\"screens:technician.details\")}\r\n
    \r\n \r\n {t(\"table:headers.cylinders.netWeight\")}\r\n {lookupResult.cylinder.size.toFixed(2)} kg\r\n \r\n \r\n {t(\"table:headers.cylinders.gas\")}\r\n \r\n {lookupResult.cylinder.refrigerantTypeCode ||\r\n t(\"screens:equipment.emptyCylinder\")}\r\n \r\n \r\n \r\n {t(\"table:headers.cylinders.quantity\")}\r\n {lookupResult.cylinder.filledQuantity?.toFixed(2)} kg\r\n \r\n
    \r\n \r\n )}\r\n {!state.search && lookupResult.unit && (\r\n <>\r\n {t(\"screens:technician.details\")}\r\n
    \r\n \r\n {t(\"screens:technician.manufacturer\")}\r\n {lookupResult.unit.manufacturerName}\r\n \r\n \r\n {t(\"screens:technician.application\")}\r\n {lookupResult.unit.applicationTypeName}\r\n \r\n \r\n {t(\"screens:technician.installedGas\")}\r\n {lookupResult.unit.refrigerantCode}\r\n \r\n \r\n {t(\"screens:technician.capacity\")}\r\n {lookupResult.unit.capacity} kW\r\n \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default QrScanner;\r\nexport { StyledQrReader };\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst PresumedGradeLabel = ({gradeA, gradeB, gradeC, ...rest}) => {\r\n const {t} = useTranslation('common');\r\n if (gradeC) {\r\n return
    {t('grade')}: C
    ;\r\n } else if (gradeB) {\r\n return
    {t('grade')}: B
    ;\r\n } else {\r\n return
    {t('grade')}: A
    ;\r\n }\r\n};\r\n\r\nexport default styled(PresumedGradeLabel)`\r\n margin-bottom: 20px;\r\n color: ${p => p.theme.primaryColor};\r\n font-weight: bold;\r\n`;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1316\",\n \"data-name\": \"Group 1316\",\n transform: \"translate(-1409 13133)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_121\",\n \"data-name\": \"Component 34 \\\\u2013 121\",\n transform: \"translate(1530.509 -13094.285) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1198\",\n \"data-name\": \"Group 1198\",\n transform: \"translate(1326 -13350)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1013\",\n \"data-name\": \"Group 1013\",\n transform: \"translate(59.037 -180)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_750\",\n \"data-name\": \"Path 750\",\n d: \"M2.25-2.25H54.117\",\n transform: \"translate(22.713 455.209)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144H28.829\",\n transform: \"translate(25.822 476.111)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_748\",\n \"data-name\": \"Path 748\",\n d: \"M49.226-56.256a2.745,2.745,0,0,0-.692-1.841,2.255,2.255,0,0,0-1.67-.763H10.1a2.264,2.264,0,0,0-1.676.765,2.755,2.755,0,0,0-.694,1.848V-9.468H49.226Z\",\n transform: \"translate(22.011 462.468)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_749\",\n \"data-name\": \"Path 749\",\n d: \"M18.456-64.144H39.2\",\n transform: \"translate(22.165 463.145)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1012\",\n \"data-name\": \"Group 1012\",\n transform: \"translate(35.433 426.23)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1011\",\n \"data-name\": \"Group 1011\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1009\",\n \"data-name\": \"Group 1009\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_57\",\n \"data-name\": \"Line 57\",\n x2: 31.12,\n transform: \"translate(0 5.187)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_65\",\n \"data-name\": \"Line 65\",\n x2: 31.12,\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_58\",\n \"data-name\": \"Line 58\",\n x2: 31.12,\n transform: \"translate(0 10.373)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_59\",\n \"data-name\": \"Line 59\",\n x2: 31.12,\n transform: \"translate(0 15.56)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_60\",\n \"data-name\": \"Line 60\",\n x2: 31.12,\n transform: \"translate(0 20.747)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1008\",\n \"data-name\": \"Group 1008\",\n transform: \"translate(15.56) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_61\",\n \"data-name\": \"Line 61\",\n x2: 20.747,\n transform: \"translate(0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_62\",\n \"data-name\": \"Line 62\",\n x2: 20.747,\n transform: \"translate(0 5.187)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_63\",\n \"data-name\": \"Line 63\",\n x2: 20.747,\n transform: \"translate(0 10.373)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_64\",\n \"data-name\": \"Line 64\",\n x2: 20.747,\n transform: \"translate(0 15.56)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1010\",\n \"data-name\": \"Group 1010\",\n transform: \"translate(66.553 426.23) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_61-2\",\n \"data-name\": \"Line 61\",\n x2: 20.747,\n transform: \"translate(0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_62-2\",\n \"data-name\": \"Line 62\",\n x2: 20.747,\n transform: \"translate(0 5.187)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_63-2\",\n \"data-name\": \"Line 63\",\n x2: 20.747,\n transform: \"translate(0 10.373)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_64-2\",\n \"data-name\": \"Line 64\",\n x2: 20.747,\n transform: \"translate(0 15.56)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-18.9H39.1v-6.837H26.138Z\",\n transform: \"translate(27.431 437.473)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1197\",\n \"data-name\": \"Group 1197\",\n transform: \"translate(82 -122.592)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\",\n transform: \"translate(168 340.592)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M252.959-165.605c0-3.1-2.949-5.613-6.584-5.613H218.608c-3.634,0-6.584,2.515-6.584,5.613V-129.7c0,3.1,2.95,5.613,6.584,5.613h27.767c3.635,0,6.584-2.515,6.584-5.613Z\",\n transform: \"translate(-212.024 177.654)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-172.117H246.1v-6.333H220.819Z\",\n transform: \"translate(-212.992 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.221H246.1v-1.585H220.819Z\",\n transform: \"translate(-212.992 171.284)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h40.68\",\n transform: \"translate(-212.04 176.563)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h40.68\",\n transform: \"translate(-212.04 172.437)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_517\",\n \"data-name\": \"Path 517\",\n d: \"M232.159-149.994s4.449,6.844,4.449,9.3a4.451,4.451,0,0,1-4.449,4.449,4.452,4.452,0,0,1-4.45-4.449C227.709-143.15,232.159-149.994,232.159-149.994Z\",\n transform: \"translate(-43.691 514.129)\",\n fill: \"#48b05e\",\n fillRule: \"evenodd\"\n}))));\n\nvar SvgNewExtraction = function SvgNewExtraction(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 208.935,\n height: 58.063,\n viewBox: \"0 0 208.935 58.063\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNewExtraction, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/new-extraction.4e11b7b2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1694\",\n \"data-name\": \"Group 1694\",\n transform: \"translate(-89.191 -216.938)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1670\",\n \"data-name\": \"Group 1670\",\n transform: \"translate(0.191 -1.311)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_26\",\n \"data-name\": \"Component 34 \\\\u2013 26\",\n transform: \"translate(200.408 254.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_864\",\n \"data-name\": \"Group 864\",\n transform: \"translate(-1321 -958.105)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_767\",\n \"data-name\": \"Group 767\",\n transform: \"translate(1411 1178.105)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_637\",\n \"data-name\": \"Path 637\",\n d: \"M8.776-27.5v9.59\",\n transform: \"translate(-0.857 70.886)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_638\",\n \"data-name\": \"Path 638\",\n d: \"M16.277-22.79v4.8\",\n transform: \"translate(-0.72 70.973)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_639\",\n \"data-name\": \"Path 639\",\n d: \"M6.354-18.082H18.675v1.023H6.354Z\",\n transform: \"translate(-0.902 71.059)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_640\",\n \"data-name\": \"Path 640\",\n d: \"M42.2-27.5v9.59\",\n transform: \"translate(-0.244 70.886)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_641\",\n \"data-name\": \"Path 641\",\n d: \"M34.7-22.79v4.8\",\n transform: \"translate(-0.382 70.973)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_642\",\n \"data-name\": \"Path 642\",\n d: \"M32.519-18.078H44.84v1.018H32.519Z\",\n transform: \"translate(-0.421 71.06)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_631\",\n \"data-name\": \"Path 631\",\n d: \"M25.836-70.1A24.847,24.847,0,0,1,50.671-45.269,24.847,24.847,0,0,1,25.836-20.433,24.847,24.847,0,0,1,1-45.269,24.847,24.847,0,0,1,25.836-70.1Z\",\n transform: \"translate(-1 70.104)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_632\",\n \"data-name\": \"Path 632\",\n d: \"M25.734-64.558A19.2,19.2,0,0,1,44.921-45.37,19.2,19.2,0,0,1,25.734-26.183,19.2,19.2,0,0,1,6.547-45.37,19.2,19.2,0,0,1,25.734-64.558Z\",\n transform: \"translate(-0.898 70.206)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_643\",\n \"data-name\": \"Path 643\",\n d: \"M25.437-48.413a2.748,2.748,0,0,1,2.746,2.746,2.748,2.748,0,0,1-2.746,2.746,2.748,2.748,0,0,1-2.746-2.746A2.748,2.748,0,0,1,25.437-48.413Z\",\n transform: \"translate(-0.602 70.502)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_644\",\n \"data-name\": \"Path 644\",\n d: \"M7.66-45.716h4.389\",\n transform: \"translate(-0.878 70.552)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_645\",\n \"data-name\": \"Path 645\",\n d: \"M8.725-51.769l4.126,1.5\",\n transform: \"translate(-0.858 70.441)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_646\",\n \"data-name\": \"Path 646\",\n d: \"M11.793-57.094l3.366,2.817\",\n transform: \"translate(-0.802 70.343)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_647\",\n \"data-name\": \"Path 647\",\n d: \"M16.494-61.052l2.2,3.8\",\n transform: \"translate(-0.716 70.27)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_648\",\n \"data-name\": \"Path 648\",\n d: \"M22.263-63.167l.774,4.321\",\n transform: \"translate(-0.61 70.232)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_649\",\n \"data-name\": \"Path 649\",\n d: \"M28.422-63.185l-.748,4.325\",\n transform: \"translate(-0.51 70.231)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_636\",\n \"data-name\": \"Path 636\",\n d: \"M34.23-61.1l-2.18,3.81\",\n transform: \"translate(-0.43 70.27)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_635\",\n \"data-name\": \"Path 635\",\n d: \"M38.976-57.174l-3.349,2.837\",\n transform: \"translate(-0.364 70.342)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_633\",\n \"data-name\": \"Path 633\",\n d: \"M42.089-51.868l-4.117,1.523\",\n transform: \"translate(-0.321 70.439)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_634\",\n \"data-name\": \"Path 634\",\n d: \"M43.195-45.822l-4.389.026\",\n transform: \"translate(-0.306 70.55)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_650\",\n \"data-name\": \"Path 650\",\n d: \"M32.773-53,27.291-47.52\",\n transform: \"translate(-0.517 70.418)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_651\",\n \"data-name\": \"Path 651\",\n d: \"M23.585-43.814,18.1-38.331\",\n transform: \"translate(-0.686 70.587)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_652\",\n \"data-name\": \"Path 652\",\n d: \"M21.636-34.364h2.543v-2.543H21.636Z\",\n transform: \"translate(-0.621 70.714)\",\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_653\",\n \"data-name\": \"Path 653\",\n d: \"M26.647-34.364H29.19v-2.543H26.647Z\",\n transform: \"translate(-0.529 70.714)\",\n fillRule: \"evenodd\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1667\",\n \"data-name\": \"Group 1667\",\n transform: \"translate(75.682 -121.344)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\",\n transform: \"translate(168 340.592)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M252.959-165.605c0-3.1-2.949-5.613-6.584-5.613H218.608c-3.634,0-6.584,2.515-6.584,5.613V-129.7c0,3.1,2.95,5.613,6.584,5.613h27.767c3.635,0,6.584-2.515,6.584-5.613Z\",\n transform: \"translate(-212.024 177.654)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-172.117H246.1v-6.333H220.819Z\",\n transform: \"translate(-212.992 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.221H246.1v-1.585H220.819Z\",\n transform: \"translate(-212.992 171.284)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h40.68\",\n transform: \"translate(-212.04 176.563)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h40.68\",\n transform: \"translate(-212.04 172.437)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_517\",\n \"data-name\": \"Path 517\",\n d: \"M232.159-149.994s4.449,6.844,4.449,9.3a4.451,4.451,0,0,1-4.449,4.449,4.452,4.452,0,0,1-4.45-4.449C227.709-143.15,232.159-149.994,232.159-149.994Z\",\n transform: \"translate(-43.691 514.129)\",\n fill: \"#48b05e\",\n fillRule: \"evenodd\"\n}))));\n\nvar SvgAnalyzerResult = function SvgAnalyzerResult(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 196.617,\n height: 58.063,\n viewBox: \"0 0 196.617 58.063\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAnalyzerResult, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/analyzer-result.1ab7465c.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport * as yup from \"yup\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport { Checkbox, Radio } from \"../../../../components/elements/form-elements\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n skipValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport ClientsService from \"../../../../services/Clients/ClientsService\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\nimport PresumedGradeLabel from \"../../../../screens/NewRefrigerant/views/new-refrigerant/components/PresumedGradeLabel\";\r\nimport { ReactComponent as ExtractSvg } from \"../../../../assets/pwa/new-extraction.svg\";\r\nimport { ReactComponent as AnalyzerSvg } from \"../../../../assets/pwa/analyzer-result.svg\";\r\nimport { ScanButton, KeyVal, ListTitle, HR, Box16A9 } from \"../../components/StyledElements\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nimport { SvgScan, SvgNoImage } from \"../../components/StyledSvg\";\r\n\r\nconst RadioTitle = styled.div`\r\n font-size: 14px;\r\n font-weight: bold;\r\n margin: 32px 0 20px 10px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n margin-top: -40px;\r\n max-height: 100%;\r\n overflow: auto;\r\n &.nomargin {\r\n margin-top: 0;\r\n }\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n &.spaced {\r\n width: 100%;\r\n margin: 30px 0;\r\n }\r\n`;\r\n\r\nconst Half = styled.div`\r\n width: 50%;\r\n`;\r\n\r\nconst SvgExtract = styled(ExtractSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\nconst SvgAnalyzer = styled(AnalyzerSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n showUnitScanner: false,\r\n showAnalyzerScanner: false,\r\n isValidUnitTag: false,\r\n showCylinderScanner: false,\r\n isValidCylinderTag: false,\r\n quantity: \"0.00\",\r\n pressumedGrade: 0,\r\n extractionDateTime: new Date(),\r\n countryId: \"\",\r\n street: \"\",\r\n city: \"\",\r\n postalCode: \"\",\r\n region: \"\",\r\n gradeA: false,\r\n gradeB: false,\r\n gradeC: false,\r\n unitTagId: \"\",\r\n cylinderTagId: \"\",\r\n capacity: \"\",\r\n applicationTypeName: \"\",\r\n manufacturerName: \"\",\r\n refrigerantName: \"\",\r\n cylinderFull: false,\r\n refrigerantId: \"\",\r\n unitGasType: \"\",\r\n cylQualityMatch: true,\r\n assessment: \"0\",\r\n};\r\n\r\nconst getRealGrade = (values) => {\r\n if (values.gradeC) {\r\n return \"C\";\r\n } else if (values.gradeB) {\r\n return \"B\";\r\n } else {\r\n return \"A\";\r\n }\r\n};\r\n\r\nconst validUnitTag = (t) => {\r\n return buildValidation({\r\n isValidUnitTag: yup.boolean().required().oneOf([true], \"Wrong Unit Tag\"),\r\n });\r\n};\r\n\r\nconst validCylinderTag = (t) => {\r\n return buildValidation({\r\n isValidCylinderTag: yup.boolean().required().oneOf([true], \"Wrong Unit Tag\"),\r\n });\r\n};\r\n\r\nconst validUnitTagId = (t) => {\r\n return buildValidation({\r\n unitTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validCylinderTagId = (t) => {\r\n return buildValidation({\r\n cylinderTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validExtraction = (t) => {\r\n return buildValidation({\r\n cylinderFull: yup.boolean().required().oneOf([false], \"Cylinder full\"),\r\n quantity: ValidationRule.moreThan(\r\n 0,\r\n t(\"forms:quantity.invalidNumber\"),\r\n t(\"forms:quantity.largerThenZero\")\r\n ).rule,\r\n extractionDateTime: ValidationRule.isStringRule().required(\r\n t(\"forms:extractionDate.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst validGrades = (t) =>\r\n yup.lazy((values) => {\r\n if (values.assessment === \"1\")\r\n return buildValidation({\r\n analyzerTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n\r\n // if (!values.gradeA || !values.gradeB || !values.gradeC) skipValidation();\r\n return buildValidation({\r\n gradeA: ValidationRule.boolean().required(\"A\").rule,\r\n gradeB: ValidationRule.boolean().required(\"B\").rule,\r\n gradeC: ValidationRule.boolean().required(\"C\").rule,\r\n });\r\n });\r\n\r\nconst roundToNearestMinute = (date) => {\r\n var coeff = 1000 * 60 * 1; // <-- Replace {1} with interval\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n};\r\n\r\nconst ExtractionWizard = (\r\n t,\r\n searchFn = () => {},\r\n cylinderSearchFn = () => {},\r\n analyzerSearchFn = () => {},\r\n initialValues = {}\r\n) => {\r\n const handleUnitScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showUnitScanner: false,\r\n unitTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n const handleAnalyzerScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showAnalyzerScanner: false,\r\n analyzerTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n const handleCylinderScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showCylinderScanner: false,\r\n cylinderTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"forms:extraction.wizard.title\"),\r\n initialValues: { ...defaultInitialValues, ...initialValues },\r\n steps: [\r\n {\r\n name: t(\"forms:extraction.wizard.title_step1\"),\r\n fieldNames: [\"unitTagId\"],\r\n validation: validUnitTagId(t),\r\n onStepSubmit: async ({ values }) => {\r\n const tagId = values[\"unitTagId\"];\r\n\r\n const tagResult = await TagsService.identifyTagAsync(tagId);\r\n if (tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n return false;\r\n }\r\n const tagData = tagResult.data.data;\r\n if (tagData.length === 0 || !tagData[0].unitId) {\r\n toast.error(t(\"forms:extraction.wizard.notUnitTag\"));\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\"forms:extraction.wizard.unitInfoTitle\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.unitInfoText\")}\r\n \r\n {t(\"forms:extraction.wizard.useCamera\")}\r\n \r\n {t(\"forms:extraction.wizard.typeQrTag\")}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n {formik.values.showUnitScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) => handleUnitScan(value, formik)}\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n \r\n \r\n formik.setFieldValue(\r\n \"showUnitScanner\",\r\n !formik.values.showUnitScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:extraction.wizard.title_step2\"),\r\n fieldNames: [\"refrigerantId\", \"unitGasType\"],\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"unitTagId\"];\r\n if (!props.propertyBag.unit || tagId !== props.propertyBag.unit.tagId) {\r\n const tagResult = await TagsService.identifyTagAsync(\r\n props.value[\"unitTagId\"]\r\n );\r\n if (tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\"isValidUnitTag\", false);\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n if (tagData.length === 0 || !tagData[0].unitId) {\r\n toast.error(t(\"forms:extraction.wizard.notUnitTag\"));\r\n props.formik.setFieldValue(\"isValidUnitTag\", false);\r\n return;\r\n }\r\n\r\n const unitResult = await ClientsService.getUnitByIdAsync(tagData[0].unitId);\r\n if (unitResult.error) {\r\n toast.error(unitResult.error.message);\r\n props.formik.setFieldValue(\"isValidUnitTag\", false);\r\n return;\r\n }\r\n const unitData = unitResult.data.data[0];\r\n props.formik.setFieldValue(\"refrigerantId\", unitData.refrigerantId);\r\n props.updatePropertyBag({\r\n unit: {\r\n tagId: tagId,\r\n manufacturer: unitData.manufacturerName,\r\n application: unitData.applicationTypeName,\r\n gas: unitData.refrigerantCode,\r\n capacity: unitData.capacity,\r\n notes: unitData.description,\r\n image: unitData.images[0]?.imageThumbnailUrl,\r\n company: unitData.client.clientName,\r\n street: unitData.client.street,\r\n city: unitData.client.city,\r\n zip: unitData.client.postalCode,\r\n country: unitData.client.countryName,\r\n },\r\n });\r\n props.formik.setFieldValue(\"isValidUnitTag\", true);\r\n props.formik.setFieldValue(\"unitGasType\", unitData.refrigerantCode);\r\n } else {\r\n props.formik.setFieldValue(\"isValidUnitTag\", true);\r\n }\r\n },\r\n validation: validUnitTag(t),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.unit && (\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.manufacturer\")}\r\n {propertyBag.unit.manufacturer}\r\n \r\n \r\n {t(\"screens:technician.application\")}\r\n {propertyBag.unit.application}\r\n \r\n \r\n {t(\"screens:technician.installedGas\")}\r\n {propertyBag.unit.gas}\r\n \r\n \r\n {t(\"screens:technician.capacity\")}\r\n {propertyBag.unit.capacity} kW\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {t(\"screens:technician.notes\")}\r\n \r\n \r\n \r\n \r\n {t(\"screens:technician.gallery\")}\r\n \r\n \r\n
    \r\n
    \r\n \r\n {propertyBag.unit.notes ? propertyBag.unit.notes : \"-\"}\r\n \r\n \r\n \r\n {propertyBag.unit.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"screens:technician.installationSite\")}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.company\")}\r\n {propertyBag.unit.company}\r\n \r\n \r\n {t(\"screens:technician.address\")}\r\n {propertyBag.unit.street}\r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n {propertyBag.unit.city}\r\n \r\n \r\n {t(\"screens:technician.zip\")}\r\n {propertyBag.unit.zip}\r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n {propertyBag.unit.country}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:cylinder.wizard.pwaStep1\"),\r\n fieldNames: [\"cylinderTagId\"],\r\n validation: validCylinderTagId(t),\r\n onStepSubmit: async ({ values }) => {\r\n const cylinderId = values[\"cylinderTagId\"];\r\n let tagDetails = await TagsService.identifyTag(cylinderId);\r\n let currentCylinder;\r\n if (tagDetails && tagDetails.length > 0) {\r\n currentCylinder = await CompanyService.getCompanyCylinderByIdAsync(\r\n tagDetails[0].cylinderId\r\n );\r\n } else if (tagDetails.length === 0) {\r\n toast.error(t(\"forms:unit.wizard.invalidTag\"));\r\n return false;\r\n }\r\n if (currentCylinder.error) {\r\n toast.error(t(currentCylinder.error.message));\r\n return false;\r\n } else {\r\n if (\r\n currentCylinder.data.data[0].refrigerantTypeCode &&\r\n currentCylinder.data.data[0].refrigerantTypeCode !== values.unitGasType\r\n ) {\r\n toast.error(t(\"forms:extraction.wizard.actionGasMismatch\"));\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\"forms:extraction.wizard.cylinderInfoTitle\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.cylinderInfoText\")}\r\n \r\n {t(\"forms:extraction.wizard.useCamera\")}\r\n \r\n {t(\"forms:extraction.wizard.typeQrTag\")}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showCylinderScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) => handleCylinderScan(value, formik)}\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showCylinderScanner\",\r\n !formik.values.showCylinderScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"screens:technician.cylinderInfo\"),\r\n fieldNames: [\"isValidCylinderTag\", \"assessment\"],\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"cylinderTagId\"];\r\n if (!props.propertyBag.cylinder || tagId !== props.propertyBag.cylinder.tagId) {\r\n const tagResult = await TagsService.identifyTagAsync(\r\n props.value[\"cylinderTagId\"]\r\n );\r\n if (tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n\r\n if (tagData.length === 0 || !tagData[0].cylinderId) {\r\n toast.error(t(\"forms:extraction.wizard.notCylinderTag\"));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cylinderResult = await CompanyService.getCompanyCylinderByIdAsync(\r\n tagData[0].cylinderId\r\n );\r\n if (cylinderResult && cylinderResult.error) {\r\n toast.error(t(cylinderResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cylinderData = cylinderResult.data.data[0];\r\n if (cylinderData.filledQuantity >= cylinderData.size) {\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n toast.error(t(\"forms:extraction.wizard.cylinderFull\"));\r\n } else {\r\n props.formik.setFieldValue(\"isValidCylinderTag\", true);\r\n }\r\n const hasAnalysis = cylinderData.hasAnalysis;\r\n if (hasAnalysis) {\r\n props.formik.setFieldValue(\"assessment\", \"1\");\r\n }\r\n props.updatePropertyBag({\r\n cylinder: {\r\n hasAnalysis,\r\n tagId: tagId,\r\n size: cylinderData.size,\r\n gas: cylinderData.refrigerantTypeCode,\r\n quantity: cylinderData.filledQuantity,\r\n quality: cylinderData.refrigerantGradeName,\r\n image:\r\n cylinderData.imageUrl &&\r\n cylinderData.imageUrl.indexOf(\"no_image\") < 0\r\n ? cylinderData.imageUrl\r\n : null,\r\n },\r\n });\r\n } else {\r\n props.formik.setFieldValue(\"isValidCylinderTag\", true);\r\n }\r\n },\r\n validation: validCylinderTag(t),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.cylinder && (\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"forms:cylinderSize.text\")}\r\n {propertyBag.cylinder.size.toFixed(2)} kg\r\n \r\n \r\n {t(\"screens:technician.gas\")}\r\n \r\n {propertyBag.cylinder.gas ||\r\n t(\"screens:equipment.emptyCylinder\")}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n \r\n {propertyBag.cylinder.quantity.toFixed(2)} kg\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"screens:technician.gallery\")}\r\n \r\n
    \r\n \r\n {propertyBag.cylinder.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:extraction.wizard.title_step5\"),\r\n validation: validExtraction(t),\r\n fieldNames: [\"quantity\", \"extractionDateTime\", \"assessment\"],\r\n onStepRender: async (props) => {\r\n props.formik.setFieldValue(\r\n \"extractionDateTime\",\r\n roundToNearestMinute(new Date())\r\n );\r\n },\r\n onStepSubmit: async ({ values, propertyBag }) => {\r\n const cylQuantity = propertyBag.cylinder.quantity || 0;\r\n const quantity = Number(values.quantity);\r\n if (propertyBag.cylinder.size < quantity + cylQuantity) {\r\n toast.error(t(\"exceptions:validation.CylinderCannotHaveMoreGas\"));\r\n return false;\r\n }\r\n return true;\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.checkMeasuring\")}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"forms:extraction.wizard.qualityAssessment\")}\r\n \r\n {\r\n formik.setFieldValue(\"assessment\", \"0\");\r\n }}\r\n checked={formik.values[\"assessment\"] === \"0\"}\r\n >\r\n {\r\n formik.setFieldValue(\"assessment\", \"1\");\r\n }}\r\n checked={formik.values[\"assessment\"] === \"1\"}\r\n >\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: (values) => {\r\n return values.assessment === \"1\"\r\n ? t(\"forms:analyzer.wizard.step1Title\")\r\n : t(\"forms:extraction.wizard.title_step6\");\r\n },\r\n fieldNames: [\"gradeA\", \"gradeB\", \"gradeC\", \"analyzerTagId\"],\r\n validation: validGrades(t),\r\n onStepSubmit: async ({ values, propertyBag }) => {\r\n if (\r\n propertyBag.cylinder.quality &&\r\n propertyBag.cylinder.quality !== getRealGrade(values)\r\n ) {\r\n toast.error(t(\"forms:extraction.wizard.actionQualityMismatch\"));\r\n return false;\r\n }\r\n return true;\r\n },\r\n fields: (formik) => {\r\n if (formik.values[\"assessment\"] === \"1\")\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"forms:extraction.wizard.identifyAnalyzerTitle\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.unitInfoText\")}\r\n \r\n {t(\"forms:extraction.wizard.useCamera\")}\r\n \r\n {t(\"forms:extraction.wizard.typeQrTag\")}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n\r\n {formik.values.showAnalyzerScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) => handleAnalyzerScan(value, formik)}\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n \r\n \r\n formik.setFieldValue(\r\n \"showAnalyzerScanner\",\r\n !formik.values.showAnalyzerScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.checkMeasuring\")}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default ExtractionWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport ExtractionWizard from \"./components/ExtractionWizard\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport CompanyService from \"../../../services/Company/CompanyService\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\nconst P = styled.div`\r\n display: block;\r\n font-size: 16px;\r\n font-weight: bold;\r\n margin-bottom: 12px;\r\n`;\r\n\r\nconst NewExtraction = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n const queryUnitTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnitTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupExistingCylinderTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const queryAnalyzerTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupTagForAnalyzerAsync(tag);\r\n return tags.data.data.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const { modalProps: extractionModalProps, toggleOpen: toggleExtractionModal } = useModal({\r\n title: t(\"forms:analyzer.wizard.measurementResults\"),\r\n type: \"warning\",\r\n confirmText: t(\"forms:wizard.finish\"),\r\n onConfirm: () => {\r\n toggleExtractionModal();\r\n toast.success(t(\"actions:dialogs.newExtraction.success\"));\r\n ModalWizard.hide();\r\n setTimeout(() => {\r\n history.goBack();\r\n }, 100);\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n ExtractionWizard(t, queryUnitTags, queryCylinderTags, queryAnalyzerTags, {\r\n extractionDateTime: new Date(),\r\n }),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.gradeC) {\r\n values.pressumedGrade = 2;\r\n } else if (values.gradeB) {\r\n values.pressumedGrade = 1;\r\n } else {\r\n values.pressumedGrade = 0;\r\n }\r\n values.isContaminated = values.gradeA;\r\n values.isMixture = values.gradeB;\r\n values.hasR22 = values.gradeC;\r\n\r\n let analyzer = {};\r\n if (values.analyzerTagId) {\r\n try {\r\n const analyzerData = await CompanyService.getMyGasAnalyzerByTagAsync(\r\n values.analyzerTagId\r\n );\r\n analyzer = analyzerData?.data?.data?.[0];\r\n } catch (ex) {\r\n analyzer.name = t(\"screens:statistics.fGasAnalyzerTitle\");\r\n }\r\n }\r\n\r\n const result = await StockService.addToMyStock(ModalWizard.asFormData(values));\r\n\r\n if (result && result.error) ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toggleExtractionModal({ analyzer });\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(() => history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n

    {t(\"forms:analyzer.wizard.meResultsLine1\")}

    \r\n

    {extractionModalProps?.modal?.analyzer?.name}

    \r\n

    {t(\"forms:analyzer.wizard.meResultsLine2\")}

    \r\n

    {t(\"forms:analyzer.wizard.meResultsLine3\")}

    \r\n

    {t(\"forms:analyzer.wizard.meResultsLine4\")}

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default NewExtraction;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1317\",\n \"data-name\": \"Group 1317\",\n transform: \"translate(-79 -217)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_99\",\n \"data-name\": \"Component 34 \\\\u2013 99\",\n transform: \"translate(196.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1316\",\n \"data-name\": \"Group 1316\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1164\",\n \"data-name\": \"Group 1164\",\n transform: \"translate(56.5 18)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1003\",\n \"data-name\": \"Group 1003\",\n transform: \"translate(23.5 201.195)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_482\",\n \"data-name\": \"Path 482\",\n d: \"M325.417-268.293a12.8,12.8,0,0,0-12.8-12.8,12.8,12.8,0,0,0-12.8,12.8v7.048a12.8,12.8,0,0,0,12.8,12.8,12.8,12.8,0,0,0,12.8-12.8Z\",\n transform: \"translate(-287.998 281.09)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_483\",\n \"data-name\": \"Path 483\",\n d: \"M295.6-241.916l-8.287,3.347a3.177,3.177,0,0,0-1.988,2.946v5.557a3.6,3.6,0,0,0,3.6,3.6h42.04a3.6,3.6,0,0,0,3.6-3.6v-5.557a3.178,3.178,0,0,0-1.987-2.946l-8.288-3.347\",\n transform: \"translate(-285.324 273.866)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1017\",\n \"data-name\": \"Group 1017\",\n transform: \"translate(60.858 224.734)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1016\",\n \"data-name\": \"Group 1016\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M234.665-168.113a3.407,3.407,0,0,0-3.642-3.1H215.666a3.407,3.407,0,0,0-3.642,3.1v19.861a3.407,3.407,0,0,0,3.642,3.1h15.358a3.407,3.407,0,0,0,3.642-3.1Z\",\n transform: \"translate(-212.024 174.778)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-174.947H234.8v-3.5H220.819Z\",\n transform: \"translate(-216.49 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.93H234.8v-.877H220.819Z\",\n transform: \"translate(-216.49 146.939)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h22.5\",\n transform: \"translate(-212.097 170.141)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h22.5\",\n transform: \"translate(-212.097 152.253)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_747\",\n \"data-name\": \"Path 747\",\n d: \"M230.17-149.994s2.461,3.786,2.461,5.144a2.462,2.462,0,0,1-2.461,2.461,2.462,2.462,0,0,1-2.461-2.461C227.709-146.208,230.17-149.994,230.17-149.994Z\",\n transform: \"translate(-218.85 163.016)\",\n fillRule: \"evenodd\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1165\",\n \"data-name\": \"Group 1165\",\n transform: \"translate(210.537 -42)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1004\",\n \"data-name\": \"Group 1004\",\n transform: \"translate(23.963 260)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_589\",\n \"data-name\": \"Path 589\",\n d: \"M48.384-56.546a2.313,2.313,0,0,0-.678-1.636,2.313,2.313,0,0,0-1.636-.678H10.054a2.322,2.322,0,0,0-1.642.68,2.322,2.322,0,0,0-.68,1.642v41.567H48.384Z\",\n transform: \"translate(-3.485 62.953)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_590\",\n \"data-name\": \"Path 590\",\n d: \"M16.451-41.482H43.595v-8.684H16.451Z\",\n transform: \"translate(-5.45 60.994)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-8.151H38.274V-25.736H26.138Z\",\n transform: \"translate(-7.633 55.488)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_592\",\n \"data-name\": \"Path 592\",\n d: \"M2.25-2.25H50.986\",\n transform: \"translate(-2.25 50.195)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144H42.085\",\n transform: \"translate(-5.902 64.144)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1002\",\n \"data-name\": \"Group 1002\",\n transform: \"translate(60.919 284.407)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_910\",\n \"data-name\": \"Group 910\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678-2\",\n \"data-name\": \"Group 678\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486-2\",\n \"data-name\": \"Path 486\",\n d: \"M235.068-168.058a3.467,3.467,0,0,0-3.706-3.16H215.731a3.468,3.468,0,0,0-3.707,3.16v20.214a3.468,3.468,0,0,0,3.707,3.16h15.631a3.467,3.467,0,0,0,3.706-3.16Z\",\n transform: \"translate(-212.024 174.841)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489-2\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-174.885h14.233v-3.565H220.819Z\",\n transform: \"translate(-216.413 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492-2\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.914h14.233v-.892H220.819Z\",\n transform: \"translate(-216.413 147.474)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495-2\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h22.9\",\n transform: \"translate(-212.096 170.282)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498-2\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h22.9\",\n transform: \"translate(-212.096 152.698)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}))), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_747-2\",\n \"data-name\": \"Path 747\",\n d: \"M230.214-149.994s2.5,3.853,2.5,5.236a2.506,2.506,0,0,1-2.5,2.5,2.506,2.506,0,0,1-2.505-2.5C227.709-146.141,230.214-149.994,230.214-149.994Z\",\n transform: \"translate(-218.692 163.247)\",\n fill: \"#48b05e\",\n fillRule: \"evenodd\"\n})))));\n\nvar SvgToCompanyStock = function SvgToCompanyStock(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 216.25,\n height: 57.718,\n viewBox: \"0 0 216.25 57.718\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgToCompanyStock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/to-company-stock.3efc03e3.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\n\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as ToStockSvg } from \"../../../../assets/pwa/to-company-stock.svg\";\r\nimport {\r\n ScanButton,\r\n KeyVal,\r\n ListTitle,\r\n HR,\r\n Box16A9,\r\n} from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan, SvgNoImage } from \"../../components/StyledSvg\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n margin-top: -40px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgToStock = styled(ToStockSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n showCylinderScanner: false,\r\n isValidCylinderTag: false,\r\n quantity: 0,\r\n cylinderTagId: \"\",\r\n cylinderId: \"\",\r\n capacity: \"\",\r\n refrigerantId: \"\",\r\n};\r\n\r\nconst validCylinderTagId = (t) => {\r\n return buildValidation({\r\n cylinderTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst ToCompanyStocknWizard = (t, cylinderSearchFn = () => {}) => {\r\n const handleCylinderScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showCylinderScanner: false,\r\n cylinderTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"forms:stock.wizard.moveToCompanyStock.pwaTitle\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep1\"),\r\n fieldNames: [\"cylinderTagId\"],\r\n validation: validCylinderTagId(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\r\n \"forms:stock.wizard.moveToCompanyStock.pwaStep1Title\"\r\n )}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:extraction.wizard.useCamera\"\r\n )}\r\n \r\n {t(\r\n \"forms:extraction.wizard.typeQrTag\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showCylinderScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) =>\r\n handleCylinderScan(value, formik)\r\n }\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showCylinderScanner\",\r\n !formik.values.showCylinderScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep2\"),\r\n fieldNames: [\"cylinderId\"],\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"cylinderTagId\"];\r\n if (\r\n !props.propertyBag.cylinder ||\r\n tagId !== props.propertyBag.cylinder.tagId\r\n ) {\r\n const tagResult = await TagsService.identifyTagAsync(\r\n props.value[\"cylinderTagId\"]\r\n );\r\n if (tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\r\n \"isValidCylinderTag\",\r\n false\r\n );\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n\r\n if (tagData.length === 0 || !tagData[0].cylinderId) {\r\n toast.error(\r\n t(\"forms:extraction.wizard.notCylinderTag\")\r\n );\r\n props.formik.setFieldValue(\r\n \"isValidCylinderTag\",\r\n false\r\n );\r\n return;\r\n }\r\n\r\n const cylinderResult = await CompanyService.getCompanyCylinderByIdAsync(\r\n tagData[0].cylinderId\r\n );\r\n if (cylinderResult.error) {\r\n toast.error(cylinderResult.error.message);\r\n props.formik.setFieldValue(\r\n \"isValidCylinderTag\",\r\n false\r\n );\r\n return;\r\n }\r\n\r\n const cylinderData = cylinderResult.data.data[0];\r\n\r\n props.formik.setFieldValue(\"isValidCylinderTag\", true);\r\n\r\n props.formik.setFieldValue(\r\n \"cylinderId\",\r\n cylinderData.id\r\n );\r\n props.updatePropertyBag({\r\n cylinder: {\r\n tagId: tagId,\r\n size: cylinderData.size,\r\n gas: cylinderData.refrigerantTypeCode,\r\n quantity: cylinderData.filledQuantity,\r\n image:\r\n cylinderData.imageUrl &&\r\n cylinderData.imageUrl.indexOf(\"no_image\") <\r\n 0\r\n ? cylinderData.imageUrl\r\n : null,\r\n },\r\n });\r\n }\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.cylinder && (\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"forms:cylinderSize.text\")}\r\n \r\n {propertyBag.cylinder.size.toFixed(2)} kg\r\n \r\n \r\n \r\n {t(\"screens:technician.gas\")}\r\n \r\n {propertyBag.cylinder.gas}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n \r\n {propertyBag.cylinder.quantity.toFixed(2)} kg\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.picture\")}\r\n \r\n
    \r\n \r\n {propertyBag.cylinder.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default ToCompanyStocknWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport ToCompanyStockWizard from \"./components/ToCompanyStockWizard\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport { toast } from \"react-toastify\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst ToCompanyStock = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupExistingCylinderTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n ToCompanyStockWizard(t, queryCylinderTags),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await StockService.moveToCompanyStockAsync(\r\n values.cylinderTagId\r\n );\r\n\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"installerStockListing.toastNotification.success\")\r\n );\r\n ModalWizard.hide();\r\n setTimeout(() => {\r\n history.push(RouteCreator.pwa.stock());\r\n }, 100);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(()=>history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nexport default ToCompanyStock;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\n\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as ToStockSvg } from \"../../../../assets/pwa/to-company-stock.svg\";\r\nimport {\r\n ScanButton,\r\n KeyVal,\r\n ListTitle,\r\n HR,\r\n Box16A9,\r\n} from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan, SvgNoImage } from \"../../components/StyledSvg\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n margin-top: -40px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgToStock = styled(ToStockSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n showCylinderScanner: false,\r\n isValidCylinderTag: false,\r\n quantity: 0,\r\n cylinderTagId: \"\",\r\n cylinderId: \"\",\r\n capacity: \"\",\r\n refrigerantId: \"\",\r\n};\r\n\r\nconst validCylinderTagId = (t) => {\r\n return buildValidation({\r\n cylinderTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst ToMyStockWizard = (t, cylinderSearchFn = () => {}) => {\r\n const handleCylinderScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showCylinderScanner: false,\r\n cylinderTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"forms:stock.wizard.moveToInstallerStock.pwaTitle\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep1\"),\r\n fieldNames: [\"cylinderTagId\"],\r\n validation: validCylinderTagId(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\r\n \"forms:stock.wizard.moveToInstallerStock.infoTitle\"\r\n )}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:extraction.wizard.useCamera\"\r\n )}\r\n \r\n {t(\r\n \"forms:extraction.wizard.typeQrTag\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showCylinderScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) =>\r\n handleCylinderScan(value, formik)\r\n }\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showCylinderScanner\",\r\n !formik.values.showCylinderScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep2\"),\r\n fieldNames: [\"cylinderId\"],\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"cylinderTagId\"];\r\n if (\r\n !props.propertyBag.cylinder ||\r\n tagId !== props.propertyBag.cylinder.tagId\r\n ) {\r\n const tagResult = await TagsService.identifyTagAsync(\r\n props.value[\"cylinderTagId\"]\r\n );\r\n if (tagResult && tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\r\n \"isValidCylinderTag\",\r\n false\r\n );\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n\r\n if (tagData.length === 0 || !tagData[0].cylinderId) {\r\n toast.error(\r\n t(\"forms:extraction.wizard.notCylinderTag\")\r\n );\r\n props.formik.setFieldValue(\r\n \"isValidCylinderTag\",\r\n false\r\n );\r\n return;\r\n }\r\n\r\n const cylinderResult = await CompanyService.getCompanyCylinderByIdAsync(\r\n tagData[0].cylinderId\r\n );\r\n if (cylinderResult && cylinderResult.error) {\r\n toast.error(t(cylinderResult.error.message));\r\n props.formik.setFieldValue(\r\n \"isValidCylinderTag\",\r\n false\r\n );\r\n return;\r\n }\r\n\r\n const cylinderData = cylinderResult.data.data[0];\r\n\r\n props.formik.setFieldValue(\"isValidCylinderTag\", true);\r\n\r\n props.formik.setFieldValue(\r\n \"cylinderId\",\r\n cylinderData.id\r\n );\r\n props.updatePropertyBag({\r\n cylinder: {\r\n tagId: tagId,\r\n size: cylinderData.size,\r\n gas: cylinderData.refrigerantTypeCode,\r\n quantity: cylinderData.filledQuantity,\r\n image:\r\n cylinderData.imageUrl &&\r\n cylinderData.imageUrl.indexOf(\"no_image\") <\r\n 0\r\n ? cylinderData.imageUrl\r\n : null,\r\n },\r\n });\r\n }\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.cylinder && (\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"forms:cylinderSize.text\")}\r\n \r\n {propertyBag.cylinder.size.toFixed(2)} kg\r\n \r\n \r\n \r\n {t(\"screens:technician.gas\")}\r\n \r\n {propertyBag.cylinder.gas}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n \r\n {propertyBag.cylinder.quantity.toFixed(2)} kg\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.picture\")}\r\n \r\n
    \r\n \r\n {propertyBag.cylinder.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default ToMyStockWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport ToMyStockWizard from \"./components/ToMyStockWizard\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst ToMyStock = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n const {UserId} = UserService.getUserDetailsFromToken();\r\n\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupCompanyStockTag(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n ToMyStockWizard(t, queryCylinderTags),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await StockService.moveToInstallerStockAsync(values.cylinderTagId, UserId);\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"stockListing.toastNotification.moveToStockSuccess\")\r\n );\r\n ModalWizard.hide();\r\n setTimeout(() => {\r\n history.push(RouteCreator.pwa.root());\r\n }, 100);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(()=>history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nexport default ToMyStock;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1318\",\n \"data-name\": \"Group 1318\",\n transform: \"translate(-39.75 -218)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_102\",\n \"data-name\": \"Component 34 \\\\u2013 102\",\n transform: \"translate(254.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_103\",\n \"data-name\": \"Component 34 \\\\u2013 103\",\n transform: \"translate(138.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10-2\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11-2\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12-2\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1180\",\n \"data-name\": \"Group 1180\",\n transform: \"translate(0 -7)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1179\",\n \"data-name\": \"Group 1179\",\n transform: \"translate(41 227)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_989\",\n \"data-name\": \"Group 989\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_599\",\n \"data-name\": \"Path 599\",\n d: \"M2.9-.305H26.3V-23.71H2.9Z\",\n transform: \"translate(-2.898 23.71)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_990\",\n \"data-name\": \"Group 990\",\n transform: \"translate(0 28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_600\",\n \"data-name\": \"Path 600\",\n d: \"M2.9,13.131H26.3V-10.274H2.9Z\",\n transform: \"translate(-2.898 10.274)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_991\",\n \"data-name\": \"Group 991\",\n transform: \"translate(28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_601\",\n \"data-name\": \"Path 601\",\n d: \"M17-.305H40.4V-23.71H17Z\",\n transform: \"translate(-16.995 23.71)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_604\",\n \"data-name\": \"Path 604\",\n d: \"M20.418-20.169h7.371\",\n transform: \"translate(-12.696 30.773)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_992\",\n \"data-name\": \"Group 992\",\n transform: \"translate(28.594 28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605\",\n \"data-name\": \"Path 605\",\n d: \"M22.954-11.885h15.64V11.521H15.188V-.2H29.873\",\n transform: \"translate(-15.188 11.885)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1175\",\n \"data-name\": \"Group 1175\",\n transform: \"translate(5.173 43.062) rotate(-90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-2\",\n \"data-name\": \"Path 605\",\n d: \"M3.539,0h7.127V13.71H0V6.844H6.692\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1174\",\n \"data-name\": \"Group 1174\",\n transform: \"translate(34.721 5.106)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-3\",\n \"data-name\": \"Path 605\",\n d: \"M19.568-11.885h8.821V-.212h-13.2\",\n transform: \"translate(-15.188 11.885)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1177\",\n \"data-name\": \"Group 1177\",\n transform: \"translate(16.521 5.106) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-4\",\n \"data-name\": \"Path 605\",\n d: \"M4.38,0H13.2V11.673H0\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_760\",\n \"data-name\": \"Path 760\",\n d: \"M0,0H14.341\",\n transform: \"translate(47.911 33.891) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_759\",\n \"data-name\": \"Path 759\",\n d: \"M6.32-6.733H21.2\",\n transform: \"translate(22.107 40.624)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_761\",\n \"data-name\": \"Path 761\",\n d: \"M20.418-20.169h5.544\",\n transform: \"translate(15.14 66.515)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1176\",\n \"data-name\": \"Group 1176\",\n transform: \"translate(5.136 48.169) rotate(-90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_762\",\n \"data-name\": \"Path 762\",\n d: \"M0,0H9.449\",\n transform: \"translate(0 0.001) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_763\",\n \"data-name\": \"Path 763\",\n d: \"M0,0H4.814\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1178\",\n \"data-name\": \"Group 1178\",\n transform: \"translate(10.212 5.106)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_762-2\",\n \"data-name\": \"Path 762\",\n d: \"M0,0H8.3\",\n transform: \"translate(0 0.001) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_763-2\",\n \"data-name\": \"Path 763\",\n d: \"M20.418-20.169h9.61\",\n transform: \"translate(-20.418 20.169)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1013\",\n \"data-name\": \"Group 1013\",\n transform: \"translate(137.037 -180)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_750\",\n \"data-name\": \"Path 750\",\n d: \"M2.25-2.25H54.117\",\n transform: \"translate(22.713 455.209)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144H28.829\",\n transform: \"translate(25.822 476.111)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_748\",\n \"data-name\": \"Path 748\",\n d: \"M49.226-56.256a2.745,2.745,0,0,0-.692-1.841,2.255,2.255,0,0,0-1.67-.763H10.1a2.264,2.264,0,0,0-1.676.765,2.755,2.755,0,0,0-.694,1.848V-9.468H49.226Z\",\n transform: \"translate(22.011 462.468)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_749\",\n \"data-name\": \"Path 749\",\n d: \"M18.456-64.144H39.2\",\n transform: \"translate(22.165 463.145)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1012\",\n \"data-name\": \"Group 1012\",\n transform: \"translate(35.433 426.23)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1011\",\n \"data-name\": \"Group 1011\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1009\",\n \"data-name\": \"Group 1009\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_57\",\n \"data-name\": \"Line 57\",\n x2: 31.12,\n transform: \"translate(0 5.187)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_65\",\n \"data-name\": \"Line 65\",\n x2: 31.12,\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_58\",\n \"data-name\": \"Line 58\",\n x2: 31.12,\n transform: \"translate(0 10.373)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_59\",\n \"data-name\": \"Line 59\",\n x2: 31.12,\n transform: \"translate(0 15.56)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_60\",\n \"data-name\": \"Line 60\",\n x2: 31.12,\n transform: \"translate(0 20.747)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1008\",\n \"data-name\": \"Group 1008\",\n transform: \"translate(15.56) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_61\",\n \"data-name\": \"Line 61\",\n x2: 20.747,\n transform: \"translate(0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_62\",\n \"data-name\": \"Line 62\",\n x2: 20.747,\n transform: \"translate(0 5.187)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_63\",\n \"data-name\": \"Line 63\",\n x2: 20.747,\n transform: \"translate(0 10.373)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_64\",\n \"data-name\": \"Line 64\",\n x2: 20.747,\n transform: \"translate(0 15.56)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1010\",\n \"data-name\": \"Group 1010\",\n transform: \"translate(66.553 426.23) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_61-2\",\n \"data-name\": \"Line 61\",\n x2: 20.747,\n transform: \"translate(0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_62-2\",\n \"data-name\": \"Line 62\",\n x2: 20.747,\n transform: \"translate(0 5.187)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_63-2\",\n \"data-name\": \"Line 63\",\n x2: 20.747,\n transform: \"translate(0 10.373)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_64-2\",\n \"data-name\": \"Line 64\",\n x2: 20.747,\n transform: \"translate(0 15.56)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-18.9H39.1v-6.837H26.138Z\",\n transform: \"translate(27.431 437.473)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1181\",\n \"data-name\": \"Group 1181\",\n transform: \"translate(276.713 283.145)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_589\",\n \"data-name\": \"Path 589\",\n d: \"M53.482-56.256a2.6,2.6,0,0,0-.763-1.841,2.6,2.6,0,0,0-1.841-.763H10.345a2.613,2.613,0,0,0-1.848.765,2.613,2.613,0,0,0-.765,1.848v46.78h45.75Z\",\n transform: \"translate(-0.703 -0.678)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_590\",\n \"data-name\": \"Path 590\",\n d: \"M16.451-40.392H47v-9.773H16.451Z\",\n transform: \"translate(-1.821 -1.792)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591-2\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-5.946H39.8v-19.79H26.138Z\",\n transform: \"translate(-3.063 -4.925)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_592\",\n \"data-name\": \"Path 592\",\n d: \"M2.25-2.25H57.1\",\n transform: \"translate(0 -7.936)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593-2\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144H45.048\",\n transform: \"translate(-2.078)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})));\n\nvar SvgAddNewUnit = function SvgAddNewUnit(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 295.061,\n height: 56,\n viewBox: \"0 0 295.061 56\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAddNewUnit, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/add-new-unit.92f1c8db.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport * as yup from \"yup\";\r\n\r\nimport { InfoText, InfoTitle, InfoWrapper, RoundInfo } from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, { buildValidation } from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as WizardImage } from \"../../../../assets/pwa/add-new-unit.svg\";\r\nimport { ScanButton, KeyVal, ListTitle, HR } from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan } from \"../../components/StyledSvg\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgWizardImage = styled(WizardImage)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst ClientsList = styled.ul`\r\n font-size: 12px;\r\n width: 100%;\r\n list-style: none;\r\n padding: 0px 8px;\r\n height: 300px;\r\n max-height: 300px;\r\n overflow: auto;\r\n\r\n & > li {\r\n border-bottom: 1px solid #ddd;\r\n padding: 5px 10px;\r\n }\r\n\r\n & > li:hover,\r\n & > li:active {\r\n background-color: ${(p) => p.theme.primaryColor};\r\n color: #fff;\r\n }\r\n`;\r\n\r\nconst SiteInfo = styled.div`\r\n font-size: 12px;\r\n &.title {\r\n font-weight: 700;\r\n }\r\n`;\r\n\r\nconst SiteTitle = styled.div`\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: #48b05e;\r\n margin-bottom: 10px;\r\n margin-left: 10px;\r\n`;\r\n\r\nconst SiteSubTitle = styled.div`\r\n font-size: 14px;\r\n font-weight: 600;\r\n line-height: 16px;\r\n margin-left: 10px;\r\n color: #000;\r\n &.light {\r\n color: #8e8e8e;\r\n }\r\n`;\r\n\r\nconst ClientTitle = styled.div`\r\n font-weight: 700;\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n background-color: ${(p) => p.theme.sidebarWrapperBorderColor};\r\n &.bottomSpace {\r\n margin-bottom: 14px;\r\n }\r\n &.topSpace {\r\n margin-top: 14px;\r\n }\r\n`;\r\n\r\nconst SerialInfo = styled.div`\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #2294d2;\r\n margin: 0 2%;\r\n\r\n &.fail {\r\n color: #e94e4e;\r\n }\r\n\r\n &.info {\r\n font-weight: 400;\r\n color: #000;\r\n margin-bottom: 20px;\r\n }\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n locationId: \"\",\r\n showTagScanner: false,\r\n isValidUnusedTag: false,\r\n unusedTagId: \"\",\r\n clientName: \"\",\r\n clientId: \"\",\r\n manufacturerId: \"\",\r\n applicationType: \"\",\r\n refrigerantId: \"\",\r\n capacity: \"0.00\",\r\n images: \"\",\r\n description: \"\",\r\n serialNumber: \"\",\r\n serialFound: \"\",\r\n};\r\n\r\nconst ClientListItem = ({ loc, formik, update }) => {\r\n return (\r\n {\r\n formik.setValues({\r\n ...formik.values,\r\n locationId: loc.locationId,\r\n clientId: loc.clientId,\r\n });\r\n update({ selectedLocation: loc });\r\n }}\r\n >\r\n \r\n {loc.clientName} [ {loc.locationName} ]\r\n \r\n {`${loc.address}, ${loc.postalCode}, ${loc.city}`}\r\n \r\n );\r\n};\r\n\r\nconst validUnitInfo = (t) => {\r\n return buildValidation({\r\n manufacturerId: ValidationRule.isStringRule().required(t(\"forms:manufacturer.required\")).rule,\r\n applicationType: ValidationRule.isStringRule().required(t(\"forms:application.required\")).rule,\r\n refrigerantId: ValidationRule.isStringRule().required(t(\"forms:gasType.required\")).rule,\r\n capacity: ValidationRule.isNumber().required(t(\"forms:capacity.required\")).rule,\r\n });\r\n};\r\n\r\nconst validUnusedTagId = (t) => {\r\n return buildValidation({\r\n unusedTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validLocationId = (t) => {\r\n return buildValidation({\r\n locationId: ValidationRule.isStringRule().required(t(\"forms:unit.unitTagId.required\")).rule,\r\n isValidUnusedTag: yup.boolean().required().oneOf([true], t(\"forms:unit.wizard.invalidTag\")),\r\n });\r\n};\r\nconst applicationTypes = [\"Residential\", \"Commercial\", \"Industrial\"];\r\n\r\nconst AddUnitWizard = (t, unusedTagSearchFn, clientsSearchFn, manufacturers, refrigerants) => {\r\n const handleUnusedTagScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showTagScanner: false,\r\n unusedTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"forms:unit.wizard.pwaTitle\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep1\"),\r\n fieldNames: [\"unusedTagId\"],\r\n validation: validUnusedTagId(t),\r\n onStepSubmit: async ({ values }) => {\r\n const tagId = values[\"unusedTagId\"];\r\n\r\n const tagResult = await TagsService.lookupUnassignedTagsAsync(tagId);\r\n if (tagResult.error || tagResult.data.data.length === 0) {\r\n toast.error(t(\"forms:unit.wizard.invalidTag\"));\r\n return false;\r\n }\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n {t(\"forms:unit.wizard.infoTitle\")}\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:unit.wizard.attachTag\")}\r\n \r\n {t(\"forms:extraction.wizard.useCamera\")}\r\n \r\n {t(\"forms:extraction.wizard.typeQrTag\")}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showTagScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) => handleUnusedTagScan(value, formik)}\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\"showTagScanner\", !formik.values.showTagScanner)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep2\"),\r\n fieldNames: [\"clientId\", \"locationId\"],\r\n validation: validLocationId(t),\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"unusedTagId\"];\r\n if (tagId !== props.propertyBag.tagId) {\r\n const tagResult = await TagsService.lookupUnassignedTagsAsync(tagId);\r\n if (tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\"isValidUnusedTag\", false);\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n\r\n if (tagData.length === 0) {\r\n toast.error(t(\"forms:unit.wizard.invalidTag\"));\r\n props.formik.setFieldValue(\"isValidUnusedTag\", false);\r\n return;\r\n }\r\n props.formik.setFieldValue(\"isValidUnusedTag\", true);\r\n\r\n props.updatePropertyBag({ tagId: tagId });\r\n }\r\n props.formik.setFieldValue(\"locationId\", \"\");\r\n },\r\n fields: (formik, propertyBag, updatePropertyBag) => {\r\n return (\r\n <>\r\n clientsSearchFn(name, updatePropertyBag)}\r\n wrapperVariant=\"flex-1\"\r\n {...formik}\r\n />\r\n {propertyBag.locations && (\r\n \r\n {propertyBag.locations.map((loc, idx) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:clients.daikinSerial\"),\r\n fieldNames: [\"serialNumber\"],\r\n fields: (formik, propertyBag) => (\r\n <>\r\n \r\n \r\n {t(\"sidebar:title.installationSite\")}\r\n {propertyBag.selectedLocation?.locationName}\r\n \r\n {`${propertyBag.selectedLocation?.address}, \r\n ${propertyBag.selectedLocation?.city}, \r\n ${propertyBag.selectedLocation?.country}`}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {t(\"forms:clients.daikinSerialInfo\")}\r\n
    \r\n
    \r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep3\"),\r\n fieldNames: [\"manufacturerId\", \"applicationType\", \"refrigerantId\", \"capacity\"],\r\n validation: validUnitInfo(t),\r\n onStepRender: async ({ formik }) => {\r\n const serial = formik.values[\"serialNumber\"];\r\n if (!serial) return;\r\n const result = await TagsService.getDaikinSerial(serial);\r\n if (result.status !== 200) return;\r\n const response = result.data.response;\r\n if (response.message || !result.data.success) {\r\n formik.setFieldValue(\"serialFound\", \"N\");\r\n } else {\r\n formik.setFieldValue(\"serialFound\", \"Y\");\r\n const rfg = refrigerants.find((r) => r.code === response.refrigerantType);\r\n if (rfg) {\r\n formik.setFieldValue(\"refrigerantId\", rfg.id);\r\n }\r\n const mfc = manufacturers.find((r) => r.name === \"Daikin\");\r\n if (mfc) {\r\n formik.setFieldValue(\"manufacturerId\", mfc.id);\r\n }\r\n if (response.kWh) {\r\n formik.setFieldValue(\"capacity\", Number(response.kWh));\r\n }\r\n }\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n {t(\"sidebar:title.installationSite\")}\r\n {propertyBag.selectedLocation?.locationName}\r\n \r\n {`${propertyBag.selectedLocation?.address}, \r\n ${propertyBag.selectedLocation?.city}, \r\n ${propertyBag.selectedLocation?.country}`}\r\n \r\n \r\n \r\n {formik.values[\"serialFound\"] && (\r\n <>\r\n \r\n {formik.values[\"serialFound\"] === \"N\"\r\n ? t(\"forms:clients.serialNotFound\")\r\n : t(\"forms:clients.serialFound\")}\r\n \r\n {t(\"forms:clients.manualInput\")}\r\n \r\n )}\r\n 0\r\n ? manufacturers.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.name,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n 0\r\n ? refrigerants.map((item) => {\r\n return {\r\n key: item.id,\r\n value: item.id,\r\n label: item.code,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n {\r\n return {\r\n key: idx,\r\n value: idx.toString(),\r\n label: `${t(\"common:applicationType.\" + item.toLowerCase())}`,\r\n };\r\n })}\r\n {...formik}\r\n />\r\n\r\n \r\n\r\n {/* {propertyBag.selectedLocation && (\r\n \r\n
    \r\n {t(\"screens:technician.installationSite\")}\r\n
    \r\n {propertyBag.selectedLocation.clientName}\r\n {`${propertyBag.selectedLocation.address}, ${propertyBag.selectedLocation.postalCode}, ${propertyBag.selectedLocation.city}, ${propertyBag.selectedLocation.country}`}\r\n
    \r\n
    \r\n )} */}\r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep4\"),\r\n fieldNames: [\"description\"],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.selectedLocation && (\r\n <>\r\n \r\n \r\n {t(\"sidebar:title.installationSite\")}\r\n {propertyBag.selectedLocation?.locationName}\r\n \r\n {`${propertyBag.selectedLocation?.address}, \r\n ${propertyBag.selectedLocation?.city}, \r\n ${propertyBag.selectedLocation?.country}`}\r\n \r\n \r\n \r\n \r\n // \r\n //
    \r\n // {t(\"screens:technician.installationSite\")}\r\n //
    \r\n // \r\n // {t(\"screens:technician.company\")}\r\n // {propertyBag.selectedLocation.clientName}\r\n // \r\n // \r\n // {t(\"screens:technician.street\")}\r\n // {propertyBag.selectedLocation.address}\r\n // \r\n // \r\n // {t(\"screens:technician.city\")}\r\n // {propertyBag.selectedLocation.city}\r\n // \r\n // \r\n // {t(\"screens:technician.zip\")}\r\n // {propertyBag.selectedLocation.postalCode}\r\n // \r\n // \r\n // {t(\"screens:technician.country\")}\r\n // {propertyBag.selectedLocation.country}\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:unit.wizard.pwaStep5\"),\r\n fieldNames: [\"images\"],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.selectedLocation && (\r\n <>\r\n \r\n \r\n {t(\"sidebar:title.installationSite\")}\r\n {propertyBag.selectedLocation?.locationName}\r\n \r\n {`${propertyBag.selectedLocation?.address}, \r\n ${propertyBag.selectedLocation?.city}, \r\n ${propertyBag.selectedLocation?.country}`}\r\n \r\n \r\n \r\n \r\n // \r\n //
    \r\n // {t(\"screens:technician.installationSite\")}\r\n //
    \r\n // \r\n // {t(\"screens:technician.company\")}\r\n // {propertyBag.selectedLocation.clientName}\r\n // \r\n // \r\n // {t(\"screens:technician.street\")}\r\n // {propertyBag.selectedLocation.address}\r\n // \r\n // \r\n // {t(\"screens:technician.city\")}\r\n // {propertyBag.selectedLocation.city}\r\n // \r\n // \r\n // {t(\"screens:technician.zip\")}\r\n // {propertyBag.selectedLocation.postalCode}\r\n // \r\n // \r\n // {t(\"screens:technician.country\")}\r\n // {propertyBag.selectedLocation.country}\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default AddUnitWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport AddUnitWizard from \"./components/AddUnitWizard\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport ClientsService from \"../../../services/Clients/ClientsService\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport useDebouncedCallback from \"../../../hooks/_shared/useDebouncedCallback\";\r\nimport { toast } from \"react-toastify\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport usePromises from \"../../../hooks/_shared/usePromises\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst AddUnit = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n const { UserId } = UserService.getUserDetailsFromToken();\r\n\r\n const [queryClientLocations] = useDebouncedCallback(\r\n async (clientName, updatePropertyBag) => {\r\n let clientLocations = [];\r\n const clients = await ClientsService.getClients({\r\n filter: { name: clientName },\r\n });\r\n if (clients.data.length > 0) {\r\n for (var i = 0; i < clients.data.length; i++) {\r\n const locations = await ClientsService.getClientsLocations({\r\n filter: { clientId: clients.data[i].clientId },\r\n });\r\n if (locations.data.length > 0) {\r\n for (var loc = 0; loc < locations.data.length; loc++) {\r\n locations.data[loc].clientName =\r\n clients.data[i].clientName;\r\n locations.data[loc].clientId =\r\n clients.data[i].clientId;\r\n }\r\n clientLocations = [\r\n ...clientLocations,\r\n ...locations.data,\r\n ];\r\n }\r\n }\r\n updatePropertyBag({ locations: clientLocations });\r\n } else {\r\n updatePropertyBag({ locations: [] });\r\n }\r\n return [];\r\n }\r\n );\r\n\r\n const queryUnusedTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnassignedTags(tag, UserId);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const wizardData = usePromises(\r\n [\r\n () => ClientsService.getUnitManufacturersAsync(),\r\n () => StockService.getRefrigerantTypesAsync(),\r\n ],\r\n (res) => ({\r\n manufacturers: res[0].data.data,\r\n refrigerants: res[1].data.data,\r\n })\r\n );\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n AddUnitWizard(t, queryUnusedTags, queryClientLocations, wizardData.manufacturers, wizardData.refrigerants),\r\n {\r\n onSubmit: async (values) => {\r\n values.tagId = values.unusedTagId;\r\n const result = await ClientsService.addUnit(\r\n ModalWizard.asFormData()\r\n );\r\n if (result && result.error) ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.createUnit.success\"));\r\n ModalWizard.hide();\r\n history.push(RouteCreator.pwa.equipment())\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(()=>history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, [wizardData]);\r\n\r\n return ;\r\n};\r\n\r\nexport default AddUnit;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1315\",\n \"data-name\": \"Group 1315\",\n transform: \"translate(-39.75 -212.105)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1153\",\n \"data-name\": \"Group 1153\",\n transform: \"translate(118 -172)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_847\",\n \"data-name\": \"Group 847\",\n transform: \"translate(179.1 385.105)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_682\",\n \"data-name\": \"Group 682\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M248.573-166.207c0-2.766-2.633-5.012-5.879-5.012H217.9c-3.244,0-5.879,2.246-5.879,5.012v32.061c0,2.766,2.634,5.012,5.879,5.012h24.792c3.245,0,5.879-2.246,5.879-5.012Z\",\n transform: \"translate(-212.024 176.964)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-172.8h22.574v-5.655H220.819Z\",\n transform: \"translate(-213.831 178.45)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.391h22.574v-1.415H220.819Z\",\n transform: \"translate(-213.831 165.447)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h36.321\",\n transform: \"translate(-212.054 175.023)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h36.321\",\n transform: \"translate(-212.054 167.598)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}))), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_587\",\n \"data-name\": \"Path 587\",\n d: \"M231.682-149.994s3.972,6.111,3.972,8.3a3.974,3.974,0,0,1-3.972,3.972,3.975,3.975,0,0,1-3.973-3.972C227.709-143.883,231.682-149.994,231.682-149.994Z\",\n transform: \"translate(-213.407 171.015)\",\n fill: \"#48b05e\",\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_848\",\n \"data-name\": \"Group 848\",\n transform: \"translate(160 395.592)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678-2\",\n \"data-name\": \"Group 678\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486-2\",\n \"data-name\": \"Path 486\",\n d: \"M252.959-165.605c0-3.1-2.949-5.613-6.584-5.613H218.608c-3.634,0-6.584,2.515-6.584,5.613V-129.7c0,3.1,2.95,5.613,6.584,5.613h27.767c3.635,0,6.584-2.515,6.584-5.613Z\",\n transform: \"translate(-212.024 177.654)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489-2\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-172.117H246.1v-6.333H220.819Z\",\n transform: \"translate(-212.992 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492-2\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.221H246.1v-1.585H220.819Z\",\n transform: \"translate(-212.992 171.284)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495-2\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h40.68\",\n transform: \"translate(-212.04 176.563)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498-2\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h40.68\",\n transform: \"translate(-212.04 172.437)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678-3\",\n \"data-name\": \"Group 678\",\n transform: \"translate(167 218)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486-3\",\n \"data-name\": \"Path 486\",\n d: \"M252.959-165.605c0-3.1-2.949-5.613-6.584-5.613H218.608c-3.634,0-6.584,2.515-6.584,5.613V-129.7c0,3.1,2.95,5.613,6.584,5.613h27.767c3.635,0,6.584-2.515,6.584-5.613Z\",\n transform: \"translate(-212.024 177.654)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489-3\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-172.117H246.1v-6.333H220.819Z\",\n transform: \"translate(-212.992 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492-3\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.221H246.1v-1.585H220.819Z\",\n transform: \"translate(-212.992 171.284)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495-3\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h40.68\",\n transform: \"translate(-212.04 176.563)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498-3\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h40.68\",\n transform: \"translate(-212.04 172.437)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_83\",\n \"data-name\": \"Component 34 \\\\u2013 83\",\n transform: \"translate(251.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_100\",\n \"data-name\": \"Component 34 \\\\u2013 100\",\n transform: \"translate(138.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10-2\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11-2\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12-2\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1179\",\n \"data-name\": \"Group 1179\",\n transform: \"translate(41 220)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_989\",\n \"data-name\": \"Group 989\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_599\",\n \"data-name\": \"Path 599\",\n d: \"M2.9-.305H26.3V-23.71H2.9Z\",\n transform: \"translate(-2.898 23.71)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_990\",\n \"data-name\": \"Group 990\",\n transform: \"translate(0 28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_600\",\n \"data-name\": \"Path 600\",\n d: \"M2.9,13.131H26.3V-10.274H2.9Z\",\n transform: \"translate(-2.898 10.274)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_991\",\n \"data-name\": \"Group 991\",\n transform: \"translate(28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_601\",\n \"data-name\": \"Path 601\",\n d: \"M17-.305H40.4V-23.71H17Z\",\n transform: \"translate(-16.995 23.71)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_604\",\n \"data-name\": \"Path 604\",\n d: \"M20.418-20.169h7.371\",\n transform: \"translate(-12.696 30.773)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_992\",\n \"data-name\": \"Group 992\",\n transform: \"translate(28.594 28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605\",\n \"data-name\": \"Path 605\",\n d: \"M22.954-11.885h15.64V11.521H15.188V-.2H29.873\",\n transform: \"translate(-15.188 11.885)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1175\",\n \"data-name\": \"Group 1175\",\n transform: \"translate(5.173 43.062) rotate(-90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-2\",\n \"data-name\": \"Path 605\",\n d: \"M3.539,0h7.127V13.71H0V6.844H6.692\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1174\",\n \"data-name\": \"Group 1174\",\n transform: \"translate(34.721 5.106)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-3\",\n \"data-name\": \"Path 605\",\n d: \"M19.568-11.885h8.821V-.212h-13.2\",\n transform: \"translate(-15.188 11.885)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1177\",\n \"data-name\": \"Group 1177\",\n transform: \"translate(16.521 5.106) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-4\",\n \"data-name\": \"Path 605\",\n d: \"M4.38,0H13.2V11.673H0\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_760\",\n \"data-name\": \"Path 760\",\n d: \"M0,0H14.341\",\n transform: \"translate(47.911 33.891) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_759\",\n \"data-name\": \"Path 759\",\n d: \"M6.32-6.733H21.2\",\n transform: \"translate(22.107 40.624)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_761\",\n \"data-name\": \"Path 761\",\n d: \"M20.418-20.169h5.544\",\n transform: \"translate(15.14 66.515)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1176\",\n \"data-name\": \"Group 1176\",\n transform: \"translate(5.136 48.169) rotate(-90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_762\",\n \"data-name\": \"Path 762\",\n d: \"M0,0H9.449\",\n transform: \"translate(0 0.001) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_763\",\n \"data-name\": \"Path 763\",\n d: \"M0,0H4.814\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1178\",\n \"data-name\": \"Group 1178\",\n transform: \"translate(10.212 5.106)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_762-2\",\n \"data-name\": \"Path 762\",\n d: \"M0,0H8.3\",\n transform: \"translate(0 0.001) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_763-2\",\n \"data-name\": \"Path 763\",\n d: \"M20.418-20.169h9.61\",\n transform: \"translate(-20.418 20.169)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}))));\n\nvar SvgAddNewCylinder = function SvgAddNewCylinder(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 294.899,\n height: 68.549,\n viewBox: \"0 0 294.899 68.549\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAddNewCylinder, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/add-new-cylinder.214460be.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport * as yup from \"yup\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as WizardImage } from \"../../../../assets/pwa/add-new-cylinder.svg\";\r\nimport { ScanButton, KeyVal, HR } from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan } from \"../../components/StyledSvg\";\r\nimport CylinderType from \"../../../../core/enums/CylinderType\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgWizardImage = styled(WizardImage)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst validUnusedTagId = (t) => {\r\n return buildValidation({\r\n unusedTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validUnusedTagAndSize = (t) => {\r\n return buildValidation({\r\n isValidUnusedTag: yup.boolean().required().oneOf([true], \"Invalid Tag\"),\r\n size: ValidationRule.min(\r\n 0.0,\r\n t(\"forms:bid.wizard.minimumNetWeight\"),\r\n t(\"forms:bid.wizard.minimumNetWeight\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n showTagScanner: false,\r\n isValidUnusedTag: false,\r\n unusedTagId: \"\",\r\n imageFile: \"\",\r\n size: \"0.00\",\r\n cylinderType: 0,\r\n ownerCompanyId: \"\",\r\n};\r\n\r\nconst AddCylinderWizard = (\r\n t,\r\n cylOwners = [],\r\n unusedTagSearchFn,\r\n) => {\r\n const ownerOptions = [\r\n { key: \"me\", value: \"\", label: t(\"forms:myCompany.text\") },\r\n ...cylOwners.map((own) => ({\r\n key: own.companyId,\r\n value: own.companyId,\r\n label: own.companyName,\r\n })),\r\n ];\r\n\r\n const handleUnusedTagScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showTagScanner: false,\r\n unusedTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"forms:cylinder.wizard.pwaTitle\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:cylinder.wizard.pwaStep1\"),\r\n fieldNames: [\"unusedTagId\"],\r\n validation: validUnusedTagId(t),\r\n onStepSubmit: async ({ values }) => {\r\n const tagId = values[\"unusedTagId\"];\r\n\r\n const tagResult =\r\n await TagsService.lookupUnassignedTagsAsync(tagId);\r\n if (tagResult.error || tagResult.data.data.length === 0) {\r\n toast.error(t(\"forms:unit.wizard.invalidTag\"));\r\n return false;\r\n }\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\"forms:cylinder.wizard.infoTitle\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:cylinder.newCylinderInfoText\"\r\n )}\r\n \r\n {t(\r\n \"forms:extraction.wizard.useCamera\"\r\n )}\r\n \r\n {t(\r\n \"forms:extraction.wizard.typeQrTag\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showTagScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) =>\r\n handleUnusedTagScan(value, formik)\r\n }\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showTagScanner\",\r\n !formik.values.showTagScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:extraction.wizard.title_step3\"),\r\n fieldNames: [\r\n \"isValidUnusedTag\",\r\n \"size\",\r\n \"imageFile\",\r\n \"cylinderType\",\r\n \"ownerCompanyId\",\r\n ],\r\n validation: validUnusedTagAndSize(t),\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"unusedTagId\"];\r\n if (tagId !== props.propertyBag.tagId) {\r\n const tagResult =\r\n await TagsService.lookupUnassignedTagsAsync(tagId);\r\n if (tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\r\n \"isValidUnusedTag\",\r\n false\r\n );\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n\r\n if (tagData.length === 0) {\r\n toast.error(t(\"forms:unit.wizard.invalidTag\"));\r\n props.formik.setFieldValue(\r\n \"isValidUnusedTag\",\r\n false\r\n );\r\n return;\r\n }\r\n props.formik.setFieldValue(\"isValidUnusedTag\", true);\r\n props.updatePropertyBag({ tagId: tagId });\r\n } else {\r\n props.formik.setFieldValue(\"isValidUnusedTag\", true);\r\n }\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n {/*
    */}\r\n {/* \r\n {t(\"screens:technician.details\")}\r\n */}\r\n
    \r\n \r\n {t(\"forms:cylinder.cylinderGas\")}\r\n \r\n {t(\"forms:cylinder.noCylinderGas\")}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n 0.00 kg\r\n \r\n
    \r\n
    \r\n {/* \r\n {t(\"forms:extraction.wizard.picture\")}\r\n */}\r\n\r\n \r\n\r\n \r\n {/* */}\r\n\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default AddCylinderWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport AddCylinderWizard from \"./components/AddCylinderWizard\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport CompanyService from \"../../../services/Company/CompanyService\";\r\nimport ClientsService from \"../../../services/Clients/ClientsService\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport useDebouncedCallback from \"../../../hooks/_shared/useDebouncedCallback\";\r\nimport { toast } from \"react-toastify\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst AddCylinder = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n const { UserId } = UserService.getUserDetailsFromToken();\r\n\r\n const [queryClientLocations] = useDebouncedCallback(\r\n async (clientName, updatePropertyBag) => {\r\n let clientLocations = [];\r\n const clients = await ClientsService.getClients({\r\n filter: { name: clientName },\r\n });\r\n if (clients.data.length > 0) {\r\n for (var i = 0; i < clients.data.length; i++) {\r\n const locations = await ClientsService.getClientsLocations({\r\n filter: { clientId: clients.data[i].clientId },\r\n });\r\n if (locations.data.length > 0) {\r\n for (var loc = 0; loc < locations.data.length; loc++) {\r\n locations.data[loc].clientName =\r\n clients.data[i].clientName;\r\n locations.data[loc].clientId =\r\n clients.data[i].clientId;\r\n }\r\n clientLocations = [\r\n ...clientLocations,\r\n ...locations.data,\r\n ];\r\n }\r\n }\r\n updatePropertyBag({ locations: clientLocations });\r\n } else {\r\n updatePropertyBag({ locations: [] });\r\n }\r\n return [];\r\n }\r\n );\r\n\r\n const queryUnusedTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnassignedTags(tag, UserId);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n useEffect(() => {\r\n const showWizard = async () => {\r\n const res = await CompanyService.getDistributors();\r\n const cylOwners = res.data?.data || [];\r\n ModalWizard.show(\r\n AddCylinderWizard(t,cylOwners, queryUnusedTags, queryClientLocations),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.ownerCompanyId === \"\")\r\n delete values.ownerCompanyId;\r\n values.tagId = values.unusedTagId;\r\n const result =\r\n await CompanyService.createCompanyCylinderAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs.createCylinder.success\")\r\n );\r\n ModalWizard.hide();\r\n history.push(RouteCreator.pwa.cylinders());\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(() => history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n };\r\n showWizard();\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nexport default AddCylinder;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1655\",\n \"data-name\": \"Group 1655\",\n transform: \"translate(-39 -219)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_43\",\n \"data-name\": \"Component 34 \\\\u2013 43\",\n transform: \"translate(253.759 254.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_44\",\n \"data-name\": \"Component 34 \\\\u2013 44\",\n transform: \"translate(137.759 254.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10-2\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11-2\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12-2\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1591\",\n \"data-name\": \"Group 1591\",\n transform: \"translate(-0.75 -6)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1179\",\n \"data-name\": \"Group 1179\",\n transform: \"translate(41 227)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_989\",\n \"data-name\": \"Group 989\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_599\",\n \"data-name\": \"Path 599\",\n d: \"M2.9-.305H26.3V-23.71H2.9Z\",\n transform: \"translate(-2.898 23.71)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_990\",\n \"data-name\": \"Group 990\",\n transform: \"translate(0 28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_600\",\n \"data-name\": \"Path 600\",\n d: \"M2.9,13.131H26.3V-10.274H2.9Z\",\n transform: \"translate(-2.898 10.274)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_991\",\n \"data-name\": \"Group 991\",\n transform: \"translate(28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_601\",\n \"data-name\": \"Path 601\",\n d: \"M17-.305H40.4V-23.71H17Z\",\n transform: \"translate(-16.995 23.71)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_604\",\n \"data-name\": \"Path 604\",\n d: \"M20.418-20.169h7.371\",\n transform: \"translate(-12.696 30.773)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_992\",\n \"data-name\": \"Group 992\",\n transform: \"translate(28.594 28.594)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605\",\n \"data-name\": \"Path 605\",\n d: \"M22.954-11.885h15.64V11.521H15.188V-.2H29.873\",\n transform: \"translate(-15.188 11.885)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1175\",\n \"data-name\": \"Group 1175\",\n transform: \"translate(5.173 43.062) rotate(-90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-2\",\n \"data-name\": \"Path 605\",\n d: \"M3.539,0h7.127V13.71H0V6.844H6.692\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1174\",\n \"data-name\": \"Group 1174\",\n transform: \"translate(34.721 5.106)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-3\",\n \"data-name\": \"Path 605\",\n d: \"M19.568-11.885h8.821V-.212h-13.2\",\n transform: \"translate(-15.188 11.885)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1177\",\n \"data-name\": \"Group 1177\",\n transform: \"translate(16.521 5.106) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_605-4\",\n \"data-name\": \"Path 605\",\n d: \"M4.38,0H13.2V11.673H0\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_760\",\n \"data-name\": \"Path 760\",\n d: \"M0,0H14.341\",\n transform: \"translate(47.911 33.891) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_759\",\n \"data-name\": \"Path 759\",\n d: \"M6.32-6.733H21.2\",\n transform: \"translate(22.107 40.624)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_761\",\n \"data-name\": \"Path 761\",\n d: \"M20.418-20.169h5.544\",\n transform: \"translate(15.14 66.515)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1176\",\n \"data-name\": \"Group 1176\",\n transform: \"translate(5.136 48.169) rotate(-90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_762\",\n \"data-name\": \"Path 762\",\n d: \"M0,0H9.449\",\n transform: \"translate(0 0.001) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_763\",\n \"data-name\": \"Path 763\",\n d: \"M0,0H4.814\",\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1178\",\n \"data-name\": \"Group 1178\",\n transform: \"translate(10.212 5.106)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_762-2\",\n \"data-name\": \"Path 762\",\n d: \"M0,0H8.3\",\n transform: \"translate(0 0.001) rotate(90)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_763-2\",\n \"data-name\": \"Path 763\",\n d: \"M20.418-20.169h9.61\",\n transform: \"translate(-20.418 20.169)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2.5\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1593\",\n \"data-name\": \"Group 1593\",\n transform: \"translate(275.963 284.144)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_589\",\n \"data-name\": \"Path 589\",\n d: \"M53.482-56.256a2.6,2.6,0,0,0-.763-1.841,2.6,2.6,0,0,0-1.841-.763H10.345a2.613,2.613,0,0,0-1.848.765,2.613,2.613,0,0,0-.765,1.848v46.78h45.75Z\",\n transform: \"translate(-0.703 -0.678)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_590\",\n \"data-name\": \"Path 590\",\n d: \"M16.451-40.392H47v-9.773H16.451Z\",\n transform: \"translate(-1.821 -1.792)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-5.946H39.8v-19.79H26.138Z\",\n transform: \"translate(-3.063 -4.925)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_592\",\n \"data-name\": \"Path 592\",\n d: \"M2.25-2.25H57.1\",\n transform: \"translate(0 -7.936)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144H45.048\",\n transform: \"translate(-2.078)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_864\",\n \"data-name\": \"Group 864\",\n transform: \"translate(-1250.65 -958.105)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_767\",\n \"data-name\": \"Group 767\",\n transform: \"translate(1411 1178.105)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_637\",\n \"data-name\": \"Path 637\",\n d: \"M8.776-27.5v9.59\",\n transform: \"translate(-0.857 70.886)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_638\",\n \"data-name\": \"Path 638\",\n d: \"M16.277-22.79v4.8\",\n transform: \"translate(-0.72 70.973)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_639\",\n \"data-name\": \"Path 639\",\n d: \"M6.354-18.082H18.675v1.023H6.354Z\",\n transform: \"translate(-0.902 71.059)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_640\",\n \"data-name\": \"Path 640\",\n d: \"M42.2-27.5v9.59\",\n transform: \"translate(-0.244 70.886)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_641\",\n \"data-name\": \"Path 641\",\n d: \"M34.7-22.79v4.8\",\n transform: \"translate(-0.382 70.973)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_642\",\n \"data-name\": \"Path 642\",\n d: \"M32.519-18.078H44.84v1.018H32.519Z\",\n transform: \"translate(-0.421 71.06)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_631\",\n \"data-name\": \"Path 631\",\n d: \"M25.836-70.1A24.847,24.847,0,0,1,50.671-45.269,24.847,24.847,0,0,1,25.836-20.433,24.847,24.847,0,0,1,1-45.269,24.847,24.847,0,0,1,25.836-70.1Z\",\n transform: \"translate(-1 70.104)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_632\",\n \"data-name\": \"Path 632\",\n d: \"M25.734-64.558A19.2,19.2,0,0,1,44.921-45.37,19.2,19.2,0,0,1,25.734-26.183,19.2,19.2,0,0,1,6.547-45.37,19.2,19.2,0,0,1,25.734-64.558Z\",\n transform: \"translate(-0.898 70.206)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_643\",\n \"data-name\": \"Path 643\",\n d: \"M25.437-48.413a2.748,2.748,0,0,1,2.746,2.746,2.748,2.748,0,0,1-2.746,2.746,2.748,2.748,0,0,1-2.746-2.746A2.748,2.748,0,0,1,25.437-48.413Z\",\n transform: \"translate(-0.602 70.502)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_644\",\n \"data-name\": \"Path 644\",\n d: \"M7.66-45.716h4.389\",\n transform: \"translate(-0.878 70.552)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_645\",\n \"data-name\": \"Path 645\",\n d: \"M8.725-51.769l4.126,1.5\",\n transform: \"translate(-0.858 70.441)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_646\",\n \"data-name\": \"Path 646\",\n d: \"M11.793-57.094l3.366,2.817\",\n transform: \"translate(-0.802 70.343)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_647\",\n \"data-name\": \"Path 647\",\n d: \"M16.494-61.052l2.2,3.8\",\n transform: \"translate(-0.716 70.27)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_648\",\n \"data-name\": \"Path 648\",\n d: \"M22.263-63.167l.774,4.321\",\n transform: \"translate(-0.61 70.232)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_649\",\n \"data-name\": \"Path 649\",\n d: \"M28.422-63.185l-.748,4.325\",\n transform: \"translate(-0.51 70.231)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_636\",\n \"data-name\": \"Path 636\",\n d: \"M34.23-61.1l-2.18,3.81\",\n transform: \"translate(-0.43 70.27)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_635\",\n \"data-name\": \"Path 635\",\n d: \"M38.976-57.174l-3.349,2.837\",\n transform: \"translate(-0.364 70.342)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_633\",\n \"data-name\": \"Path 633\",\n d: \"M42.089-51.868l-4.117,1.523\",\n transform: \"translate(-0.321 70.439)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_634\",\n \"data-name\": \"Path 634\",\n d: \"M43.195-45.822l-4.389.026\",\n transform: \"translate(-0.306 70.55)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_650\",\n \"data-name\": \"Path 650\",\n d: \"M32.773-53,27.291-47.52\",\n transform: \"translate(-0.517 70.418)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_651\",\n \"data-name\": \"Path 651\",\n d: \"M23.585-43.814,18.1-38.331\",\n transform: \"translate(-0.686 70.587)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_652\",\n \"data-name\": \"Path 652\",\n d: \"M21.636-34.364h2.543v-2.543H21.636Z\",\n transform: \"translate(-0.621 70.714)\",\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_653\",\n \"data-name\": \"Path 653\",\n d: \"M26.647-34.364H29.19v-2.543H26.647Z\",\n transform: \"translate(-0.529 70.714)\",\n fillRule: \"evenodd\"\n}))));\n\nvar SvgAddNewAnalyzer = function SvgAddNewAnalyzer(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 295.061,\n height: 56,\n viewBox: \"0 0 295.061 56\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAddNewAnalyzer, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/add-new-analyzer.feede283.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport * as yup from \"yup\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, { buildValidation } from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as WizardImage } from \"../../../../assets/pwa/add-new-analyzer.svg\";\r\nimport { ScanButton, KeyVal, HR } from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan } from \"../../components/StyledSvg\";\r\nimport CylinderType from \"../../../../core/enums/CylinderType\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgWizardImage = styled(WizardImage)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst validUnusedTagId = (t) => {\r\n return buildValidation({\r\n tagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validAnalyzer = (t) => {\r\n return buildValidation({\r\n macAddress: ValidationRule.isStringRule()\r\n .regexMatchRule(\r\n /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/i,\r\n t(\"forms:analyzer.wizard.macInvalid\")\r\n )\r\n .required(t(\"forms:analyzer.wizard.macRequired\")).rule,\r\n name: ValidationRule.isStringRule().required(t(\"forms:analyzer.wizard.nameRequired\")).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n tagId: \"\",\r\n name: \"\",\r\n description: \"\",\r\n macAddress: \"\",\r\n imageFile: \"\",\r\n isValidUnusedTag: false,\r\n};\r\n\r\nconst AddAnalyzerWizard = (t, unusedTagSearchFn) => {\r\n \r\n const handleUnusedTagScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showTagScanner: false,\r\n tagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"forms:analyzer.addAnalyzer\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:analyzer.wizard.step1Title\"),\r\n fieldNames: [\"tagId\"],\r\n validation: validUnusedTagId(t),\r\n onStepSubmit: async ({ values }) => {\r\n const tagId = values[\"tagId\"];\r\n\r\n const tagResult = await TagsService.lookupUnassignedTagsAsync(tagId);\r\n if (tagResult.error || tagResult.data.data.length === 0) {\r\n toast.error(t(\"forms:unit.wizard.invalidTag\"));\r\n return false;\r\n }\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\"forms:analyzer.wizard.infoTitlePWA\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\"forms:analyzer.wizard.infoTextPWA\")}\r\n \r\n {t(\"forms:extraction.wizard.useCamera\")}\r\n \r\n {t(\"forms:extraction.wizard.typeQrTag\")}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showTagScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) => handleUnusedTagScan(value, formik)}\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showTagScanner\",\r\n !formik.values.showTagScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:analyzer.wizard.step2Title\"),\r\n fieldNames: [\"name\", \"description\", \"macAddress\", \"imageFile\", \"isValidUnusedTag\"],\r\n validation: validAnalyzer(t),\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"tagId\"];\r\n if (tagId !== props.propertyBag.tagId) {\r\n const tagResult = await TagsService.lookupUnassignedTagsAsync(tagId);\r\n if (tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\"isValidUnusedTag\", false);\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n if (tagData.length === 0) {\r\n toast.error(t(\"forms:unit.wizard.invalidTag\"));\r\n props.formik.setFieldValue(\"isValidUnusedTag\", false);\r\n return;\r\n }\r\n props.formik.setFieldValue(\"isValidUnusedTag\", true);\r\n props.updatePropertyBag({ tagId: tagId });\r\n } else {\r\n props.formik.setFieldValue(\"isValidUnusedTag\", true);\r\n }\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default AddAnalyzerWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport AddAnalyzerWizard from \"./components/AddAnalyzerWizard\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport CompanyService from \"../../../services/Company/CompanyService\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport { toast } from \"react-toastify\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst AddAnalyzer = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n const { UserId } = UserService.getUserDetailsFromToken();\r\n\r\n const queryUnusedTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnassignedTags(tag, UserId);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n useEffect(() => {\r\n const showWizard = async () => {\r\n ModalWizard.show(\r\n AddAnalyzerWizard(t, queryUnusedTags),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await CompanyService.createGasAnalyzerAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs.createEquipment.toastNotification.success\")\r\n );\r\n ModalWizard.hide();\r\n history.push(RouteCreator.pwa.analyzers());\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(() => history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n };\r\n showWizard();\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nexport default AddAnalyzer;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Radio from \"./Radio\";\r\n\r\nconst ListWrapper = styled.div`\r\n width: 100%;\r\n max-width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n list-style: none;\r\n padding: 0;\r\n\r\n`;\r\n\r\nconst RadioList = ({ items, className, style, name, onSelect, ...rest }) => {\r\n const handleClick = (ev)=> {\r\n const value = ev.currentTarget.value;\r\n onSelect && onSelect(value);\r\n }\r\n \r\n return (\r\n \r\n {items.map((item, idx) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default RadioList;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1426\",\n \"data-name\": \"Group 1426\",\n transform: \"translate(-79 -217)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_2\",\n \"data-name\": \"Component 34 \\\\u2013 2\",\n transform: \"translate(196.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1164\",\n \"data-name\": \"Group 1164\",\n transform: \"translate(211 18)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1003\",\n \"data-name\": \"Group 1003\",\n transform: \"translate(23.5 201.195)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_482\",\n \"data-name\": \"Path 482\",\n d: \"M325.417-268.293a12.8,12.8,0,0,0-12.8-12.8,12.8,12.8,0,0,0-12.8,12.8v7.048a12.8,12.8,0,0,0,12.8,12.8,12.8,12.8,0,0,0,12.8-12.8Z\",\n transform: \"translate(-287.998 281.09)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_483\",\n \"data-name\": \"Path 483\",\n d: \"M295.6-241.916l-8.287,3.347a3.177,3.177,0,0,0-1.988,2.946v5.557a3.6,3.6,0,0,0,3.6,3.6h42.04a3.6,3.6,0,0,0,3.6-3.6v-5.557a3.178,3.178,0,0,0-1.987-2.946l-8.288-3.347\",\n transform: \"translate(-285.324 273.866)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1017\",\n \"data-name\": \"Group 1017\",\n transform: \"translate(60.858 224.734)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1016\",\n \"data-name\": \"Group 1016\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M234.665-168.113a3.407,3.407,0,0,0-3.642-3.1H215.666a3.407,3.407,0,0,0-3.642,3.1v19.861a3.407,3.407,0,0,0,3.642,3.1h15.358a3.407,3.407,0,0,0,3.642-3.1Z\",\n transform: \"translate(-212.024 174.778)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-174.947H234.8v-3.5H220.819Z\",\n transform: \"translate(-216.49 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.93H234.8v-.877H220.819Z\",\n transform: \"translate(-216.49 146.939)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h22.5\",\n transform: \"translate(-212.097 170.141)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h22.5\",\n transform: \"translate(-212.097 152.253)\",\n fill: \"#f5f5f5\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_747\",\n \"data-name\": \"Path 747\",\n d: \"M230.17-149.994s2.461,3.786,2.461,5.144a2.462,2.462,0,0,1-2.461,2.461,2.462,2.462,0,0,1-2.461-2.461C227.709-146.208,230.17-149.994,230.17-149.994Z\",\n transform: \"translate(-218.85 163.016)\",\n fill: \"#48b05e\",\n fillRule: \"evenodd\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1165\",\n \"data-name\": \"Group 1165\",\n transform: \"translate(56.037 -42)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1004\",\n \"data-name\": \"Group 1004\",\n transform: \"translate(23.963 260)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_589\",\n \"data-name\": \"Path 589\",\n d: \"M48.384-56.546a2.313,2.313,0,0,0-.678-1.636,2.313,2.313,0,0,0-1.636-.678H10.054a2.322,2.322,0,0,0-1.642.68,2.322,2.322,0,0,0-.68,1.642v41.567H48.384Z\",\n transform: \"translate(-3.485 62.953)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_590\",\n \"data-name\": \"Path 590\",\n d: \"M16.451-41.482H43.595v-8.684H16.451Z\",\n transform: \"translate(-5.45 60.994)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_591\",\n \"data-name\": \"Path 591\",\n d: \"M26.138-8.151H38.274V-25.736H26.138Z\",\n transform: \"translate(-7.633 55.488)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_592\",\n \"data-name\": \"Path 592\",\n d: \"M2.25-2.25H50.986\",\n transform: \"translate(-2.25 50.195)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_593\",\n \"data-name\": \"Path 593\",\n d: \"M18.456-64.144H42.085\",\n transform: \"translate(-5.902 64.144)\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1002\",\n \"data-name\": \"Group 1002\",\n transform: \"translate(60.919 284.407)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_910\",\n \"data-name\": \"Group 910\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678-2\",\n \"data-name\": \"Group 678\",\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486-2\",\n \"data-name\": \"Path 486\",\n d: \"M235.068-168.058a3.467,3.467,0,0,0-3.706-3.16H215.731a3.468,3.468,0,0,0-3.707,3.16v20.214a3.468,3.468,0,0,0,3.707,3.16h15.631a3.467,3.467,0,0,0,3.706-3.16Z\",\n transform: \"translate(-212.024 174.841)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489-2\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-174.885h14.233v-3.565H220.819Z\",\n transform: \"translate(-216.413 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492-2\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.914h14.233v-.892H220.819Z\",\n transform: \"translate(-216.413 147.474)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495-2\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h22.9\",\n transform: \"translate(-212.096 170.282)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498-2\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h22.9\",\n transform: \"translate(-212.096 152.698)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}))), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_747-2\",\n \"data-name\": \"Path 747\",\n d: \"M230.214-149.994s2.5,3.853,2.5,5.236a2.506,2.506,0,0,1-2.5,2.5,2.506,2.506,0,0,1-2.505-2.5C227.709-146.141,230.214-149.994,230.214-149.994Z\",\n transform: \"translate(-218.692 163.247)\",\n fillRule: \"evenodd\"\n}))));\n\nvar SvgCollectGas = function SvgCollectGas(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 216.25,\n height: 57.718,\n viewBox: \"0 0 216.25 57.718\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCollectGas, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/collect-gas.010bd76e.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport RadioList from \"../../../../components/elements/form-elements/RadioList\";\r\nimport SimpleTable from \"../../../../components/elements/general/SimpleTable\";\r\n\r\nimport { InfoTitle } from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport { ReactComponent as CollectGasSvg } from \"../../../../assets/pwa/collect-gas.svg\";\r\nimport {\r\n ScanButton,\r\n KeyVal,\r\n ListTitle,\r\n HR,\r\n} from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan } from \"../../components/StyledSvg\";\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgToStock = styled(CollectGasSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n\r\n &.button {\r\n bottom: 60px;\r\n\r\n & input {\r\n margin-bottom: 0;\r\n }\r\n }\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n max-height: calc(100% - 70px);\r\n overflow-y: auto;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n client: \"\",\r\n cylinders: [],\r\n collectedCylinders: [],\r\n showCylinderScanner: false,\r\n numCylinders: \"\",\r\n minCylinders: \"\",\r\n};\r\n\r\nconst splitAt = (index) => (x) => [x.slice(0, index), x.slice(index)];\r\n\r\nconst validClient = (t) => {\r\n return buildValidation({\r\n client: ValidationRule.isStringRule().required(\r\n t(\"forms:unit.unitTagId.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst CollectGasWizard = (t, offerCollection = []) => {\r\n const handleCylinderScan = (value, formik) => {\r\n if (value !== null) {\r\n const idx = availableCylinders.findIndex(\r\n (el) => el.tagId === value.toLowerCase()\r\n );\r\n if (idx >= 0) {\r\n if (!formik.values[\"collectedCylinders\"].includes(idx)) {\r\n const col = formik.values[\"collectedCylinders\"];\r\n col.push(idx);\r\n formik.setFieldValue(\"collectedCylinders\", col);\r\n formik.setFieldValue(\"numCylinders\", col.length);\r\n formik.setFieldValue(\"showCylinderScanner\", false);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const tableColumns = [\r\n {\r\n header: t(\"screens:technician.type\"),\r\n accessor: \"type\",\r\n cell: (value) => value || \"-\",\r\n },\r\n {\r\n header: t(\"screens:technician.Quantity\"),\r\n accessor: \"quantity\",\r\n cell: (value) => value.toFixed(2) + \" kg\",\r\n },\r\n {\r\n header: t(\"screens:technician.qrTag\"),\r\n accessor: \"tagId\",\r\n cell: (value) => splitAt(4)(value.substr(0, 8)).join(\" \"),\r\n },\r\n ];\r\n\r\n const companies =\r\n offerCollection.length === 0\r\n ? []\r\n : offerCollection.map((offer) => {\r\n return {\r\n text: offer.companyDetails.companyName,\r\n value: offer.companyDetails.id,\r\n };\r\n });\r\n\r\n const getCompanyDetails = (id) => {\r\n return offerCollection.filter(\r\n (offer) => offer.companyDetails.id === id\r\n )[0].companyDetails;\r\n };\r\n\r\n const getCollectableCylinders = (id) => {\r\n const offers = offerCollection.filter(\r\n (offer) => offer.companyDetails.id === id\r\n )[0].offers;\r\n\r\n const cylinders = [];\r\n\r\n offers.map((offer) => {\r\n offer.cylinders.map((cyl) => {\r\n cylinders.push({\r\n type: cyl.gasTypeCode,\r\n quantity: cyl.quantity,\r\n tagId: cyl.tagId,\r\n });\r\n });\r\n });\r\n\r\n return cylinders;\r\n };\r\n\r\n let availableCylinders = [];\r\n const cylinderSearchFn = (tag) => {\r\n if (tag.length < 3) return [];\r\n return availableCylinders\r\n .filter((cyl) => cyl.tagId.startsWith(tag))\r\n .map((cyl) => cyl.tagId);\r\n };\r\n\r\n const handleCylinderChange = (ev, formik) => {\r\n const idx = availableCylinders.findIndex(\r\n (el) => el.tagId === ev.currentTarget.value\r\n );\r\n if (idx >= 0) {\r\n if (!formik.values[\"collectedCylinders\"].includes(idx)) {\r\n const col = formik.values[\"collectedCylinders\"];\r\n col.push(idx);\r\n formik.setFieldValue(\"collectedCylinders\", col);\r\n formik.setFieldValue(\"numCylinders\", col.length);\r\n }\r\n // ev.currentTarget.value = \"\";\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"forms:stock.wizard.collectCylinder.title\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:stock.wizard.collectCylinder.step1\"),\r\n fieldNames: [\r\n \"client\",\r\n \"cylinders\",\r\n \"minCylinders\",\r\n \"numCylinders\",\r\n \"collectedCylinders\",\r\n ],\r\n validation: validClient(t),\r\n fields: (formik, propertyBag, updatePropertyBag) => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n {t(\r\n \"forms:stock.wizard.collectCylinder.step1Info\"\r\n )}\r\n \r\n \r\n
    \r\n \r\n {t(\"screens:technician.company\")}\r\n \r\n {\r\n availableCylinders =\r\n getCollectableCylinders(value);\r\n formik.setFieldValue(\"client\", value);\r\n formik.setFieldValue(\r\n \"minCylinders\",\r\n availableCylinders.length\r\n );\r\n\r\n formik.setFieldValue(\"numCylinders\", 0);\r\n updatePropertyBag({\r\n details: getCompanyDetails(value),\r\n cylinders: availableCylinders,\r\n });\r\n formik.setFieldValue(\r\n \"cylinders\",\r\n availableCylinders.map(\r\n (cyl) => cyl.tagId\r\n )\r\n );\r\n\r\n formik.setFieldValue(\r\n \"collectedCylinders\",\r\n []\r\n );\r\n }}\r\n />\r\n
    \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"screens:registration.companyDetails\"),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n {t(\r\n \"forms:stock.wizard.collectCylinder.step1Info\"\r\n )}\r\n \r\n \r\n
    \r\n {propertyBag.details && (\r\n <>\r\n \r\n {t(\"screens:technician.companyDetails\")}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.address\")}\r\n \r\n {propertyBag.details.address}\r\n \r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n \r\n {propertyBag.details.city}\r\n \r\n \r\n \r\n {t(\"screens:technician.postal\")}\r\n \r\n {propertyBag.details.postalCode}\r\n \r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n \r\n {\r\n propertyBag.details\r\n .countryName\r\n }\r\n \r\n \r\n \r\n {t(\r\n \"sidebar:label.companyContactPersonName\"\r\n )}\r\n \r\n {`${\r\n propertyBag.details\r\n .contactPersonFirstName\r\n ? propertyBag.details\r\n .contactPersonFirstName\r\n : \"\"\r\n } ${\r\n propertyBag.details\r\n .contactPersonLastName\r\n ? propertyBag.details\r\n .contactPersonLastName\r\n : \"\"\r\n } `}\r\n \r\n \r\n \r\n {t(\r\n \"screens:administratorListing.email\"\r\n )}\r\n \r\n {propertyBag.details.email}\r\n \r\n \r\n \r\n {t(\r\n \"table:headers.client.contact.phone\"\r\n )}\r\n \r\n {propertyBag.details.phoneNumber\r\n ? propertyBag.details\r\n .phoneNumber\r\n : \"\"}\r\n \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"screens:technician.gasInfo\"),\r\n fieldNames: [\"numCylinders\"],\r\n onStepSubmit: ({ values }) => {\r\n if (values.numCylinders < values.minCylinders) {\r\n toast.error(\r\n `${t(\"screens:technician.cylindersToScan\")} ${\r\n values.minCylinders - values.numCylinders\r\n }`\r\n );\r\n return false;\r\n }\r\n return true;\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n handleCylinderChange(ev, formik)\r\n }\r\n />\r\n \r\n \r\n {formik.values.showCylinderScanner && (\r\n \r\n \r\n console.log(error)\r\n }\r\n onScan={(value) =>\r\n handleCylinderScan(\r\n value,\r\n formik\r\n )\r\n }\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n {\r\n if (\r\n !formik.values\r\n .showCylinderScanner\r\n ) {\r\n document.getElementById(\r\n \"cylinderTagId\"\r\n ).value=\"\";\r\n }\r\n formik.setFieldValue(\r\n \"showCylinderScanner\",\r\n !formik.values\r\n .showCylinderScanner\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default CollectGasWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport CollectGasWizard from \"./components/CollectGasWizard\";\r\nimport usePromises from \"../../../hooks/_shared/usePromises\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst Collect = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n\r\n const wizardData = usePromises(\r\n [\r\n () => MarketplaceService.getOffersForCollectionAsync(),\r\n \r\n ],\r\n (res) => ({\r\n offerCollection: res[0].data.data,\r\n })\r\n );\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n CollectGasWizard(t, wizardData.offerCollection),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await MarketplaceService.shipToBuyer(values.cylinders);\r\n // const result = await StockService.moveToInstallerStockAsync(values.cylinderTagId, UserId);\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"stockListing.toastNotification.moveToStockSuccess\")\r\n );\r\n ModalWizard.hide();\r\n setTimeout(() => {\r\n history.push(RouteCreator.pwa.root());\r\n }, 100);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(()=>history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, [wizardData]);\r\n\r\n return ;\r\n};\r\n\r\nexport default Collect;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1388\",\n \"data-name\": \"Group 1388\",\n transform: \"translate(-89 -217)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_7\",\n \"data-name\": \"Component 34 \\\\u2013 7\",\n transform: \"translate(196.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1385\",\n \"data-name\": \"Group 1385\",\n transform: \"translate(-84.5 -32)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1384\",\n \"data-name\": \"Group 1384\",\n transform: \"translate(321 251)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_96_\",\n transform: \"translate(0 16.751)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_688_\",\n d: \"M21.4,44.662H16.192a8.109,8.109,0,0,1-6.514-3.35L1.489,28.47a3.268,3.268,0,0,1-.744-.931,4.632,4.632,0,0,1-.186-4.653L4.467,15.07.372,10.975A1.573,1.573,0,0,1,0,9.858,1.024,1.024,0,0,1,.931,9.3H16.006a1.024,1.024,0,0,1,.931.558l5.77,13.959a1.231,1.231,0,0,1-.186,1.117,1.231,1.231,0,0,1-1.117.186L17.5,23.259,15.076,28.1h6.142a.879.879,0,0,1,.931.931V43.918C22.334,44.1,21.962,44.662,21.4,44.662ZM4.467,29.587l6.7,10.423a5.935,5.935,0,0,0,5.025,2.606h4.281V29.587H4.653C4.653,29.773,4.653,29.587,4.467,29.587Zm-1.489-2.42a3.144,3.144,0,0,0,1.861.558h8.375l3.164-6.514a1.068,1.068,0,0,1,1.3-.372l2.42,1.117L15.448,10.789H3.164l2.978,2.978a.877.877,0,0,1,.186,1.117L2.233,23.631a2.984,2.984,0,0,0,.186,2.792c0,.186.186.186.186.372l.372.372Z\",\n transform: \"translate(0 -9.3)\",\n fill: \"#618a2e\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_97_\",\n transform: \"translate(35.362 34.229)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_687_\",\n d: \"M23.281,34.714h-3.35a.931.931,0,1,1,0-1.861h3.35a5.935,5.935,0,0,0,5.025-2.606L36.681,19.08A.931.931,0,1,1,38.17,20.2L29.795,31.364A8.109,8.109,0,0,1,23.281,34.714Z\",\n transform: \"translate(-19 -18.691)\",\n fill: \"#618a2e\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_98_\",\n transform: \"translate(35.362 20.4)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_684_\",\n d: \"M28.12,28.084H19.931a.931.931,0,0,1,0-1.861h6.328l-5.211-8c-.186-.186-.186-.372-.186-.744a.594.594,0,0,1,.558-.558l11.167-5.584a1.234,1.234,0,0,1,1.3.372L39.1,21.012A4.725,4.725,0,0,1,34.82,27.9l-6.7.186Zm.372-1.861h6.142a3.181,3.181,0,0,0,2.42-1.3,2.984,2.984,0,0,0,.186-2.792l-4.653-8.561L23.095,18.22Z\",\n transform: \"translate(-19 -11.261)\",\n fill: \"#618a2e\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_107_\",\n transform: \"translate(9.306 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_680_\",\n d: \"M37.571,20.773h0L24.356,18.912a.8.8,0,0,1-.744-.744,1.422,1.422,0,0,1,.372-.931L27.706,15l-2.978-4.281L19.7,18.353a1.068,1.068,0,0,1-1.3.372L5.372,11.281C5.186,11.095,5,10.909,5,10.723a1.119,1.119,0,0,1,.186-.744l5.025-6.7A7.144,7.144,0,0,1,15.981.3H31.429a5.82,5.82,0,0,1,4.653,2.42L38.873,7l3.908-2.047a.877.877,0,0,1,1.117.186c.372.372.186.558.186.931L38.5,20.028A1.237,1.237,0,0,1,37.571,20.773Zm-10.236-3.35,9.678,1.3L41.479,7.745l-2.42,1.3a.9.9,0,0,1-1.117-.372l-3.35-4.839a3.657,3.657,0,0,0-3.164-1.675H21.192A5.017,5.017,0,0,1,22.5,3.65L29.94,14.631a1.119,1.119,0,0,1,.186.744c0,.186-.186.558-.372.558Zm-20.1-7.259,11.353,6.514,5.025-7.817L20.634,4.581a5.482,5.482,0,0,0-4.467-2.42,5.647,5.647,0,0,0-4.653,2.233Z\",\n transform: \"translate(-5 -0.3)\",\n fill: \"#618a2e\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_108_\",\n transform: \"translate(25.963 30.709)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_679_\",\n d: \"M24.28,41a1.411,1.411,0,0,1-.744-.372L14.229,30.387a.7.7,0,0,1,0-1.117l9.306-12.1c.186-.372.744-.372,1.117-.372a1.024,1.024,0,0,1,.558.931v4.653a.879.879,0,0,1-.931.931,1,1,0,0,1-.931-.931V20.522l-7.072,9.306,7.072,7.817V35.412a.931.931,0,0,1,1.861,0v4.653a1.024,1.024,0,0,1-.558.931C24.466,40.809,24.466,41,24.28,41Z\",\n transform: \"translate(-13.95 -16.8)\",\n fill: \"#618a2e\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1383\",\n \"data-name\": \"Group 1383\",\n transform: \"translate(-78 -122.592)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\",\n transform: \"translate(168 340.592)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M252.959-165.605c0-3.1-2.949-5.613-6.584-5.613H218.608c-3.634,0-6.584,2.515-6.584,5.613V-129.7c0,3.1,2.95,5.613,6.584,5.613h27.767c3.635,0,6.584-2.515,6.584-5.613Z\",\n transform: \"translate(-212.024 177.654)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-172.117H246.1v-6.333H220.819Z\",\n transform: \"translate(-212.992 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.221H246.1v-1.585H220.819Z\",\n transform: \"translate(-212.992 171.284)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h40.68\",\n transform: \"translate(-212.04 176.563)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h40.68\",\n transform: \"translate(-212.04 172.437)\",\n fill: \"#f5f5f5\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_517\",\n \"data-name\": \"Path 517\",\n d: \"M232.159-149.994s4.449,6.844,4.449,9.3a4.451,4.451,0,0,1-4.449,4.449,4.452,4.452,0,0,1-4.45-4.449C227.709-143.15,232.159-149.994,232.159-149.994Z\",\n transform: \"translate(-43.691 514.129)\",\n fillRule: \"evenodd\"\n})));\n\nvar SvgStartRecycling = function SvgStartRecycling(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 203.5,\n height: 58.063,\n viewBox: \"0 0 203.5 58.063\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgStartRecycling, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/start_recycling.b1c53aac.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\n\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as ToStockSvg } from \"../../../../assets/pwa/start_recycling.svg\";\r\nimport {\r\n ScanButton,\r\n KeyVal,\r\n ListTitle,\r\n HR,\r\n Box16A9,\r\n} from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan, SvgNoImage } from \"../../components/StyledSvg\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n margin-top: -40px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgToStock = styled(ToStockSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n showCylinderScanner: false,\r\n isValidCylinderTag: false,\r\n quantity: 0,\r\n cylinderTagId: \"\",\r\n cylinderId: \"\",\r\n capacity: \"\",\r\n refrigerantId: \"\",\r\n};\r\n\r\nconst validCylinderTagId = (t) => {\r\n return buildValidation({\r\n cylinderTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst RecycleWizard = (t, cylinderSearchFn = () => {}) => {\r\n const handleCylinderScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showCylinderScanner: false,\r\n cylinderTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"actions:dialogs:recycle.title\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep1\"),\r\n fieldNames: [\"cylinderTagId\", \"cylinderId\"],\r\n validation: validCylinderTagId(t),\r\n onStepSubmit: async (props) => {\r\n const tagId = props.values[\"cylinderTagId\"];\r\n const tagResult = await TagsService.identifyTagAsync(tagId);\r\n if (tagResult && tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n if (tagData.length === 0 || !tagData[0].cylinderId) {\r\n toast.error(\r\n t(\"forms:extraction.wizard.notCylinderTag\")\r\n );\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cylinderResult =\r\n await CompanyService.getCompanyCylinderByIdAsync(\r\n tagData[0].cylinderId\r\n );\r\n if (cylinderResult && cylinderResult.error) {\r\n toast.error(t(cylinderResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cyl = cylinderResult.data.data[0];\r\n\r\n if (\r\n cyl.filledQuantity === 0 ||\r\n cyl.inUnfinishedOffer ||\r\n cyl.locationStatus !== 1 ||\r\n cyl.marketplaceStatus !== 0\r\n ) {\r\n toast.error(t(\"actions:dialogs.recycle.invalidTag\"));\r\n return false;\r\n }\r\n\r\n props.updatePropertyBag({\r\n cylinder: {\r\n tagId: tagId,\r\n size: cyl.size,\r\n gas: cyl.refrigerantTypeCode,\r\n quantity: cyl.filledQuantity,\r\n image:\r\n cyl.imageUrl &&\r\n cyl.imageUrl.indexOf(\"no_image\") < 0\r\n ? cyl.imageUrl\r\n : null,\r\n },\r\n });\r\n props.formik.setFieldValue(\"cylinderId\", cyl.id);\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\"actions:dialogs.recycle.start\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:extraction.wizard.useCamera\"\r\n )}\r\n \r\n {t(\r\n \"forms:extraction.wizard.typeQrTag\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showCylinderScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) =>\r\n handleCylinderScan(value, formik)\r\n }\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showCylinderScanner\",\r\n !formik.values.showCylinderScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep2\"),\r\n fieldNames: [\"cylinderId\"],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.cylinder && (\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"forms:cylinderSize.text\")}\r\n \r\n {propertyBag.cylinder.size.toFixed(\r\n 2\r\n )}{\" \"}\r\n kg\r\n \r\n \r\n \r\n {t(\"screens:technician.gas\")}\r\n \r\n {propertyBag.cylinder.gas}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n \r\n {propertyBag.cylinder.quantity.toFixed(\r\n 2\r\n )}{\" \"}\r\n kg\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.picture\")}\r\n \r\n
    \r\n \r\n {propertyBag.cylinder.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default RecycleWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport RecycleWizard from \"./components/RecycleWizard\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst RecycleCylinder = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupCompanyStockTag(tag, 0);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n RecycleWizard(t, queryCylinderTags),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await StockService.sendToRecycling(values.cylinderTagId);\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs:recycle.success\")\r\n );\r\n ModalWizard.hide();\r\n setTimeout(() => {\r\n history.push(RouteCreator.pwa.stock());\r\n }, 100);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(()=>history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nexport default RecycleCylinder;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1389\",\n \"data-name\": \"Group 1389\",\n transform: \"translate(-82.5 -215)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_34_9\",\n \"data-name\": \"Component 34 \\\\u2013 9\",\n transform: \"translate(196.509 253.715) rotate(180)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x1: 17.236,\n transform: \"translate(0.273 7.218)\",\n fill: \"none\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n x2: 7.218,\n y2: 7.218,\n transform: \"translate(7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n y1: 7.218,\n x2: 7.218,\n transform: \"translate(7.218 7.218) rotate(90)\",\n fill: \"none\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1386\",\n \"data-name\": \"Group 1386\",\n transform: \"translate(-238.5 -32)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1384\",\n \"data-name\": \"Group 1384\",\n transform: \"translate(321 251)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_96_\",\n transform: \"translate(0 16.751)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_688_\",\n d: \"M21.4,44.662H16.192a8.109,8.109,0,0,1-6.514-3.35L1.489,28.47a3.268,3.268,0,0,1-.744-.931,4.632,4.632,0,0,1-.186-4.653L4.467,15.07.372,10.975A1.573,1.573,0,0,1,0,9.858,1.024,1.024,0,0,1,.931,9.3H16.006a1.024,1.024,0,0,1,.931.558l5.77,13.959a1.231,1.231,0,0,1-.186,1.117,1.231,1.231,0,0,1-1.117.186L17.5,23.259,15.076,28.1h6.142a.879.879,0,0,1,.931.931V43.918C22.334,44.1,21.962,44.662,21.4,44.662ZM4.467,29.587l6.7,10.423a5.935,5.935,0,0,0,5.025,2.606h4.281V29.587H4.653C4.653,29.773,4.653,29.587,4.467,29.587Zm-1.489-2.42a3.144,3.144,0,0,0,1.861.558h8.375l3.164-6.514a1.068,1.068,0,0,1,1.3-.372l2.42,1.117L15.448,10.789H3.164l2.978,2.978a.877.877,0,0,1,.186,1.117L2.233,23.631a2.984,2.984,0,0,0,.186,2.792c0,.186.186.186.186.372l.372.372Z\",\n transform: \"translate(0 -9.3)\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_97_\",\n transform: \"translate(35.362 34.229)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_687_\",\n d: \"M23.281,34.714h-3.35a.931.931,0,1,1,0-1.861h3.35a5.935,5.935,0,0,0,5.025-2.606L36.681,19.08A.931.931,0,1,1,38.17,20.2L29.795,31.364A8.109,8.109,0,0,1,23.281,34.714Z\",\n transform: \"translate(-19 -18.691)\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_98_\",\n transform: \"translate(35.362 20.4)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_684_\",\n d: \"M28.12,28.084H19.931a.931.931,0,0,1,0-1.861h6.328l-5.211-8c-.186-.186-.186-.372-.186-.744a.594.594,0,0,1,.558-.558l11.167-5.584a1.234,1.234,0,0,1,1.3.372L39.1,21.012A4.725,4.725,0,0,1,34.82,27.9l-6.7.186Zm.372-1.861h6.142a3.181,3.181,0,0,0,2.42-1.3,2.984,2.984,0,0,0,.186-2.792l-4.653-8.561L23.095,18.22Z\",\n transform: \"translate(-19 -11.261)\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_107_\",\n transform: \"translate(9.306 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_680_\",\n d: \"M37.571,20.773h0L24.356,18.912a.8.8,0,0,1-.744-.744,1.422,1.422,0,0,1,.372-.931L27.706,15l-2.978-4.281L19.7,18.353a1.068,1.068,0,0,1-1.3.372L5.372,11.281C5.186,11.095,5,10.909,5,10.723a1.119,1.119,0,0,1,.186-.744l5.025-6.7A7.144,7.144,0,0,1,15.981.3H31.429a5.82,5.82,0,0,1,4.653,2.42L38.873,7l3.908-2.047a.877.877,0,0,1,1.117.186c.372.372.186.558.186.931L38.5,20.028A1.237,1.237,0,0,1,37.571,20.773Zm-10.236-3.35,9.678,1.3L41.479,7.745l-2.42,1.3a.9.9,0,0,1-1.117-.372l-3.35-4.839a3.657,3.657,0,0,0-3.164-1.675H21.192A5.017,5.017,0,0,1,22.5,3.65L29.94,14.631a1.119,1.119,0,0,1,.186.744c0,.186-.186.558-.372.558Zm-20.1-7.259,11.353,6.514,5.025-7.817L20.634,4.581a5.482,5.482,0,0,0-4.467-2.42,5.647,5.647,0,0,0-4.653,2.233Z\",\n transform: \"translate(-5 -0.3)\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_108_\",\n transform: \"translate(25.963 30.709)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_679_\",\n d: \"M24.28,41a1.411,1.411,0,0,1-.744-.372L14.229,30.387a.7.7,0,0,1,0-1.117l9.306-12.1c.186-.372.744-.372,1.117-.372a1.024,1.024,0,0,1,.558.931v4.653a.879.879,0,0,1-.931.931,1,1,0,0,1-.931-.931V20.522l-7.072,9.306,7.072,7.817V35.412a.931.931,0,0,1,1.861,0v4.653a1.024,1.024,0,0,1-.558.931C24.466,40.809,24.466,41,24.28,41Z\",\n transform: \"translate(-13.95 -16.8)\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1387\",\n \"data-name\": \"Group 1387\",\n transform: \"translate(76.532 -124.592)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_678\",\n \"data-name\": \"Group 678\",\n transform: \"translate(168 340.592)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_486\",\n \"data-name\": \"Path 486\",\n d: \"M252.959-165.605c0-3.1-2.949-5.613-6.584-5.613H218.608c-3.634,0-6.584,2.515-6.584,5.613V-129.7c0,3.1,2.95,5.613,6.584,5.613h27.767c3.635,0,6.584-2.515,6.584-5.613Z\",\n transform: \"translate(-212.024 177.654)\",\n fill: \"#f5f5f5\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_489\",\n \"data-name\": \"Path 489\",\n d: \"M220.819-172.117H246.1v-6.333H220.819Z\",\n transform: \"translate(-212.992 178.45)\",\n fill: \"#f5f5f5\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_492\",\n \"data-name\": \"Path 492\",\n d: \"M220.819-115.221H246.1v-1.585H220.819Z\",\n transform: \"translate(-212.992 171.284)\",\n fill: \"#f5f5f5\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_495\",\n \"data-name\": \"Path 495\",\n d: \"M212.168-162.192h40.68\",\n transform: \"translate(-212.04 176.563)\",\n fill: \"#f5f5f5\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_498\",\n \"data-name\": \"Path 498\",\n d: \"M212.168-127.273h40.68\",\n transform: \"translate(-212.04 172.437)\",\n fill: \"#f5f5f5\",\n stroke: \"#618a2e\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_517\",\n \"data-name\": \"Path 517\",\n d: \"M232.159-149.994s4.449,6.844,4.449,9.3a4.451,4.451,0,0,1-4.449,4.449,4.452,4.452,0,0,1-4.45-4.449C227.709-143.15,232.159-149.994,232.159-149.994Z\",\n transform: \"translate(-43.691 514.129)\",\n fill: \"#618a2e\",\n fillRule: \"evenodd\"\n})));\n\nvar SvgFinishRecycling = function SvgFinishRecycling(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 203.968,\n height: 58.905,\n viewBox: \"0 0 203.968 58.905\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFinishRecycling, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/finish_recycling.68f55530.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\n\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as ToStockSvg } from \"../../../../assets/pwa/finish_recycling.svg\";\r\nimport {\r\n ScanButton,\r\n KeyVal,\r\n ListTitle,\r\n HR,\r\n Box16A9,\r\n} from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan, SvgNoImage } from \"../../components/StyledSvg\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n margin-top: -40px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgToStock = styled(ToStockSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n showCylinderScanner: false,\r\n isValidCylinderTag: false,\r\n quantity: 0,\r\n cylinderTagId: \"\",\r\n cylinderId: \"\",\r\n capacity: \"\",\r\n refrigerantId: \"\",\r\n};\r\n\r\nconst validCylinderTagId = (t) => {\r\n return buildValidation({\r\n cylinderTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst FinishRecyclingWizard = (t, cylinderSearchFn = () => {}) => {\r\n const handleCylinderScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showCylinderScanner: false,\r\n cylinderTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"actions:dialogs:finishRecycling.wizardTitle\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep1\"),\r\n fieldNames: [\"cylinderTagId\", \"cylinderId\"],\r\n validation: validCylinderTagId(t),\r\n onStepSubmit: async (props) => {\r\n const tagId = props.values[\"cylinderTagId\"];\r\n const tagResult = await TagsService.identifyTagAsync(tagId);\r\n if (tagResult && tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n if (tagData.length === 0 || !tagData[0].cylinderId) {\r\n toast.error(\r\n t(\"forms:extraction.wizard.notCylinderTag\")\r\n );\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cylinderResult =\r\n await CompanyService.getCompanyCylinderByIdAsync(\r\n tagData[0].cylinderId\r\n );\r\n if (cylinderResult && cylinderResult.error) {\r\n toast.error(t(cylinderResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cyl = cylinderResult.data.data[0];\r\n if (\r\n cyl.inUnfinishedOffer ||\r\n cyl.locationStatus !== 1 ||\r\n cyl.marketplaceStatus !== 10\r\n ) {\r\n toast.error(t(\"actions:dialogs.recycle.invalidTag\"));\r\n return false;\r\n }\r\n\r\n props.updatePropertyBag({\r\n cylinder: {\r\n tagId: tagId,\r\n size: cyl.size,\r\n gas: cyl.refrigerantTypeCode,\r\n quantity: cyl.filledQuantity,\r\n image:\r\n cyl.imageUrl &&\r\n cyl.imageUrl.indexOf(\"no_image\") < 0\r\n ? cyl.imageUrl\r\n : null,\r\n },\r\n });\r\n props.formik.setFieldValue(\"cylinderId\", cyl.id);\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\"actions:dialogs.finishRecycling.finish\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:extraction.wizard.useCamera\"\r\n )}\r\n \r\n {t(\r\n \"forms:extraction.wizard.typeQrTag\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showCylinderScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) =>\r\n handleCylinderScan(value, formik)\r\n }\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showCylinderScanner\",\r\n !formik.values.showCylinderScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep2\"),\r\n fieldNames: [\"cylinderId\"],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.cylinder && (\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"forms:cylinderSize.text\")}\r\n \r\n {propertyBag.cylinder.size.toFixed(\r\n 2\r\n )}{\" \"}\r\n kg\r\n \r\n \r\n \r\n {t(\"screens:technician.gas\")}\r\n \r\n {propertyBag.cylinder.gas}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n \r\n {propertyBag.cylinder.quantity.toFixed(\r\n 2\r\n )}{\" \"}\r\n kg\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.picture\")}\r\n \r\n
    \r\n \r\n {propertyBag.cylinder.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default FinishRecyclingWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport FinishRecyclingWizard from \"./components/FinishRecyclingWizard\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst FinishRecycling = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupCompanyStockTag(tag, 0);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n FinishRecyclingWizard(t, queryCylinderTags),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await StockService.emptyCylinder(values.cylinderTagId);\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs:finishRecycling.success\")\r\n );\r\n ModalWizard.hide();\r\n setTimeout(() => {\r\n history.push(RouteCreator.pwa.stock());\r\n }, 100);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(()=>history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nexport default FinishRecycling;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport QrReader from \"react-qr-reader\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\n\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport { StyledQrReader } from \"../../../../components/elements/qr/QrScanner\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\n\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nimport { ReactComponent as ToStockSvg } from \"../../../../assets/pwa/collect-gas.svg\";\r\nimport {\r\n ScanButton,\r\n KeyVal,\r\n ListTitle,\r\n HR,\r\n Box16A9,\r\n} from \"../../components/StyledElements\";\r\n\r\nimport { SvgScan, SvgNoImage } from \"../../components/StyledSvg\";\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-grow: 1;\r\n position: relative;\r\n padding: 35px 60px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0px 0px 0px 0px;\r\n margin-top: -40px;\r\n max-height: 500px;\r\n overflow: auto;\r\n`;\r\n\r\nconst FlexCenter = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst SvgToStock = styled(ToStockSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ScanWrapper = styled.div`\r\n position: absolute;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n height: 10px;\r\n width: 100%;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n showCylinderScanner: false,\r\n isValidCylinderTag: false,\r\n quantity: 0,\r\n cylinderTagId: \"\",\r\n cylinderId: \"\",\r\n capacity: \"\",\r\n refrigerantId: \"\",\r\n};\r\n\r\nconst validCylinderTagId = (t) => {\r\n return buildValidation({\r\n cylinderTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst CollectCylinderWizard = (t, cylinderSearchFn = () => {}) => {\r\n const handleCylinderScan = (value, formik) => {\r\n if (value != null) {\r\n formik.setValues({\r\n ...formik.values,\r\n showCylinderScanner: false,\r\n cylinderTagId: value.toLowerCase(),\r\n });\r\n }\r\n };\r\n\r\n return {\r\n title: t(\"actions:dialogs:collectEmpty.title\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep1\"),\r\n fieldNames: [\"cylinderTagId\", \"cylinderId\"],\r\n validation: validCylinderTagId(t),\r\n onStepSubmit: async (props) => {\r\n const tagId = props.values[\"cylinderTagId\"];\r\n const tagResult = await TagsService.identifyTagAsync(tagId, true);\r\n if (tagResult && tagResult.error) {\r\n toast.error(t(tagResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n const tagData = tagResult.data.data;\r\n if (tagData.length === 0 || !tagData[0].cylinderId) {\r\n toast.error(\r\n t(\"forms:extraction.wizard.notCylinderTag\")\r\n );\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cylinderResult =\r\n await CompanyService.getCompanyCylinderByIdAsync(\r\n tagData[0].cylinderId, true\r\n );\r\n\r\n if (cylinderResult && cylinderResult.error) {\r\n toast.error(t(cylinderResult.error.message));\r\n props.formik.setFieldValue(\"isValidCylinderTag\", false);\r\n return;\r\n }\r\n\r\n const cyl = cylinderResult.data.data[0];\r\n\r\n if (\r\n cyl.filledQuantity != 0 ||\r\n cyl.inUnfinishedOffer \r\n ) {\r\n toast.error(t(\"actions:dialogs.recycle.invalidTag\"));\r\n return false;\r\n }\r\n\r\n props.updatePropertyBag({\r\n cylinder: {\r\n tagId: tagId,\r\n size: cyl.size,\r\n gas: cyl.refrigerantTypeCode,\r\n quantity: cyl.filledQuantity,\r\n image:\r\n cyl.imageUrl &&\r\n cyl.imageUrl.indexOf(\"no_image\") < 0\r\n ? cyl.imageUrl\r\n : null,\r\n },\r\n });\r\n props.formik.setFieldValue(\"cylinderId\", cyl.id);\r\n return true;\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {t(\"actions:dialogs.collectEmpty.text\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:extraction.wizard.useCamera\"\r\n )}\r\n \r\n {t(\r\n \"forms:extraction.wizard.typeQrTag\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {formik.values.showCylinderScanner && (\r\n \r\n console.log(error)}\r\n onScan={(value) =>\r\n handleCylinderScan(value, formik)\r\n }\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n )}\r\n\r\n \r\n \r\n formik.setFieldValue(\r\n \"showCylinderScanner\",\r\n !formik.values.showCylinderScanner\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:stock.wizard.moveToCompanyStock.pwaStep2\"),\r\n fieldNames: [\"cylinderId\"],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.cylinder && (\r\n \r\n
    \r\n \r\n {t(\"screens:technician.details\")}\r\n \r\n
    \r\n \r\n {t(\"forms:cylinderSize.text\")}\r\n \r\n {propertyBag.cylinder.size.toFixed(\r\n 2\r\n )}{\" \"}\r\n kg\r\n \r\n \r\n \r\n {t(\"screens:technician.gas\")}\r\n \r\n {propertyBag.cylinder.gas || \"N/A\"}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n \r\n {propertyBag.cylinder.quantity.toFixed(\r\n 2\r\n )}{\" \"}\r\n kg\r\n \r\n \r\n
    \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.picture\")}\r\n \r\n
    \r\n \r\n {propertyBag.cylinder.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default CollectCylinderWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport TagsService from \"../../../services/Tags/TagsService\";\r\nimport CollectCylinderWizard from \"./components/CollectCylinderWizard\";\r\n\r\nconst ScreeWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n`;\r\n\r\nconst CollectCylinder = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const history = useHistory();\r\n\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupEmptyCylinderTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n useEffect(() => {\r\n ModalWizard.show(\r\n CollectCylinderWizard(t, queryCylinderTags),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await StockService.collectEmptyCylinder(\r\n values.cylinderTagId\r\n );\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n toast.success(\r\n t(\"actions:dialogs.collectEmpty.success\")\r\n );\r\n ModalWizard.hide();\r\n setTimeout(() => {\r\n history.push(RouteCreator.pwa.cylinders());\r\n }, 100);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(()=>history.goBack());\r\n },\r\n },\r\n { pwa: true }\r\n );\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nexport default CollectCylinder;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\nimport BottomMenu, { useBottomMenu } from \"../../screens/pwa/BottomMenu\";\r\nimport LeftMenu, { useLeftMenu } from \"../../screens/pwa/LeftMenu\";\r\nimport CompanyStock from \"../pwa/CompanyStock\";\r\nimport pwaMenuItems from \"../pwa/components/PwaMenuItems\";\r\nimport CylinderStock from \"../pwa/CylinderStock\";\r\nimport AnalyzerStock from \"../pwa/AnalyzerStock\";\r\nimport UnitStock from \"../pwa/UnitStock\";\r\nimport TechnicianStock from \"../pwa/TechnicianStock\";\r\nimport QrScanner from \"../../components/elements/qr/QrScanner\";\r\nimport EmployeeEditScreen from \"../../screens/Company/views/employees/EmployeeEditScreen\";\r\nimport NewExtraction from \"../pwa/actions/NewExtraction\";\r\nimport ToCompanyStock from \"../pwa/actions/ToCompanyStock\";\r\nimport ToMyStock from \"../pwa/actions/ToMyStock\";\r\nimport AddUnit from \"../pwa/actions/AddUnit\";\r\nimport AddCylinder from \"../pwa/actions/AddCylinder\";\r\nimport AddAnalyzer from \"../pwa/actions/AddAnalyzer\";\r\nimport Collect from \"../pwa/actions/Collect\";\r\nimport RecycleCylinder from \"../pwa/actions/RecycleCylinder\";\r\nimport FinishRecycling from \"../pwa/actions/FinishRecycling\";\r\nimport CollectCylinder from \"../pwa/actions/CollectCylinder\";\r\nimport UserService from \"../../services/User/UserService\";\r\n\r\nconst ImageButton = styled.img`\r\n &.round {\r\n border-radius: 50%;\r\n }\r\n padding: 0px;\r\n transition: all 0.3s ease;\r\n\r\n &:active {\r\n background-color: #ddd;\r\n }\r\n\r\n &.disabled {\r\n opacity: 0.25;\r\n pointer-events:none;\r\n }\r\n`;\r\n\r\nconst Header = styled.div`\r\n box-sizing: border-box;\r\n padding: 15px 18px;\r\n background: #ffffff;\r\n color: #000000;\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n height: 55px;\r\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.08);\r\n display: flex;\r\n justify-content: space-between;\r\n align-content: center;\r\n z-index: 4;\r\n user-select: none;\r\n\r\n & + .content {\r\n padding-top: 60px;\r\n height: 100%;\r\n }\r\n`;\r\n\r\nconst HeaderSection = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n & img + * {\r\n margin-left: 18px;\r\n }\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 14px;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n`;\r\n\r\nconst PwaScreen = styled.div`\r\n & * {\r\n user-select: text;\r\n }\r\n`;\r\n\r\nconst MobileDashboard = () => {\r\n const { UserId } = UserService.getUserDetailsFromToken();\r\n const { t } = useTranslation(\"navigation\");\r\n const [scanState, setScanState] = useState({ show: false });\r\n const [globalState] = useSharedState(\"global\");\r\n const [leftMenuState, setLeftMenuState] = useLeftMenu();\r\n const [bottomMenuState, setBottomMenuState] = useBottomMenu();\r\n const [headerState, setHeaderState] = useSharedState(\"pwaHeader\", {\r\n title: \"\",\r\n });\r\n const handleLeftMenu = (ev) =>\r\n setLeftMenuState({ isOpen: !leftMenuState.isOpen });\r\n const handleBottomMenu = (ev) =>\r\n setBottomMenuState({ isOpen: !bottomMenuState.isOpen });\r\n\r\n const hasCompanyCert = globalState.hasValidCompanyCertificate;\r\n const hasUserCert = globalState.hasValidUserCertificate;\r\n\r\n const restricredUsage = !hasCompanyCert | !hasUserCert;\r\n\r\n useEffect(() => {\r\n pwaMenuItems(hasCompanyCert).map((item, index) => {\r\n if (\r\n window.location.pathname === item.url &&\r\n headerState.menuIndex !== index\r\n )\r\n setHeaderState({ title: t(item.name), menuIndex: index });\r\n });\r\n });\r\n\r\n const showScanner = () => {\r\n setScanState({ show: true });\r\n };\r\n if(!globalState.userLoaded) return null;\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n {headerState.title}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {hasCompanyCert ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n ) : (\r\n \r\n \r\n\r\n \r\n \r\n )}\r\n \r\n \r\n setScanState({ show: false })}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default MobileDashboard;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1289\",\n \"data-name\": \"Group 1289\",\n transform: \"translate(-1284.742 -321)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_7\",\n \"data-name\": \"Group 7\",\n transform: \"translate(1475.396 445.903)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_6\",\n \"data-name\": \"Group 6\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_17\",\n \"data-name\": \"Path 17\",\n d: \"M371.517,232.152H297.106a22.013,22.013,0,0,0,8.783,12.886q6.514,4.5,16.335,4.5a33.575,33.575,0,0,0,12.748-2.2,37.336,37.336,0,0,0,10.859-7.192l18.886,20.778Q349.8,278.505,321.091,278.5q-17.944,0-31.539-7.192a51.889,51.889,0,0,1-21.058-19.979,60.074,60.074,0,0,1-.189-57.64,52.071,52.071,0,0,1,20.114-19.878,61.287,61.287,0,0,1,56.659-.5,49.338,49.338,0,0,1,19.734,19.379q7.27,12.69,7.272,30.069Q372.084,223.163,371.517,232.152Zm-67.894-33.566q-5.574,5-7.083,13.587h41.927q-1.514-8.59-7.082-13.587a21.789,21.789,0,0,0-27.762,0Z\",\n transform: \"translate(-261.034 -166.62)\",\n fill: \"#fff\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_8\",\n \"data-name\": \"Group 8\",\n transform: \"translate(1354.776 561.582)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_18\",\n \"data-name\": \"Path 18\",\n d: \"M131.614,338.241a7.874,7.874,0,0,1-2.415.949,13.344,13.344,0,0,1-3.034.33q-4.377,0-6.729-2.145t-2.352-6.4v-7.512h-3.262V317.6h3.262v-5.82h7.843v5.82h5.119v5.862h-5.119v7.43a2.634,2.634,0,0,0,.64,1.878,2.241,2.241,0,0,0,1.713.682,4.141,4.141,0,0,0,2.394-.7Z\",\n transform: \"translate(-113.821 -308.522)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_19\",\n \"data-name\": \"Path 19\",\n d: \"M149.8,318.189a11.837,11.837,0,0,1,4.4-.764v7.058a16.171,16.171,0,0,0-1.776-.123,5.468,5.468,0,0,0-3.942,1.361,5.526,5.526,0,0,0-1.425,4.169v10.279h-7.844V317.8h7.473v2.683A7.3,7.3,0,0,1,149.8,318.189Z\",\n transform: \"translate(-118.408 -309.541)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_20\",\n \"data-name\": \"Path 20\",\n d: \"M178.992,319.963q2.93,2.539,2.931,7.781v12.424h-7.307V337.28q-1.694,3.261-6.606,3.259a10.347,10.347,0,0,1-4.5-.907,6.655,6.655,0,0,1-2.869-2.456,6.5,6.5,0,0,1-.97-3.529,5.728,5.728,0,0,1,2.435-4.933q2.435-1.753,7.513-1.753h4.459q-.206-3.551-4.747-3.55a10.911,10.911,0,0,0-3.262.515,8.668,8.668,0,0,0-2.807,1.425l-2.642-5.325a14.631,14.631,0,0,1,4.52-1.919,21.432,21.432,0,0,1,5.346-.682Q176.061,317.425,178.992,319.963Zm-6.4,14.962a3.673,3.673,0,0,0,1.486-1.939v-1.94h-3.386q-3.428,0-3.427,2.27a2,2,0,0,0,.785,1.651,3.377,3.377,0,0,0,2.146.619A4.342,4.342,0,0,0,172.593,334.926Z\",\n transform: \"translate(-122.104 -309.541)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_21\",\n \"data-name\": \"Path 21\",\n d: \"M216.775,307.8v30.628H209.3V336.2q-2.189,2.6-6.565,2.6a11.129,11.129,0,0,1-5.573-1.423,10.291,10.291,0,0,1-3.984-4.066,13.426,13.426,0,0,1,0-12.2,10.185,10.185,0,0,1,3.984-4.024,11.261,11.261,0,0,1,5.573-1.4A8.124,8.124,0,0,1,208.931,318V307.8Zm-9.042,23.342a5.573,5.573,0,0,0,1.322-3.942,5.494,5.494,0,0,0-1.3-3.88,4.38,4.38,0,0,0-3.365-1.4,4.445,4.445,0,0,0-3.385,1.4,5.436,5.436,0,0,0-1.321,3.88A5.569,5.569,0,0,0,201,331.145a4.41,4.41,0,0,0,3.385,1.424A4.365,4.365,0,0,0,207.734,331.145Z\",\n transform: \"translate(-127.892 -307.803)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_22\",\n \"data-name\": \"Path 22\",\n d: \"M250.884,330.964H234.618a4.544,4.544,0,0,0,1.921,2.661,6.4,6.4,0,0,0,3.571.93,7.7,7.7,0,0,0,2.786-.455,8.171,8.171,0,0,0,2.374-1.486l4.128,4.293q-3.262,3.632-9.536,3.631a15.225,15.225,0,0,1-6.894-1.485,10.947,10.947,0,0,1-6.234-10.113,11.041,11.041,0,0,1,5.987-10.03,14.087,14.087,0,0,1,12.384-.1,10.533,10.533,0,0,1,4.316,4,11.765,11.765,0,0,1,1.589,6.212Q251.008,329.107,250.884,330.964Zm-14.841-6.934a4.656,4.656,0,0,0-1.549,2.805h9.165a4.669,4.669,0,0,0-1.549-2.805,4.971,4.971,0,0,0-6.068,0Z\",\n transform: \"translate(-134.218 -309.541)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_23\",\n \"data-name\": \"Path 23\",\n d: \"M277.8,319.963q2.932,2.539,2.932,7.781v12.424H273.42V337.28q-1.694,3.261-6.606,3.259a10.346,10.346,0,0,1-4.5-.907,6.662,6.662,0,0,1-2.869-2.456,6.507,6.507,0,0,1-.97-3.529,5.727,5.727,0,0,1,2.436-4.933q2.435-1.753,7.513-1.753h4.46q-.206-3.551-4.748-3.55a10.927,10.927,0,0,0-3.262.515,8.689,8.689,0,0,0-2.808,1.425l-2.641-5.325a14.623,14.623,0,0,1,4.52-1.919,21.427,21.427,0,0,1,5.346-.682Q274.863,317.425,277.8,319.963Zm-6.4,14.962a3.668,3.668,0,0,0,1.488-1.939v-1.94H269.5q-3.425,0-3.426,2.27a1.994,1.994,0,0,0,.784,1.651,3.379,3.379,0,0,0,2.148.619A4.332,4.332,0,0,0,271.4,334.926Z\",\n transform: \"translate(-139.952 -309.541)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_24\",\n \"data-name\": \"Path 24\",\n d: \"M311.31,317.09a10.237,10.237,0,0,1,3.963,4.024,13.426,13.426,0,0,1,0,12.2,10.345,10.345,0,0,1-3.963,4.066,11.019,11.019,0,0,1-5.554,1.423q-4.417,0-6.6-2.6v2.229H291.68V307.8h7.843V318a8.345,8.345,0,0,1,6.234-2.311A11.149,11.149,0,0,1,311.31,317.09Zm-3.819,14.054a5.573,5.573,0,0,0,1.322-3.942,5.44,5.44,0,0,0-1.322-3.88,4.786,4.786,0,0,0-6.77,0,5.436,5.436,0,0,0-1.321,3.88,5.569,5.569,0,0,0,1.321,3.942,4.736,4.736,0,0,0,6.77,0Z\",\n transform: \"translate(-145.95 -307.803)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_25\",\n \"data-name\": \"Path 25\",\n d: \"M326.7,307.8h7.844v30.628H326.7Z\",\n transform: \"translate(-152.276 -307.803)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_26\",\n \"data-name\": \"Path 26\",\n d: \"M364.9,330.964H348.639a4.544,4.544,0,0,0,1.921,2.661,6.4,6.4,0,0,0,3.57.93,7.708,7.708,0,0,0,2.787-.455,8.189,8.189,0,0,0,2.374-1.486l4.13,4.293q-3.262,3.632-9.538,3.631a15.222,15.222,0,0,1-6.893-1.485,10.944,10.944,0,0,1-6.234-10.113,11.208,11.208,0,0,1,1.59-5.923,11.089,11.089,0,0,1,4.4-4.107,14.091,14.091,0,0,1,12.385-.1,10.546,10.546,0,0,1,4.315,4,11.765,11.765,0,0,1,1.59,6.212Q365.03,329.107,364.9,330.964Zm-14.841-6.934a4.655,4.655,0,0,0-1.548,2.805h9.164a4.66,4.66,0,0,0-1.549-2.805,4.971,4.971,0,0,0-6.068,0Z\",\n transform: \"translate(-154.815 -309.541)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_27\",\n \"data-name\": \"Path 27\",\n d: \"M377.024,339.9a14.568,14.568,0,0,1-4.376-1.672L375,332.862a13.283,13.283,0,0,0,3.632,1.507,16.25,16.25,0,0,0,4.17.556,6.684,6.684,0,0,0,2.7-.391,1.23,1.23,0,0,0,.8-1.136q0-.742-.97-1.053a20.137,20.137,0,0,0-3.076-.6,30.205,30.205,0,0,1-4.562-.868,7.025,7.025,0,0,1-3.241-1.98,5.667,5.667,0,0,1-1.362-4.045,6.119,6.119,0,0,1,1.28-3.819,8.477,8.477,0,0,1,3.736-2.641,16.013,16.013,0,0,1,5.884-.97,23.8,23.8,0,0,1,4.83.5,13.886,13.886,0,0,1,4,1.4l-2.351,5.325A13.057,13.057,0,0,0,384.042,323a6.4,6.4,0,0,0-2.724.435,1.29,1.29,0,0,0-.866,1.135c0,.523.315.887.949,1.094a21.9,21.9,0,0,0,3.137.639,34.716,34.716,0,0,1,4.583.95,7.013,7.013,0,0,1,3.158,1.961,5.58,5.58,0,0,1,1.342,3.983,6.052,6.052,0,0,1-1.28,3.777,8.32,8.32,0,0,1-3.778,2.62,16.927,16.927,0,0,1-6.007.949A24.146,24.146,0,0,1,377.024,339.9Z\",\n transform: \"translate(-160.577 -309.541)\",\n fill: \"#fff\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_9\",\n \"data-name\": \"Group 9\",\n transform: \"translate(1354.762 410.036)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_28\",\n \"data-name\": \"Path 28\",\n d: \"M207.742,270.6l-39.1-50.873h-20.19V270.6H113.8V122.845h61.139c18.478,0,33.429,4.109,44.457,12.217v0c12.079,8.9,18.207,21.211,18.207,36.591,0,15.318-6.055,27.473-17.994,36.122a55.052,55.052,0,0,1-12.526,6.658l43.4,56.157Zm-59.289-82.662h26.489c10.16,0,17.787-1.727,22.65-5.139,3.756-2.637,5.358-5.919,5.358-10.974,0-5.509-1.664-9.066-5.561-11.9-4.822-3.506-12.376-5.285-22.447-5.285H148.454Z\",\n transform: \"translate(-113.804 -122.845)\",\n fill: \"#fff\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_29\",\n \"data-name\": \"Path 29\",\n d: \"M294.146,391.1l53.668,41.619V410.782c45.43-8.168,76.935-25.208,76.935-40.581V338.227c0,15.374-31.5,25.458-76.935,29.821v-18.57Z\",\n transform: \"translate(1208.381 248.283)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_30\",\n \"data-name\": \"Path 30\",\n d: \"M35.556,122.428c-1.052,1.48-2.689,4.686-1.318,10.745,1.086,4.793,5,7.86,7.135,9.217,10.382,6.106,26.92,11.059,47.485,14.507v-21.9c-18.476-5.3-33.7-12.219-44.133-19.5C40.4,117.671,37.286,120,35.556,122.428Z\",\n transform: \"translate(1255.426 288.519)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_31\",\n \"data-name\": \"Path 31\",\n d: \"M158.95,55.8l-53.668-41.62V36.115c-45.431,8.168-76.936,25.208-76.936,40.58v31.975c0-15.374,31.5-25.458,76.936-29.821v18.57Z\",\n transform: \"translate(1256.396 306.821)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_32\",\n \"data-name\": \"Path 32\",\n d: \"M439.094,337.221c1.052-1.48,2.689-4.686,1.318-10.745-1.086-4.793-5-7.861-7.135-9.218-6.29-3.7-14.84-6.975-25.176-9.75.034.043-.011,24.9.03,24.966a120.341,120.341,0,0,1,21.794,11.68C434.253,341.978,437.364,339.652,439.094,337.221Z\",\n transform: \"translate(1187.795 253.832)\",\n fill: \"#fff\"\n}));\n\nvar SvgRtrWhiteLogo = function SvgRtrWhiteLogo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 348.387,\n height: 360,\n viewBox: \"0 0 348.387 360\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgRtrWhiteLogo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/rtr-white-logo.38b1981e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"image\", {\n width: 1325,\n height: 958,\n transform: \"scale(0.24)\",\n xlinkHref: \"data:image/png;base64,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\"\n});\n\nvar SvgLife = function SvgLife(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 318 229.92\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLife, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/life.f5de2170.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport LanguageSwitch from \"../../../elements/header/components/LanguageSwitch\";\r\nimport Flex from \"../../flex/Flex\";\r\nimport { ReactComponent as LogoSvg } from \"../../../../assets/rtr-white-logo.svg\";\r\nimport { ReactComponent as FlagSvg } from \"../../../../assets/life.svg\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst Container = styled(Flex.Container)`\r\n display: flex;\r\n width: 100%;\r\n height: 100%;\r\n padding: 40px 80px;\r\n background: rgb(34, 148, 208);\r\n background: linear-gradient(\r\n 90deg,\r\n rgba(34, 148, 208, 1) 0%,\r\n rgba(67, 171, 110, 1) 100%\r\n );\r\n`;\r\n\r\nconst LeftContainer = styled(Flex.Column)`\r\n background-color: #f5f5f5;\r\n padding: 10px 30px;\r\n box-shadow: 0 6px 40px 0 rgba(0, 0, 0, 0.13);\r\n width: 500px;\r\n max-height: 100%;\r\n box-sizing: border-box;\r\n overflow-y: auto;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n height: 100%;\r\n width: 100%;\r\n padding: 10px;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n }\r\n\r\n & > * {\r\n max-width: 100%;\r\n }\r\n\r\n &.overflow {\r\n overflow:visible;\r\n }\r\n`;\r\n\r\nconst RightContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n background-color: transparent;\r\n align-items: flex-end;\r\n justify-content: space-between;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n\r\n &.child {\r\n max-width: 100%;\r\n flex-grow: 0;\r\n text-align: right;\r\n font-size: 62px;\r\n font-weight: 500;\r\n color: white;\r\n & .big {\r\n font-size: 82px;\r\n font-weight: 600;\r\n }\r\n }\r\n`;\r\n\r\nconst Logo = styled(LogoSvg)`\r\n min-width: 348px;\r\n width: 348px;\r\n height: auto;\r\n`;\r\n\r\nconst Flag = styled(FlagSvg)`\r\n min-width: 140px;\r\n width: 140px;\r\n height: auto;\r\n margin-top: 24px;\r\n`;\r\n\r\nconst LayoutOneTwo = (props) => {\r\n const { t } = useTranslation(\"common\");\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n {!props.hideInfo && }\r\n \r\n {!props.hideInfo && (\r\n <>\r\n
    {t(\"dashboard.welcome\")}
    \r\n {t(\"dashboard.toFutureOf\")}\r\n
    \r\n {t(\"dashboard.circularEconomy\")}\r\n \r\n )}\r\n
    \r\n {!props.hideInfo && }\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default LayoutOneTwo;\r\n","import React, { useState, useRef } from \"react\";\r\nimport { InputSubmit, Form, FormField } from \"../../../components/elements/form-elements\";\r\nimport styled from \"styled-components\";\r\nimport Headings from \"../../../components/elements/headings/Headings\";\r\n\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport { useFormik } from \"formik\";\r\nimport commonValidation from \"../../../core/validations/common\";\r\nimport * as Yup from \"yup\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport InputElement from \"../../../components/elements/form-elements/InputElement\";\r\nimport EffectError from \"../../../components/errors/EffectError\";\r\nimport NavigationLink from \"../../../components/elements/links/NavigationLink\";\r\nimport Wrappers from \"../../../components/wrappers/Wrappers\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport globals from \"../../../globalVars\";\r\nimport { toast } from \"react-toastify\";\r\nimport Button from \"../../../components/elements/buttons/Button\";\r\n\r\nconst QuestMark = styled.span`\r\n position: absolute;\r\n right: -30px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 12px;\r\n width: 20px;\r\n height: 20px;\r\n background-color: ${(p) => p.theme.secondaryColor};\r\n border-radius: 50%;\r\n color: white;\r\n cursor: help;\r\n bottom: 10px;\r\n &:hover span {\r\n display: block;\r\n }\r\n\r\n & span {\r\n display: none;\r\n position: absolute;\r\n right: 0px;\r\n top: 12px;\r\n background-color: #2294d2;\r\n border-radius: 8px;\r\n min-width: 150px;\r\n min-height: 48px;\r\n padding: 8px;\r\n font-size: 12px;\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n transform: translateY(-50%);\r\n z-index: 2;\r\n line-height: 16px;\r\n\r\n &.wide {\r\n min-width: 250px;\r\n }\r\n\r\n & ul {\r\n margin: 0;\r\n padding-inline-start: 15px;\r\n }\r\n & ul.dashed {\r\n list-style-type: none;\r\n }\r\n & ul.dashed > li {\r\n line-height: 16px;\r\n text-indent: -5px;\r\n }\r\n & ul.dashed > li:before {\r\n content: \"-\";\r\n text-indent: -5px;\r\n }\r\n }\r\n`;\r\n\r\nconst TwoFAInfo = styled.div`\r\n font-size: 20px;\r\n font-weight: 500;\r\n color: #000;\r\n margin-bottom: 40px;\r\n\r\n & .mail {\r\n color: ${(p) => p.theme.primaryColor};\r\n margin: 15px 0px;\r\n }\r\n`;\r\n\r\nconst VSpace = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size || 0}px;\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n padding: 40px 0px;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n justify-content: space-between;\r\n align-items: center;\r\n`;\r\n\r\nconst Digit = styled.input`\r\n width: 46px;\r\n height: 46px;\r\n line-height: 46px;\r\n text-align: center;\r\n border: 1px solid #898989;\r\n font-size: 20px;\r\n font-weight: 700;\r\n\r\n -moz-appearance: textfield;\r\n\r\n &::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n\r\n & + & {\r\n margin-left: 12px;\r\n }\r\n`;\r\n\r\nconst DigitsWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst TwoFaLabel = styled.div`\r\n margin: 0px 0px -25px;\r\n padding: 0;\r\n width: 100%;\r\n padding: 0px 25px;\r\n font-size: 14px;\r\n font-weight: 700;\r\n`;\r\n\r\nconst LoginForm = ({\r\n onSubmit,\r\n disabled,\r\n errorText,\r\n twoFactor,\r\n verifyOnSubmit,\r\n username,\r\n logout,\r\n clearErrors,\r\n login,\r\n userPassword,\r\n}) => {\r\n const { t } = useTranslation(\"common\");\r\n const loginValidator = Yup.object({\r\n email: commonValidation.email(t).rule,\r\n password: commonValidation.passwordRequired(t).rule,\r\n });\r\n\r\n const twoFaDigits = useRef([\"\", \"\", \"\", \"\", \"\", \"\"]);\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n email: \"\",\r\n password: \"\",\r\n },\r\n validationSchema: loginValidator,\r\n onSubmit: onSubmit,\r\n });\r\n\r\n const verifyFormik = useFormik({\r\n initialValues: {\r\n code: \"\",\r\n },\r\n onSubmit: verifyOnSubmit,\r\n });\r\n\r\n const handle2FaInput = (ev) => {\r\n if (ev.target.value.length > 1) ev.target.value = ev.target.value.slice(0, 1);\r\n const idx = Number(ev.target.dataset.idx);\r\n const val = ev.target.value;\r\n twoFaDigits.current[idx] = val;\r\n if (val !== \"\") {\r\n const nextEl = document.querySelector(`[data-idx=\"${idx + 1}\"]`);\r\n if (nextEl) nextEl.focus();\r\n }\r\n let code = twoFaDigits.current.join(\"\");\r\n verifyFormik.setFieldValue(\"code\", code);\r\n };\r\n\r\n if (twoFactor.isRequired) {\r\n return (\r\n <>\r\n
    \r\n \r\n \r\n {t(\"forms:twoFA.title\")}\r\n \r\n \r\n {t(\"forms:twoFA.mailSent\")}\r\n
    {username}
    \r\n {t(\"forms:twoFA.notReceived\")}\r\n
    \r\n {t(\"forms:twoFA.enterCodePlaceholder\")}\r\n \r\n {twoFaDigits.current.map((d, idx) => (\r\n handle2FaInput(ev)}\r\n />\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n <>\r\n {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n login(username, userPassword);\r\n toast.success(`${t(\"forms:twoFA.mailSent\")} ${username} `);\r\n }}\r\n >\r\n {t(\"forms:twoFA.resend2FA\")}\r\n \r\n |\r\n \r\n\r\n logout()}>\r\n {t(\"screens:forgottenPassword.backToLoginLink\")}\r\n \r\n \r\n {errorText && }\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n \r\n {t(\"screens:login.title\")}\r\n \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {\r\n ev.preventDefault();\r\n window.location.href = \"/api/Authentication/sso\";\r\n }}\r\n >\r\n {t(\"screens:login.cdc\")}\r\n \r\n ?{t(\"screens:login.cdcHelp\")}\r\n \r\n \r\n \r\n\r\n \r\n {!globals.isMobile && (\r\n <>\r\n \r\n {t(\"screens:login.signUpLinkText\")}\r\n \r\n |\r\n \r\n )}\r\n \r\n {t(\"screens:login.forgottenPasswordLinkText\")}\r\n \r\n \r\n {errorText && }\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Headings from \"../../../components/elements/headings/Headings\";\r\n\r\nimport { InputSubmit } from \"../../../components/elements/form-elements\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Radio } from \"../../../components/elements/form-elements\";\r\nimport NavigationLink from \"../../../components/elements/links/NavigationLink\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport userStateModule from \"../../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport UserService from \"../../../services/User/UserService\";\r\n\r\nconst HSpace = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size};\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 20px;\r\n font-weight: 600;\r\n line-height: 30px;\r\n`;\r\n\r\nconst Desc = styled.div`\r\n font-size: 12px;\r\n font-weight: normal;\r\n line-height: 12px;\r\n`;\r\n\r\nconst FormWrapper = styled.div`\r\n width: 90%;\r\n margin: 0 auto;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n margin-bottom: 25px;\r\n`;\r\n\r\nconst FlexCol = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst OrangeInfo = styled.img`\r\n width: 44px;\r\n height: 44px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst BigTitle = styled.div`\r\n font-size: 20px;\r\n font-weight: 700;\r\n\r\n &.regular {\r\n font-weight: 400;\r\n }\r\n\r\n &.vspace {\r\n margin-top: 24px;\r\n margin-bottom: 60px;\r\n }\r\n`;\r\n\r\nconst SelectCompanyForm = ({ companies }) => {\r\n const { t } = useTranslation(\"common\");\r\n const [company, setCompany] = useState(null);\r\n const { logout } = useStateModule(userStateModule);\r\n\r\n const handleBack = (ev) => {\r\n ev.preventDefault();\r\n logout();\r\n window.location.reload();\r\n };\r\n\r\n const handleSubmit = async (ev) => {\r\n ev.preventDefault();\r\n const result = await UserService.updateCompanyForCurrentUser(company);\r\n localStorage.setItem(\"token\", result.data.token);\r\n localStorage.setItem(\"refreshToken\", result.data.refreshToken);\r\n window.location.reload();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"common:impersonate.chooseCompany\")}\r\n \r\n \r\n \r\n \r\n {t(\"screens:login.multipleCompanies\")}\r\n \r\n \r\n \r\n {t(\"screens:login.chooseSession\")}\r\n \r\n
    \r\n {companies.map((c, idx) => {\r\n return (\r\n setCompany(c.companyId)}\r\n key={idx}\r\n >\r\n
    \r\n {c.companyName}\r\n {c.address}\r\n
    \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n \r\n handleSubmit(ev)}\r\n />\r\n handleBack(ev)}\r\n >\r\n {t(\"screens:forgottenPassword.backToLoginLink\")}\r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default SelectCompanyForm;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport LayoutOneTwo from \"../../components/layout/split/one-two/LayoutOneTwo\";\r\nimport ModalDialog, { useModal } from \"../../components/modal/ModalDialog\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport userStateModule from \"../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport globals from \"../../globalVars\";\r\nimport useQueryString from \"../../hooks/_shared/useQueryString\";\r\nimport UserService from \"../../services/User/UserService\";\r\nimport LoginForm from \"./components/LoginForm\";\r\nimport { toast } from \"react-toastify\";\r\nimport SelectCompanyForm from \"./components/SelectCompanyForm\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Color from \"color\";\r\nimport { Checkbox } from \"../../components/elements/form-elements\";\r\n\r\nconst Desc = styled.div`\r\n width: 100%;\r\n min-height: 20px;\r\n font-size: 14px;\r\n color: #898989;\r\n text-align: center;\r\n @media ${(p) => p.theme.device.mobile} {\r\n font-size: 10px;\r\n }\r\n`;\r\n\r\nconst LoggedInOverlay = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${(props) => Color(props.theme.bgOverlay).string()};\r\n z-index: 11;\r\n`;\r\n\r\nexport const KYCWarn = styled.div`\r\n font-size: 16px;\r\n font-weight: bold;\r\n margin-bottom: 40px;\r\n`;\r\n\r\nexport const KYCInfo = styled.div`\r\n font-size: 12px;\r\n font-weight: 400;\r\n text-align: justify;\r\n`;\r\n\r\nconst LoginState = {\r\n Pending: -1,\r\n LoggedIn: 0,\r\n UserCertWarning: 1,\r\n KYCWarning: 2,\r\n Redirect: 3,\r\n};\r\n\r\nconst LoginScreen = () => {\r\n const returnUrl = useQueryString(\"returnUrl\", \"/\");\r\n const queryUsername = useQueryString(\"username\");\r\n const verifyToken = useQueryString(\"token\");\r\n const ssoFailed = useQueryString(\"ssoFailed\");\r\n const { t } = useTranslation(\"screens\");\r\n const userPassword = useRef();\r\n const [globalState] = useSharedState(\"global\");\r\n const history = useHistory();\r\n const { setIsVisible } = useLeftMenu();\r\n\r\n const [curState, setCurState] = useState(LoginState.Pending);\r\n const [chkWarning, setChkWarning] = useState(false);\r\n\r\n const {\r\n loginState: { error: errorText, isLoading },\r\n isAuthenticated,\r\n twoFactor,\r\n login,\r\n logout,\r\n username,\r\n verifyTwoFactor,\r\n twoFactorVerify,\r\n clearLoginErrors,\r\n userCompanies,\r\n } = useStateModule(userStateModule);\r\n\r\n\r\n useEffect(() => {\r\n setIsVisible(false);\r\n if(ssoFailed !== null) toast.error(t(\"screens:login.ssoFailed\"))\r\n }, []);\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.kycWarning.title\"),\r\n onConfirm: async () => {\r\n toggleOpen();\r\n history.push(RouteCreator.company.kyc());\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n setCurState(LoginState.Redirect);\r\n },\r\n confirmText: t(\"actions:dialogs.kycWarning.submit\"),\r\n });\r\n\r\n const { modalProps: certModalProps, toggleOpen: certToggleOpen } = useModal(\r\n {\r\n title: t(\"screens:certificates.userCert.missing\"),\r\n onConfirm: async () => {\r\n const hide = chkWarning === true;\r\n if (UserService.isInRole(Roles.InstallerCompanyAdmin) && hide) {\r\n await UserService.updateShowWarningsSetting(false);\r\n }\r\n certToggleOpen();\r\n const userId = UserService.getUserDetailsFromToken().UserId;\r\n history.push(`${RouteCreator.employee.edit(userId)}?tab=1`);\r\n },\r\n onCancel: async () => {\r\n const hide = chkWarning === true;\r\n if (UserService.isInRole(Roles.InstallerCompanyAdmin) && hide) {\r\n await UserService.updateShowWarningsSetting(false);\r\n }\r\n certToggleOpen();\r\n setCurState(\r\n UserService.getUserDetailsFromToken().IsKYCValidated ===\r\n \"False\" &&\r\n (UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser))\r\n ? LoginState.KYCWarning\r\n : LoginState.Redirect\r\n );\r\n },\r\n confirmText: t(\"screens:certificates.userCert.submitCert\"),\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (queryUsername && verifyToken) {\r\n verifyTwoFactor(queryUsername, verifyToken);\r\n }\r\n }, [queryUsername, verifyToken, verifyTwoFactor]);\r\n\r\n useEffect(() => {\r\n if (isAuthenticated && globalState.userLoaded) {\r\n setCurState(LoginState.LoggedIn);\r\n }\r\n }, [isAuthenticated, globalState.userLoaded]);\r\n\r\n useEffect(() => {\r\n switch (curState) {\r\n case LoginState.LoggedIn:\r\n if (globals.isMobile) {\r\n setCurState(LoginState.Redirect);\r\n return;\r\n }\r\n if (\r\n !globalState.hasValidUserCertificate &&\r\n !UserService.isInRole(Roles.MasterAdmin) &&\r\n !UserService.isInRole(Roles.Admin) &&\r\n (!UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n (UserService.isInRole(Roles.InstallerCompanyAdmin) &&\r\n globalState.showCertificateWarning))\r\n ) {\r\n setCurState(LoginState.UserCertWarning);\r\n return;\r\n } else if (\r\n UserService.getUserDetailsFromToken().IsKYCValidated ===\r\n \"False\" &&\r\n (UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser))\r\n ) {\r\n setCurState(LoginState.KYCWarning);\r\n return;\r\n } else {\r\n setCurState(LoginState.Redirect);\r\n }\r\n\r\n break;\r\n case LoginState.UserCertWarning:\r\n certToggleOpen();\r\n break;\r\n case LoginState.KYCWarning:\r\n toggleOpen();\r\n break;\r\n case LoginState.Redirect:\r\n history.push(returnUrl);\r\n break;\r\n default:\r\n break;\r\n }\r\n }, [curState]);\r\n\r\n if (queryUsername && verifyToken) {\r\n twoFactor.isRequired = true;\r\n }\r\n if (errorText && errorText.redirectUrl) {\r\n toast.error(`${t(\"exceptions:exception.PasswordExpired\")}`);\r\n return (\r\n \r\n );\r\n }\r\n\r\n const hamdleNoCertWarning = (ev) => {\r\n setChkWarning(ev.target.checked);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {t(\"seo:login.title\")}\r\n \r\n {isAuthenticated && }\r\n \r\n {userCompanies.length === 0 ? (\r\n <>\r\n {\r\n userPassword.current = values.password;\r\n login(values.email, values.password);\r\n }}\r\n verifyOnSubmit={(values) => {\r\n verifyTwoFactor(username, values.code);\r\n }}\r\n errorText={errorText || twoFactorVerify.error}\r\n />\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n {t(\"actions:dialogs.kycWarning.text\")}\r\n {t(\"actions:dialogs.kycWarning.info\")}\r\n \r\n\r\n \r\n \r\n {t(\"screens:certificates.userCert.verification\")}\r\n \r\n {t(\"screens:certificates.userCert.allTech\")}\r\n
    \r\n \r\n {t(\"screens:certificates.userCert.requirement\")}\r\n \r\n
    \r\n {UserService.isInRole(Roles.InstallerCompanyAdmin) && (\r\n hamdleNoCertWarning(ev)}\r\n checked={chkWarning}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoginScreen;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Helmet from \"react-helmet\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link, Redirect, useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport ModuleCards from \"../../components/modules/ModuleCards\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport companyStateModule from \"../../core/state/company/companyStateModule\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport globals from \"../../globalVars\";\r\nimport UserService from \"../../services/User/UserService\";\r\nimport MobileDashboard from \"./MobileDashboard\";\r\nimport useQueryString from \"../../hooks/_shared/useQueryString\";\r\nimport ModalDialog, { useModal } from \"../../components/modal/ModalDialog\";\r\nimport { KYCInfo, KYCWarn } from \"../Login/LoginScreen\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\n\r\nconst CompanyLink = styled(Link)`\r\n color: ${(props) => props.theme.primaryColor};\r\n`;\r\n\r\nconst DashboardScreen = () => {\r\n const { t } = useTranslation(\"moduleCards\");\r\n const { loadCompany } = useStateModule(companyStateModule);\r\n const history = useHistory();\r\n const [globalState] = useSharedState(\"global\");\r\n\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const userCompanyId = userDetails ? userDetails.CompanyId : null;\r\n const firstLogin = useQueryString(\"login\");\r\n\r\n const [KYCWarning, setKYCWarning] = useState({\r\n show: firstLogin === \"1\" || false,\r\n redirect: false,\r\n });\r\n const { setIsVisible } = useLeftMenu();\r\n\r\n useEffect(() => {\r\n loadCompany(userCompanyId);\r\n }, [loadCompany, userCompanyId]);\r\n\r\n useEffect(() => {\r\n setIsVisible(false);\r\n }, []);\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.kycWarning.title\"),\r\n onConfirm: async () => {\r\n setKYCWarning((prevState) => ({\r\n ...prevState,\r\n show: false,\r\n redirect: true,\r\n }));\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n setKYCWarning((prevState) => ({ ...prevState, show: false }));\r\n history.replace(\"/\");\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.kycWarning.submit\"),\r\n });\r\n\r\n if (globals.isMobile) return ;\r\n\r\n const role =\r\n userDetails[\r\n \"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"\r\n ];\r\n\r\n const modules = [\r\n {\r\n name: t(\"stock.salesCenter\"),\r\n image: \"/images/dashboard/sales_center.svg\",\r\n link: RouteCreator.salesCenter.root(),\r\n title: t(\"salesTitle\"),\r\n desc: t(\"salesDesc\"),\r\n shouldShowModule:\r\n userCompanyId !== null &&\r\n (role === Roles.InstallerCompanyAdmin ||\r\n role === Roles.InstallerCompanyUser),\r\n },\r\n {\r\n name: t(\"navigation:services\"),\r\n link: RouteCreator.services.root(),\r\n title: t(\"disposalTitle\"),\r\n desc: t(\"disposalDesc\"),\r\n image: \"/images/dashboard/services.svg\",\r\n shouldShowModule:\r\n globalState.showServicesSection &&\r\n userCompanyId !== null &&\r\n (role === Roles.InstallerCompanyAdmin ||\r\n role === Roles.InstallerCompanyUser),\r\n },\r\n {\r\n name: t(\"navigation:disputes\"),\r\n link: RouteCreator.disputes.root(),\r\n title: t(\"disputesTitle\"),\r\n desc: t(\"disputesDesc\"),\r\n image: \"/images/dashboard/disputes.svg\",\r\n shouldShowModule:\r\n userCompanyId !== null &&\r\n (role === Roles.InstallerCompanyAdmin ||\r\n role === Roles.InstallerCompanyUser),\r\n },\r\n {\r\n name: t(\"stock.salesCenter\"),\r\n image: \"/images/dashboard/sales_center.svg\",\r\n link: RouteCreator.admin.marketplaceStatistics(),\r\n title: t(\"salesTitleAdmin\"),\r\n desc: t(\"salesDescAdmin\"),\r\n shouldShowModule:\r\n role === Roles.Admin || role === Roles.MasterAdmin,\r\n },\r\n {\r\n name: t(\"stock.listing\"),\r\n image: \"/images/dashboard/stock.svg\",\r\n link:\r\n role === Roles.InstallerCompanyTechnician\r\n ? RouteCreator.stock.installer()\r\n : RouteCreator.stock.root(),\r\n title: t(\"stockTitle\"),\r\n desc: t(\"stockDesc\"),\r\n shouldShowModule:\r\n userCompanyId !== null &&\r\n (role === Roles.InstallerCompanyAdmin ||\r\n role === Roles.InstallerCompanyUser ||\r\n role === Roles.InstallerCompanyTechnician),\r\n disabled:\r\n !globalState.hasValidCompanyCertificate ||\r\n (role === Roles.InstallerCompanyTechnician &&\r\n !globalState.hasValidUserCertificate),\r\n },\r\n\r\n {\r\n name: t(\"equipment.list\"),\r\n image: \"/images/dashboard/equipment.svg\",\r\n link: RouteCreator.equipment.root(),\r\n title: t(\"equipTitle\"),\r\n desc: t(\"equipDesc\"),\r\n shouldShowModule:\r\n userCompanyId !== null &&\r\n (role === Roles.InstallerCompanyAdmin ||\r\n role === Roles.InstallerCompanyTechnician),\r\n disabled:\r\n !globalState.hasValidCompanyCertificate ||\r\n (role === Roles.InstallerCompanyTechnician &&\r\n !globalState.hasValidUserCertificate),\r\n },\r\n {\r\n name: t(\"clients.listing\"),\r\n link: RouteCreator.clients.root(),\r\n title: t(\"clientsTitle\"),\r\n desc: t(\"clientsDesc\"),\r\n image: \"/images/dashboard/clients.svg\",\r\n shouldShowModule:\r\n userCompanyId !== null &&\r\n (role === Roles.InstallerCompanyAdmin ||\r\n role === Roles.InstallerCompanyUser),\r\n },\r\n {\r\n name: t(\"navigation:finance\"),\r\n link: RouteCreator.finance.root(),\r\n title: t(\"financeTitle\"),\r\n desc: t(\"financeDesc\"),\r\n image: \"/images/dashboard/finance.svg\",\r\n shouldShowModule:\r\n userCompanyId !== null &&\r\n (role === Roles.InstallerCompanyAdmin ||\r\n role === Roles.InstallerCompanyUser),\r\n },\r\n\r\n {\r\n name: t(\"admin.users\"),\r\n image: \"/images/dashboard/users.svg\",\r\n link: RouteCreator.admin.users.root(),\r\n title: t(\"usersTitle\"),\r\n desc: t(\"usersDesc\"),\r\n shouldShowModule:\r\n role === Roles.Admin || role === Roles.MasterAdmin,\r\n },\r\n {\r\n name: t(\"admin.companies\"),\r\n image: \"/images/dashboard/companies.svg\",\r\n link: RouteCreator.admin.companies.root(),\r\n title: t(\"companiesTitle\"),\r\n desc: t(\"companiesDesc\"),\r\n shouldShowModule:\r\n role === Roles.Admin || role === Roles.MasterAdmin,\r\n },\r\n {\r\n name: t(\"admin.qr\"),\r\n image: \"/images/dashboard/qr.svg\",\r\n link: RouteCreator.admin.qrTags(),\r\n title: t(\"qrTitle\"),\r\n desc: t(\"qrDesc\"),\r\n shouldShowModule:\r\n role === Roles.Admin || role === Roles.MasterAdmin,\r\n },\r\n ];\r\n\r\n if (\r\n KYCWarning.show &&\r\n (UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser))\r\n ) {\r\n if (!modalProps.isOpen) toggleOpen();\r\n }\r\n\r\n if (KYCWarning.redirect) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n Dashboard\r\n \r\n {modules.length === 0 ? (\r\n \r\n You have to have at least one valid licence to use the\r\n application. Please go to{\" \"}\r\n \r\n Company Certificates\r\n \r\n .\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n {t(\"actions:dialogs.kycWarning.text\")}\r\n {t(\"actions:dialogs.kycWarning.info\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DashboardScreen;\r\n","import React from \"react\";\r\nimport QRCode from \"qrcode.react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport helpers from \"../../core/helpers\";\r\nimport AccordionWrapper from \"../../components/toggle-view/AccordionWrapper\";\r\nimport SidebarField from \"../../components/elements/sidebar/SidebarField\";\r\nimport { ReactComponent as InfoSvg } from \"../../assets/orange-info.svg\";\r\n\r\nconst StyledInfo = styled(InfoSvg)`\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 16px;\r\n`;\r\n\r\nconst QRWrapper = styled.div`\r\n text-align: center;\r\n margin-top: 5px;\r\n span {\r\n display: inline-block;\r\n margin-top: 5px;\r\n }\r\n`;\r\n\r\nconst Link = styled.span`\r\n font-weight: 500;\r\n color:#2294D2;\r\n font-size: 14px;\r\n cursor: pointer; \r\n`;\r\n\r\nconst TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 24px;\r\n font-weight: 700;\r\n margin: 12px 0 0;\r\n`;\r\n\r\nconst IssueWrapper = styled.div`\r\n display: flex;\r\n font-size: 12px;\r\n padding-left: 20px;\r\n margin-top: 25px;\r\n`;\r\n\r\nconst CylinderBlock = ({\r\n cylinderId,\r\n tagId,\r\n refrigerantTypeCode,\r\n size,\r\n filledQuantity,\r\n owner,\r\n openAccordion,\r\n setOpenAccordion,\r\n reportIssue,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const tagParts = tagId ? helpers.splitQRTag(tagId) : [];\r\n return (\r\n \r\n {tagId && (\r\n \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n )}\r\n
    \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n {t(\"actions:issueWithCylinder\")}\r\n
    \r\n reportIssue(cylinderId)} >{t(\"actions:reportIssue\")}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default CylinderBlock;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AccordionWrapper from \"../../../components/toggle-view/AccordionWrapper\";\r\nimport { SvgNoImage } from \"../../pwa/components/StyledSvg\";\r\nimport { Box16A9 } from \"../../pwa/components/StyledElements\";\r\nimport CylinderBlock from \"../../../components/sidebar/CylinderBlock\";\r\nimport useAccordionGroup from \"../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst CylinderDetailSideBar = React.forwardRef(\r\n ({ equipment, reportIssue }, ref) => {\r\n const { cylinderData } = equipment;\r\n const {\r\n id,\r\n size,\r\n tagId,\r\n refrigerantTypeCode,\r\n filledQuantity,\r\n imageUrl,\r\n ownerCompanyName,\r\n openAccordionId = null,\r\n } = cylinderData;\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] =\r\n useAccordionGroup(openAccordionId);\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n updateAccordionId(accId) {\r\n setOpenAccordion(accId);\r\n },\r\n }));\r\n return (\r\n <>\r\n {cylinderData && (\r\n <>\r\n \r\n\r\n \r\n \r\n {imageUrl !==\r\n \"/images/cylinder_no_image.svg\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport default CylinderDetailSideBar;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Select from \"../../../components/elements/form-elements/Select\";\r\nimport { Label } from \"../../../components/elements/form-elements\";\r\nimport { ClearableInput } from \"../../../components/elements/form-elements\";\r\nimport Filters from \"../../../components/filter/Filters\";\r\nimport CylinderType from \"../../../core/enums/CylinderType\";\r\nimport useDebouncedCallback from \"../../../hooks/_shared/useDebouncedCallback\";\r\n\r\nconst CylinderFilter = ({ filterState, dispatch, actionTypes, gasTypes }) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [sizeToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_CYLINDER_SIZE_TO,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_CYLINDER_SIZE_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [sizeFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_CYLINDER_SIZE_FROM,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_CYLINDER_SIZE_FROM,\r\n payload: text,\r\n });\r\n });\r\n return (\r\n <>\r\n \r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n })),\r\n ]\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_GAS_TYPE\r\n : actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n {\r\n sizeFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"cylinders.sizeFrom\")}\r\n title={t(\"cylinders.sizeFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n\r\n {\r\n sizeToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"cylinders.sizeTo\")}\r\n title={t(\"cylinders.sizeTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(CylinderFilter);\r\n","import React, { useRef } from \"react\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport CylinderType from \"../../../../core/enums/CylinderType\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst validTagId = (t) => {\r\n return buildValidation({\r\n tagId:ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validNetWeightNumber = (t) => {\r\n return buildValidation({\r\n size: ValidationRule.min(\r\n 0.0,\r\n t(\"forms:bid.wizard.minimumNetWeight\"),\r\n t(\"forms:bid.wizard.minimumNetWeight\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst defaultInitialValues = {\r\n isNewTag: true,\r\n tagId: \"\",\r\n imageFile: \"\",\r\n size: \"0.00\",\r\n refrigerantId: \"\",\r\n quantity: \"\",\r\n cylinderType: 0,\r\n ownerCompanyId: \"\",\r\n};\r\n\r\nconst CylinderWizardAdd = (\r\n t,\r\n searchFn,\r\n cylOwners = [],\r\n initialValues = undefined\r\n) => {\r\n const ownerOptions = [\r\n { key: \"me\", value: \"\", label: t(\"forms:myCompany.text\") },\r\n ...cylOwners.map((own) => ({\r\n key: own.companyId,\r\n value: own.companyId,\r\n label: own.companyName,\r\n })),\r\n ];\r\n return {\r\n title: t(\"forms:cylinder.create\"),\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:cylinder.newCylinderTag\"),\r\n fieldNames: [\"tagId\"],\r\n validation: validTagId(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:cylinder.newCylinderInfoTitle\")}\r\n \r\n \r\n {t(\"forms:cylinder.newCylinderInfoText\")}\r\n
    \r\n {t(\"forms:cylinder.newCylinderInfoText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:cylinder.newCylinderInfo\"),\r\n fieldNames: [\r\n \"size\",\r\n \"imageFile\",\r\n \"refrigerantId\",\r\n \"quantity\",\r\n \"cylinderType\",\r\n \"ownerCompanyId\",\r\n ],\r\n validation: validNetWeightNumber(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:cylinder.newCylinderInfoTitle\"\r\n )}\r\n \r\n \r\n {t(\r\n \"forms:cylinder.newCylinderInfoText3\"\r\n )}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n {/* */}\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default CylinderWizardAdd;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport { Label } from \"../elements/form-elements\";\r\nimport { StyledThumbAction } from \"../elements/form-elements/GalleryUploader\";\r\nimport { UploadInputWrapper } from \"../elements/form-elements/Uploader\";\r\nimport { InputWrapper } from \"../elements/Stylings\";\r\n\r\nconst Anchor = styled.a`\r\n color: ${props => props.theme.textUploader};\r\n text-decoration: none;\r\n`;\r\n\r\nconst RemoveIcon = styled(StyledThumbAction)`\r\n border-radius: 16px;\r\n\r\n > span {\r\n &.visible {\r\n display: block;\r\n }\r\n &.hidden {\r\n display: none;\r\n }\r\n\r\n`;\r\n\r\nconst Content = styled.div`\r\n border-radius: 16px;\r\n position: relative;\r\n\r\n &:hover, &.should-delete {\r\n ${RemoveIcon} {\r\n display: flex;\r\n }\r\n }\r\n`;\r\n\r\nconst Image = styled.div`\r\n background-size: contain;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n max-width: 100%;\r\n max-height: 100%;\r\n width: 100%;\r\n height: calc(100% - 10px);\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n border-radius: 16px;\r\n`;\r\n\r\nconst FileDisplayWithAction = (props) => {\r\n const {\r\n fileType = \"pdf\", fileName, filePath, title, labelText, wrapperVariant, placeholder, handleFileDelete = () => {\r\n }\r\n } = props;\r\n const {t} = useTranslation();\r\n\r\n const [shouldDelete, setShouldDelete] = useState(false);\r\n\r\n const handleRemove = () => {\r\n setShouldDelete(!shouldDelete);\r\n }\r\n\r\n useEffect(() => {\r\n handleFileDelete(shouldDelete)\r\n }, [shouldDelete]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {\r\n fileType === \"pdf\" ?\r\n <>\r\n {\r\n title &&
    {title}
    \r\n }\r\n {\r\n (placeholder && !filePath) &&\r\n
    \r\n {placeholder}\r\n
    \r\n }\r\n {\r\n (fileName && filePath) &&\r\n \r\n {fileName}\r\n \r\n }\r\n \r\n :\r\n \r\n\r\n \r\n }\r\n\r\n
    \r\n \r\n \"delete\"/\r\n {t(\"forms:wizard.undo\")}\r\n \r\n
    \r\n \r\n\r\n\r\n
    \r\n
    \r\n )\r\n};\r\n\r\nexport default FileDisplayWithAction;\r\n","import React from \"react\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport FileDisplayWithAction from \"../../../../components/file-processing/FileDisplayWithAction\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport {\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst defaultInitialValues = {\r\n size: 0.0,\r\n refrigerantTypeCode: \"\",\r\n filledQuantity: 0,\r\n deleteImage: false,\r\n imageFile: \"\",\r\n};\r\n\r\nconst CylinderWizardEdit = (t, searchFn, initialValues = undefined) => {\r\n const handleImageDelete = (shouldDelete, formik) => {\r\n formik.setFieldValue(\"deleteImage\", shouldDelete);\r\n };\r\n\r\n return {\r\n title: t(\"forms:cylinder.edit\"),\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:cylinder.newCylinderInfo\"),\r\n fieldNames: [\r\n \"size\",\r\n \"refrigerantTypeCode\",\r\n \"filledQuantity\",\r\n \"deleteImage\",\r\n \"imageFile\",\r\n ],\r\n onStepRender: (props) => {\r\n if (!props.formik.values.size) {\r\n props.formik.setFieldValue(\"size\", 0.0);\r\n }\r\n },\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:cylinder.editCylinderInfoTitle\"\r\n )}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {formik.values.imageUrl ===\r\n \"/images/cylinder_no_image.svg\" ? (\r\n \r\n ) : (\r\n \r\n handleImageDelete(ev, formik)\r\n }\r\n />\r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default CylinderWizardEdit;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Checkbox } from \"../../../../components/elements/form-elements\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n Separator,\r\n KeyText,\r\n ValueText,\r\n VSpace,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport {\r\n CheckMark,\r\n RadioGroup,\r\n RadioLabel,\r\n RadioWrapper,\r\n} from \"../../../../components/elements/form-elements/Radio\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\n\r\nconst validIssueType = (t) => {\r\n return buildValidation({\r\n issueType: ValidationRule.min(\r\n 0,\r\n t(\"forms:bid.wizard.minimum\"),\r\n t(\"forms:bid.wizard.minimum\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst validIssueDesc = (t) => {\r\n return buildValidation({\r\n issueDescription: ValidationRule.isStringRule().required(\r\n t(\"forms:cylinder.wizard.issueDescriptionRequired\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst WizardCylinderIssue = (t) => {\r\n return {\r\n title: t(\"forms:cylinder.wizard.reportIssue\"),\r\n initialValues: { issueType: -1, issueDescription: \"\" },\r\n steps: [\r\n {\r\n name: t(\"forms:cylinder.wizard.issueType\"),\r\n fieldNames: [\"issueType\"],\r\n validation: validIssueType(t),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:cylinder.wizard.issueTitle\")}\r\n \r\n \r\n {t(\"forms:cylinder.wizard.issueTypeText\")}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n {t(\r\n \"forms:cylinder.wizard.issueType0\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\r\n \"forms:cylinder.wizard.issueType1\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\r\n \"forms:cylinder.wizard.issueType2\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\r\n \"forms:cylinder.wizard.issueType3\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\r\n \"forms:cylinder.wizard.issueType4\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },{\r\n name: t(\"forms:cylinder.wizard.issueDescription\"),\r\n fieldNames: [\"issueDescription\"],\r\n validation: validIssueDesc(t),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:cylinder.wizard.issueTitle\")}\r\n \r\n \r\n {t(\"forms:cylinder.wizard.issueDescText\")}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default WizardCylinderIssue;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataCellImage from \"../../components/data/DataCellImage\";\r\nimport ListingPage from \"../../components/data/ListingPage\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport HamburgerMenu from \"../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../components/menu/HamburgerMenuAction\";\r\nimport ModalDialog, { useModal } from \"../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../core/AuthorizeComponent\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport cylinderListStateModule from \"../../core/state/company/cylinderListStateModule\";\r\nimport useBreadcrumbs from \"../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../hooks/_shared/usePageChange\";\r\nimport CompanyService from \"../../services/Company/CompanyService\";\r\nimport TagsService from \"../../services/Tags/TagsService\";\r\nimport CylinderDetailSideBar from \"./components/CylinderDetailSideBar\";\r\nimport CylinderFilter from \"./components/CylinderFilter\";\r\nimport CylinderWizardAdd from \"./components/wizard/CylinderWizardAdd\";\r\nimport CylinderWizardEdit from \"./components/wizard/CylinderWizardEdit\";\r\nimport helpers from \"../../core/helpers\";\r\nimport ActionButton from \"../../components/elements/buttons/ActionButton\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\nimport WizardCylinderIssue from \"./components/wizard/WizardCylinderIssue\";\r\n\r\nconst TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 20px;\r\n font-weight: 700;\r\n margin-top: 10px;\r\n`;\r\n\r\nconst Qr = styled.span`\r\n font-size: 10px;\r\n`;\r\n\r\nconst KeyValue = styled.div`\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n & .value {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst CylTypeCell = styled.div`\r\n width: 100%;\r\n color: ${(p) => p.theme.primaryColor};\r\n font-size: 14px;\r\n margin-bottom: 5px;\r\n`;\r\n\r\nconst KeyValueCell = (key, value) => {\r\n return (\r\n \r\n {key}\r\n {value}\r\n \r\n );\r\n};\r\n\r\nconst actionTypes = {\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_SIZE: \"SET_SIZE\",\r\n RESET_SIZE: \"RESET_SIZE\",\r\n SET_CYL_TYPE: \"SET_CYL_TYPE\",\r\n RESET_CYL_TYPE: \"RESET_CYL_TYPE\",\r\n SET_CYLINDER_SIZE_FROM: \"SET_CYLINDER_SIZE_FROM\",\r\n SET_CYLINDER_SIZE_TO: \"SET_CYLINDER_SIZE_TO\",\r\n RESET_CYLINDER_SIZE_FROM: \"RESET_CYLINDER_SIZE_FROM\",\r\n RESET_CYLINDER_SIZE_TO: \"RESET_CYLINDER_SIZE_TO\",\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.refrigerantTypeCode = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.refrigerantTypeCode;\r\n break;\r\n case actionTypes.SET_SIZE:\r\n state.filter.size = action.payload;\r\n break;\r\n case actionTypes.RESET_SIZE:\r\n delete state.filter.size;\r\n break;\r\n case actionTypes.SET_CYL_TYPE:\r\n state.filter.cylinderType = action.payload;\r\n break;\r\n case actionTypes.RESET_CYL_TYPE:\r\n delete state.filter.cylinderType;\r\n break;\r\n case actionTypes.SET_CYLINDER_SIZE_FROM:\r\n state.filter.cylinderSizeFrom = Number(action.payload);\r\n break;\r\n case actionTypes.SET_CYLINDER_SIZE_TO:\r\n state.filter.cylinderSizeTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_CYLINDER_SIZE_FROM:\r\n delete state.filter.cylinderSizeFrom;\r\n break;\r\n case actionTypes.RESET_CYLINDER_SIZE_TO:\r\n delete state.filter.cylinderSizeTo;\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nconst CylindersList = () => {\r\n const sidebarRef = React.useRef();\r\n const { t } = useTranslation(\"screens\");\r\n const [globalState] = useSharedState(\"global\");\r\n const {\r\n cylinders,\r\n isLoading,\r\n error,\r\n loadCylinders,\r\n loadCylinderById,\r\n details,\r\n deleteCylinder,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(cylinderListStateModule);\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [selectedCylinder, setSelectedCylinder] = useState(null);\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupCylinderTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {},\r\n page: 1,\r\n pageSize: 10,\r\n });\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n const reportIssue = async (cylinderId) => {\r\n ModalWizard.show(\r\n WizardCylinderIssue(t),\r\n {\r\n onSubmit: async (values) => {\r\n values.cylinderId = cylinderId;\r\n values.issueType = Number(values.issueType);\r\n const result = await TagsService.addCylinderIssueAsync(values);\r\n if (result && result.error) ModalWizard.submitFailed(t(result.error.message));\r\n //toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.reportCylinder.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"708px\" } }\r\n );\r\n };\r\n\r\n const createNewCylinder = async (ev) => {\r\n ev.preventDefault();\r\n const res = await CompanyService.getDistributors();\r\n const cylOwners = res.data?.data || [];\r\n ModalWizard.show(\r\n CylinderWizardAdd(t, queryCylinderTags, cylOwners),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.ownerCompanyId === \"\") delete values.ownerCompanyId;\r\n const result = await CompanyService.createCompanyCylinderAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result && result.error) ModalWizard.submitFailed(t(result.error.message));\r\n //toast.error(t(result.error.message));\r\n else {\r\n loadCylinders(filterState);\r\n toast.success(t(\"actions:dialogs.createCylinder.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"708px\" } }\r\n );\r\n };\r\n\r\n const editCylinder = async (cylinderId) => {\r\n const cylinder = await CompanyService.getCompanyCylinderByIdAsync(cylinderId);\r\n if (cylinder.error) {\r\n toast(cylinder.error.message);\r\n return;\r\n }\r\n ModalWizard.show(\r\n CylinderWizardEdit(t, queryCylinderTags, cylinder.data.data[0]),\r\n {\r\n onSubmit: async (values) => {\r\n /* update cylinder */\r\n const result = await CompanyService.updateCylinderAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n loadCylinders(filterState);\r\n toast.success(t(\"actions:dialogs.editCylinder.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"600px\" } }\r\n );\r\n };\r\n\r\n const cardColumns = [\"cylinderType\", \"imageUrl\", \"size\", \"refrigerantTypeCode\", \"tagId\", \"id\"];\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: \"\",\r\n accessor: \"cylinderType\",\r\n Cell: ({ cell: { value } }) => {\r\n let typeName =\r\n value === 0\r\n ? t(\"filters:cylinders.recovery\")\r\n : t(\"filters:cylinders.reclaimed\");\r\n return {typeName};\r\n },\r\n },\r\n {\r\n Header: () => null,\r\n accessor: \"imageUrl\",\r\n Cell: ({ cell }) => {\r\n if (!cell.value) {\r\n cell.value = \"/images/cylinder_no_image.svg\";\r\n }\r\n return ;\r\n },\r\n },\r\n {\r\n Header: t(\"equipment.headers.size\"),\r\n accessor: \"size\",\r\n Cell: ({ cell: { value } }) =>\r\n KeyValueCell(t(\"forms:cylinderSize.text\"), value.toFixed(2) + \" kg\"),\r\n },\r\n {\r\n Header: t(\"equipment.headers.refrigerantTypeCode\"),\r\n accessor: \"refrigerantTypeCode\",\r\n Cell: ({ cell: { row, value } }) => {\r\n const val = value\r\n ? value + \" - \" + row.original.filledQuantity.toFixed(2) + \" kg\"\r\n : t(\"equipment.emptyCylinder\");\r\n\r\n return KeyValueCell(t(\"forms:cylinder.cylinderGas\"), val);\r\n },\r\n },\r\n {\r\n Header: t(\"equipment.headers.refrigerantTypeCode\"),\r\n accessor: \"tagId\",\r\n Cell: ({ cell: { value } }) => {\r\n const tagParts = value ? helpers.splitQRTag(value) : [\"\", \"\"];\r\n return (\r\n <>\r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { value, row } }) => {\r\n return (\r\n \r\n \r\n 0 ||\r\n row.original.ownerCompanyId !== globalState.userCompanyId\r\n }\r\n text={t(\"actions:edit\")}\r\n onClick={() => {\r\n editCylinder(value);\r\n }}\r\n />\r\n 0 ||\r\n row.original.ownerCompanyId !== globalState.userCompanyId\r\n }\r\n text={t(\"actions:delete\")}\r\n onClick={() => {\r\n setSelectedCylinder(\r\n cylinders.data.filter((c) => c.id === value)\r\n );\r\n toggleOpen(value);\r\n }}\r\n />\r\n {\r\n reportIssue(value);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n createNewCylinder[\r\n // eslint-disable-next-line\r\n (cylinders, t)\r\n ]\r\n );\r\n\r\n useEffect(() => {\r\n loadCylinders(filterState);\r\n }, [loadCylinders, filterState]);\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n await loadCylinderById(row.original.id);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [loadCylinderById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setOpenAccordionId(null);\r\n sidebarRef.current.updateAccordionId(null);\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:company\"),\r\n },\r\n {\r\n text: t(\"navigation:equipment\"),\r\n },\r\n {\r\n text: t(\"navigation:cylinders\"),\r\n },\r\n ]);\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.deleteCylinder.title\"),\r\n onConfirm: async (equipment) => {\r\n await deleteCylinder(equipment).then(() => {\r\n loadCylinders(filterState);\r\n });\r\n toggleOpen();\r\n toast.success(t(\"cylinderListing.toastNotification.success\"));\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteEquipment.confirmText\"),\r\n cancelFirst: true,\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:cylinderList.title\")}\r\n \r\n (\r\n \r\n )}\r\n columns={columns}\r\n mode=\"cards\"\r\n tableState={{\r\n data: cylinders.data,\r\n loading: isLoading,\r\n error: error,\r\n }}\r\n actions={{\r\n headerActions: () => {\r\n return (\r\n \r\n \r\n \r\n {t(\"actions:addCylinder\")}\r\n \r\n \r\n \r\n );\r\n },\r\n }}\r\n paging={{\r\n numPageButtons: 5,\r\n enablePaging: true,\r\n pageCount: cylinders.totalPages,\r\n pageSize: filterState.pageSize,\r\n onPageChange: pageChange,\r\n currentPageIndex: cylinders.currentPage ? cylinders.currentPage - 1 : 0,\r\n }}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailSideBarTitle={t(\"sidebar:title.extraction.extractionCylinderDetails\")}\r\n detailView={\r\n \r\n }\r\n detailViewIsOpened={detailViewIsOpened}\r\n cardColumns={cardColumns}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n />\r\n \r\n

    {t(\"actions:dialogs.deleteCylinder.text\")}

    \r\n

    \r\n {selectedCylinder &&\r\n selectedCylinder.length > 0 &&\r\n `• ${selectedCylinder[0].tagId} | ${selectedCylinder[0].size.toFixed(\r\n 2\r\n )} kg`}\r\n

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default CylindersList;\r\n","import React from \"react\";\r\nimport QRCode from \"qrcode.react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport helpers from \"../../core/helpers\";\r\nimport AccordionWrapper from \"../../components/toggle-view/AccordionWrapper\";\r\nimport SidebarField from \"../../components/elements/sidebar/SidebarField\";\r\nimport { ReactComponent as InfoSvg } from \"../../assets/orange-info.svg\";\r\n\r\nconst StyledInfo = styled(InfoSvg)`\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 16px;\r\n`;\r\n\r\nconst QRWrapper = styled.div`\r\n text-align: center;\r\n margin-top: 5px;\r\n span {\r\n display: inline-block;\r\n margin-top: 5px;\r\n }\r\n`;\r\n\r\nconst Link = styled.span`\r\n font-weight: 500;\r\n color: #2294d2;\r\n font-size: 14px;\r\n cursor: pointer;\r\n`;\r\n\r\nconst TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 24px;\r\n font-weight: 700;\r\n margin: 12px 0 0;\r\n`;\r\n\r\nconst IssueWrapper = styled.div`\r\n display: flex;\r\n font-size: 12px;\r\n padding-left: 20px;\r\n margin-top: 25px;\r\n`;\r\n\r\nconst AnalyzerBlock = ({ tagId, name, macAddress, openAccordion, setOpenAccordion }) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const tagParts = tagId ? helpers.splitQRTag(tagId) : [];\r\n return (\r\n \r\n {tagId && (\r\n \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n )}\r\n
    \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AnalyzerBlock;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper from \"../../../components/toggle-view/AccordionWrapper\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport useAccordionGroup from \"../../../hooks/_shared/useAccordionGroup\";\r\nimport { Box16A9 } from \"../../pwa/components/StyledElements\";\r\nimport { SvgNoImage } from \"../../pwa/components/StyledSvg\";\r\nimport AnalyzerBlock from \"../../../components/sidebar/AnalyzerBlock\";\r\n\r\nconst EquipmentDetailSideBar = ({ equipment }) => {\r\n const { equipmentData } = equipment;\r\n const { name, tagId, macAddress, imageUrl, description } = equipmentData;\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup(\"title_userAccount\");\r\n return (\r\n <>\r\n {equipmentData && (\r\n <>\r\n \r\n\r\n \r\n \r\n {imageUrl !== \"/images/cylinder_no_image.svg\" ? (\r\n \"unit\"\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n

    {description ? description : \"-\"}

    \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EquipmentDetailSideBar;\r\n","import React from \"react\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../components/modal/components/WizardStyling\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nconst defaultInitialValuesEdit = {\r\n tagId: \"\",\r\n name: \"\",\r\n description: \"\",\r\n macAddress: \"\",\r\n imageFile: \"\",\r\n};\r\n\r\nconst defaultInitialValuesAdd = {\r\n tagId: \"\",\r\n name: \"\",\r\n description: \"\",\r\n macAddress: \"\",\r\n imageFile: \"\",\r\n};\r\n\r\nconst lookupUnassignedTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnassignedTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n};\r\n\r\nconst validTagId = (t) => {\r\n return buildValidation({\r\n tagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validAnalyzer = (t) => {\r\n return buildValidation({\r\n macAddress: ValidationRule.isStringRule()\r\n .regexMatchRule(\r\n /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/i,\r\n t(\"forms:analyzer.wizard.macInvalid\")\r\n )\r\n .required(t(\"forms:analyzer.wizard.macRequired\")).rule,\r\n name: ValidationRule.isStringRule().required(t(\"forms:analyzer.wizard.nameRequired\")).rule,\r\n });\r\n};\r\n\r\nconst EquipmentWizard = (t, initialValues = [], isEdit = false, preFill = \"\") => {\r\n if (preFill) defaultInitialValuesAdd.name = preFill;\r\n const steps = [];\r\n if (!isEdit) {\r\n steps.push({\r\n name: t(\"forms:analyzer.wizard.step1Title\"),\r\n fieldNames: [\"tagId\"],\r\n validation: validTagId(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {isEdit\r\n ? t(\"forms:equipment.editEquipmentTitle\")\r\n : t(\"forms:analyzer.wizard.infoTitle\")}\r\n \r\n \r\n {t(\"forms:analyzer.wizard.infoText\")}\r\n
    \r\n {t(\"forms:analyzer.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n ),\r\n });\r\n }\r\n\r\n steps.push({\r\n name: t(\"forms:analyzer.wizard.step2Title\"),\r\n fieldNames: [\"macAddress\", \"name\", \"description\", \"imageFile\"],\r\n validation: validAnalyzer(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {isEdit\r\n ? t(\"forms:equipment.editEquipmentTitle\")\r\n : t(\"forms:analyzer.wizard.infoTitle\")}\r\n \r\n \r\n {t(\"forms:analyzer.wizard.infoText\")}\r\n
    \r\n {t(\"forms:analyzer.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n },\r\n });\r\n\r\n return {\r\n title: isEdit ? t(\"forms:analyzer.editAnalyzer\") : t(\"forms:analyzer.addAnalyzer\"),\r\n initialValues:\r\n initialValues || (isEdit ? defaultInitialValuesEdit : defaultInitialValuesAdd),\r\n steps,\r\n };\r\n};\r\n\r\nexport default EquipmentWizard;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport DataCellImage from \"../../components/data/DataCellImage\";\r\nimport ListingPage from \"../../components/data/ListingPage\";\r\nimport NullableCell from \"../../components/data/NullableCell\";\r\nimport Anchor from \"../../components/elements/form-elements/Link\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport HamburgerMenu from \"../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../components/menu/HamburgerMenuAction\";\r\nimport ModalDialog, { useModal } from \"../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../core/AuthorizeComponent\";\r\nimport Roles from \"../../core/enums/Roles\";\r\nimport equipmentListStateModule from \"../../core/state/company/equipmentListStateModule\";\r\nimport useBreadcrumbs from \"../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../hooks/_shared/usePageChange\";\r\nimport CompanyService from \"../../services/Company/CompanyService\";\r\nimport AttestationStatusCell from \"./components/AttestationStatusCell\";\r\nimport EquipmentDetailSideBar from \"./components/EquipmentDetailSideBar\";\r\nimport EquipmentWizard from \"./components/wizard/EquipmentWizard\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport helpers from \"../../core/helpers\";\r\nimport ActionButton from \"../../components/elements/buttons/ActionButton\";\r\nimport UserService from \"../../services/User/UserService\";\r\nimport { eq } from \"lodash\";\r\n\r\nconst TagTitle = styled.div`\r\n width: 100%;\r\n font-size: 20px;\r\n font-weight: 700;\r\n margin-top: 10px;\r\n`;\r\n\r\nconst Qr = styled.span`\r\n font-size: 10px;\r\n`;\r\n\r\nconst KeyValue = styled.div`\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n & .value {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst CylTypeCell = styled.div`\r\n width: 100%;\r\n color: ${(p) => p.theme.primaryColor};\r\n font-size: 14px;\r\n margin-bottom: 5px;\r\n`;\r\n\r\nconst KeyValueCell = (key, value) => {\r\n return (\r\n \r\n {key}\r\n {value}\r\n \r\n );\r\n};\r\n\r\nconst pageReducer = (state, action) => {\r\n if (action.type === \"SET_PAGING\") {\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst EquipmentList = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const { CompanyName } = UserService.getUserDetailsFromToken();\r\n const {\r\n equipment,\r\n isLoading,\r\n error,\r\n loadEquipment,\r\n loadEquipmentById,\r\n details,\r\n deleteEquipment,\r\n } = useStateModule(equipmentListStateModule);\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const [selectedEquipment, setSelectedEquipment] = useState(null);\r\n\r\n const createNewEquipment = async (ev) => {\r\n ev.preventDefault();\r\n const eqNum = equipment.data?.length ? equipment.data.length + 1 : 1;\r\n const preFill = `${CompanyName} ${t(\"screens:statistics.fGasAnalyzerTitle\")} ${eqNum}`;\r\n ModalWizard.show(\r\n EquipmentWizard(t, null, false, preFill),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await CompanyService.createGasAnalyzerAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result.error) toast.error(t(result.error.message));\r\n else {\r\n loadEquipment(equipmentState);\r\n toast.success(\r\n t(\"actions:dialogs.createEquipment.toastNotification.success\")\r\n );\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minWidth: \"760px\" } }\r\n );\r\n };\r\n\r\n const editEquipment = async (equipmentId) => {\r\n const result = await CompanyService.getMyGasAnalyzerByIdAsync(equipmentId);\r\n if (result.error) toast.error(result.error.message);\r\n else {\r\n const initialData = result.data.data[0];\r\n delete initialData.companyId;\r\n delete initialData.createdDate;\r\n initialData.imageFile = initialData.imageUrl;\r\n delete initialData.imageUrl;\r\n\r\n ModalWizard.show(\r\n EquipmentWizard(t, initialData, true),\r\n {\r\n onSubmit: async (values) => {\r\n if (\r\n typeof values.imageFile === \"string\" ||\r\n values.imageFile instanceof String\r\n ) {\r\n values.imageFile = [];\r\n } else if (Array.isArray(values.imageFile) && !values.imageFile.length) {\r\n values.deleteImage = true;\r\n }\r\n\r\n const result = await CompanyService.updateGasAnalyzerAsync(\r\n ModalWizard.asFormData(values)\r\n );\r\n if (result.error) toast.error(t(result.error.message));\r\n else {\r\n loadEquipment(equipmentState);\r\n toast.success(t(\"actions:dialogs.editUnit.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minWidth: \"760px\" } }\r\n );\r\n }\r\n };\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"equipment.headers.name\"),\r\n accessor: \"name\",\r\n Cell: ({ cell: { value } }) => {\r\n return {value};\r\n },\r\n },\r\n {\r\n Header: () => null,\r\n accessor: \"imageUrl\",\r\n Cell: ({ cell }) => {\r\n if (!cell.value) {\r\n cell.value = \"/images/analyzer.svg\";\r\n }\r\n return ;\r\n },\r\n },\r\n {\r\n Header: t(\"equipment.headers.refrigerantTypeCode\"),\r\n accessor: \"macAddress\",\r\n Cell: ({ cell: { row, value } }) => {\r\n return KeyValueCell(t(\"forms:analyzer.wizard.macAddress\"), value);\r\n },\r\n },\r\n {\r\n Header: t(\"equipment.headers.refrigerantTypeCode\"),\r\n accessor: \"tagId\",\r\n Cell: ({ cell: { value } }) => {\r\n const tagParts = value ? helpers.splitQRTag(value) : [\"\", \"\"];\r\n return (\r\n <>\r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"id\",\r\n Cell: ({ cell: { value } }) => (\r\n \r\n \r\n {\r\n setSelectedEquipment(\r\n equipment.data.filter((e) => e.id === value)\r\n );\r\n toggleOpen(value);\r\n }}\r\n />\r\n \r\n {\r\n editEquipment(value);\r\n }}\r\n />\r\n \r\n ),\r\n },\r\n ],\r\n // eslint-disable-next-line\r\n [t]\r\n );\r\n\r\n useEffect(() => {\r\n loadEquipment(equipmentState);\r\n }, [loadEquipment]);\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n await loadEquipmentById(row.original.id);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [loadEquipmentById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:company\"),\r\n },\r\n {\r\n text: t(\"navigation:equipment\"),\r\n },\r\n {\r\n text: t(\"navigation:gasAnalyzers\"),\r\n },\r\n ]);\r\n\r\n const cardColumns = [\"name\", \"imageUrl\", \"macAddress\", \"tagId\", \"id\"];\r\n\r\n const [equipmentState, dispatch] = useImmerReducer(pageReducer, {\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"\",\r\n descending: true,\r\n filter: {},\r\n });\r\n\r\n const pageChange = usePageChange(dispatch, equipmentState);\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.deleteEquipment.title\"),\r\n onConfirm: async (equipment) => {\r\n debugger;\r\n return;\r\n await deleteEquipment({ gasAnalyzerId: equipment }).then(() => {\r\n loadEquipment();\r\n });\r\n toggleOpen();\r\n toast.success(t(\"equipmentListing.toastNotification.success\"));\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.deleteEquipment.confirmText\"),\r\n cancelFirst: true,\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:equipmentList.title\")}\r\n \r\n {\r\n return (\r\n \r\n \r\n \r\n {t(\"forms:analyzer.addAnalyzer\")}\r\n \r\n \r\n \r\n );\r\n },\r\n }}\r\n paging={{\r\n enablePaging: true,\r\n pageCount: equipment.totalPages,\r\n pageSize: equipment.pageSize,\r\n onPageChange: pageChange,\r\n currentPageIndex: equipment.currentPage ? equipment.currentPage - 1 : 0,\r\n }}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailView={}\r\n detailViewIsOpened={detailViewIsOpened}\r\n cardColumns={cardColumns}\r\n />\r\n \r\n

    {t(\"actions:dialogs.deleteEquipment.text\")}

    \r\n

    {selectedEquipment && selectedEquipment[0].name}

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default EquipmentList;\r\n","import React from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport companyAdminMenuItems from \"../../data/menu/companyAdminMenuItems\";\r\nimport CylindersList from \"./CylindersList\";\r\nimport EquipmentList from \"./EquipmentList\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\n\r\nconst EquipmentScreen = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n useLeftMenu(companyAdminMenuItems(globalState));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EquipmentScreen;\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, { apiResult } from \"../getAxios\";\r\n\r\nconst ForgottenPasswordService = {\r\n sendRequest: (username) => {\r\n return api.post(config.apiUrl.forgottenPassword, { username });\r\n },\r\n sendRequestAsync: (username) => {\r\n return apiResult(api.post(config.apiUrl.forgottenPassword, { username }));\r\n },\r\n};\r\n\r\nexport default ForgottenPasswordService;\r\n","import React, { useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ForgottenPasswordService from \"../../services/ForgottenPassword/ForgottenPasswordService\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../core/validations/ValidationRule\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport DataEntry from \"../../components/data-entry/DataEntry\";\r\nimport InputElement from \"../../components/elements/form-elements/InputElement\";\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\nimport { InputSubmit } from \"../../components/elements/form-elements\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport LayoutOneTwo from \"../../components/layout/split/one-two/LayoutOneTwo\";\r\nimport NavigationLink from \"../../components/elements/links/NavigationLink\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst Section = styled.div`\r\n font-size: 20px;\r\n padding: 0px;\r\n margin-bottom: 16px;\r\n &.bold {\r\n font-weight: 600;\r\n margin-bottom: 24px;\r\n }\r\n & span {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n & div.email {\r\n margin-top: 16px;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nconst Circle = styled.div`\r\n width: 44px;\r\n height: 44px;\r\n line-height: 40px;\r\n font-weight: 700;\r\n font-size: 26px;\r\n text-align: center;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border: 3px solid ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n float: left;\r\n margin-right: 25px;\r\n\r\n & img {\r\n height: 20px;\r\n margin-top: 10px;\r\n }\r\n`;\r\n\r\nconst OrangeInfo = styled.img`\r\n width: 44px;\r\n height: 44px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst BigTitle = styled.div`\r\n font-size: 20px;\r\n font-weight: 700;\r\n\r\n &.regular {\r\n font-weight: 400;\r\n }\r\n\r\n &.vspace {\r\n margin-top: 20px;\r\n margin-bottom: 20px;\r\n }\r\n`;\r\n\r\nconst initialValues = {\r\n username: \"\",\r\n};\r\n\r\nconst FormValidation = (t) => {\r\n return buildValidation({\r\n username: ValidationRule.isStringRule().required(\r\n t(\"forms:username.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst ForgottenPasswordForm = ({ formik }) => {\r\n const { t } = new useTranslation();\r\n return (\r\n <>\r\n \r\n \r\n {t(\"screens:forgottenPassword.title\")}\r\n \r\n\r\n \r\n \r\n {t(\"screens:forgottenPassword.info\")}\r\n \r\n\r\n \r\n {t(\"screens:forgottenPassword.itHappens\")}\r\n \r\n\r\n \r\n {t(\"screens:forgottenPassword.submitAccount\")}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst ForgottenPasswordScreen = () => {\r\n const { t } = useTranslation();\r\n const enteredUsername = useRef(\"e@mail.com\");\r\n const timeoutFn = useRef(null);\r\n const [requestSent, setRequestSent] = useState(false);\r\n const yupValidation = FormValidation(t);\r\n\r\n const requestPassReset = async (values) => {\r\n enteredUsername.current = values.username;\r\n const result = await ForgottenPasswordService.sendRequestAsync(\r\n values.username\r\n );\r\n if (result.error) toast.error(t(result.error.message));\r\n else {\r\n setRequestSent(true);\r\n }\r\n };\r\n\r\n const requestResend = async (ev) => {\r\n ev.preventDefault();\r\n if (!enteredUsername.current) return;\r\n const result = await ForgottenPasswordService.sendRequestAsync(\r\n enteredUsername.current\r\n );\r\n if (result.error) toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"screens:forgottenPassword.thankYou\"));\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:forgottenPassword.title\")}\r\n \r\n \r\n \r\n {requestSent && (\r\n \r\n \r\n \r\n \r\n {t(\"screens:forgottenPassword.title\")}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {t(\r\n \"screens:forgottenPassword.requestSubmitted\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:forgottenPassword.emailSent\"\r\n )}\r\n :\r\n
    \r\n {enteredUsername.current}\r\n
    \r\n
    \r\n
    \r\n {t(\r\n \"screens:forgottenPassword.emailNotReceived\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {t(\"screens:forgottenPassword.resend\")}\r\n \r\n \r\n |\r\n \r\n\r\n {\r\n if (timeoutFn.current)\r\n clearTimeout(timeoutFn.current);\r\n }}\r\n >\r\n {t(\r\n \"screens:forgottenPassword.backToLoginLink\"\r\n )}\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n {!requestSent && (\r\n \r\n (\r\n \r\n )}\r\n initialValues={initialValues}\r\n onSubmit={requestPassReset}\r\n validationSchema={yupValidation}\r\n />\r\n\r\n \r\n \r\n {t(\r\n \"screens:forgottenPassword.backToLoginLink\"\r\n )}\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ForgottenPasswordScreen;\r\n","import { config } from \"../Config/config.prod\";\r\nimport api, { apiResult } from \"../getAxios\";\r\n\r\nconst ResetPasswordService = {\r\n sendRequest: ({username, password, token}) => {\r\n return api.post(config.apiUrl.resetPassword, {username, password, token})\r\n },\r\n sendRequestAsync: ({username, password, token}) => {\r\n return apiResult(api.post(config.apiUrl.resetPassword, {username, password, token}));\r\n }\r\n};\r\nexport default ResetPasswordService;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport InputElement from \"../../components/elements/form-elements/InputElement\";\r\nimport { InputSubmit } from \"../../components/elements/form-elements\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Section = styled.div`\r\n font-size: 20px;\r\n padding: 0px 0px;\r\n margin-bottom: 35px;\r\n &.bold {\r\n font-weight: 600;\r\n margin-bottom: 24px;\r\n }\r\n & span {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n padding: 0;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n &.space {\r\n margin-top: 150px;\r\n }\r\n`;\r\nconst Circle = styled.div`\r\n min-width: 44px;\r\n width: 44px;\r\n height: 44px;\r\n line-height: 42px;\r\n font-weight: 700;\r\n font-size: 26px;\r\n text-align: center;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border: 3px solid ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n float: left;\r\n margin-right: 25px;\r\n\r\n & img {\r\n height: 20px;\r\n margin-top: 10px;\r\n }\r\n`;\r\n\r\nconst InputWrap = styled.div`\r\n width: 380px;\r\n @media ${(p) => p.theme.device.mobile} {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst FlexNoWrap = styled.div`\r\n display: flex;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n position: relative;\r\n &.between {\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nconst PassInfo = styled.div`\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #898989;\r\n line-height: 18px;\r\n & ul {\r\n margin: 0;\r\n padding-inline-start: 15px;\r\n }\r\n & ul.dashed {\r\n list-style-type: none;\r\n }\r\n & ul.dashed > li {\r\n text-indent: -5px;\r\n }\r\n & ul.dashed > li:before {\r\n content: \"-\";\r\n text-indent: -5px;\r\n }\r\n`;\r\n\r\nexport const ResetPasswordForm = ({ formik, loading, isCompleted }) => {\r\n const { t } = new useTranslation();\r\n\r\n if (isCompleted) {\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n
    {t(\"screens:resetPassword.passwordSaved\")}
    \r\n
    \r\n
    \r\n Your will be automatically re-directed to a login page.\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {t(\"screens:login.passInfo\")}\r\n
      \r\n
    • {t(\"screens:login.passLower\")}
    • \r\n
    • {t(\"screens:login.passUpper\")}
    • \r\n
    • {t(\"screens:login.passDigits\")}
    • \r\n
    • {t(\"screens:login.passSymbols\")}
    • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"Ellipse_4\",\n x: 0,\n y: 0,\n width: 53,\n height: 53,\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 2,\n dy: 2,\n input: \"SourceAlpha\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5,\n result: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0.161\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n operator: \"in\",\n in2: \"blur\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"SourceGraphic\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1316\",\n \"data-name\": \"Group 1316\",\n transform: \"translate(-137.5 -343.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(1, 0, 0, 1, 137.5, 343.5)\",\n filter: \"url(#Ellipse_4)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_4-2\",\n \"data-name\": \"Ellipse 4\",\n transform: \"translate(2.5 2.5)\",\n fill: \"#f5f5f5\",\n stroke: \"#e94e4e\",\n strokeWidth: 4\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22,\n cy: 22,\n r: 22,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22,\n cy: 22,\n r: 20,\n fill: \"none\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_26_4\",\n \"data-name\": \"Component 26 \\\\u2013 4\",\n transform: \"translate(156 362)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n x2: 12,\n y2: 12,\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_25_1\",\n \"data-name\": \"Component 25 \\\\u2013 1\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_13\",\n \"data-name\": \"Line 13\",\n y1: 12,\n x2: 12,\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}))));\n\nvar SvgWarningCircle = function SvgWarningCircle(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 53,\n height: 53,\n viewBox: \"0 0 53 53\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWarningCircle, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/warning-circle.a50686c0.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect } from \"react\";\r\nimport DataEntry from \"../../components/data-entry/DataEntry\";\r\nimport commonValidation from \"../../core/validations/common\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { buildValidation } from \"../../core/validations/ValidationRule\";\r\nimport ResetPasswordService from \"../../services/ResetPassword/ResetPasswordService\";\r\nimport ValidationRule from \"../../core/validations/ValidationRule\";\r\nimport useQueryString from \"../../hooks/_shared/useQueryString\";\r\nimport { ResetPasswordForm } from \"./ResetPasswordForm\";\r\n\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\n\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport LayoutOneTwo from \"../../components/layout/split/one-two/LayoutOneTwo\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport gasBottle from \"../../assets/gasBottle.png\";\r\nimport NavigationLink from \"../../components/elements/links/NavigationLink\";\r\nimport { toast } from \"react-toastify\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as WarningSvg } from \"../../assets/warning-circle.svg\";\r\n\r\nconst initialValues = {\r\n password: \"\",\r\n repeatPassword: \"\",\r\n};\r\n\r\nconst WarningIcon = styled(WarningSvg)`\r\n min-width: 44px;\r\n width: 44px;\r\n height: 44px;\r\n`;\r\n\r\nconst LinksWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n`;\r\n\r\nconst PasswordExpiredNote = styled.div`\r\n margin-bottom: 25px;\r\n /* color: ${(props) => props.theme.secondaryNegativeColor}; */\r\n font-weight: 800;\r\n font-size: 20px;\r\n display: flex;\r\n width: 100%;\r\n & > div {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n`;\r\n\r\nconst OrangeInfo = styled.img`\r\n width: 44px;\r\n height: 44px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst BigTitle = styled.div`\r\n font-size: 20px;\r\n font-weight: 700;\r\n\r\n &.regular {\r\n font-weight: 400;\r\n }\r\n\r\n &.vspace {\r\n margin-top: 32px;\r\n margin-bottom: 32px;\r\n }\r\n`;\r\n\r\nconst getFormValidation = (t) => {\r\n return buildValidation({\r\n password: commonValidation.password(t).rule,\r\n repeatPassword: ValidationRule.shouldBeEqual(\r\n \"password\",\r\n t(\"forms:repeatPassword.invalid\"),\r\n t(\"forms:repeatPassword.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst ResetPasswordScreen = () => {\r\n const { t } = useTranslation();\r\n const yupValidation = getFormValidation(t);\r\n const [requestSent, setRequestSent] = useState(false);\r\n const params = useQueryString();\r\n const history = useHistory();\r\n\r\n const requestPassReset = async (values) => {\r\n const result = await ResetPasswordService.sendRequestAsync({\r\n username: params.username,\r\n password: values.password,\r\n token: params.token,\r\n });\r\n if (result.error) toast.error(t(result.error.message));\r\n else {\r\n setRequestSent(true);\r\n }\r\n };\r\n\r\n const resetType = params.type;\r\n\r\n useEffect(() => {\r\n if (requestSent) {\r\n setTimeout(() => {\r\n window.location.replace(RouteCreator.user.login());\r\n }, 5000);\r\n }\r\n }, [requestSent, history]);\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:resetPassword.title\")}\r\n \r\n \r\n \r\n \r\n {t(\"screens:resetPassword.introText.title\")}\r\n \r\n {!requestSent && resetType !== \"expired\" && (\r\n \r\n \r\n \r\n {t(\"screens:resetPassword.accWaiting\")}\r\n \r\n \r\n )}\r\n {resetType === \"expired\" && !requestSent && (\r\n <>\r\n \r\n \r\n
    \r\n
    \r\n {t(\r\n \"screens:resetPassword.type.expired\"\r\n )}\r\n
    \r\n {t(\"screens:resetPassword.type.setNew\")}\r\n
    \r\n
    \r\n \r\n )}\r\n (\r\n \r\n )}\r\n initialValues={initialValues}\r\n validationSchema={yupValidation}\r\n onSubmit={requestPassReset}\r\n />\r\n \r\n \r\n {\r\n e.preventDefault();\r\n window.location.replace(\r\n RouteCreator.user.login()\r\n );\r\n }}\r\n >\r\n {t(\"screens:forgottenPassword.backToLoginLink\")}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ResetPasswordScreen;\r\n","import PropTypes from \"prop-types\";\r\nimport React, { useState } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { Label, ValidationError } from \"../elements/form-elements\";\r\nimport { InputWrapper } from \"../elements/Stylings\";\r\nimport { ReactComponent as CalendarSvg } from \"../../assets/calendar.svg\";\r\n\r\nconst SvgCalendar = styled(CalendarSvg)`\r\n position: absolute;\r\n top: 50%;\r\n right: 4px;\r\n width: auto;\r\n height: 22px;\r\n transform: translateY(calc(-50% + 3px));\r\n z-index: 2;\r\n pointer-events: none;\r\n`;\r\n\r\nconst StyledDatePicker = styled(DatePicker)`\r\n box-sizing: border-box;\r\n width: 100%;\r\n background: ${(props) => props.theme.inputBgColor};\r\n padding: 15px;\r\n border: 1px solid ${(props) => props.theme.primaryInputBorderColor || \"#d4d4d4\"};\r\n border-radius: ${(props) => props.theme.inputBorderRadius || \"5px\"};\r\n margin: 0 0 15px;\r\n height: 46px;\r\n ${(props) =>\r\n props.disabled &&\r\n css`\r\n background: transparent;\r\n `}\r\n\r\n &.flex-half {\r\n flex-basis: 45%;\r\n margin: 0 5% 0 0;\r\n }\r\n`;\r\n\r\nconst SingleDatePicker = (props) => {\r\n let {\r\n currentDate,\r\n formik,\r\n labelText,\r\n name,\r\n errors,\r\n touched,\r\n wrapperVariant,\r\n style,\r\n filter = \"future\",\r\n disabled,\r\n minDate,\r\n maxDate,\r\n mode = \"date\",\r\n } = props;\r\n let error = errors[name];\r\n let isTouched = touched[name];\r\n\r\n const date = new Date();\r\n let today = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n const [licenceDate, setLicenceDate] = useState(formik.licenceExpirationDate);\r\n const isFutureDate = (date) => date >= today;\r\n const isPasteDate = (date) => date <= today;\r\n let filterDate = () => true;\r\n if (filter === \"future\") filterDate = isFutureDate;\r\n else if (filter === \"past\") filterDate = isPasteDate;\r\n return (\r\n \r\n \r\n
    \r\n {\r\n setLicenceDate(val || \"\");\r\n formik.setFieldValue(name, val || \"\");\r\n }}\r\n mode={mode}\r\n dateFormat={mode === \"date\" ? \"dd.MM.yyyy\" : \"dd.MM.yyyy HH:mm\"}\r\n timeIntervals={5}\r\n timeFormat=\"HH:mm\"\r\n showTimeSelect={mode === \"date\" ? false : true}\r\n placeholderText=\"DD/MM/YYYY\"\r\n filterDate={filterDate}\r\n minDate={minDate ?? new Date(\"1/1/1930\")}\r\n maxDate={maxDate ?? new Date(\"1/1/2100\")}\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n />\r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SingleDatePicker;\r\n\r\nSingleDatePicker.propTypes = {\r\n name: PropTypes.any.isRequired,\r\n labelText: PropTypes.any,\r\n currentDate: PropTypes.any,\r\n formik: PropTypes.any.isRequired,\r\n};\r\n","import React, { useState } from \"react\";\r\nimport {\r\n Checkbox,\r\n InputSubmit,\r\n Select,\r\n} from \"../../components/elements/form-elements\";\r\nimport InputElement from \"../../components/elements/form-elements/InputElement\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\nimport FlexContainer from \"../../components/layout/flex/FlexContainer\";\r\nimport CertificateUpload from \"../../components/file-processing/CertificateUpload\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport CompanyType from \"../../core/enums/CompanyType\";\r\nimport NavigationLink from \"../../components/elements/links/NavigationLink\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Desc = styled.div`\r\n margin-top: 30px;\r\n width: 100%;\r\n font-size: 14px;\r\n color: #898989;\r\n text-align: center;\r\n @media ${(p) => p.theme.device.mobile} {\r\n font-size: 10px;\r\n }\r\n`;\r\n\r\nconst RegisterForm = ({ formik, isLoading, isCertMandatory = true }) => {\r\n const { t } = new useTranslation([\"common\", \"forms\", \"screens\"]);\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"screens:registration.title\")}\r\n \r\n\r\n \r\n\r\n k !== \"All\")\r\n .map((key) => ({\r\n key: CompanyType[key],\r\n value: CompanyType[key],\r\n label: t(\"forms:companyType.\" + key),\r\n }))}\r\n {...formik}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {t(\"screens:forgottenPassword.backToLoginLink\")}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RegisterForm;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport DataEntry from \"../../components/data-entry/DataEntry\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../core/validations/ValidationRule\";\r\nimport commonValidation, { commonRegex } from \"../../core/validations/common\";\r\nimport RegistrationService from \"../../services/Registration/RegistrationService\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport RegisterForm from \"./RegisterForm\";\r\nimport helpers from \"../../core/helpers\";\r\nimport LayoutOneTwo from \"../../components/layout/split/one-two/LayoutOneTwo\";\r\nimport styled from \"styled-components\";\r\nimport CompanyType from \"../../core/enums/CompanyType\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport companyStateModule from \"../../core/state/company/companyStateModule\";\r\nimport NavigationLink from \"../../components/elements/links/NavigationLink\";\r\nimport { toast } from \"react-toastify\";\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport * as yup from \"yup\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport UserService from \"../../services/User/UserService\";\r\n\r\nconst Section = styled.div`\r\n font-size: 20px;\r\n padding: 0px 0px;\r\n margin-bottom: 35px;\r\n &.bold {\r\n font-weight: 600;\r\n }\r\n & span {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nconst Circle = styled.div`\r\n width: 44px;\r\n height: 44px;\r\n line-height: 46px;\r\n font-weight: 700;\r\n font-size: 26px;\r\n text-align: center;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border: 3px solid ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n float: left;\r\n margin-right: 25px;\r\n\r\n & img {\r\n height: 20px;\r\n margin-top: 10px;\r\n }\r\n`;\r\n\r\nconst initialValues = (isCertMandatory) => ({\r\n email: \"\",\r\n companyName: \"\",\r\n vatNumber: \"\",\r\n password: \"\",\r\n repeatPassword: \"\",\r\n fGasCertificateCheck: isCertMandatory,\r\n fGasCertificate: \"\",\r\n licenceNumber: \"\",\r\n licenceExpirationDate: \"\",\r\n licenceNeverExpires: false,\r\n companyType: CompanyType.InstallationCompany,\r\n});\r\n\r\nconst registrationValidation = (t, certMandatory) =>\r\n yup.lazy((values) => {\r\n let rules = {\r\n email: commonValidation.email(t).rule,\r\n companyName: ValidationRule.isStringRule().required(\r\n t(\"forms:companyName.required\")\r\n ).rule,\r\n vatNumber: ValidationRule.isStringRule()\r\n .regexMatchRule(commonRegex.VATRegExp, t(\"forms:VAT.invalid\"))\r\n .required(t(\"forms:VAT.required\")).rule,\r\n password: commonValidation.password(t).rule,\r\n repeatPassword: ValidationRule.shouldBeEqual(\r\n \"password\",\r\n t(\"forms:repeatPassword.invalid\"),\r\n t(\"forms:repeatPassword.required\")\r\n ).rule,\r\n };\r\n if (certMandatory || values.fGasCertificateCheck)\r\n rules = {\r\n ...rules,\r\n ...{\r\n fGasCertificateCheck: yup\r\n .boolean()\r\n .required()\r\n .oneOf([true], t(\"forms:fGasCertificate.required\")),\r\n fGasCertificate: ValidationRule.isStringRule().required(\r\n t(\"screens:registration.uploadFile.error\")\r\n ).rule,\r\n licenceNumber: ValidationRule.isStringRule().required(\r\n t(\"screens:registration.licenceError\")\r\n ).rule,\r\n licenceExpirationDate: values.licenceNeverExpires\r\n ? yup.string()\r\n : ValidationRule.isStringRule().required(\r\n t(\r\n \"screens:registration.licenceExpirationDateError\"\r\n )\r\n ).rule,\r\n },\r\n };\r\n return buildValidation(rules);\r\n });\r\n\r\nconst RegisterScreen = () => {\r\n const [newUserEmail, setNewUserEmail] = useState(null);\r\n const { resendValidationEmail } = useStateModule(companyStateModule);\r\n const [certMandatory, setCertMandatory] = useState(true);\r\n const { t } = useTranslation([\"common\", \"forms\"]);\r\n\r\n useEffect(() => {\r\n async function getSetting() {\r\n const res = await UserService.isFGasLicenceMandatory();\r\n setCertMandatory(res.data?.settingValue === \"True\");\r\n }\r\n getSetting();\r\n }, []);\r\n\r\n const yupValidation = registrationValidation(t, certMandatory);\r\n\r\n const handleSignup = async (values) => {\r\n if (values.licenceNeverExpires)\r\n values.licenceExpirationDate = new Date(\"1/1/3000\");\r\n delete values.licenceNeverExpires;\r\n let formData = helpers.getFormData(values);\r\n\r\n if (values.fGasFile && values.fGasCertificateCheck)\r\n formData.append(\r\n \"fGasCertificate\",\r\n values.fGasFile,\r\n values.fGasFile.name\r\n );\r\n\r\n const result = await RegistrationService.registerAsync(formData);\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n setNewUserEmail(values.email);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:registration.title\")}\r\n \r\n \r\n {!newUserEmail && (\r\n <>\r\n (\r\n \r\n )}\r\n initialValues={initialValues(certMandatory)}\r\n validationSchema={yupValidation}\r\n />\r\n \r\n )}\r\n {newUserEmail && (\r\n <>\r\n \r\n \r\n \r\n \r\n {t(\"screens:registration.title\")}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {t(\"screens:login.receivedRequest\")}\r\n
    \r\n
    \r\n {t(\r\n \"screens:registration.validateEmail.emailSent\"\r\n )}\r\n {newUserEmail}\r\n
    \r\n
    \r\n {t(\r\n \"screens:registration.validateEmail.verify\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:registration.validateEmail.resend.text\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n resendValidationEmail(newUserEmail)\r\n }\r\n >\r\n {t(\r\n \"screens:registration.validateEmail.resend.button\"\r\n )}\r\n \r\n\r\n \r\n |\r\n \r\n\r\n \r\n {t(\r\n \"screens:forgottenPassword.backToLoginLink\"\r\n )}\r\n \r\n \r\n
    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default RegisterScreen;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useQueryString from \"../../hooks/_shared/useQueryString\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport RegistrationService from \"../../services/Registration/RegistrationService\";\r\nimport styled from \"styled-components\";\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport LayoutOneTwo from \"../../components/layout/split/one-two/LayoutOneTwo\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport NavigationLink from \"../../components/elements/links/NavigationLink\";\r\nimport { toast } from \"react-toastify\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst Desc = styled.div`\r\n width: 100%;\r\n font-size: 14px;\r\n text-align: center;\r\n color: #898989;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n font-size: 10px;\r\n }\r\n`;\r\nconst Section = styled.div`\r\n font-size: 20px;\r\n padding: 0px 0px;\r\n margin-bottom: 35px;\r\n &.bold {\r\n font-weight: 600;\r\n }\r\n & span {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nconst Circle = styled.div`\r\n width: 44px;\r\n height: 44px;\r\n color: ${(p) => p.theme.primaryColor};\r\n border: 3px solid ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n float: left;\r\n margin-right: 25px;\r\n margin-right: 25px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n & img {\r\n height: 20px;\r\n }\r\n`;\r\n\r\nconst RegistrationConfirmedScreen = () => {\r\n const { t } = useTranslation();\r\n const params = useQueryString();\r\n const userName = params.username;\r\n const userToken = params.token;\r\n const timeoutFn = useRef(null);\r\n const history = useHistory();\r\n\r\n const [confirmData, setConfirmData] = useState({\r\n error: null,\r\n isLoading: true,\r\n });\r\n\r\n const verify = async () => {\r\n const result = await RegistrationService.verifyEmailAsync(\r\n userName,\r\n userToken\r\n );\r\n const error = result.error ? t(result.error.message) : null;\r\n setConfirmData({ isLoading: false, error: error });\r\n };\r\n\r\n useEffect(() => {\r\n verify();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (confirmData.isLoading === false && confirmData.error === null) {\r\n timeoutFn.current = setTimeout(\r\n () => history.push(RouteCreator.user.login()),\r\n 5000\r\n );\r\n }\r\n }, [confirmData.error, history]);\r\n\r\n const requestResend = async (ev) => {\r\n ev.preventDefault();\r\n const result = await RegistrationService.resendConfirmationAsync(\r\n userName\r\n );\r\n if (result.error) toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"screens:forgottenPassword.thankYou\"));\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:registrationConfirmed.title\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"screens:registration.title\")}\r\n \r\n {confirmData.error ? (\r\n
    \r\n {confirmData.error}\r\n
    \r\n ) : (\r\n \r\n {confirmData.isLoading === false && (\r\n <>\r\n
    \r\n \r\n \r\n \r\n {t(\r\n \"screens:registration.registrationEmailConfirmed.title\"\r\n )}\r\n
    \r\n
    \r\n {t(\r\n \"screens:registration.registrationEmailConfirmed.text\"\r\n )}\r\n
    \r\n\r\n
    \r\n {t(\r\n \"screens:registration.registrationEmailConfirmed.text2\"\r\n )}\r\n

    \r\n {userName}\r\n
    \r\n \r\n )}\r\n
    \r\n )}\r\n \r\n {confirmData.error && (\r\n <>\r\n \r\n {t(\"screens:forgottenPassword.resend\")}\r\n \r\n \r\n |\r\n \r\n \r\n )}\r\n\r\n \r\n {t(\"screens:forgottenPassword.backToLoginLink\")}\r\n \r\n \r\n
    \r\n
    \r\n {t(\"screens:login.platform\")}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default RegistrationConfirmedScreen;\r\n","const OfferStatus = {\r\n offered: 0,\r\n withdrawn: 1,\r\n waitingForOffererFunds: 2,\r\n offererEscrowedFunds: 3,\r\n buyerEscrowedFunds: 4,\r\n buyerClaimedBottles: 5,\r\n qualityTested: 6,\r\n disputed: 10,\r\n sold: 99,\r\n // statuses for disposal flow (some are reused)\r\n // Offered = 0\r\n // WaitingForOffererFunds = 2\r\n disposeAccepted: 20,\r\n disposed: 21,\r\n};\r\n\r\nexport default OfferStatus;\r\n","import i18next from \"i18next\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport { getDateFormat, getTimeFormat } from \"./DateCell\";\r\n\r\nconst Error = styled.span`\r\n color: ${props => props.theme.errorColor};\r\n`;\r\n\r\nconst DateCellWithExpiration = ({cell: {value}}, translation = {}, onHold) => { \r\n const {t} = useTranslation(\"common\");\r\n if(onHold) return {onHold}\r\n if(!value) return ;\r\n const currentLanguage = 'hr';\r\n const dateValue = new Date(value);\r\n let title = `${getDateFormat(currentLanguage).format(dateValue)} ${t(\r\n \"dateTime.at\"\r\n )} ${getTimeFormat(currentLanguage).format(dateValue)}`;\r\n let hoverTitle = title;\r\n\r\n if (Object.keys(translation).length > 0) {\r\n hoverTitle = t(translation, {date: title})\r\n }\r\n\r\n if (dateValue > new Date()) {\r\n return {title};\r\n }\r\n return (\r\n \r\n {t('expired')}\r\n \r\n )\r\n};\r\n\r\nconst CustomDateCellWithExpiration = (value, translation = {}) => { \r\n const {t} = useTranslation(\"common\");\r\n if(!value) return ;\r\n const currentLanguage = 'hr';\r\n const dateValue = new Date(value);\r\n let title = `${getDateFormat(currentLanguage).format(dateValue)} ${t(\r\n \"dateTime.at\"\r\n )} ${getTimeFormat(currentLanguage).format(dateValue)}`;\r\n let hoverTitle = title;\r\n\r\n if (Object.keys(translation).length > 0) {\r\n hoverTitle = t(translation, {date: title})\r\n }\r\n\r\n if (dateValue > new Date()) {\r\n return {title};\r\n }\r\n return (\r\n \r\n {t('expired')}\r\n \r\n )\r\n};\r\n\r\nexport default DateCellWithExpiration;\r\nexport {CustomDateCellWithExpiration};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Content = styled.div`\r\n --idx: ${(p) => ((p.idx + 1) * 26) -8 }px;\r\n /* visibility: hidden; */\r\n position: absolute;\r\n z-index: 100000;\r\n top: calc(100% + 12px);\r\n right: calc(100% - var(--idx));\r\n width: auto;\r\n padding: 4px 8px;\r\n border-radius: 4px;\r\n text-align: left;\r\n background: ${(props) => props.theme.bgTooltip};\r\n color: #fff;\r\n font-size: 12px;\r\n white-space: nowrap;\r\n opacity: 0;\r\n\r\n & span {\r\n display: block;\r\n margin-bottom: 4px;\r\n font-size: 14px;\r\n font-weight: 600;\r\n }\r\n &.visible {\r\n opacity: 1;\r\n }\r\n\r\n &.right {\r\n right: 0;\r\n }\r\n\r\n &.left {\r\n right: auto;\r\n left: 0;\r\n }\r\n\r\n &.top {\r\n top: -46px;\r\n }\r\n\r\n &.top-center {\r\n top: -46px;\r\n left: auto;\r\n right: auto;\r\n text-align: center;\r\n margin: 0 auto;\r\n transform: translate(-50%, 0);\r\n }\r\n\r\n &.top-left {\r\n top: -46px;\r\n right: auto;\r\n left: 0;\r\n text-align: center;\r\n }\r\n`;\r\n\r\nconst StatusTooltip = ({ tooltip, visible, idx, position }) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default StatusTooltip;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport StatusTooltip from \"../../tooltip/StatusTooltip\";\r\n\r\nconst StatusItemWrapper = styled.div`\r\n width: 20px;\r\n height: 20px;\r\n padding: 6px 0px;\r\n margin-right: 6px;\r\n`;\r\n\r\nconst StatusItem = styled.div`\r\n background: #cccccc;\r\n width: 20px;\r\n height: 8px;\r\n position: relative;\r\n border-radius: 4px;\r\n\r\n &.fulfilled {\r\n background: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n &.failed {\r\n background: #e94e4e;\r\n }\r\n\r\n &.pending {\r\n background: #cccccc;\r\n }\r\n\r\n &.inProgress {\r\n background: #fff;\r\n border: 1px solid ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n &.failed .tooltip {\r\n border: 1px solid #e94e4e;\r\n color: #e94e4e;\r\n }\r\n`;\r\n\r\nconst StatusWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n height: 16px;\r\n align-items: center;\r\n position: relative;\r\n`;\r\n\r\nconst Dispute = styled.span`\r\n color: #e94e4e;\r\n font-weight: 600;\r\n`;\r\n\r\nconst TransactionItem = ({ status, title, tip, idx }) => {\r\n const [tooltip, setTooltip] = useState({ tip: null });\r\n\r\n const handleHover = (title, tip) => {\r\n if (!tip) setTooltip({ tip: null });\r\n else {\r\n const html = `${title ? `${title}` : \"\"}${tip}`;\r\n setTooltip({ tip: html });\r\n }\r\n };\r\n\r\n return (\r\n {\r\n handleHover(title, tip);\r\n }}\r\n onMouseLeave={() => {\r\n handleHover(null, null);\r\n }}\r\n >\r\n \r\n {tooltip.tip && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst TransactionStatus = ({ steps, inDispute, ...rest }) => {\r\n const items = steps.map((item, idx) => (\r\n \r\n ));\r\n if (inDispute)\r\n return (\r\n \r\n {inDispute}\r\n \r\n );\r\n return {items};\r\n};\r\n\r\nexport default TransactionStatus;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Tooltip from \"../../../../components/tooltip/Tooltip\";\r\n\r\nconst BidWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: flex-start;\r\n position: relative;\r\n margin: -15px 0px;\r\n`;\r\n\r\nconst BidItem = styled.div`\r\n padding: 7px 0px;\r\n text-align: center;\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 70px;\r\n\r\n &.a {\r\n background: rgba(43, 115, 107, 0.1);\r\n }\r\n\r\n &.b {\r\n background: rgba(148, 194, 28, 0.1);\r\n }\r\n\r\n &.c {\r\n background: rgba(240, 196, 13, 0.1);\r\n }\r\n`;\r\n\r\nexport const BidGradePriceCellInfo = ({ prices }) => {\r\n const { t } = useTranslation(\"screens\");\r\n const [tooltip, setTooltip] = useState({ a: null, b: null, c: null });\r\n\r\n const handleHover = (tip) => {\r\n setTooltip((state) => {\r\n return { ...state, ...tip };\r\n });\r\n };\r\n\r\n return (\r\n \r\n handleHover({ a: true })}\r\n onMouseLeave={() => handleHover({ a: null })}\r\n >\r\n {Number(prices.priceA) > 0\r\n ? Number(prices.priceA).toFixed(2)\r\n : \"N/A\"}\r\n {tooltip.a !== null && Number(prices.priceA) > 0 && (\r\n \r\n )}\r\n \r\n\r\n handleHover({ b: true })}\r\n onMouseLeave={() => handleHover({ b: null })}\r\n >\r\n {Number(prices.priceB) > 0\r\n ? Number(prices.priceB).toFixed(2)\r\n : \"N/A\"}\r\n {tooltip.b !== null && Number(prices.priceB) > 0 && (\r\n \r\n )}\r\n \r\n\r\n handleHover({ c: true })}\r\n onMouseLeave={() => handleHover({ c: null })}\r\n >\r\n {Number(prices.priceC) > 0\r\n ? Number(prices.priceC).toFixed(2)\r\n : \"N/A\"}\r\n {tooltip.c !== null && Number(prices.priceC) > 0 && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nconst BidGradePriceCell = ({ cell: { row } }) => {\r\n const accepted = row.original.acceptedBid || row.original.acceptedBidInfo;\r\n const priceA = accepted\r\n ? accepted.offeredPriceGradeA\r\n : row.original.offeredPriceGradeA;\r\n const priceB = accepted\r\n ? accepted.offeredPriceGradeB\r\n : row.original.offeredPriceGradeB;\r\n const priceC = accepted\r\n ? accepted.offeredPriceGradeC\r\n : row.original.offeredPriceGradeC;\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default BidGradePriceCell;\r\n//\"price EUR per kilo of grade grade refrigerant, VAT excluded\"\r\n","import React, { useState } from \"react\";\r\nimport Tooltip from \"../../components/tooltip/Tooltip\";\r\n\r\nconst TooltipCell = ({ cell: { value }, tip, tooltipPosition=\"top right\" }) => {\r\n const [tooltip, setTooltip] = useState({visible:false, tip:tip});\r\n\r\n const handleHover = (tooltipIsVisible) => {\r\n setTooltip((tooltip) => ({ ...tooltip, visible: tooltipIsVisible }));\r\n };\r\n\r\n return (\r\n handleHover(true)}\r\n onMouseLeave={() => handleHover(false)}\r\n >\r\n {value}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TooltipCell;\r\n","import React from \"react\";\r\nimport helpers from \"../../core/helpers\";\r\nimport TooltipCell from \"./TooltipCell\";\r\n\r\nconst PurchasePrice = ({ row, t, currentLanguage, globalState, prices }) => {\r\n\r\n if (row.original.status === 99 || row.original.offerStatus === 99) {\r\n const currency = \"EUR\";\r\n const withVat =\r\n row.original.offererCountryId \r\n ? row.original.offererCountryId === globalState?.userCountryId\r\n : row.original.acceptedBidInfo?.bidCompanyCountryId === globalState?.userCountryId;\r\n\r\n let totalPrice = 0;\r\n\r\n let analysis =\r\n row.original.buyerCylindersAnalysis &&\r\n row.original.buyerCylindersAnalysis.length > 0\r\n ? row.original.buyerCylindersAnalysis\r\n : row.original.cylindersAnalysis;\r\n\r\n analysis.map(\r\n (c) =>\r\n (totalPrice += helpers.calculatePurchasedPrice(\r\n prices[c.gradeName],\r\n c.quantity,\r\n withVat\r\n ))\r\n );\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n totalPrice,\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: withVat\r\n ? t(\"table:tooltips.withVat\")\r\n : t(\"table:tooltips.withoutVat\"),\r\n });\r\n }\r\n\r\n return \"-\";\r\n};\r\n\r\nexport default PurchasePrice;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_802\",\n \"data-name\": \"Group 802\",\n transform: \"translate(2.828 2.828)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_10\",\n \"data-name\": \"Line 10\",\n x2: 4.115,\n y2: 4.115,\n transform: \"translate(0 4.938)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_11\",\n \"data-name\": \"Line 11\",\n y1: 9.054,\n x2: 9.054,\n transform: \"translate(4.115)\",\n fill: \"none\",\n stroke: \"#48b05e\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}));\n\nvar SvgHandlingCosts = function SvgHandlingCosts(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18.826,\n height: 14.711,\n viewBox: \"0 0 18.826 14.711\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHandlingCosts, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/handling-costs.bbfdc676.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_26_2\",\n \"data-name\": \"Component 26 \\\\u2013 2\",\n transform: \"translate(2.828 2.828)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_12\",\n \"data-name\": \"Line 12\",\n x2: 12,\n y2: 12,\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_25_1\",\n \"data-name\": \"Component 25 \\\\u2013 1\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_13\",\n \"data-name\": \"Line 13\",\n y1: 12,\n x2: 12,\n fill: \"none\",\n stroke: \"#e94e4e\",\n strokeLinecap: \"round\",\n strokeWidth: 4\n})));\n\nvar SvgNoHandlingCosts = function SvgNoHandlingCosts(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17.657,\n height: 17.657,\n viewBox: \"0 0 17.657 17.657\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNoHandlingCosts, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/no-handling-costs.21548dea.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ReactComponent as HandlingSvg } from \"../../assets/handling-costs.svg\";\r\nimport { ReactComponent as NoHandlingSvg } from \"../../assets/no-handling-costs.svg\";\r\n\r\nconst Wrapper = styled.div`\r\n width: 100%;\r\n`;\r\n\r\nconst StyledHandling = styled(HandlingSvg)`\r\n width: 16px;\r\n height: 16px;\r\n margin: 0 auto;\r\n transition: all 300ms ease;\r\n &:hover {\r\n transform: scale(1.3);\r\n }\r\n`;\r\n\r\nconst StyledNoHandling = styled(NoHandlingSvg)`\r\n width: 16px;\r\n height: 16px;\r\n margin: 0 auto;\r\n transition: all 300ms ease;\r\n &:hover {\r\n transform: scale(1.3);\r\n }\r\n`;\r\n\r\nconst HandlingCell = (value, setOpenAccordionId = null, accordionId = null) => {\r\n const handleClick = () => {\r\n if (!accordionId || !setOpenAccordionId) return;\r\n setOpenAccordionId(accordionId);\r\n };\r\n\r\n return (\r\n \r\n {value > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default HandlingCell;\r\n","import React from \"react\";\r\nimport DateCellWithExpiration from \"../../../../components/data/DateCellWithExpiration\";\r\nimport TransactionStatus from \"../../../../components/elements/general/TransactionStatus\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport OfferStatus from \"../../../../core/enums/OfferStatus\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport BidGradePriceCell from \"../components/BidGradePriceCell\";\r\nimport GradeCell from \"../../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../../components/data/GreenCell\";\r\nimport PurchasePrice from \"../../../../components/data/PurchasePrice\";\r\nimport HandlingCell from \"../../../../components/data/HandlingCell\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\n\r\nconst createSteps = (value, t, original) => {\r\n const buyer =\r\n original?.acceptedBidInfo?.bidCompanyName ??\r\n t(\"common:status.theBuyer\");\r\n let result = Array.from([\r\n {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Accept\", {\r\n company: original.offerer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_Adeposit\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_collect\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_test\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_confirmTest\", {\r\n company: original.offerer,\r\n }),\r\n },\r\n ]);\r\n switch (value) {\r\n case OfferStatus.waitingForOffererFunds:\r\n result[0] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Cdeposit\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.offererEscrowedFunds:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.buyerEscrowedFunds:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.buyerClaimedBottles:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.qualityTested:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[4] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_confirmTest\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n\r\n break;\r\n case 99:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[4] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_confirmTest\", {\r\n company: original.offerer,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nconst MyOffersColumns = {\r\n getColumns: (\r\n offerStatus,\r\n t,\r\n actions,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n ) => {\r\n const acceptedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"offeredPrices\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"stockListing.headers.dealExpiration\"),\r\n accessor: \"dealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.status;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return DateCellWithExpiration(value, translation);\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n const dateTimeNow = new Date();\r\n return (\r\n \r\n \r\n \r\n dateTimeNow\r\n }\r\n text={t(\"actions:rejectBid\")}\r\n onClick={async () => {\r\n actions.rejectToggleOpen([original]);\r\n }}\r\n />\r\n {original.status === 2 && (\r\n {\r\n await actions.getTransactionDetails(\r\n original,\r\n original.acceptedBid.id\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const pendingColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: t(\"table:headers.numBids\"),\r\n accessor: \"totalOffers\",\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) =>\r\n original.totalOffers > 0 && (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n \r\n {\r\n actions.toggleOpen({\r\n offerIds: [value],\r\n original,\r\n });\r\n }}\r\n />\r\n \r\n \r\n ),\r\n },\r\n ];\r\n\r\n const qualityColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) => (value ? \"Yes\" : \"No\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"offeredPrices\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"confirmedQuality\",\r\n Cell: ({ cell: { row } }) => {\r\n let prices = {\r\n A: row.original.acceptedBid?.offeredPriceGradeA,\r\n B: row.original.acceptedBid?.offeredPriceGradeB,\r\n C: row.original.acceptedBid?.offeredPriceGradeC,\r\n };\r\n return PurchasePrice({\r\n row,\r\n t,\r\n currentLanguage,\r\n globalState,\r\n prices,\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.dealExpiration\"),\r\n accessor: \"dealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.status;\r\n if (offerStatus === 5) {\r\n translation = \"screens:myOffers.offerStatus.5\";\r\n }\r\n const onHold =\r\n offerStatus === 10 ? t(\"common:status.onHold\") : null;\r\n return DateCellWithExpiration(value, translation, onHold);\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n const dateTimeNow = new Date();\r\n return (\r\n \r\n \r\n \r\n dateTimeNow.toISOString() &&\r\n (!globalState.hasValidCompanyCertificate ||\r\n !globalState.hasCertificateRights))\r\n }\r\n text={t(\"actions:finishTransaction\")}\r\n onClick={async () => {\r\n actions.sellToggleOpen([original]);\r\n }}\r\n />\r\n {/* {\r\n actions.openDisputeWizard(original);\r\n }}\r\n /> */}\r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const soldColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"confirmedRefrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"confirmedQuantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value?.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"confirmedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) => (value ? \"Yes\" : \"No\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"offeredPrices\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"confirmedQuality\",\r\n Cell: ({ cell: { row } }) => {\r\n let prices = {\r\n A: row.original.acceptedBid?.offeredPriceGradeA,\r\n B: row.original.acceptedBid?.offeredPriceGradeB,\r\n C: row.original.acceptedBid?.offeredPriceGradeC,\r\n };\r\n return PurchasePrice({\r\n row,\r\n t,\r\n currentLanguage,\r\n globalState,\r\n prices,\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.soldDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n if (\r\n offerStatus.includes(OfferStatus.offererEscrowedFunds) ||\r\n offerStatus.includes(OfferStatus.buyerEscrowedFunds)\r\n ) {\r\n return acceptedColumns;\r\n } else if (\r\n offerStatus.includes(OfferStatus.buyerClaimedBottles) ||\r\n offerStatus.includes(OfferStatus.qualityTested)\r\n ) {\r\n return qualityColumns;\r\n } else if (offerStatus.includes(OfferStatus.sold)) {\r\n return soldColumns;\r\n }\r\n\r\n return pendingColumns;\r\n },\r\n};\r\n\r\nexport default MyOffersColumns;\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport useDataReducer from \"../../hooks/_shared/useDataReducer\";\r\nimport MarketplaceService from \"../../services/BuyRefrigerant/MarketplaceService\";\r\nimport DataTable from \"../data/DataTable\";\r\nimport DateCell from \"../data/DateCell\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst BidCompanyName = styled.span`\r\n color: ${(props) => props.theme.primaryColor};\r\n font-weight: bold;\r\n &.invalid {\r\n color: #e94e4e;\r\n }\r\n`;\r\n\r\nconst BidsListing = (props) => {\r\n const { offer, toggleBidView } = props;\r\n const { t } = useTranslation();\r\n\r\n const [bidsState, loadBids] = useDataReducer(async () => {\r\n return await MarketplaceService.getBids(offer.offerId);\r\n });\r\n\r\n useEffect(() => {\r\n if (offer.offerId) {\r\n loadBids(offer.offerId);\r\n }\r\n }, [offer.offerId]);\r\n \r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"forms:stock.wizard.collectCylinder.company\"),\r\n accessor: \"bidCompanyName\",\r\n Cell: ({ row }) => {\r\n return (\r\n 1 ? \"invalid\" : \"\"\r\n }\r\n >\r\n {row.original.bidCompanyName}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t(\"screens:stockListing.filters.date\"),\r\n accessor: \"bidDateTime\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: `${t(\"forms:cylinder.price\")} (EUR\\\\kg)`,\r\n accessor: \"bidCompanyName2\",\r\n Cell: ({ row }) => {\r\n const item = row.original;\r\n let prices = [];\r\n if (item.offeredPriceGradeA > 0)\r\n prices.push(item.offeredPriceGradeA.toFixed(2));\r\n if (item.offeredPriceGradeB > 0)\r\n prices.push(item.offeredPriceGradeB.toFixed(2));\r\n if (item.offeredPriceGradeC > 0)\r\n prices.push(item.offeredPriceGradeC.toFixed(2));\r\n return (\r\n
    {prices.join(' / ')}
    \r\n );\r\n },\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n const onSelect = (row) =>{\r\n toggleBidView(row.original, row.original.bidId);\r\n }\r\n\r\n return (\r\n <>\r\n {bidsState.data && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default BidsListing;\r\n","import React from \"react\";\r\nimport {\r\n CheckMark,\r\n RadioGroup,\r\n RadioLabel,\r\n RadioWrapper,\r\n} from \"../../../../../components/elements/form-elements/Radio\";\r\nimport PaymentService from \"../../../../../services/Payment/PaymentService\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n Separator,\r\n KeyText,\r\n ValueText,\r\n VSpace,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport PaymentType from \"../../../../../core/enums/PaymentType\";\r\nimport Globals from \"../../../../../globalVars\";\r\nimport styled from \"styled-components\";\r\nimport ModalWizard from \"../../../../../components/modal/ModalWizard\";\r\nimport NavigationLink from \"../../../../../components/elements/links/NavigationLink\";\r\n\r\nconst SpaceBetween = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 24px 48px;\r\n`;\r\n\r\nconst InsetDiv = styled.div`\r\n padding: 0 48px;\r\n font-size: 14px;\r\n max-width: 75%;\r\n`;\r\n\r\nconst ServicePrice = styled.div`\r\n font-size: 14px;\r\n font-weight: bold;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n paymentMethod: PaymentType.MainWalletToTransaction,\r\n serviceType: \"B\",\r\n};\r\n\r\nconst WizardPayForCleaning = (\r\n t,\r\n currentLanguage,\r\n currency,\r\n priceA,\r\n priceB,\r\n offerInfo = \"\",\r\n offerer = true,\r\n bidCompanyCountryId,\r\n maximumQuantity\r\n) => {\r\n priceA = Number(priceA);\r\n priceB = Number(priceB);\r\n\r\n let vatPercentage = Globals.VATPercentage;\r\n let vatPercString = Globals.VATPercString;\r\n if (\r\n bidCompanyCountryId !== undefined &&\r\n Globals.userCountryId !== bidCompanyCountryId\r\n ) {\r\n vatPercentage = 1;\r\n vatPercString = \"0\";\r\n }\r\n\r\n const withVatA = (vatPercentage * priceA).toFixed(2);\r\n\r\n const withVatB = (vatPercentage * priceB).toFixed(2);\r\n\r\n const handleServiceTypeChange = (\r\n ev,\r\n formik,\r\n propertyBag,\r\n updatePropertyBag\r\n ) => {\r\n const selectedService = ev.target.value;\r\n const price =\r\n selectedService === \"A\"\r\n ? priceA * maximumQuantity\r\n : priceB * maximumQuantity;\r\n const balanceExceeded =\r\n propertyBag.mainWalletBalance < vatPercentage * price;\r\n const remainingBalance =\r\n propertyBag.mainWalletBalance - price * vatPercentage;\r\n\r\n updatePropertyBag({\r\n serviceType: selectedService,\r\n walletBalanceExceeded: balanceExceeded,\r\n price: price,\r\n priceWithVAT: vatPercentage * price,\r\n priceVATonly: (vatPercentage - 1) * price,\r\n remainingBalance: remainingBalance,\r\n });\r\n formik.handleChange(ev);\r\n };\r\n\r\n return {\r\n title: t(\"forms:payForOffer.wizard.payIn\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:payForOffer.wizard.chooseLevel\"),\r\n fieldNames: [\"paymentMethod\", \"serviceType\"],\r\n onStepRender: async (props) => {\r\n // get wallet\r\n let wallets = await PaymentService.getMyWallets();\r\n let walletBalance = 0;\r\n if (wallets && wallets.length > 0) {\r\n let mainWallet = wallets.filter(\r\n (w) => w.tag === \"MAIN\"\r\n );\r\n if (mainWallet) {\r\n walletBalance = mainWallet[0].amount;\r\n }\r\n }\r\n const price = priceB * maximumQuantity;\r\n props.updatePropertyBag({\r\n init: true,\r\n serviceType: \"B\",\r\n mainWalletBalance: walletBalance,\r\n price: price,\r\n priceWithVAT: vatPercentage * price,\r\n priceVATonly: (vatPercentage - 1) * price,\r\n walletBalanceExceeded:\r\n walletBalance < vatPercentage * price,\r\n remainingBalance: walletBalance - vatPercentage * price,\r\n });\r\n },\r\n fields: (formik, propertyBag, updatePropertyBag) => {\r\n if (!propertyBag.init) return null;\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.newPayment\"\r\n )}\r\n \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.chooseLevelDesc\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n handleServiceTypeChange(\r\n ev,\r\n formik,\r\n propertyBag,\r\n updatePropertyBag\r\n )\r\n }\r\n />\r\n \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.cleanService\"\r\n )}\r\n \r\n \r\n \r\n {withVatB} EUR/kg\r\n \r\n \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.cleanServiceDesc\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleServiceTypeChange(\r\n ev,\r\n formik,\r\n propertyBag,\r\n updatePropertyBag\r\n )\r\n }\r\n />\r\n \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.restoreService\"\r\n )}\r\n \r\n \r\n \r\n {withVatA} EUR/kg\r\n \r\n \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.restoreServiceDesc\"\r\n )}\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:payForOffer.wizard.cleaningPayIn\"),\r\n fieldNames: [],\r\n onStepRender: async ({ propertyBag, updatePropertyBag }) => {\r\n return propertyBag.walletBalanceExceeded;\r\n },\r\n onStepSubmit: ({ propertyBag }) => {\r\n return !propertyBag.walletBalanceExceeded;\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.walletBalanceExceeded ? (\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.noFunds\"\r\n )}\r\n \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.noFundsInfo\"\r\n )}\r\n \r\n {\r\n ModalWizard.hide();\r\n }}\r\n >\r\n {t(\r\n \"forms:payForOffer.wizard.gotoMyWallets\"\r\n )}\r\n \r\n
    \r\n
    \r\n ) : (\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.newPayment\"\r\n )}\r\n \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.deductedAmount\"\r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n \r\n {propertyBag.serviceType === \"B\"\r\n ? t(\r\n \"forms:payForOffer.wizard.cleanService\"\r\n )\r\n : t(\r\n \"forms:payForOffer.wizard.restoreService\"\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.mainBallance\"\r\n )}\r\n \r\n \r\n {propertyBag.mainWalletBalance?.toFixed(\r\n 2\r\n )}{\" \"}\r\n EUR\r\n \r\n
    \r\n
    \r\n \r\n {offerInfo}\r\n \r\n \r\n -{propertyBag.price?.toFixed(2)} EUR\r\n \r\n
    \r\n
    \r\n {`${t(\r\n \"filters:company.vat\"\r\n )} (${vatPercString}%)`}\r\n \r\n -{propertyBag.priceVATonly?.toFixed(2)}{\" \"}\r\n EUR\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n {t(\"table:headers.total\")}:\r\n \r\n \r\n -{propertyBag.priceWithVAT?.toFixed(2)}{\" \"}\r\n EUR\r\n \r\n
    \r\n\r\n {!propertyBag.walletBalanceExceeded && (\r\n <>\r\n \r\n
    \r\n \r\n {t(\r\n \"forms:payForOffer.wizard.newMainBalance\"\r\n )}\r\n :\r\n \r\n \r\n {propertyBag.remainingBalance?.toFixed(\r\n 2\r\n )}{\" \"}\r\n EUR\r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default WizardPayForCleaning;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Globals from \"../../globalVars\";\r\nimport SidebarField from \"../elements/sidebar/SidebarField\";\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n background-color: ${(p) => p.theme.sidebarWrapperBorderColor};\r\n`;\r\n\r\nconst BidGradeWrapper = styled.div`\r\n padding-left: 20px;\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n &.center {\r\n text-align: center;\r\n padding-right: 20px;\r\n }\r\n`;\r\n\r\nconst StyledBidGrade = styled.div`\r\n flex-grow: 0;\r\n font-size: 14px;\r\n\r\n & .title {\r\n font-weight: 700;\r\n margin-bottom: 8px;\r\n }\r\n\r\n & .a-grade {\r\n color: ${(p) => p.theme.bidA};\r\n }\r\n\r\n & .b-grade {\r\n color: ${(p) => p.theme.bidB};\r\n }\r\n\r\n & .c-grade {\r\n color: ${(p) => p.theme.bidC};\r\n }\r\n\r\n & .vat {\r\n width: 100%;\r\n padding-bottom: 5px;\r\n border-bottom: 1px solid #d5d5d5;\r\n }\r\n\r\n & .with-vat {\r\n padding-top: 5px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n\r\n & .info {\r\n font-size: 12px;\r\n color: #8e8e8e;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst BidGrade = ({\r\n grade,\r\n quantity,\r\n showQuantity,\r\n amount,\r\n title,\r\n bidCompanyCountryId,\r\n info = \" \",\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const withVAT = (amount) => {\r\n const vatPercentage =\r\n Globals.userCountryId === bidCompanyCountryId\r\n ? Globals.VATPercentage\r\n : 1;\r\n return (vatPercentage * amount).toFixed(2);\r\n };\r\n const percString =\r\n Globals.userCountryId === bidCompanyCountryId\r\n ? Globals.VATPercString\r\n : \"0\";\r\n\r\n return (\r\n \r\n
    \r\n {title ? title : t(`label.bid.${grade}Grade`)}\r\n {showQuantity && ` / ${quantity.toFixed(2)} kg`}\r\n
    \r\n
    {`${info}`}
    \r\n
    \r\n {(amount * quantity).toFixed(2)} EUR\r\n
    \r\n
    {`+${t(\r\n \"filters:company.vat\"\r\n )} (${percString}%)`}
    \r\n
    \r\n {withVAT(amount * quantity)} EUR\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst BigHandlingCosts = ({\r\n price,\r\n administrativeCosts,\r\n transportationCosts,\r\n quantity,\r\n title,\r\n bidCompanyCountryId,\r\n isBuyer = false,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const handlingCosts = administrativeCosts + transportationCosts;\r\n const vatPercentage =\r\n Globals.userCountryId === bidCompanyCountryId\r\n ? Globals.VATPercentage\r\n : 1;\r\n const withVAT = (amount) => {\r\n return (vatPercentage * amount).toFixed(2);\r\n };\r\n const percString =\r\n Globals.userCountryId === bidCompanyCountryId\r\n ? Globals.VATPercString\r\n : \"0\";\r\n\r\n const totalCdeposit = (amount, quantity) => {\r\n return (quantity * vatPercentage + amount * vatPercentage).toFixed(2);\r\n };\r\n\r\n return (\r\n <>\r\n {isBuyer ? (\r\n <>\r\n 0\r\n ? `${transportationCosts.toFixed(2)} EUR`\r\n : \"N/A\"\r\n }\r\n />\r\n 0\r\n ? `${administrativeCosts.toFixed(2)} EUR`\r\n : \"N/A\"\r\n }\r\n />\r\n \r\n ) : (\r\n 0\r\n ? `${handlingCosts.toFixed(2)} EUR`\r\n : \"N/A\"\r\n }\r\n />\r\n )}\r\n {handlingCosts > 0 && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport { BidGrade, BidGradeWrapper, BigHandlingCosts };\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n} from \"../../../../../components/bids/BidGrade\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\n\r\nimport {\r\n InfoWrapper,\r\n Separator,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport PaymentType from \"../../../../../core/enums/PaymentType\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\n\r\nconst defaultInitialValues = {\r\n paymentMethod: PaymentType.MainWalletToTransaction,\r\n rejectionReason: \"\",\r\n};\r\n\r\nconst GreenInfo = styled.img`\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 18px;\r\n padding-left: 10px;\r\n margin-top: -10px;\r\n`;\r\n\r\nconst Spacer = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size || 1}px;\r\n`;\r\n\r\nconst validReason = (t) => {\r\n return buildValidation({\r\n rejectionReason: ValidationRule.isStringRule().maxCharactersRule(1000).required(\r\n t(\"actions:bidActions.rejectReasonRequired\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst WizardRejectBid = (t, currentLanguage, bid, offer) => {\r\n return {\r\n title: t(\"actions:rejectBid\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"actions:bidActions.rejectReason\"),\r\n fieldNames: [\"rejectionReason\"],\r\n validation: validReason(t),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n
    \r\n {t(\"actions:bidActions.rejectAbout\")}\r\n
    \r\n \r\n {t(\r\n \"actions:bidActions.provideRejectReason\"\r\n )}\r\n
    \r\n
    \r\n \r\n\r\n {`${t(\"actions:bidActions.totalBidFor\")} ${\r\n offer.refrigerantGasTypeCode\r\n }:`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default WizardRejectBid;\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport MarketplaceService from \"../../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport { toast } from \"react-toastify\";\r\nimport MyOffersListing from \"../MyOffersListing\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport WizardPayForOffer from \"./wizard/WizardPayForOffer\";\r\nimport WizardPayForCleaning from \"../../../Services/views/components/wizard/WIzardPayForCleaning\";\r\nimport WizardRejectBid from \"./wizard/WizardRejectBid\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n BigHandlingCosts,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ButtonWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 30px;\r\n`;\r\n\r\nconst SingleBidDetailSideBar = ({\r\n bid,\r\n offer,\r\n closeSingleBidSideBar,\r\n closeOfferSideBar,\r\n}) => {\r\n const { t, i18n } = useTranslation([\"sidebar\"]);\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n\r\n const acceptBid = useCallback(\r\n async (\r\n bidId,\r\n offeredPriceGradeC,\r\n offerInfo = \"\",\r\n bidCompanyCountryId\r\n ) => {\r\n ModalWizard.show(\r\n WizardPayForOffer(\r\n t,\r\n currentLanguage,\r\n currency,\r\n offeredPriceGradeC * offer.maximumQuantity,\r\n offerInfo,\r\n true,\r\n \"\",\r\n \"\",\r\n \"\",\r\n bidCompanyCountryId\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await MarketplaceService.acceptBid(\r\n bidId,\r\n values.paymentMethod\r\n );\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n MyOffersListing.refreshNeeded = true;\r\n toast.success(\r\n t(\r\n \"actions:dialogs.acceptBid.toastNotification.success\"\r\n )\r\n );\r\n closeOfferSideBar();\r\n closeSingleBidSideBar();\r\n }\r\n ModalWizard.hide();\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n },\r\n [t, bid]\r\n );\r\n\r\n const acceptCleaningBid = useCallback(\r\n async (\r\n bidId,\r\n offeredPriceGradeA,\r\n offeredPriceGradeB,\r\n offerInfo = \"\",\r\n bidCompanyCountryId\r\n ) => {\r\n ModalWizard.show(\r\n WizardPayForCleaning(\r\n t,\r\n currentLanguage,\r\n currency,\r\n offeredPriceGradeA,\r\n offeredPriceGradeB,\r\n offerInfo,\r\n true,\r\n bidCompanyCountryId,\r\n offer.maximumQuantity\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await MarketplaceService.acceptBid(\r\n bidId,\r\n values.paymentMethod,\r\n values.serviceType === \"A\" ? 0 : 1\r\n );\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n MyOffersListing.refreshNeeded = true;\r\n toast.success(\r\n t(\r\n \"actions:dialogs.acceptBid.toastNotification.success\"\r\n )\r\n );\r\n closeOfferSideBar();\r\n closeSingleBidSideBar();\r\n }\r\n ModalWizard.hide();\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minWidth: \"720px\", minHeight: \"690px\" } }\r\n );\r\n },\r\n [t, bid]\r\n );\r\n\r\n const rejectBid = useCallback(\r\n async (bid, offer) => {\r\n ModalWizard.show(WizardRejectBid(t, currentLanguage, bid, offer), {\r\n onSubmit: async (values) => {\r\n const result = await MarketplaceService.rejectBid(\r\n bid.bidId,\r\n values.rejectionReason\r\n );\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n MyOffersListing.refreshNeeded = true;\r\n toast.success(\r\n t(\r\n \"actions:dialogs.rejectBid.toastNotification.success\"\r\n )\r\n );\r\n closeOfferSideBar();\r\n closeSingleBidSideBar();\r\n }\r\n ModalWizard.hide();\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n },\r\n [t, bid]\r\n );\r\n\r\n const gasGradeNames = [\r\n t(\"sidebar:label.bid.aGrade\"),\r\n t(\"sidebar:label.bid.bGrade\"),\r\n t(\"sidebar:label.bid.cGrade\"),\r\n ];\r\n\r\n // Reject Bid action\r\n // const { modalProps: modalPropsDecline, toggleOpen: toggleOpenDecline } =\r\n // useModal({\r\n // title: t(\"actions:dialogs.rejectBid.title\"),\r\n // onConfirm: async (bidId) => {\r\n // const result = await MarketplaceService.rejectBid(bidId);\r\n // if (result.error) {\r\n // toast.error(result.error.message);\r\n // } else {\r\n // MyOffersListing.refreshNeeded = true;\r\n // // if (offer.offerId) {\r\n // // loadBids(offer.offerId);\r\n // // }\r\n // toast.success(\r\n // t(\"actions:dialogs.rejectBid.toastNotification.success\")\r\n // );\r\n // }\r\n // toggleOpenDecline();\r\n // closeSingleBidSideBar();\r\n // },\r\n // onCancel: () => {\r\n // toggleOpenDecline();\r\n // },\r\n // confirmText: t(\"actions:dialogs.rejectBid.confirmText\"),\r\n // });\r\n\r\n const [bidStatus, setBidStatus] = useState(null);\r\n useEffect(() => {\r\n if (bid) {\r\n setBidStatus(bid.bidStatusName);\r\n }\r\n }, [bid]);\r\n\r\n return (\r\n
    \r\n \r\n {offer && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {bid && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {offer && bid && (\r\n <>\r\n \r\n \r\n {offer.isCleaning ? (\r\n <>\r\n \r\n \r\n \r\n \r\n {bid && (\r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {bid && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n {bid && bid.bidStatus === 0 && (\r\n \r\n {\r\n var offerInfo = `${\r\n offer.refrigerantGasTypeCode\r\n } | ${gasGradeNames[offer.pressumedGradeValue]} | ${\r\n offer.maximumQuantity\r\n } kg`;\r\n\r\n offer.isCleaning\r\n ? acceptCleaningBid(\r\n bid.bidId,\r\n bid.offeredPriceGradeA,\r\n bid.offeredPriceGradeB,\r\n offerInfo,\r\n bid.bidCompanyCountryId\r\n )\r\n : acceptBid(\r\n bid.bidId,\r\n bid.offeredPriceGradeC,\r\n offerInfo,\r\n bid.bidCompanyCountryId\r\n );\r\n }}\r\n >\r\n {t(\"actions:bidActions.accept\")}\r\n \r\n\r\n {\r\n rejectBid(bid, offer);\r\n }}\r\n >\r\n {t(\"actions:bidActions.reject\")}\r\n \r\n \r\n )}\r\n\r\n {bid && bid.bidStatus !== 0 && (\r\n \r\n \r\n {bid.rejectionReason && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n {/* \r\n

    {t(\"actions:dialogs.rejectBid.text\")}

    \r\n

    \r\n {bid &&\r\n `• ${bid.offeredPriceGradeA.toFixed(\r\n 2\r\n )} EUR/kg | ${bid.offeredPriceGradeB.toFixed(\r\n 2\r\n )} EUR/kg | ${bid.offeredPriceGradeC.toFixed(\r\n 2\r\n )} EUR/kg`}\r\n

    \r\n

    \r\n {t(\"actions:dialogs.revokeBid.offeredItem\")}\r\n

    \r\n

    \r\n {offer &&\r\n `• ${\r\n offer.refrigerantGasTypeCode\r\n } | ${offer.quantity?.toFixed(2)} kg | ${\r\n offer.pressumedGradeName\r\n } | ${\r\n offer.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

    \r\n
    */}\r\n
    \r\n );\r\n};\r\n\r\nexport default SingleBidDetailSideBar;\r\n","import React, { useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport BidsListing from \"../../../../components/bids/BidsListing\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport {\r\n Num,\r\n NumInfo,\r\n NumSection,\r\n} from \"../../../../components/elements/sidebar/SidebarStyle\";\r\nimport DetailSideBar from \"../../../../components/modal/DetailSideBar\";\r\nimport SingleBidDetailSideBar from \"./SingleBidDetailSideBar\";\r\nimport useClickAway from \"../../../../hooks/_shared/useClickAway\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n BigHandlingCosts,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport { getApiUrl } from \"../../../../services/getAxios\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ButtonWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 30px;\r\n`;\r\n\r\nconst DownloadWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n &.pad {\r\n padding: 25px 15px;\r\n }\r\n\r\n &.big > * {\r\n font-size: 14px !important;\r\n }\r\n\r\n & > div {\r\n font-size: 12px;\r\n color: #333333;\r\n font-weight: 600;\r\n }\r\n`;\r\n\r\nconst DownloadLink = styled.a`\r\n color: #2294d2;\r\n text-decoration: none;\r\n font-size: 12px;\r\n &.big {\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst getFileName = (url) => {\r\n const parts = url.split(\"/\");\r\n return parts[parts.length - 1];\r\n};\r\n\r\nconst MyOffersDetailSideBar = ({\r\n selectedOffer,\r\n offer,\r\n isLoading,\r\n sellToggleOpen,\r\n disputeToggleOpen,\r\n closeSideBar,\r\n openAccordionId = null,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const shouldShow = !isLoading && offer;\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordion, setOpenAccordion] =\r\n useAccordionGroup(openAccordionId);\r\n\r\n const [singleBidViewIsOpened, setSingleBidviewIsOpened] = useState(false);\r\n const [singleBidData, setSingleBidData] = useState(null);\r\n\r\n const openSingleBid = (bid) => {\r\n setSingleBidviewIsOpened(!singleBidViewIsOpened);\r\n setSingleBidData(bid);\r\n };\r\n\r\n const closeSingleBidSidebar = () => {\r\n setSingleBidviewIsOpened(false);\r\n };\r\n\r\n const bidRef = useRef(null);\r\n\r\n useClickAway(bidRef, (ev) => {\r\n closeSingleBidSidebar();\r\n });\r\n\r\n const numQualityTests = () => {\r\n if (!offer.skUs) return 0;\r\n let cnt = 0;\r\n offer.skUs.forEach((offer) => {\r\n if (offer.qualityTestDone) cnt++;\r\n });\r\n return cnt;\r\n };\r\n\r\n if (selectedOffer.offer && selectedOffer.offer.offerStatus !== undefined) {\r\n selectedOffer.offer.status = selectedOffer.offer.offerStatus;\r\n }\r\n\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n \r\n \r\n \r\n {selectedOffer.offer && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {offer.skUs && (\r\n \r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n return (\r\n
    \r\n
    \r\n \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n \r\n N/A\r\n \r\n \r\n {t(\r\n \"actions:noContamination\"\r\n )}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.aGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.bGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.cGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n {/*// Show only if Offered */}\r\n {selectedOffer.offer && selectedOffer.offer.status === 0 && (\r\n \r\n {offer && offer.offerId && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n {/*//Show only if Accepted*/}\r\n {selectedOffer.bid && selectedOffer.bid.bidStatus === 1 && (\r\n <>\r\n \r\n \r\n \r\n {selectedOffer.isCleaning ? (\r\n <>\r\n \r\n \r\n \r\n \r\n {selectedOffer.bid && (\r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {selectedOffer.bid && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n {offer.skUs && (\r\n \r\n {numQualityTests() > 0 && (\r\n \r\n
    \r\n {numQualityTests()}{\" \"}\r\n {numQualityTests() > 1\r\n ? t(\r\n \"actions:availableTests\"\r\n )\r\n : t(\r\n \"actions:availableTest\"\r\n )}\r\n
    \r\n \r\n {t(\"actions:downloadAll\")}\r\n \r\n
    \r\n )}\r\n\r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n return (\r\n \r\n \r\n
    \r\n {getFileName(\r\n sku.qualityTestUrl\r\n )}\r\n
    \r\n {sku.qualityTestDone ? (\r\n \r\n {t(\r\n \"actions:download\"\r\n )}\r\n \r\n ) : (\r\n
    -
    \r\n )}\r\n \r\n {sku.buyerCylindersAnalysis && (\r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedOffer.bid.bidCompanyCountry && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {selectedOffer.offer && selectedOffer.offer.status === 6 && (\r\n \r\n \r\n new Date().toISOString() &&\r\n (!globalState.hasValidCompanyCertificate ||\r\n !globalState.hasCertificateRights)\r\n }\r\n className=\"primary--action sidebar\"\r\n onClick={() => {\r\n sellToggleOpen([selectedOffer.offer]);\r\n }}\r\n >\r\n {t(\"actions:finishTransaction\")}\r\n \r\n \r\n disputeToggleOpen(selectedOffer.offer)\r\n }\r\n >\r\n {t(\"actions:dispute.start\")}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MyOffersDetailSideBar;\r\n","import React from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport styled from \"styled-components\";\r\nimport {VSpace} from \"../../../pwa/components/StyledElements\";\r\nimport Globals from \"../../../../globalVars\";\r\n\r\nconst RowWrapper = styled.div`\r\n padding: 0 50px;\r\n\r\n &.separator {\r\n border-bottom: 1px solid ${props => props.theme.borderSeparator};\r\n }\r\n\r\n &.highlight {\r\n border-bottom: 1px solid #000;\r\n }\r\n`;\r\n\r\nconst MainTitle = styled.span`\r\n padding: 0 0 10px;\r\n font-size: 1.5rem;\r\n color: ${props => props.theme.primaryColor};\r\n text-transform: uppercase;\r\n display: inline-block;\r\n width: 100%;\r\n font-weight:700;\r\n`;\r\n\r\nconst Title = styled.span`\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n display: inline-block;\r\n width: 100%;\r\n margin: 0 0 16px;\r\n font-weight:700;\r\n`;\r\n\r\nconst Content = styled.div`\r\n margin: 20px 0;\r\n`;\r\n\r\nconst ContentRow = styled.div`\r\n margin: 0 0 8px;\r\n font-weight: 700;\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n display: inline-block;\r\n vertical-align: top;\r\n font-weight: 400;\r\n }\r\n\r\n div {\r\n display: inline-block;\r\n vertical-align: top;\r\n }\r\n`;\r\n\r\nconst FooterContent = styled.div`\r\n font-size: 1.25rem;\r\n padding: 24px 0 0;\r\n`;\r\n\r\nconst FooterContentRow = styled.div`\r\n margin: 0 0 12px;\r\n\r\n &.flex {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-end;\r\n }\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n font-weight: 400;\r\n }\r\n\r\n & .bold {\r\n font-weight:700;\r\n color:#000;\r\n }\r\n\r\n & .big {\r\n font-size: 2.25rem;\r\n }\r\n .highlight {\r\n color: ${props => props.theme.primaryColor};\r\n font-size: 2.25rem;\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nconst Pipe = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n margin: 0 12px;\r\n\r\n &:after {\r\n content: \"\";\r\n border-left: 1px solid ${props => props.theme.textNeutral};\r\n border-right: 1px solid ${props => props.theme.textNeutral};\r\n }\r\n`;\r\n\r\nconst TransactionDetails = ({transactionDetails, offer, paymentMethod, paymentType = 0}) => {\r\n const {t} = useTranslation();\r\n\r\n if (!transactionDetails) {\r\n return null;\r\n }\r\n let vatPercentage = transactionDetails.receivingCompanyCountryId === Globals.userCountryId ? Globals.VATPercentage : 1;\r\n let vatPercString = transactionDetails.receivingCompanyCountryId === Globals.userCountryId ? Globals.VATPercString : \"0\";\r\n\r\n return (\r\n
    \r\n\r\n \r\n \r\n \r\n {t(\"actions:dialogs.transactionDetails.title\")}\r\n \r\n \r\n
    {t(\"actions:dialogs.transactionDetails.paymentType.title\")}: {t(\"actions:dialogs.transactionDetails.paymentType.IBANPayIn\")}
    \r\n
    \r\n\r\n\r\n {\r\n (paymentType !== 2 && paymentType !== 3) &&\r\n \r\n \r\n \r\n \r\n \r\n {transactionDetails.payingCompany} {t('actions:dialogs.transactionDetails.beneficiaryInformationTitle')}\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerName')} :  \r\n {transactionDetails.bankAccountOwnerName}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerAddressLine1')}:  \r\n\r\n
    \r\n {transactionDetails.bankAccountOwnerAddressLine1}\r\n {\r\n transactionDetails.bankAccountOwnerAddressLine2 && (\r\n <>
    {transactionDetails.bankAccountOwnerAddressLine2}\r\n )\r\n }\r\n
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerCity')}:  \r\n {transactionDetails.bankAccountOwnerCity}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerPostalCode')}:  \r\n {transactionDetails.bankAccountOwnerPostalCode}\r\n \r\n\r\n {/* \r\n {t('forms:account.region')}:  \r\n {transactionDetails.bankAccountOwnerRegion || \"-\"}\r\n */}\r\n\r\n \r\n {t('forms:account.country')}:  \r\n {transactionDetails.bankAccountOwnerCountryCode || \"-\"}\r\n \r\n\r\n
    \r\n
    \r\n\r\n \r\n \r\n Bank Details\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwner')}:  \r\n {transactionDetails.bankAccountOwnerName}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.ibanCode')}:  \r\n {transactionDetails.bankAccountOwnerIBAN}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerBIC')}:  \r\n {transactionDetails.bankAccountOwnerBIC}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.referenceNumber')}:  \r\n {transactionDetails.wireReference}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n \r\n \r\n \r\n {\r\n offer && (paymentType === 0 || paymentType === 1) &&\r\n <>\r\n \r\n \r\n {offer.refrigerantGasTypeCode}\r\n \r\n\r\n {t('actions:dialogs.transactionDetails.grade', {grade: offer.pressumedGradeName})}\r\n \r\n\r\n {\r\n offer.maximumQuantity &&\r\n offer.maximumQuantity.toFixed(2) + \" kg\"\r\n }\r\n {\r\n offer.quantitySum &&\r\n offer.quantitySum.toFixed(2) + \" kg\"\r\n }\r\n \r\n {(transactionDetails.amount).toFixed(2)} EUR\r\n \r\n \r\n }\r\n \r\n {t('filters:company.vat')} ({vatPercString}%):  \r\n \r\n {((vatPercentage-1)*transactionDetails.amount).toFixed(2)} EUR\r\n \r\n\r\n \r\n\r\n \r\n {t('screens:stockListing.headers.total')}:  \r\n {(transactionDetails.amount * vatPercentage).toFixed(2)} EUR \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n};\r\n\r\nexport default TransactionDetails;\r\n","import React, {useCallback, useState} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport styled from \"styled-components\";\r\nimport Color from \"color\";\r\nimport Button from \"../elements/buttons/Button\";\r\n\r\nconst ModalOverlay = styled.div`\r\n display: block;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${(props) =>\r\n Color(props.theme.bgOverlay).fade(0.17).string()};\r\n z-index: 700;\r\n`;\r\n\r\nconst ModalContainer = styled.div`\r\n position: absolute;\r\n min-width: 1000px;\r\n max-width: 1000px;\r\n background: white;\r\n margin: 0 auto;\r\n padding: 64px 72px 40px;\r\n z-index: 701;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n display: flex;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n transition: all 0.3s ease-in;\r\n font-family: ${(props) => props.theme.fontFamily};\r\n box-shadow: 0px 12px 20px 0px rgba(0, 0, 0, 0.16);\r\n border-radius: 14px;\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n &,\r\n &.wide {\r\n min-width: 90%;\r\n width: 90%;\r\n max-width: 90%;\r\n padding: 30px 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst ButtonsWrapper = styled.div`\r\n text-align: center;\r\n border-top: 1px solid #000;\r\n padding-top: 32px;\r\n`;\r\n\r\nconst DialogButton = styled(Button)`\r\n background: ${(props) => props.theme.primaryActionColor};\r\n border: 1px solid ${(props) => props.theme.primaryActionColorBorder};\r\n color: ${props => props.theme.textWhite};\r\n\r\n &:enabled:hover {\r\n background: ${props => Color(props.theme.primaryActionColor).lighten(0.15).string()};\r\n }\r\n`;\r\n\r\nexport const usePlainModal = ({\r\n closeText,\r\n onClose\r\n }) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [modalModel, setModalModel] = useState({});\r\n\r\n const toggleOpen = useCallback(\r\n (modal) => {\r\n setIsOpen((open) => !open);\r\n setModalModel(modal);\r\n },\r\n [setIsOpen, setModalModel]\r\n );\r\n\r\n return {\r\n toggleOpen: toggleOpen,\r\n modalProps: {\r\n isOpen,\r\n closeText,\r\n modal: modalModel,\r\n onClose\r\n }\r\n }\r\n};\r\n\r\nconst PlainModal = ({children, modalVariant, closeText, isOpen, onClose, modal}) => {\r\n\r\n if (!isOpen) {\r\n return null;\r\n }\r\n\r\n return ReactDOM.createPortal(\r\n <>\r\n \r\n \r\n {children}\r\n\r\n \r\n {\r\n ev.preventDefault();\r\n onClose(modal);\r\n }}>\r\n {closeText}\r\n \r\n \r\n \r\n \r\n ,\r\n document.body\r\n )\r\n};\r\n\r\nexport default PlainModal;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n skipValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\n\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport { Checkbox } from \"../../../../../components/elements/form-elements\";\r\nimport { VSpace } from \"../../../../pwa/components/StyledElements\";\r\nimport * as yup from \"yup\";\r\n\r\nconst validDispute = (t, index) => {\r\n return yup.lazy((values) => {\r\n if (!values[`disputeThisResult_${index}`]) return skipValidation();\r\n return buildValidation({\r\n [`disputeReason_${index}`]: ValidationRule.isStringRule().required(\r\n t(\"forms:dispute.wizard.disputeReason.required\")\r\n ).rule,\r\n });\r\n });\r\n};\r\n\r\nconst InfoWrapper = styled.div`\r\n width: 100%;\r\n margin-bottom: 10px;\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n & > section {\r\n width: 32%;\r\n display: flex;\r\n flex-direction: column;\r\n font-size: 12px;\r\n font-weight: 700;\r\n\r\n & > div.wrong {\r\n color: #f0c40d !important;\r\n }\r\n }\r\n\r\n & > section.bold {\r\n font-size: 14px;\r\n font-weight: 700;\r\n }\r\n\r\n & > section.green {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst getBuyerAnalysisForCylinder = (cyl, buyerAnalysis) => {\r\n const analysis = buyerAnalysis.filter(\r\n (analysis) => analysis.skuId === cyl.skuId\r\n );\r\n return analysis[0];\r\n};\r\n\r\nconst WizardDispute = (t, offer) => {\r\n const initialValues = {};\r\n const steps = [];\r\n const cylinders = offer.cylindersAnalysis;\r\n\r\n cylinders.forEach((cyl) => {\r\n const index = cyl.skuId;\r\n const buyerAnalysis = getBuyerAnalysisForCylinder(\r\n cyl,\r\n offer.buyerCylindersAnalysis\r\n );\r\n\r\n initialValues[`disputeThisResult_${index}`] = false;\r\n initialValues[`disputeReason_${index}`] = \"\";\r\n initialValues[`analysisId_${index}`] = buyerAnalysis.analysisId;\r\n initialValues[`offerId_${index}`] = buyerAnalysis.offerId;\r\n\r\n steps.push({\r\n name: `${t(\"forms:qualityTest.cylinder\")}: ${cyl.tagId}`,\r\n fieldNames: [\r\n `disputeThisResult_${index}`,\r\n `disputeReason_${index}`,\r\n `analysisId_${index}`,\r\n `offerId_${index}`,\r\n ],\r\n validation: validDispute(t, index),\r\n fields: (formik) => (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n {t(\"forms:dispute.wizard.qualityAssessment\")}\r\n
    \r\n
    {offer.offerer}
    \r\n
    \r\n
    \r\n
    \r\n {t(\"sidebar:title.quality.qualityConfirmation\")}\r\n
    \r\n
    {offer.acceptedBidInfo.bidCompanyName}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {t(\"forms:cylinder.cylinderGas\")}:
    \r\n
    {t(\"screens:technician.netQuantity\")}:
    \r\n
    \r\n {t(\"sidebar:label.totalExtractedQuantity\")}:\r\n
    \r\n
    \r\n {t(\"sidebar:label.extraction.qualityGrade\")}:\r\n
    \r\n
    \r\n
    \r\n
    {cyl.gasTypeCode}
    \r\n
    {cyl.maximumQuantity.toFixed(2)} kg
    \r\n
    {cyl.quantity.toFixed(2)} kg
    \r\n
    {cyl.gradeName}
    \r\n
    \r\n\r\n
    \r\n
    {cyl.gasTypeCode}
    \r\n
    {cyl.maximumQuantity.toFixed(2)} kg
    \r\n \r\n {buyerAnalysis?.quantity.toFixed(2)} kg\r\n \r\n \r\n {buyerAnalysis?.gradeName}\r\n \r\n
    \r\n
    \r\n \r\n {(cyl.quantity !== buyerAnalysis.quantity ||\r\n cyl.gradeName !== buyerAnalysis.gradeName) && (\r\n \r\n )}\r\n \r\n {formik.values[`disputeThisResult_${index}`] && (\r\n \r\n )}\r\n \r\n ),\r\n });\r\n });\r\n\r\n return {\r\n title: t(\"actions:dispute.start\"),\r\n initialValues: initialValues,\r\n steps,\r\n };\r\n};\r\n\r\nexport default WizardDispute;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport styled from \"styled-components\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport sellRefrigerantListingStateModule from \"../../../core/state/sell-refrigerant/sellRefrigerantListingStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport MyOffersColumns from \"./columns/MyOffersColumns\";\r\nimport MarketplaceFilter from \"./components/MarketplaceFilter\";\r\nimport MyOffersDetailSideBar from \"./components/MyOffersDetailSideBar\";\r\nimport TransactionDetails from \"./components/TransactionDetails\";\r\nimport PlainModal, { usePlainModal } from \"../../../components/modal/PlainModal\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport WizardDispute from \"./components/wizard/WizardDispute\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst actionTypes = {\r\n SET_HASOFFERS: \"SET_HASOFFERS\",\r\n RESET_HASOFFERS: \"RESET_HASOFFERS\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_CONFIRMED_GAS_QUANTITY_TO: \"SET_CONFIRMED_GAS_QUANTITY_TO\",\r\n RESET_CONFIRMED_GAS_QUANTITY_TO: \"RESET_CONFIRMED_GAS_QUANTITY\",\r\n SET_CONFIRMED_GAS_QUANTITY_FROM: \"SETCONFIRMED__GAS_QUANTITY_FROM\",\r\n RESET_CONFIRMED_GAS_QUANTITY_FROM: \"RESET_CONFIRMED_GAS_QUANTITY_FROM\",\r\n SET_CONFIRMED_QUALITY: \"SET_CONFIRMED_QUALITY\",\r\n RESET_CONFIRMED_QUALITY: \"RESET_CONFIRMED_QUALITY\",\r\n SET_CONFIRMED_GAS_TYPE: \"SET_CONFIRMED_GAS_TYPE\",\r\n RESET_CONFIRMED_GAS_TYPE: \"RESET_CONFIRMED_GAS_TYPE\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_EXPIRATION_DATE_FROM: \"SET_EXPIRATION_DATE_FROM\",\r\n RESET_EXPIRATION_DATE_FROM: \"RESET_EXPIRATION_DATE_FROM\",\r\n SET_EXPIRATION_DATE_TO: \"SET_EXPIRATION_DATE_TO\",\r\n RESET_EXPIRATION_DATE_TOM: \"RESET_EXPIRATION_DATE_TO\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst tabItems = (t) => [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: RouteCreator.salesCenter.marketplace(),\r\n },\r\n {\r\n name: t(\"navigation:myOffers\"),\r\n path: RouteCreator.salesCenter.myOffers(),\r\n },\r\n {\r\n name: t(\"navigation:myBids\"),\r\n path: RouteCreator.salesCenter.myBids(),\r\n },\r\n];\r\n\r\nconst Wrong = styled.span`\r\n color: #f0c40d !important;\r\n`;\r\n\r\nconst myOffersReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case \"SET_HASOFFERS\":\r\n state.filter.hasOffers = action.payload;\r\n break;\r\n case \"SET_ACTIVETAB\":\r\n state.filter = {};\r\n state.filter.offerStatuses = action.payload;\r\n break;\r\n case \"RESET_HASOFFERS\":\r\n delete state.filter.hasOffers;\r\n break;\r\n case \"SET_PAGING\":\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_TYPE:\r\n state.filter.confirmedGasType = action.payload;\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_TYPE:\r\n delete state.filter.confirmedGasType;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_QUANTITY_TO:\r\n state.filter.confirmedGasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_QUANTITY_TO:\r\n delete state.filter.confirmedGasQuantityTo;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_QUANTITY_FROM:\r\n state.filter.confirmedGasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_QUANTITY_FROM:\r\n delete state.filter.confirmedGasQuantityFrom;\r\n break;\r\n case \"SET_PRESUMED_QUALITY\":\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_PRESUMED_QUALITY\":\r\n delete state.filter.presumedQuality;\r\n break;\r\n case \"SET_CONFIRMED_QUALITY\":\r\n state.filter.confirmedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_CONFIRMED_QUALITY\":\r\n delete state.filter.confirmedQuality;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"1\";\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n\r\n case actionTypes.SET_EXPIRATION_DATE_FROM:\r\n state.filter.bidDealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_FROM:\r\n delete state.filter.bidDealExpirationFrom;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_TO:\r\n state.filter.bidDealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_TO:\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst MyOffersListing = () => {\r\n const {\r\n sellingItems,\r\n isLoading,\r\n error,\r\n loadSellingItems,\r\n loadSellingItemById,\r\n details,\r\n unpublishData,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(sellRefrigerantListingStateModule);\r\n\r\n const { t, i18n } = useTranslation(\"screens\");\r\n const currentLanguage = i18n.language;\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n\r\n const [filterState, dispatch] = useImmerReducer(myOffersReducer, {\r\n filter: { offerStatuses: [OfferStatus.offered] },\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"dealExpiration\",\r\n descending: false,\r\n });\r\n\r\n const setActiveTab = (tab) => {\r\n if (tab[0] === 99) {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [{ id: \"lastChangeDateTime\", desc: true }],\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [{ id: \"dealExpiration\", desc: false }],\r\n });\r\n }\r\n dispatch({ type: \"SET_ACTIVETAB\", payload: tab });\r\n };\r\n\r\n useEffect(() => {\r\n loadSellingItems(filterState);\r\n }, [loadSellingItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const [currentRowData, setCurrentRowData] = useState({\r\n offer: null,\r\n bid: null,\r\n });\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n let currentBid = null;\r\n if (row.original.acceptedBid) {\r\n const bids = await MarketplaceService.getBids(row.original.offerId);\r\n currentBid = bids\r\n ? bids.find((b) => {\r\n if (b.bidStatus === 1) {\r\n return b.bidId === row.original.acceptedBid.id;\r\n }\r\n return null;\r\n })\r\n : null;\r\n }\r\n\r\n setCurrentRowData({\r\n offer: row.original,\r\n bid: currentBid,\r\n });\r\n\r\n await loadSellingItemById(row.original.offerId);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [details, loadSellingItemById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n if (detailViewIsOpened) {\r\n setOpenAccordionId(null);\r\n setDetailViewIsOpened(false);\r\n if (MyOffersListing.refreshNeeded) {\r\n MyOffersListing.refreshNeeded = false;\r\n loadSellingItems(filterState);\r\n }\r\n }\r\n };\r\n\r\n const calcWrong = (first, second, printValue) => {\r\n return first !== second ? {printValue} : {printValue};\r\n };\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:salesCenter\"),\r\n },\r\n {\r\n text: t(\"navigation:myOffers\"),\r\n },\r\n ]);\r\n\r\n //Unpublish action\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.unPublishOffer.title\"),\r\n type: \"warning\",\r\n onConfirm: async (model) => {\r\n const result = await StockService.unpublishFromMarketplace({\r\n offerIds: model.offerIds,\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadSellingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.offerUnpublished\"));\r\n }\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.unPublishOffer.confirmText\"),\r\n });\r\n //Finish action\r\n const { modalProps: sellModalProps, toggleOpen: sellToggleOpen } = useModal({\r\n title: t(\"actions:dialogs.sellOffer.title\"),\r\n isWarning: false,\r\n // onAlternativeDisabled: (row) => {\r\n // const original = row[0];\r\n // return !(\r\n // original.status === OfferStatus.qualityTested ||\r\n // (original.status === OfferStatus.buyerClaimedBottles &&\r\n // original.dealExpiration < new Date().toISOString())\r\n // );\r\n // },\r\n // onAlternative: async (row) => {\r\n // openDisputeWizard(row[0]);\r\n // sellToggleOpen();\r\n // },\r\n onConfirm: async (row) => {\r\n const result = await MarketplaceService.offerSold([row[0].offerId]);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setDetailViewIsOpened(false);\r\n loadSellingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.sellOffer\"));\r\n }\r\n sellToggleOpen();\r\n },\r\n onCancel: () => {\r\n sellToggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.sellOffer.confirmText\"),\r\n alternativeText: t(\"actions:dialogs.sellOffer.startDisputeText\"),\r\n type: \"info\",\r\n });\r\n\r\n //Reject expired bid action\r\n const { modalProps: rejectModalProps, toggleOpen: rejectToggleOpen } = useModal({\r\n title: t(\"actions:dialogs.rejectBid.title\"),\r\n onConfirm: async (row) => {\r\n const result = await MarketplaceService.rejectBidDueToExpiration({\r\n bidId: row[0].acceptedBid.id,\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadSellingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.rejectBid\"));\r\n }\r\n rejectToggleOpen();\r\n },\r\n onCancel: () => {\r\n rejectToggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.rejectBid.confirmText\"),\r\n });\r\n\r\n // Dispute action\r\n const getDisputeChoice = (choice) => {\r\n if (choice.indexOf(\"generalDispute\") > -1) {\r\n return {\r\n qualityMismatch: false,\r\n generalDispute: true,\r\n };\r\n } else if (choice.indexOf(\"qualityMismatch\") > -1) {\r\n return {\r\n qualityMismatch: true,\r\n generalDispute: false,\r\n };\r\n } else {\r\n return {\r\n qualityMismatch: false,\r\n generalDispute: false,\r\n };\r\n }\r\n };\r\n\r\n const openDisputeWizard = (offer) => {\r\n return ModalWizard.show(\r\n WizardDispute(t, offer),\r\n {\r\n onSubmit: async (values) => {\r\n const data = ModalWizard.groupValues(values, \"_\", true).filter(\r\n (itm) => itm.disputeThisResult === true\r\n );\r\n if (data.length > 0) {\r\n const result = await MarketplaceService.dispute(data);\r\n if (result && result.error) {\r\n ModalWizard.submitFailed(t(result.error.message));\r\n } else {\r\n loadSellingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.disputed\"));\r\n ModalWizard.hide();\r\n }\r\n } else ModalWizard.hide(0);\r\n setDetailViewIsOpened(false);\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { width: \"800px\", height: \"730px\" } }\r\n );\r\n };\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n });\r\n const getTransactionDetails = async (offer, bidId) => {\r\n const result = await PaymentService.getTransactionDetails(0, bidId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: offer,\r\n details: result.data.data[0],\r\n });\r\n toggleTransactionDetails();\r\n }\r\n };\r\n const { modalProps: transactionDetailsProps, toggleOpen: toggleTransactionDetails } = usePlainModal({\r\n onClose: async () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const columns = useMemo(() => {\r\n return MyOffersColumns.getColumns(\r\n filterState.filter.offerStatuses,\r\n t,\r\n {\r\n toggleOpen: toggleOpen,\r\n sellToggleOpen: sellToggleOpen,\r\n rejectToggleOpen: rejectToggleOpen,\r\n openDisputeWizard: openDisputeWizard,\r\n getTransactionDetails: getTransactionDetails,\r\n },\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n );\r\n }, [filterState.filter.offerStatuses, t, globalState.userCountryId]);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n let tabIndex = 0;\r\n const statuses = filterState.filter.offerStatuses;\r\n\r\n if (statuses.includes(OfferStatus.offered)) {\r\n tabIndex = 0;\r\n } else if (\r\n statuses.includes(OfferStatus.waitingForOffererFunds) ||\r\n statuses.includes(OfferStatus.offererEscrowedFunds) ||\r\n statuses.includes(OfferStatus.buyerEscrowedFunds)\r\n ) {\r\n tabIndex = 1;\r\n } else if (statuses.includes(OfferStatus.buyerClaimedBottles) || statuses.includes(OfferStatus.qualityTested)) {\r\n tabIndex = 2;\r\n } else if (statuses.includes(OfferStatus.sold)) {\r\n tabIndex = 3;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:myOffers.title\")}\r\n \r\n \r\n (\r\n \r\n ),\r\n }}\r\n filterTitle={t(\"filters:recoveredFGasMarketPlace.filterTitle\")}\r\n showTitle={true}\r\n filterComponent={() => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }}\r\n noDataText={t(\"myOffers.noData\")}\r\n columns={columns}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailView={\r\n \r\n }\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${details.sellingItemData?.offerNumber}`}\r\n />\r\n \r\n

    {t(\"actions:dialogs.unPublishOffer.text\")}

    \r\n

    \r\n {modalProps.modal &&\r\n modalProps.modal.original &&\r\n `${\r\n modalProps.modal.original.refrigerantGasTypeCode\r\n } | ${modalProps.modal.original.quantity?.toFixed(2)} kg | ${\r\n modalProps.modal.original.pressumedGradeName\r\n } | ${\r\n modalProps.modal.original.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

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

    {t(\"actions:dialogs.sellOffer.text\")}

    \r\n

    \r\n {sellModalProps.modal &&\r\n sellModalProps.modal.length > 0 &&\r\n `• ${\r\n sellModalProps.modal[0].cylindersAnalysis\r\n ? sellModalProps.modal[0].acceptedBid[\r\n `offeredPriceGrade${sellModalProps.modal[0].cylindersAnalysis[0].gradeName}`\r\n ].toFixed(2)\r\n : sellModalProps.modal[0].acceptedBid[\r\n `offeredPriceGrade${sellModalProps.modal[0].pressumedGradeName}`\r\n ].toFixed(2)\r\n } EUR/kg (${t(\"actions:bidActions.establishedQuality\")})`}\r\n

    \r\n

    {t(\"actions:dialogs.revokeBid.offeredItem\")}

    \r\n

    \r\n {sellModalProps.modal &&\r\n sellModalProps.modal.length > 0 &&\r\n `• ${\r\n sellModalProps.modal[0].refrigerantGasTypeCode\r\n } | ${sellModalProps.modal[0].quantity.toFixed(2)} kg | ${\r\n sellModalProps.modal[0].pressumedGradeName\r\n } `}\r\n

    \r\n {sellModalProps.modal &&\r\n sellModalProps.modal.length > 0 &&\r\n sellModalProps.modal[0]?.buyerCylindersAnalysis?.length > 0 && (\r\n <>\r\n

    {t(\"actions:dialogs.revokeBid.measuredItems\")}

    \r\n {sellModalProps.modal[0]?.buyerCylindersAnalysis.map((x) => (\r\n

    \r\n {`• `}\r\n {calcWrong(\r\n x.gasTypeCode,\r\n sellModalProps.modal[0].refrigerantGasTypeCode,\r\n x.gasTypeCode\r\n )}\r\n {` | `}{\" \"}\r\n {calcWrong(\r\n x.quantity,\r\n sellModalProps.modal[0].quantity,\r\n ` ${x.quantity.toFixed(2)} kg`\r\n )}\r\n {` | `}\r\n {calcWrong(x.gradeName, sellModalProps.modal[0].pressumedGradeName, x.gradeName)}\r\n

    \r\n ))}\r\n \r\n )}\r\n
    \r\n \r\n

    {t(\"actions:dialogs.rejectBid.text\")}

    \r\n

    \r\n {rejectModalProps.modal &&\r\n rejectModalProps.modal.length > 0 &&\r\n `• ${rejectModalProps.modal[0].acceptedBidInfo.offeredPriceGradeA.toFixed(\r\n 2\r\n )} EUR/kg | ${rejectModalProps.modal[0].acceptedBidInfo.offeredPriceGradeB.toFixed(\r\n 2\r\n )} EUR/kg | ${rejectModalProps.modal[0].acceptedBidInfo.offeredPriceGradeC.toFixed(2)} EUR/kg`}\r\n

    \r\n

    {t(\"actions:dialogs.revokeBid.offeredItem\")}

    \r\n

    \r\n {rejectModalProps.modal &&\r\n rejectModalProps.modal.length > 0 &&\r\n `• ${\r\n rejectModalProps.modal[0].refrigerantGasTypeCode\r\n } | ${rejectModalProps.modal[0].quantity.toFixed(2)} kg | ${\r\n rejectModalProps.modal[0].pressumedGradeName\r\n } | ${\r\n rejectModalProps.modal[0].analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nMyOffersListing.refreshNeeded = false;\r\n\r\nexport default MyOffersListing;\r\n","const BidStatus = {\r\n active: 0,\r\n accepted: 1,\r\n rejected: 2,\r\n revoked: 3,\r\n};\r\n\r\nexport default BidStatus;\r\n","import React from \"react\";\r\nimport DateCellWithExpiration from \"../../../../components/data/DateCellWithExpiration\";\r\nimport TransactionStatus from \"../../../../components/elements/general/TransactionStatus\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport BidStatus from \"../../../../core/enums/BidStatus\";\r\nimport OfferStatus from \"../../../../core/enums/OfferStatus\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport BidGradePriceCell from \"../components/BidGradePriceCell\";\r\nimport GradeCell from \"../../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../../components/data/GreenCell\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport PurchasePrice from \"../../../../components/data/PurchasePrice\";\r\nimport HandlingCell from \"../../../../components/data/HandlingCell\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\n\r\nexport const createSteps = (value, t, original) => {\r\n const bidStatus = original?.bidStatus;\r\n const seller = original?.offerer ?? \"\";\r\n const { CompanyName } = UserService.getUserDetailsFromToken();\r\n const buyer = CompanyName ?? \"\";\r\n\r\n if (bidStatus === 2 || bidStatus === 3) {\r\n return Array.from([\r\n {\r\n status: 2,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: seller,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: seller,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: seller,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: seller,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: seller,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n ]);\r\n }\r\n\r\n let result = Array.from([\r\n {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Accept\", {\r\n company: original.offerer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_Adeposit\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_collect\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_test\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_confirmTest\", {\r\n company: seller,\r\n }),\r\n },\r\n ]);\r\n switch (value) {\r\n case 0:\r\n case 1:\r\n if (bidStatus === 2) {\r\n result[0] = {\r\n status: 2,\r\n tip: t(\"screens:myOffers.toastNotification.rejectBid\"),\r\n };\r\n } else if (bidStatus === 3) {\r\n result[0] = {\r\n status: 2,\r\n tip: t(\"screens:myBids.successfullyRevoked\"),\r\n };\r\n }\r\n break;\r\n\r\n case 2:\r\n result[0] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Cdeposit\", {\r\n company: seller,\r\n }),\r\n };\r\n break;\r\n case 3:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: seller,\r\n }),\r\n };\r\n result[1] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case 4:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: seller,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case 5:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: seller,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case 6:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: seller,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[4] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_confirmTest\", {\r\n company: seller,\r\n }),\r\n };\r\n break;\r\n case 10:\r\n result[0] = {\r\n status: 1,\r\n tip: t(\"screens:disputes.pendingSettlement\"),\r\n };\r\n break;\r\n case 99:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: seller,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[4] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_confirmTest\", {\r\n company: seller,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nconst MyBidsColumns = {\r\n getColumns: (\r\n bidStatus,\r\n t,\r\n actions,\r\n offerStatus,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n ) => {\r\n const gasGradeNames = [\r\n t(\"sidebar:label.bid.aGrade\"),\r\n t(\"sidebar:label.bid.bGrade\"),\r\n t(\"sidebar:label.bid.cGrade\"),\r\n ];\r\n const pendingColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"bidId\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {\r\n actions.setSelectedBid(row.original);\r\n actions.toggleOpenRevoke(value);\r\n }}\r\n />\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ];\r\n const acceptedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"myBids.headers.bidDealExpiration\"),\r\n accessor: \"bidDealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.offerStatus;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return DateCellWithExpiration(value, translation);\r\n },\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({\r\n cell: {\r\n row: { original },\r\n },\r\n }) => {\r\n if (original.bidStatus !== 1) return null;\r\n\r\n return (\r\n \r\n \r\n {!original.hasMangoTransaction && (\r\n {\r\n var offerInfo = `${\r\n original.refrigerantGasTypeCode\r\n } | ${\r\n gasGradeNames[\r\n original.pressumedGradeValue\r\n ]\r\n } | ${original.maxQuantitySum} kg`;\r\n\r\n await actions.payForAGrade(\r\n original.bidId,\r\n original.offeredPriceGradeA *\r\n original.maxQuantitySum,\r\n offerInfo,\r\n original.offererCountryId\r\n );\r\n }}\r\n disabled={\r\n original.offerStatus !== 3 ||\r\n !globalState.hasValidCompanyCertificate ||\r\n !globalState.hasCertificateRights\r\n }\r\n />\r\n )}\r\n\r\n {original.hasMangoTransaction && (\r\n {\r\n await actions.getTransactionDetails(\r\n original,\r\n original.bidId\r\n );\r\n }}\r\n disabled={original.offerStatus !== 3}\r\n />\r\n )}\r\n \r\n \r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ];\r\n const qualityTestColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"confirmedQuality\",\r\n Cell: ({ cell: { row } }) => {\r\n let prices = {\r\n A: row.original.offeredPriceGradeA,\r\n B: row.original.offeredPriceGradeB,\r\n C: row.original.offeredPriceGradeC,\r\n };\r\n return PurchasePrice({\r\n row,\r\n t,\r\n currentLanguage,\r\n globalState,\r\n prices,\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"stockListing.headers.dealExpiration\"),\r\n accessor: \"bidDealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.offerStatus;\r\n if (offerStatus === 5) {\r\n translation = \"screens:myOffers.offerStatus.5\";\r\n }\r\n const onHold =\r\n offerStatus === 10 ? t(\"common:status.onHold\") : null;\r\n return DateCellWithExpiration(value, translation, onHold);\r\n },\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value, row } }) => {\r\n if (row.original.bidStatus !== 1) return <>;\r\n return (\r\n \r\n \r\n {\r\n actions.showQualityTestForm(\r\n row.original.offerId,\r\n row.original.offerer,\r\n row.original.refrigerantGasTypeCode,\r\n row.original.cylindersAnalysis\r\n );\r\n }}\r\n disabled={\r\n row.original.offerStatus !==\r\n OfferStatus.buyerClaimedBottles ||\r\n !globalState.hasValidCompanyCertificate ||\r\n !globalState.hasCertificateRights\r\n }\r\n />\r\n {\r\n actions.setSelectedBid(row.original);\r\n actions.togglePayPresumedQuality([\r\n value,\r\n ]);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ];\r\n const paymentCompletedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"confirmedRefrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"confirmedQuantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({\r\n cell: {\r\n value: value ? value.toFixed(2) + \" kg\" : \"N/A\",\r\n },\r\n }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"confirmedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"confirmedQuality\",\r\n Cell: ({ cell: { row } }) => {\r\n let prices = {\r\n A: row.original.offeredPriceGradeA,\r\n B: row.original.offeredPriceGradeB,\r\n C: row.original.offeredPriceGradeC,\r\n };\r\n return PurchasePrice({\r\n row,\r\n t,\r\n currentLanguage,\r\n globalState,\r\n prices,\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.purchasedDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const rejectedRevokedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n (offerStatus.includes(OfferStatus.buyerEscrowedFunds) ||\r\n offerStatus.includes(OfferStatus.offererEscrowedFunds))\r\n ) {\r\n return acceptedColumns;\r\n } else if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n (offerStatus.includes(OfferStatus.buyerClaimedBottles) ||\r\n offerStatus.includes(OfferStatus.qualityTested))\r\n ) {\r\n return qualityTestColumns;\r\n } else if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n offerStatus.includes(OfferStatus.sold)\r\n ) {\r\n return paymentCompletedColumns;\r\n } else if (\r\n bidStatus.includes(BidStatus.revoked) ||\r\n bidStatus.includes(BidStatus.rejected)\r\n ) {\r\n return rejectedRevokedColumns;\r\n }\r\n return pendingColumns;\r\n },\r\n};\r\n\r\nexport default MyBidsColumns;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport {\r\n Num,\r\n NumInfo,\r\n NumSection,\r\n} from \"../../../../components/elements/sidebar/SidebarStyle\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n BigHandlingCosts,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport { getApiUrl } from \"../../../../services/getAxios\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst DownloadWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n &.pad {\r\n padding: 25px 20px 0px;\r\n }\r\n\r\n &.big > * {\r\n font-size: 14px !important;\r\n }\r\n\r\n & > div {\r\n font-size: 12px;\r\n color: #333333;\r\n font-weight: 600;\r\n }\r\n`;\r\n\r\nconst DownloadLink = styled.a`\r\n color: #2294d2;\r\n text-decoration: none;\r\n font-size: 12px;\r\n &.big {\r\n font-size: 14px;\r\n }\r\n`;\r\nconst RejectReason = styled.p`\r\n padding: 8px 0px 8px 20px;\r\n color: #000;\r\n text-align: justify;\r\n`;\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst getFileName = (url) => {\r\n const parts = url.split(\"/\");\r\n return parts[parts.length - 1];\r\n};\r\n\r\nconst MyBidDetailSideBar = ({\r\n bid,\r\n bidDetails,\r\n isLoading,\r\n offer,\r\n toggleOpenRevoke,\r\n isCleaning,\r\n isDisposal,\r\n openAccordionId = null,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] =\r\n useAccordionGroup(openAccordionId);\r\n const shouldShow = bidDetails && !isLoading;\r\n\r\n let maximumQuantity = 0;\r\n offer &&\r\n offer.cylindersAnalysis.map(\r\n (c) => (maximumQuantity += c.maximumQuantity)\r\n );\r\n\r\n const numQualityTests = () => {\r\n if (!bidDetails.skUs) return 0;\r\n let cnt = 0;\r\n bidDetails.skUs.forEach((offer) => {\r\n if (offer.qualityTestDone) cnt++;\r\n });\r\n return cnt;\r\n };\r\n\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n {offer && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {bidDetails.skUs && (\r\n \r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {bidDetails.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n return (\r\n
    \r\n
    \r\n \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n \r\n N/A\r\n \r\n \r\n {t(\r\n \"actions:noContamination\"\r\n )}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.aGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.bGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.cGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n {offer && (\r\n <>\r\n \r\n \r\n {isCleaning ? (\r\n <>\r\n \r\n \r\n \r\n \r\n {bid && (\r\n \r\n )}\r\n \r\n ) : isDisposal ? (\r\n <>\r\n \r\n \r\n \r\n {bid && (\r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {bid && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n {bidDetails.skUs && (\r\n \r\n {numQualityTests() > 0 && (\r\n \r\n
    \r\n {numQualityTests()}{\" \"}\r\n {numQualityTests() > 1\r\n ? t(\"actions:availableTests\")\r\n : t(\"actions:availableTest\")}\r\n
    \r\n \r\n {t(\"actions:downloadAll\")}\r\n \r\n
    \r\n )}\r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {bidDetails.skUs.map((sku, idx) => {\r\n return (\r\n
    \r\n \r\n
    \r\n {getFileName(\r\n sku.qualityTestUrl\r\n )}\r\n
    \r\n {sku.qualityTestDone ? (\r\n \r\n {t(\"actions:download\")}\r\n \r\n ) : (\r\n
    -
    \r\n )}\r\n \r\n {sku.buyerCylindersAnalysis && (\r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {bid?.rejectionReason && (\r\n \r\n {bid?.rejectionReason}\r\n \r\n )}\r\n {offer && offer.bidStatus === 0 && (\r\n
    \r\n {\r\n return offer && offer.bidStatus === 0\r\n ? toggleOpenRevoke(offer.offerId)\r\n : undefined;\r\n }}\r\n >\r\n {t(\"actions:bidActions.revokeBid\")}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MyBidDetailSideBar;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../components/elements/form-elements/InputElement\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../core/validations/ValidationRule\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst validTest = (t, idx) => {\r\n return buildValidation({\r\n [`analysisImage_${idx}`]: ValidationRule.isStringRule().required(\r\n t(\"forms:qualityTest.errors.testRequired\")\r\n ).rule,\r\n [`quality_${idx}`]: ValidationRule.isStringRule().required(\r\n t(\"forms:qualityTest.errors.gasTypeRequired\")\r\n ).rule,\r\n [`quantity_${idx}`]: ValidationRule.isNumber(\r\n t(\"forms:qualityTest.errors.numberRequired\")\r\n ).required(t(\"forms:qualityTest.errors.quantityRequired\")).rule,\r\n });\r\n};\r\n\r\nconst SellerInfo = styled.div`\r\n width: 100%;\r\n border-bottom: 1px solid #eee;\r\n margin-top: 10px;\r\n margin-bottom: 24px;\r\n font-size: 14px;\r\n font-weight: 500;\r\n display: flex;\r\n flex-wrap: wrap;\r\n padding-bottom: 20px;\r\n\r\n & ul {\r\n margin: 0;\r\n list-style: none;\r\n padding: 0px 10px;\r\n }\r\n\r\n & ul.keys {\r\n font-weight: 600;\r\n }\r\n\r\n & .seller {\r\n padding: 0px 10px;\r\n width: 100%;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst QualityTestWizard = (t, offerId, offerer, gasTypeCode, cylinders) => {\r\n const initialValues = {};\r\n const steps = [];\r\n\r\n cylinders.forEach((cyl) => {\r\n const idx = cyl.skuId;\r\n initialValues[`analysisImage_${idx}`] = \"\";\r\n initialValues[`analysisText_${idx}`] = null;\r\n initialValues[`analysisResult_${idx}`] = 9;\r\n initialValues[`quality_${idx}`] = cyl.gradeName;\r\n initialValues[`quantity_${idx}`] = cyl.quantity;\r\n initialValues[`skuId_${idx}`] = cyl.skuId;\r\n initialValues[`offerId_${idx}`] = offerId;\r\n\r\n steps.push({\r\n name: `${t(\"forms:qualityTest.cylinder\")}: ${cyl.tagId}`,\r\n fieldNames: [\r\n `analysisImage_${idx}`,\r\n `quality_${idx}`,\r\n `quantity_${idx}`,\r\n ],\r\n validation: validTest(t, idx),\r\n fields: (formik) => (\r\n <>\r\n \r\n
    {offerer}
    \r\n
      \r\n
    • F-Gas:
    • \r\n
    • Transaction ID:
    • \r\n
    \r\n
      \r\n
    • {gasTypeCode}
    • \r\n
    • {offerId}
    • \r\n
    \r\n
    \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n ),\r\n });\r\n });\r\n\r\n return {\r\n title: t(\"forms:qualityTest.title\"),\r\n initialValues: initialValues,\r\n steps,\r\n };\r\n};\r\n\r\nexport default QualityTestWizard;\r\n","import React from \"react\";\r\nimport Label from \"../../../../../components/elements/form-elements/Label\";\r\nimport {SearchInput} from \"../../../../../components/elements/form-elements\";\r\nimport ValidationError from \"../../../../../components/elements/form-elements/ValidationError\";\r\nimport {InputWrapper} from \"../../../../../components/elements/Stylings\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst TagInput = (props) => {\r\n const {t} = useTranslation();\r\n const {id, visible, filterTagFromList, filterAvailableTags, error} = props;\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n {error && (\r\n \r\n )}\r\n \r\n )\r\n};\r\n\r\nexport default TagInput;\r\n","import React, {useState} from \"react\";\r\nimport TagInput from \"./TagInput\";\r\nimport {commonRegex} from \"../../../../../core/validations/common\";\r\n\r\nconst CollectableTags = (props) => {\r\n const [visibleTag, setVisibleTag] = useState(1);\r\n const [offerTags, setOfferTags] = useState(props.tags);\r\n const [customError, setCustomError] = useState('');\r\n\r\n const filterAvailableTags = (tag) => {\r\n let availableTag;\r\n if (tag.length > 2) {\r\n availableTag = offerTags.filter(t => t.includes(tag.toLowerCase()));\r\n\r\n if (availableTag.length === 0) {\r\n setCustomError('error')\r\n } else {\r\n setCustomError('')\r\n }\r\n\r\n return availableTag;\r\n }\r\n\r\n return [];\r\n }\r\n\r\n const filterTagFromList = (e) => {\r\n let t = offerTags.filter((value) => value !== e.currentTarget.value);\r\n let isValid = commonRegex.UUID.test(e.currentTarget.value);\r\n\r\n if (isValid) {\r\n setOfferTags(t);\r\n if (props.tags.length !== visibleTag) {\r\n setVisibleTag(visibleTag + 1);\r\n }\r\n\r\n props.handleTags({tag: e.currentTarget.value, currentTagPosition: visibleTag});\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {props.tags && props.tags.map((tag, index, arr) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n )\r\n};\r\n\r\nexport default CollectableTags;\r\n","import React from \"react\";\r\nimport CollectableTags from \"./CollectableTags\";\r\n\r\nconst CollectStep = (props) => {\r\n return (\r\n <>\r\n {\r\n props.clientTags && props.clientTags.length > 0 &&\r\n \r\n }\r\n \r\n )\r\n};\r\n\r\nexport default CollectStep;\r\n","import React from \"react\";\r\nimport styled from 'styled-components';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport RadioList from \"../../../../../components/elements/form-elements/RadioList\";\r\n\r\nconst Wrapper = styled.div`\r\n width: 100%;\r\n margin: -10px 2% 0 2%;\r\n padding: 0 0 30px;\r\n`;\r\n\r\nconst Title = styled.p`\r\n color: ${props => props.theme.primaryColor};\r\n font-size: 1rem !important;\r\n margin: 0 0 20px !important;\r\n`;\r\n\r\nconst Subtitle = styled.p`\r\n color: #000;\r\n font-size: 0.875rem !important;\r\n margin: 0 0 5px !important;\r\n font-weight: bold;\r\n`;\r\n\r\n\r\nconst CollectableCompaniesList = (props) => {\r\n const {t} = useTranslation();\r\n const { companies, handleCompanySelect } = props;\r\n\r\n if (!companies) {\r\n return null;\r\n }\r\n\r\n const selectableCompanies = companies.length > 0 ?\r\n companies.map(c => {\r\n return {\r\n text: c.companyDetails.companyName,\r\n value: c.companyDetails.id\r\n }\r\n }) : [];\r\n\r\n // MOCK COMPANIES FOR TESTING SCROLLABLE CONTENT\r\n let mockCompanies = [];\r\n for (let i = 0; i < 10; i++) {\r\n mockCompanies.push(companies);\r\n }\r\n mockCompanies = mockCompanies.flat();\r\n\r\n return (\r\n \r\n {t('forms:stock.wizard.collectCylinder.company')}\r\n {t('forms:stock.wizard.collectCylinder.tableCaption')}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CollectableCompaniesList;\r\n","import React from \"react\";\r\nimport {KeyVal, ListTitle} from \"../../../../pwa/components/StyledElements\";\r\nimport styled from \"styled-components\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Flex from \"../../../../../components/layout/flex/Flex\";\r\n\r\nconst Section = styled.div`\r\n padding: 8px 20px;\r\n &.full-x {\r\n padding: 8px 0px;\r\n }\r\n\r\n &.flex {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst CollectWizardClientData = (props) => {\r\n const {t} = useTranslation();\r\n const {clientData} = props;\r\n\r\n if (!clientData) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"screens:technician.companyDetails\")}\r\n \r\n
    \r\n \r\n {t(\"screens:technician.address\")}\r\n \r\n {clientData.data.address}\r\n \r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n \r\n {clientData.data.city}\r\n \r\n \r\n \r\n {t(\"screens:technician.postal\")}\r\n \r\n {clientData.data.postalCode}\r\n \r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n \r\n {\r\n clientData.data.countryName\r\n }\r\n \r\n \r\n \r\n {t(\r\n \"sidebar:label.companyContactPersonName\"\r\n )}\r\n \r\n {`${clientData.data.contactPersonFirstName\r\n ? clientData.data.contactPersonFirstName\r\n : \"\"\r\n } ${clientData.data.contactPersonLastName\r\n ? clientData.data.contactPersonLastName\r\n : \"\"\r\n } `}\r\n \r\n \r\n \r\n {t(\r\n \"screens:administratorListing.email\"\r\n )}\r\n \r\n {clientData.data.email}\r\n \r\n \r\n \r\n {t(\r\n \"table:headers.client.contact.phone\"\r\n )}\r\n \r\n {clientData.data.phoneNumber\r\n ? clientData.data.phoneNumber\r\n : \"\"}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default CollectWizardClientData;\r\n","import React from \"react\";\r\nimport {\r\n InfoTitle, InfoWrapper\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport * as yup from \"yup\";\r\nimport ValidationRule, {buildValidation} from \"../../../../../core/validations/ValidationRule\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport CollectStep from \"./CollectStep\";\r\nimport CollectableCompaniesList from \"./CollectableCompaniesList\";\r\nimport CollectWizardClientData from \"./CollectWizardClientData\";\r\nimport styled from \"styled-components\";\r\nimport {ReactComponent as CollectGasSvg} from \"../../../../../assets/pwa/collect-gas.svg\";\r\nimport FlexContainer from \"../../../../../components/layout/flex/FlexContainer\";\r\nimport SimpleTable from \"../../../../../components/elements/general/SimpleTable\";\r\nimport VSpace from \"../../../../../components/elements/general/vspace\";\r\n\r\nconst SvgToStock = styled(CollectGasSvg)`\r\n width: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst TableWrapper = styled.div`\r\n margin: 0 2% 0 2%;\r\n max-height: 300px;\r\n height: auto;\r\n overflow: overlay;\r\n position: relative;\r\n width: 100%;\r\n`;\r\n\r\nconst initialValues = {\r\n client: '',\r\n tagIds: [],\r\n currentTagPosition: 0,\r\n collectedCylinders: [],\r\n totalTags: 0\r\n}\r\n\r\nconst validCompany = (t) => {\r\n return buildValidation({\r\n client: ValidationRule.isStringRule()\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validTagLength = (t) => (\r\n yup.lazy((values) => {\r\n let tagDiff = values.totalTags - values.currentTagPosition;\r\n return buildValidation({\r\n currentTagPosition: yup.number().required().moreThan(0).max(values.totalTags, \"\"),\r\n totalTags: ValidationRule.isNumber().shouldBeEqual(\r\n \"currentTagPosition\",\r\n values.currentTagPosition < values.totalTags ? t('forms:stock.wizard.collectCylinder.tags.invalid', {tags: tagDiff}) : '',\r\n \"required\"\r\n ).rule\r\n })\r\n })\r\n)\r\nconst CollectCylinderWizard = (t, companies) => {\r\n let tags = [];\r\n const collectTags = (tagObj, formik) => {\r\n tags = [...tags, tagObj.tag];\r\n formik.setFieldValue('tagIds', tags);\r\n formik.setFieldValue('currentTagPosition', tagObj.currentTagPosition);\r\n formik.setFieldValue('collectedCylinders', tagObj.currentTagPosition - 1);\r\n }\r\n\r\n const handleCompanySelect = (clientId, formik) => {\r\n formik.setFieldValue(\"client\", clientId);\r\n }\r\n\r\n const splitAt = (index) => (x) => [x.slice(0, index), x.slice(index)];\r\n const tableColumns = [\r\n {\r\n header: t(\"screens:technician.type\"),\r\n accessor: \"gasTypeCode\",\r\n cell: (value) => value || \"-\"\r\n },\r\n {\r\n header: t(\"screens:technician.Quantity\"),\r\n accessor: \"quantity\",\r\n cell: (value) => value.toFixed(2) + \" kg\",\r\n },\r\n {\r\n header: t(\"screens:technician.qrTag\"),\r\n accessor: \"tagId\",\r\n cell: (value) => splitAt(4)(value.substr(0, 8)).join(\" \"),\r\n }\r\n ];\r\n\r\n return {\r\n title: t('forms:stock.wizard.collectCylinder.title'),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t('forms:stock.wizard.collectCylinder.step1'),\r\n fieldNames: [\r\n \"client\"\r\n ],\r\n validation: validCompany(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n {t(\r\n \"forms:stock.wizard.collectCylinder.step1Info\"\r\n )}\r\n \r\n
    \r\n
    \r\n\r\n handleCompanySelect(cId, formik)}\r\n formik={formik}/>\r\n \r\n )\r\n },\r\n {\r\n name: t('forms:stock.wizard.collectCylinder.step2'),\r\n fieldNames: [],\r\n onStepRender: async props => {\r\n const clientId = props.value[\"client\"];\r\n const clientData = companies.data && companies.data.find(c => c.companyDetails.id === clientId);\r\n\r\n const cylinders = [];\r\n \r\n if (clientData) {\r\n props.updatePropertyBag({\r\n clientData: {\r\n data: clientData.companyDetails\r\n },\r\n cylinders: cylinders\r\n }\r\n )\r\n }\r\n },\r\n fields: (formik, propertyBag) => (\r\n <>\r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n {t(\r\n \"forms:stock.wizard.collectCylinder.step1Info\"\r\n )}\r\n \r\n
    \r\n
    \r\n {\r\n propertyBag && propertyBag.clientData &&\r\n \r\n }\r\n \r\n )\r\n },\r\n {\r\n name: t('forms:stock.wizard.collectCylinder.step3'),\r\n fieldNames: ['tagIds', 'currentTagPosition', 'totalTags'],\r\n validation: validTagLength(t),\r\n onStepRender: async (props) => {\r\n\r\n const filterCompany = companies.data.find(c => c.companyDetails.id === props.value[\"client\"]);\r\n let clientTags = [];\r\n let clientCylinders = [];\r\n if (filterCompany && filterCompany.offers && filterCompany.offers.length > 0) {\r\n clientCylinders = filterCompany.offers.map(offer => {\r\n return offer.cylinders.map(cylinder => cylinder)\r\n });\r\n clientCylinders = clientCylinders.flat();\r\n\r\n clientTags = filterCompany.offers.map(offer => {\r\n return offer.cylinders.map(cylinder => cylinder.tagId)\r\n });\r\n clientTags = clientTags.flat();\r\n }\r\n\r\n if (filterCompany) {\r\n props.updatePropertyBag({\r\n client: props.value.client,\r\n clientTags: clientTags,\r\n totalTags: clientTags.length,\r\n cylinders: clientCylinders\r\n });\r\n props.formik.setFieldValue(\"totalTags\", clientTags.length);\r\n }\r\n },\r\n fields: (formik, propertyBag) => {\r\n return <>\r\n {\r\n propertyBag.cylinders &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n\r\n \r\n\r\n collectTags(tag, formik)}/>\r\n \r\n }\r\n }\r\n ]\r\n }\r\n }\r\n;\r\n\r\nexport default CollectCylinderWizard;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport BidStatus from \"../../../core/enums/BidStatus\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport myBidsListingStateModule from \"../../../core/state/buy-refrigerant/myBidsListingStateModule\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport MyBidsColumns from \"./columns/MyBidsColumns\";\r\nimport MarketplaceFilter from \"./components/MarketplaceFilter\";\r\nimport MyBidDetailSideBar from \"./components/MyBidDetailSideBar\";\r\nimport QualityTestWizard from \"./components/QualityTestWizard\";\r\nimport TransactionDetails from \"./components/TransactionDetails\";\r\nimport PlainModal, { usePlainModal } from \"../../../components/modal/PlainModal\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport ActionButton from \"../../../components/elements/buttons/ActionButton\";\r\nimport CollectCylinderWizard from \"../../Stock/views/stock/components/CollectCylinderWizard\";\r\nimport WizardPayForOffer from \"./components/wizard/WizardPayForOffer\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst actionTypes = {\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_EXPIRATION_DATE_FROM: \"SET_EXPIRATION_DATE_FROM\",\r\n RESET_EXPIRATION_DATE_FROM: \"RESET_EXPIRATION_DATE_FROM\",\r\n SET_EXPIRATION_DATE_TO: \"SET_EXPIRATION_DATE_TO\",\r\n RESET_EXPIRATION_DATE_TOM: \"RESET_EXPIRATION_DATE_TO\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst tabItems = (t, isDistributor = false) => {\r\n const tabs = [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: RouteCreator.salesCenter.marketplace(),\r\n },\r\n ];\r\n\r\n if (!isDistributor)\r\n tabs.push({\r\n name: t(\"navigation:myOffers\"),\r\n path: RouteCreator.salesCenter.myOffers(),\r\n });\r\n\r\n tabs.push({\r\n name: t(\"navigation:myBids\"),\r\n path: RouteCreator.salesCenter.myBids(),\r\n });\r\n return tabs;\r\n};\r\n\r\nconst myBidsReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case \"SET_ACTIVETAB\":\r\n state.filter = {};\r\n state.filter.bidStatuses = action.payload.bidStatuses;\r\n state.filter.offerStatuses = action.payload.offerStatuses;\r\n break;\r\n case \"SET_PAGING\":\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case \"SET_PRESUMED_QUALITY\":\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_PRESUMED_QUALITY\":\r\n delete state.filter.presumedQuality;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_FROM:\r\n state.filter.bidDealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_FROM:\r\n delete state.filter.bidDealExpirationFrom;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_TO:\r\n state.filter.bidDealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_TO:\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst qualityGrades = [\"A\", \"B\", \"C\"];\r\n\r\nconst MyBidsListing = () => {\r\n const { myBids, isLoading, error, loadMyBids, loadBidById, details, loadGasTypes, gasTypesData } =\r\n useStateModule(myBidsListingStateModule);\r\n\r\n const [selectedBid, setSelectedBid] = useState(null);\r\n const [globalState] = useSharedState(\"global\");\r\n const { userId } = UserService.getUserDetailsFromToken();\r\n\r\n const [filterState, dispatch] = useImmerReducer(myBidsReducer, {\r\n filter: {\r\n bidStatuses: [BidStatus.active],\r\n offerStatuses: [],\r\n userId: userId,\r\n },\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"bidDealExpiration\",\r\n descending: false,\r\n });\r\n\r\n useEffect(() => {\r\n loadMyBids(filterState);\r\n }, [loadMyBids, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const [myBidsDataState, getMyBidsForOffer] = useDataReducer(async (params) => {\r\n const bids = await MarketplaceService.getMyBids(params);\r\n const currentBid = bids.find((b) => b.bidId === params.bidId);\r\n return [currentBid];\r\n });\r\n\r\n const { t, i18n } = useTranslation([\"screens\", \"table\"]);\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:salesCenter\"),\r\n },\r\n {\r\n text: t(\"navigation:myBids\"),\r\n },\r\n ]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n\r\n const closeSideBar = () => {\r\n setOpenAccordionId(null);\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const [currentRowData, setCurrentRowData] = useState(null);\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n setCurrentRowData(row.original);\r\n setSelectedBid(row.original);\r\n await loadBidById(row.original.offerId);\r\n await getMyBidsForOffer({\r\n filter: { offerId: row.original.offerId },\r\n bidId: row.original.bidId,\r\n });\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [details.bidDetails, getMyBidsForOffer, loadBidById]\r\n );\r\n\r\n // revoke bid action\r\n const { modalProps: revokeModalProps, toggleOpen: toggleOpenRevoke } = useModal({\r\n title: t(\"actions:dialogs.revokeBid.title\"),\r\n onConfirm: async (bidId) => {\r\n const result = await MarketplaceService.revokeBid(bidId);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n setDetailViewIsOpened(false);\r\n loadMyBids(filterState);\r\n toast.success(t(\"screens:myBids.successfullyRevoked\"));\r\n }\r\n toggleOpenRevoke();\r\n },\r\n onCancel: () => {\r\n toggleOpenRevoke();\r\n },\r\n confirmText: t(\"actions:dialogs.revokeBid.confirmText\"),\r\n type: \"warning\",\r\n });\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n });\r\n\r\n const getTransactionDetails = async (offer, bidId) => {\r\n const result = await PaymentService.getTransactionDetails(0, bidId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: offer,\r\n details: result.data.data[0],\r\n });\r\n toggleTransactionDetails();\r\n }\r\n };\r\n\r\n const payForAGrade = useCallback(\r\n async (bidId, offeredPriceGradeA, offerInfo, offererCountryId) => {\r\n ModalWizard.show(\r\n WizardPayForOffer(\r\n t,\r\n currentLanguage,\r\n currency,\r\n offeredPriceGradeA,\r\n offerInfo,\r\n false,\r\n \"\",\r\n \"\",\r\n \"\",\r\n offererCountryId\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const res = await MarketplaceService.payAClass(bidId, values.paymentMethod);\r\n if (res && res.error) {\r\n toast.error(t(res.error.message));\r\n } else {\r\n toast.success(t(\"actions:dialogs.payAClass.toastNotifications.success\"));\r\n loadMyBids(filterState);\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n },\r\n [filterState]\r\n );\r\n\r\n const { modalProps: transactionDetailsProps, toggleOpen: toggleTransactionDetails } = usePlainModal({\r\n onClose: () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n //buy presumed quality action\r\n const { modalProps: buyPresumedQualityProps, toggleOpen: togglePayPresumedQuality } = useModal({\r\n title: t(\"actions:bidActions.buyPresumedQuality\"),\r\n onConfirm: async (offerIds) => {\r\n const result = await MarketplaceService.offerSoldByBuyer(offerIds);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n loadMyBids(filterState);\r\n toast.success(t(\"actions:dialogs.payPresumedQuality.success\"));\r\n }\r\n togglePayPresumedQuality();\r\n },\r\n onCancel: () => {\r\n togglePayPresumedQuality();\r\n },\r\n });\r\n\r\n const [, setOfferDetails] = useState(null);\r\n const getOfferDetails = (details) => {\r\n setOfferDetails(details);\r\n };\r\n\r\n //Upload Quality Test action\r\n const asyncEvery = async (arr, predicate) => {\r\n for (let e of arr) {\r\n if (!(await predicate(e))) return false;\r\n }\r\n return true;\r\n };\r\n\r\n const showQualityTestForm = useCallback(\r\n async (offerId, offerer, gasTypeCode, cylinders) => {\r\n ModalWizard.show(QualityTestWizard(t, offerId, offerer, gasTypeCode, cylinders), {\r\n onSubmit: async (values) => {\r\n const forms = ModalWizard.groupValues(values, \"_\");\r\n const uploadCompleted = await asyncEvery(forms, async (form) => {\r\n let gradeIdx = qualityGrades.indexOf(form.values.quality);\r\n form.values.grade = gradeIdx;\r\n const result = await MarketplaceService.addBuyerAnalysis(ModalWizard.asFormData(form.values));\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n });\r\n\r\n if (uploadCompleted) {\r\n toast.success(t(\"screens:myBids.successfullyTested\"));\r\n ModalWizard.hide();\r\n loadMyBids(filterState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n },\r\n [filterState, t, loadMyBids]\r\n );\r\n\r\n const columns = useMemo(() => {\r\n return MyBidsColumns.getColumns(\r\n filterState.filter.bidStatuses,\r\n t,\r\n {\r\n showQualityTestForm: showQualityTestForm,\r\n toggleOpenRevoke: toggleOpenRevoke,\r\n getOfferDetails: getOfferDetails,\r\n togglePayPresumedQuality: togglePayPresumedQuality,\r\n getTransactionDetails: getTransactionDetails,\r\n payForAGrade: payForAGrade,\r\n setSelectedBid: setSelectedBid,\r\n },\r\n filterState.filter.offerStatuses,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n );\r\n }, [\r\n filterState.filter.bidStatuses,\r\n filterState.filter.offerStatuses,\r\n t,\r\n showQualityTestForm,\r\n toggleOpenRevoke,\r\n toggleTransactionDetails,\r\n togglePayPresumedQuality,\r\n details,\r\n globalState.userCountryId,\r\n ]);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n let tabIndexSuccess = -1;\r\n\r\n const bidStatuses = filterState.filter.bidStatuses;\r\n const offerStatuses = filterState.filter.offerStatuses;\r\n let showQRButton = false;\r\n\r\n if (bidStatuses.includes(BidStatus.active)) {\r\n tabIndexSuccess = 0;\r\n } else if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n (offerStatuses.includes(OfferStatus.waitingForOffererFunds) ||\r\n offerStatuses.includes(OfferStatus.buyerEscrowedFunds) ||\r\n offerStatuses.includes(OfferStatus.offererEscrowedFunds))\r\n ) {\r\n tabIndexSuccess = 1;\r\n } else if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n (offerStatuses.includes(OfferStatus.buyerClaimedBottles) || offerStatuses.includes(OfferStatus.qualityTested))\r\n ) {\r\n tabIndexSuccess = 2;\r\n } else if (bidStatuses.includes(BidStatus.accepted) && offerStatuses.includes(OfferStatus.sold)) {\r\n tabIndexSuccess = 3;\r\n }\r\n\r\n if (bidStatuses.includes(BidStatus.accepted) && offerStatuses.includes(OfferStatus.buyerEscrowedFunds)) {\r\n //flip this to true if you want the collect button to show, but only if the QR stickers\r\n //have a guid printed on them, otherwise this does not make any sense\r\n showQRButton = false;\r\n }\r\n\r\n let tabIndexFail = -1;\r\n switch (filterState.filter.bidStatuses[0]) {\r\n case BidStatus.revoked:\r\n tabIndexFail = 0;\r\n break;\r\n case BidStatus.rejected:\r\n tabIndexFail = 1;\r\n break;\r\n default:\r\n tabIndexFail = -1;\r\n }\r\n\r\n const listingKey = tabIndexSuccess + 10 * tabIndexFail;\r\n const [collectCompanies, setCollectCompanies] = useDataReducer(MarketplaceService.getOffersForCollection);\r\n useEffect(() => {\r\n setCollectCompanies();\r\n }, []);\r\n\r\n const { modalProps: collectInfoModalProps, toggleOpen: toggleCollectInfoModal } = useModal({\r\n title: t(\"forms:stock.wizard.collectCylinder.title\"),\r\n type: \"warning\",\r\n confirmText: t(\"actions:close\"),\r\n onConfirm: () => {\r\n toggleCollectInfoModal();\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:myBids.title\")}\r\n \r\n \r\n (\r\n <>\r\n {\r\n setSelectedBid(null);\r\n if (status[0].offerStatuses[0] === 99) {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [\r\n {\r\n id: \"lastChangeDateTime\",\r\n desc: true,\r\n },\r\n ],\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [\r\n {\r\n id: \"bidDealExpiration\",\r\n desc: false,\r\n },\r\n ],\r\n });\r\n }\r\n dispatch({\r\n type: \"SET_ACTIVETAB\",\r\n payload: status[0],\r\n });\r\n }}\r\n tabs={[\r\n {\r\n label: t(\"screens:myBids.tabs.pending\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.active],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.accepted\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.accepted],\r\n offerStatuses: [\r\n OfferStatus.waitingForOffererFunds,\r\n OfferStatus.offererEscrowedFunds,\r\n OfferStatus.buyerEscrowedFunds,\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.qualityTest\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.accepted],\r\n offerStatuses: [\r\n OfferStatus.qualityTested,\r\n OfferStatus.buyerClaimedBottles,\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.purchased\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.accepted],\r\n offerStatuses: [OfferStatus.sold],\r\n },\r\n ],\r\n },\r\n ]}\r\n />\r\n {\r\n setSelectedBid(null);\r\n dispatch({\r\n type: \"SET_ACTIVETAB\",\r\n payload: status[0],\r\n });\r\n }}\r\n tabs={[\r\n {\r\n label: t(\"screens:myBids.tabs.revoked\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.revoked],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.rejected\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.rejected],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n ]}\r\n />\r\n\r\n {showQRButton && (\r\n \r\n {\r\n ev.preventDefault();\r\n collectCompanies.data.length === 0\r\n ? toggleCollectInfoModal()\r\n : ModalWizard.show(CollectCylinderWizard(t, collectCompanies), {\r\n onSubmit: async (values) => {\r\n // alert('uncomment BE action! Selected tags: ' + values.tagIds);\r\n const result = await MarketplaceService.shipToBuyer(\r\n values.tagIds\r\n );\r\n if (result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadMyBids(filterState);\r\n toast.success(t(\"actions:dialogs.shipOut.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n }}\r\n tooltip={t(\"screens:stockListing.tooltip.moveToCompanyStock\")}\r\n >\r\n {t(\"actions:collect\")}\r\n \r\n \r\n )}\r\n \r\n ),\r\n }}\r\n filterTitle={t(\"filters:recoveredFGasMarketPlace.filterTitle\")}\r\n showTitle={true}\r\n filterComponent={() => {\r\n return (\r\n \r\n );\r\n }}\r\n noDataText={t(\"myBids.noData\")}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailView={\r\n toggleOpenRevoke(myBidsDataState.data[0].bidId)}\r\n />\r\n }\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${currentRowData?.offerNumber}`}\r\n />\r\n\r\n \r\n

    {t(\"actions:dialogs.revokeBid.text\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${selectedBid.offeredPriceGradeA.toFixed(\r\n 2\r\n )} EUR/kg | ${selectedBid.offeredPriceGradeB.toFixed(\r\n 2\r\n )} EUR/kg | ${selectedBid.offeredPriceGradeC.toFixed(2)} EUR/kg`}\r\n

    \r\n

    {t(\"actions:dialogs.revokeBid.offeredItem\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${selectedBid.refrigerantGasTypeCode} | ${selectedBid.quantitySum.toFixed(2)} kg | ${\r\n selectedBid.pressumedGradeName\r\n } | ${\r\n selectedBid.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

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

    {t(\"actions:dialogs.payPresumedQuality.info\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${selectedBid.refrigerantGasTypeCode} | ${selectedBid.quantitySum.toFixed(2)} kg | ${\r\n selectedBid.pressumedGradeName\r\n } | ${\r\n selectedBid.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

    \r\n

    {t(\"actions:dialogs.payPresumedQuality.text\")}

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

    {t(\"forms:stock.wizard.collectCylinder.warning\")}

    \r\n
    \r\n \r\n );\r\n};\r\nexport default MyBidsListing;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ReactComponent as MenuBulletSvg } from \"../../../assets/pwa/menu-bullet.svg\";\r\n\r\nconst SvgBullet = styled(MenuBulletSvg)`\r\n vertical-align: middle;\r\n \r\n &.selected circle {\r\n fill: #04A9F5;\r\n stroke: #white;\r\n }\r\n`;\r\n\r\nconst GasGradeCode = styled.span`\r\n padding-left: 12px;\r\n vertical-align: middle;\r\n`;\r\n\r\nconst GasItemWrapper = styled.li`\r\n border-bottom: solid 1px #ECEDEF;\r\n font-size: 12px; \r\n cursor: pointer;\r\n \r\n &.selected {\r\n background-color: #E9F2ED;\r\n font-size: 16px;\r\n font-weight: bold;\r\n } \r\n\r\n`;\r\n\r\nconst ListWrapper = styled.ul`\r\n list-style: none;\r\n padding: 0px;\r\n margin: 0px 0px 0px 12px;\r\n\r\n transition: all 0.3s ease-out;\r\n overflow: hidden;\r\n max-height: 1000px;\r\n opacity:1;\r\n\r\n &.top-space {\r\n padding-top: 25px;\r\n }\r\n\r\n &.closed {\r\n max-height:0;\r\n opacity:0;\r\n }\r\n\r\n &.sidebar {\r\n font-size: 0.875rem;\r\n }\r\n\r\n &.overflow:not(.closed) {\r\n overflow:visible;\r\n }\r\n \r\n`;\r\n\r\nconst GasGradeItem = styled.li`\r\n font-size:12px; \r\n font-weight: normal;\r\n cursor: pointer;\r\n\r\n &.selected {\r\n font-size: 14px;\r\n font-weight: bold;\r\n } \r\n`;\r\n\r\nconst GasTitle = styled.div`\r\n position: relative;\r\n padding: 14px 40px 14px 40px;\r\n`;\r\n\r\nconst GasDetail = styled.div`\r\n display: inline;\r\n vertical-align: middle;\r\n &:after {\r\n content: \"\";\r\n background: url(\"/images/menu/expand.svg\") no-repeat center;\r\n background-size: 14px 12px;\r\n \r\n position: absolute;\r\n right: 8px;\r\n top: 15px;\r\n width: 15px;\r\n height: 15px;\r\n text-align: center;\r\n }\r\n\r\n &.isOpened {\r\n &:after {\r\n transform: rotate(-180deg);\r\n }\r\n }\r\n`;\r\n\r\nconst GasQuantity = styled.span`\r\n float: right;\r\n`;\r\n\r\nconst GasGradeContent = styled.div`\r\n padding: 10px 0px 4px 2px;\r\n`;\r\n\r\nconst GasGradeDetail = styled.div`\r\n display: inline;\r\n vertical-align: middle;\r\n`;\r\n\r\nconst AccordionMenu = ({ item, handleClick, selectedItem, parentIndex, isOpen }) => {\r\n\r\n const [accordionIsActive, setAccordionIsActive] = useState(isOpen);\r\n\r\n const toggleAccordion = () => {\r\n setAccordionIsActive(!accordionIsActive);\r\n };\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const selectedParentClass = (data) => {\r\n return data.id === selectedItem.refrigerantId ? 'selected' : null;\r\n }\r\n\r\n const selectedClass = (data) => {\r\n return data.refrigerantId === selectedItem.refrigerantId && data.grade === selectedItem.grade ? 'selected' : null;\r\n }\r\n\r\n const handleClickInternal = (ev) => {\r\n const tgt = ev.currentTarget;\r\n if (tgt.dataset.value !== undefined) {\r\n const index = tgt.dataset.value;\r\n const selectedItem = item.items[index];\r\n handleClick(selectedItem);\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n {item.code}\r\n \r\n {item.quantity.toFixed(2)} kg\r\n \r\n \r\n {item.items.map((subItem, subIndex) =>\r\n (\r\n \r\n \r\n \r\n \r\n \r\n {subItem.name} {t(\"screens:salesDashboard.labels.grade\")}\r\n \r\n {subItem.quantity.toFixed(2)} kg\r\n \r\n \r\n \r\n\r\n ))}\r\n \r\n\r\n \r\n \r\n )\r\n};\r\n\r\nexport default AccordionMenu;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport AccordionMenu from \"./AccordionMenu\";\r\n\r\nconst ParentListWrapper = styled.ul`\r\n list-style: none;\r\n padding: 0px;\r\n border-top:2px solid #ECEDEF;\r\n margin: 0px;\r\n \r\n`;\r\n\r\nconst GasTypeItemsWithGrades = ({ items, handleClick, selectedItem }) => {\r\n\r\n return (\r\n \r\n { items.map((item, index) =>\r\n (\r\n \r\n\r\n \r\n ))}\r\n \r\n )\r\n};\r\n\r\nexport default GasTypeItemsWithGrades;\r\n","import React, {useState} from \"react\";\r\nimport styled from \"styled-components\";\r\nimport GasTypeItemsWithGrades from \"./components/GasTypeItemsWithGrades\";\r\nimport MenuColumnContainer from \"./components/MenuColumnContainer\";\r\nimport Switch from \"react-switch\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Tooltip from \"../../components/tooltip/Tooltip\";\r\nimport DashboardStyles from \"../../components/dashboard/DashboardStyles\";\r\n\r\nconst TitleContainer = styled.div`\r\n display: inline-block;\r\n font-size: 20px;\r\n padding: 24px;\r\n width:100%;\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 20px;\r\n font-weight: 500;\r\n display:inline;\r\n float:left;\r\n`;\r\n\r\nconst SwitchWrapper = styled.div`\r\n float: right;\r\n display: inline-block;\r\n position: relative;\r\n`;\r\n\r\nconst GasMenuWithGrades = ({ items, handleClick, selectedItem, isChecked, handleChecked }) => {\r\n const { t } = useTranslation(\"screens\");\r\n const [tooltipVisible, setTooltipVisible] = useState(false);\r\n return (\r\n \r\n \r\n < DashboardStyles.SvgNoData /> {\r\n t(\"table:headers.noItems\")\r\n } \r\n \r\n \r\n \r\n {isChecked ? `${t(\"screens:salesDashboard.labels.sales\")}` : `${t(\"screens:salesDashboard.labels.purchases\")}`}\r\n \r\n setTooltipVisible(true)}\r\n onMouseLeave={() => setTooltipVisible(false)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n items && (\r\n \r\n )\r\n }\r\n\r\n \r\n )\r\n};\r\n\r\nexport default GasMenuWithGrades;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport useDataReducerImmediate from \"../../../hooks/_shared/useDataReducerImmediate\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport StatisticsService from \"../../../services/Statistics/StatisticsService\";\r\nimport DashboardWrapper from \"../../../components/dashboard/DashboardWrapper\";\r\nimport FilterableLineChart from \"../../../components/dashboard/FilterableLineChart\";\r\nimport ChartAveragePrice from \"../../../components/dashboard/ChartAveragePrice\";\r\nimport ChartProgress from \"../../../components/dashboard/ChartProgress\";\r\nimport GasMenuWithGrades from \"../../pwa/GasMenuWithGrades\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport styled from \"styled-components\";\r\n\r\nconst actionTypes = {\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst LeftColumn = styled(Flex.Column)``;\r\n\r\nconst RightColumn = styled(Flex.Column)`\r\n min-width: 320px;\r\n`;\r\n\r\nconst MainContainer = styled(Flex.Container)`\r\n height: 100%;\r\n\r\n .container-left {\r\n width: 80%;\r\n display: flex;\r\n height: 100%;\r\n }\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n flex-direction: column;\r\n\r\n .menu {\r\n width: 100%;\r\n }\r\n\r\n .container-left {\r\n order: 2;\r\n width: 100%;\r\n }\r\n }\r\n`;\r\n\r\nconst SecondContainerRow = styled(Flex.Container)`\r\n padding-top: 20px;\r\n flex-grow: 0;\r\n margin-bottom: 24px;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FILTERS:\r\n state.from = action.payload.from;\r\n state.to = action.payload.to;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n delete state.from;\r\n delete state.to;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst STATUS_COLORS = [\"#435764\", \"#A0B19F\", \"#D4A579\", \"#C98380\"];\r\nconst PRESUMED_GRADE_COLORS = [\"#435764\", \"#A0B19F\", \"#D4A579\"];\r\n\r\nconst SalesDashboard = () => {\r\n const { t } = useTranslation(\"screens\");\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:sales\"),\r\n },\r\n {\r\n text: t(\"navigation:dashboard\"),\r\n },\r\n ]);\r\n\r\n const [selectedItem, setSelectedItem] = useState({\r\n refrigerantId: \"\",\r\n grade: null,\r\n name: \"\",\r\n from: \"\",\r\n to: \"\",\r\n color: PRESUMED_GRADE_COLORS[0],\r\n });\r\n\r\n const [isSales, setIsSales] = useState(true);\r\n const [averagePrice, setAveragePrice] = useState(0);\r\n const [menuState, setMenuState] = useState([]);\r\n\r\n const [tradedRefrigerantState] = useDataReducerImmediate(\r\n StatisticsService.tradedRefrigerants\r\n );\r\n\r\n const [tradesPerDate, loadTradesPerDate] = useDataReducer(\r\n async (filter) => {\r\n return await StatisticsService.tradedQuantityPerDate(filter);\r\n }\r\n );\r\n\r\n const [averagesState, loadAverages] = useDataReducer(async (filter) => {\r\n return await StatisticsService.tradedRefrigerantsAverages(filter);\r\n });\r\n\r\n //TODO extract to currency helper\r\n const DEFAULT_SUFIX = \"/ € 0, 00*\";\r\n\r\n const [distributionData, setDistributionData] = useState([\r\n {\r\n name: \"Pending\",\r\n value: 0,\r\n percent: 0,\r\n color: STATUS_COLORS[0],\r\n suffix: DEFAULT_SUFIX,\r\n },\r\n {\r\n name: \"Accepted\",\r\n value: 0,\r\n percent: 0,\r\n color: STATUS_COLORS[1],\r\n suffix: DEFAULT_SUFIX,\r\n },\r\n {\r\n name: \"Quality test\",\r\n value: 0,\r\n percent: 0,\r\n color: STATUS_COLORS[2],\r\n suffix: DEFAULT_SUFIX,\r\n },\r\n {\r\n name: \"Sold\",\r\n value: 0,\r\n percent: 0,\r\n color: STATUS_COLORS[3],\r\n suffix: DEFAULT_SUFIX,\r\n },\r\n ]);\r\n\r\n const statusTranslationsSales = [\r\n t(\"screens:salesDashboard.labels.pending\"),\r\n t(\"screens:salesDashboard.labels.accepted\"),\r\n t(\"screens:salesDashboard.labels.qualityTest\"),\r\n t(\"screens:salesDashboard.labels.sold\"),\r\n ];\r\n\r\n const statusTranslationPurchases = [\r\n t(\"screens:salesDashboard.labels.pending\"),\r\n t(\"screens:salesDashboard.labels.accepted\"),\r\n t(\"screens:salesDashboard.labels.qualityTest\"),\r\n t(\"screens:salesDashboard.labels.purchased\"),\r\n ];\r\n\r\n const [bidsData, setBidsData] = useState([]);\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n from: \"\",\r\n to: \"\",\r\n });\r\n\r\n const onChangeFilter = (filters) => {\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filters,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const filter = getSelectedFilter();\r\n if (filter) {\r\n loadAverages({ filter: filter });\r\n }\r\n }, [filterState, selectedItem]);\r\n\r\n const getSelectedFilter = () => {\r\n if (filterState && selectedItem && selectedItem.refrigerantId) {\r\n const refrigerantId = { refrigerantId: selectedItem.refrigerantId };\r\n const isSalesValue = { isSales: isSales };\r\n const presumedGrade = { presumedGrade: selectedItem.grade };\r\n return {\r\n ...filterState,\r\n ...refrigerantId,\r\n ...presumedGrade,\r\n ...isSalesValue,\r\n };\r\n } else return null;\r\n };\r\n\r\n useEffect(() => {\r\n if (filterState && selectedItem && selectedItem.refrigerantId) {\r\n const refrigerantId = { refrigerantId: selectedItem.refrigerantId };\r\n const presumedGrade = { presumedGrade: selectedItem.grade };\r\n const isSalesValue = { isSales: isSales };\r\n const filter = {\r\n ...filterState,\r\n ...refrigerantId,\r\n ...presumedGrade,\r\n ...isSalesValue,\r\n };\r\n loadTradesPerDate({ filter: filter });\r\n }\r\n }, [filterState, selectedItem]);\r\n\r\n useEffect(() => {\r\n if (averagesState && averagesState.data) {\r\n const gases = averagesState.data.filter(\r\n (x) => x.id == selectedItem.refrigerantId\r\n );\r\n if (gases.length == 1) {\r\n const gas = gases[0];\r\n setAveragePrice(gas.averagePrice);\r\n const distributionData = gas.tradedQuantitiesPerStatus.map(\r\n (item, index) => ({\r\n name: isSales\r\n ? statusTranslationsSales[index]\r\n : statusTranslationPurchases[index],\r\n value: item.value,\r\n percent:\r\n gas.totalQuantity > 0\r\n ? (item.value / gas.totalQuantity) * 100\r\n : 0,\r\n color: STATUS_COLORS[item.status],\r\n suffix: `/ € ${(item.value * gas.averagePrice).toFixed(\r\n 2\r\n )}*`,\r\n })\r\n );\r\n\r\n setDistributionData(distributionData);\r\n setBidsData(gas.bidHistory);\r\n }\r\n }\r\n }, [isSales, averagesState, selectedItem]);\r\n\r\n useEffect(() => {\r\n let data = tradedRefrigerantState?.data;\r\n if (data) {\r\n setIsSales(\r\n UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser)\r\n );\r\n let menuData = isSales\r\n ? tradedRefrigerantState?.data?.sales?.data\r\n : tradedRefrigerantState?.data?.purchases?.data;\r\n setMenuAndSelect(menuData);\r\n }\r\n }, [tradedRefrigerantState]);\r\n\r\n useEffect(() => {\r\n let menuData = isSales\r\n ? tradedRefrigerantState?.data?.sales?.data\r\n : tradedRefrigerantState?.data?.purchases?.data;\r\n if (!menuData) menuData = [];\r\n\r\n setMenuAndSelect(menuData);\r\n }, [isSales]);\r\n\r\n const setMenuAndSelect = (menuData) => {\r\n if (menuData.length > 0) {\r\n const firstGas = menuData[0];\r\n const firstMenu =\r\n firstGas.items.length > 0 ? firstGas.items[0] : null;\r\n if (firstMenu) {\r\n setSelectedItem({\r\n refrigerantId: firstGas.id,\r\n code: firstGas.code,\r\n grade: firstMenu.grade,\r\n gradeName: firstMenu.name,\r\n from: firstMenu.from,\r\n to: firstMenu.to,\r\n color: PRESUMED_GRADE_COLORS[firstMenu.grade],\r\n });\r\n\r\n if (firstMenu.from && firstMenu.to)\r\n onChangeFilter({\r\n from: new Date(firstMenu.from),\r\n to: new Date(firstMenu.to),\r\n });\r\n }\r\n }\r\n\r\n setMenuState(menuData);\r\n };\r\n\r\n const handleClick = (item) => {\r\n if (item && menuState) {\r\n const parent = menuState.filter(\r\n (x) => x.id === item.refrigerantId\r\n )[0];\r\n\r\n const menuItem = {\r\n refrigerantId: parent.id,\r\n code: parent.code,\r\n grade: item.grade,\r\n gradeName: item.name,\r\n from: item.from,\r\n to: item.to,\r\n color: PRESUMED_GRADE_COLORS[item.grade],\r\n };\r\n\r\n setSelectedItem(menuItem);\r\n onChangeFilter({\r\n from: new Date(item.from),\r\n to: new Date(item.to),\r\n });\r\n }\r\n };\r\n\r\n const selectedTitle = () => {\r\n return selectedItem && selectedItem.refrigerantId\r\n ? `${selectedItem.gradeName} ${t(\r\n \"screens:salesDashboard.labels.grade\"\r\n )} ${selectedItem.code}`\r\n : \"\";\r\n };\r\n\r\n const selectedSalesTitle = () => {\r\n const gasTitle = selectedTitle();\r\n return gasTitle\r\n ? `${t(\"screens:salesDashboard.labels.sales\")} - ${gasTitle}`\r\n : \"\";\r\n };\r\n\r\n const selectedAverageTitle = () => {\r\n const gasTitle = selectedTitle();\r\n return gasTitle\r\n ? `${t(\"screens:salesDashboard.labels.averagePrice\")} - ${gasTitle}`\r\n : \"\";\r\n };\r\n\r\n const selectedDistributionTitle = () => {\r\n const gasTitle = selectedTitle();\r\n return gasTitle\r\n ? `${t(\r\n \"screens:salesDashboard.labels.distribution\"\r\n )} - ${gasTitle}`\r\n : \"\";\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:salesDashboard.title\")}\r\n \r\n {tradedRefrigerantState.isCompleted && menuState && (\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SalesDashboard;\r\n","import React from \"react\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport MoneyInputElement from \"../../../../../components/elements/form-elements/MoneyInputElement\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport { Select } from \"../../../../../components/elements/form-elements\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport cylinderListStateModule from \"../../../../../core/state/company/cylinderListStateModule\";\r\n\r\nconst validateAmount = (t) => {\r\n return buildValidation({\r\n price: ValidationRule.moreThan(\r\n 0,\r\n t(\"forms:wallet.wizard.deposit.amount.invalid\"),\r\n t(\"forms:wallet.wizard.deposit.amount.largerThenZero\")\r\n ).rule,\r\n quantity: ValidationRule.moreThan(\r\n 0,\r\n t(\"forms:wallet.wizard.deposit.amount.invalid\"),\r\n t(\"forms:wallet.wizard.deposit.amount.largerThenZero\")\r\n ).required(t(\"forms:wallet.wizard.deposit.amount.invalid\")).rule,\r\n cylinderNetWeight: ValidationRule.moreThan(\r\n 0,\r\n t(\"forms:wallet.wizard.deposit.amount.invalid\"),\r\n t(\"forms:wallet.wizard.deposit.amount.largerThenZero\")\r\n ).required(t(\"forms:wallet.wizard.deposit.amount.invalid\")).rule,\r\n });\r\n};\r\n\r\nconst qualities = (t) => {\r\n return [{ name: t(\"filters:cylinders.reclaimed\"), value: 3 }];\r\n};\r\n\r\nconst WizardAddReclaimOffer = (t, gasTypes = []) => {\r\n const defaultInitialValues = {\r\n price: \"0.00\",\r\n quantity: \"0.00\",\r\n refrigerantId: gasTypes.length > 0 ? gasTypes[0].id : \"\",\r\n grade: 3,\r\n cylinderNetWeight: \"0.00\",\r\n };\r\n\r\n return {\r\n title: t(\"screens:reclaimed.actions.sellRefrigerant\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:reclaimed.wizard.title\"),\r\n fieldNames: [\r\n \"refrigerantId\",\r\n \"price\",\r\n \"quantity\",\r\n \"grade\",\r\n \"cylinderNetWeight\",\r\n ],\r\n validation: validateAmount(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:reclaimed.wizard.infoTextBold\"\r\n )}\r\n \r\n \r\n {t(\"forms:reclaimed.wizard.infoText1\")}\r\n
    \r\n {t(\"forms:reclaimed.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n return {\r\n key: gas.id,\r\n value: gas.id,\r\n label: gas.code,\r\n };\r\n })}\r\n {...formik}\r\n />\r\n\r\n {\r\n return {\r\n key: idx,\r\n value: q.value,\r\n label: q.name,\r\n };\r\n })}\r\n disabled\r\n {...formik}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default WizardAddReclaimOffer;\r\n","const ReclaimedOfferStatus =\r\n {\r\n Offered : 0,\r\n Withdrawn : 1,\r\n WaitingForBuyerFunds : 2,\r\n Sold : 99,\r\n }\r\n\r\n export default ReclaimedOfferStatus;","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\nimport useReclaimedMarketFilterState from \"./components/ReclaimedMarketFilterState\";\r\nimport ReclaimedMarketplaceFilter from \"./components/ReclaimedMarketFilter\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport ActionButton from \"../../../components/elements/buttons/ActionButton\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport WizardAddReclaimOffer from \"./components/wizard/WizardAddReclaimOffer\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport DateCell from \"../../../components/data/DateCell\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport { CustomDateCellWithExpiration } from \"../../../components/data/DateCellWithExpiration\";\r\nimport ReclaimedOfferStatus from \"../../../core/enums/ReclaimedOfferStatus\";\r\nimport { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport ModalDialog from \"../../../components/modal/ModalDialog\";\r\nimport ReclaimedMarketSidebar from \"./components/ReclaimedMarketSidebar\";\r\n\r\nconst dealExpirationDays = 7;\r\n\r\nconst tabItems = (t) => [\r\n {\r\n name: t(\"navigation:myOffers\"),\r\n path: RouteCreator.salesCenter.reclaimedMarketOffers(),\r\n },\r\n];\r\n\r\nconst ReclaimedMarketOffers = () => {\r\n const { t, i18n } = useTranslation([\"screens\", \"table\"]);\r\n const [globalState] = useSharedState(\"global\");\r\n const [tabIndex, setTabIndex] = useState(0);\r\n const [\r\n filterState,\r\n filterDispatch,\r\n filterActions,\r\n sortChange,\r\n currentSortBy,\r\n pageChange,\r\n gasTypes,\r\n ] = useReclaimedMarketFilterState();\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [selected, setSelected] = useState({\r\n offer: null,\r\n details: null,\r\n showCancel: false,\r\n });\r\n\r\n const [tableState, setTableState] = useState({\r\n data: [],\r\n loading: false,\r\n error: null,\r\n });\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:salesCenter\"),\r\n },\r\n {\r\n text: t(\"navigation:myOffers\"),\r\n },\r\n ]);\r\n\r\n const getDistributorReclaimedOffers = async () => {\r\n const res = await MarketplaceService.getDistributorReclaimedOffers(\r\n filterState\r\n );\r\n setTableState({ data: res.data.data });\r\n };\r\n\r\n useEffect(() => {\r\n getDistributorReclaimedOffers();\r\n }, [filterState]);\r\n\r\n const setActiveTab = (tab) => {\r\n let offStatus = 0;\r\n switch (tab) {\r\n case 0:\r\n offStatus = ReclaimedOfferStatus.Offered;\r\n break;\r\n case 1:\r\n offStatus = ReclaimedOfferStatus.WaitingForBuyerFunds;\r\n break;\r\n case 2:\r\n offStatus = ReclaimedOfferStatus.Sold;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (tab === 2) {\r\n filterDispatch({\r\n type: filterActions.SET_SORT,\r\n payload: [{ id: \"lastChangeDateTime\", desc: true }],\r\n });\r\n } else {\r\n filterDispatch({\r\n type: filterActions.SET_SORT,\r\n payload: [{ id: \"offerDateTime\", desc: false }],\r\n });\r\n }\r\n setTabIndex(tab);\r\n filterDispatch({\r\n type: filterActions.RESET_FILTERS,\r\n payload: null,\r\n });\r\n filterDispatch({\r\n type: filterActions.SET_OFFER_STATUS,\r\n payload: offStatus,\r\n });\r\n };\r\n\r\n //publish action\r\n const publishOffer = () => {\r\n return ModalWizard.show(WizardAddReclaimOffer(t, gasTypes), {\r\n onSubmit: async (values) => {\r\n values.quantity = Number(values.quantity);\r\n values.grade = Number(values.grade);\r\n values.price = Number(values.price);\r\n values.cylinderNetWeight = Number(values.cylinderNetWeight);\r\n const result = await MarketplaceService.addReclaimedOffer(\r\n values\r\n );\r\n\r\n if (result && result.error)\r\n ModalWizard.submitFailed(t(result.error.message));\r\n else {\r\n getDistributorReclaimedOffers();\r\n toast.success(t(\"marketplace.toastNotification.bidPlaced\"));\r\n //closeBidSidebar();\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n };\r\n\r\n //Unpublish action\r\n const { modalProps: unpublishProps, toggleOpen: unpublishTogle } = useModal(\r\n {\r\n title: t(\"actions:dialogs.unPublishOffer.title\"),\r\n type: \"warning\",\r\n onConfirm: async (model) => {\r\n const result = await MarketplaceService.unpublishReclaimedOffer(\r\n {\r\n offerIds: [model.data.reclaimedOfferId],\r\n }\r\n );\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n getDistributorReclaimedOffers();\r\n toast.success(\r\n t(\"myOffers.toastNotification.offerUnpublished\")\r\n );\r\n }\r\n unpublishTogle();\r\n },\r\n onCancel: () => {\r\n unpublishTogle();\r\n },\r\n confirmText: t(\"actions:dialogs.unPublishOffer.confirmText\"),\r\n }\r\n );\r\n\r\n //cancel action\r\n const { modalProps: cancelProps, toggleOpen: cancelTogle } = useModal({\r\n title: t(\"actions:dialogs.declineBid.title\"),\r\n type: \"warning\",\r\n onConfirm: async (model) => {\r\n const result = await MarketplaceService.cancelReclaimedOffer(\r\n model.data.reclaimedOfferId\r\n );\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n getDistributorReclaimedOffers();\r\n toast.success(\r\n t(\"actions:dialogs.declineBid.toastNotification.success\")\r\n );\r\n }\r\n cancelTogle();\r\n },\r\n onCancel: () => {\r\n cancelTogle();\r\n },\r\n confirmText: t(\"actions:dialogs.declineBid.confirmText\"),\r\n });\r\n\r\n const columns = useMemo(() => {\r\n const tabColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"type\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { row, value } }) =>\r\n GreenCell({\r\n cell: {\r\n value: value.toFixed(2) + ` kg`,\r\n },\r\n }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"grade\",\r\n Cell: ({ cell: { value } }) => t(\"filters:cylinders.reclaimed\"),\r\n },\r\n {\r\n Header: t(\"table:headers.buyer\"),\r\n accessor: \"buyer\",\r\n },\r\n {\r\n Header: t(\"forms:cylinder.price\"),\r\n accessor: \"price\",\r\n Cell: ({ cell: { row, value } }) => {\r\n const ppk = (value / row.original.quantity).toFixed(2);\r\n return (\r\n \r\n {`${value.toFixed(2)} EUR`}\r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n if (tabIndex === 0)\r\n tabColumns.push({\r\n Header: t(\"table:headers.published\"),\r\n accessor: \"offerDateTime\",\r\n Cell: (params) => {\r\n return DateCell(params);\r\n },\r\n });\r\n\r\n if (tabIndex === 1)\r\n tabColumns.push({\r\n Header: t(\"stockListing.headers.dealExpiration\"),\r\n accessor: \"offerDateTime\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n let translation = \"-\";\r\n const offerStatus = original.status;\r\n let date = new Date(value);\r\n date.setDate(date.getDate() + dealExpirationDays);\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return CustomDateCellWithExpiration(date, translation);\r\n },\r\n });\r\n\r\n if (tabIndex === 2)\r\n tabColumns.push({\r\n Header: t(\"table:headers.soldDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell,\r\n });\r\n\r\n tabColumns.push({\r\n Header: \"\",\r\n accessor: \"reclaimedOfferId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n let disableCancel = true;\r\n if (original.status === 2) {\r\n let expDate = new Date(original.offerDateTime);\r\n expDate.setDate(expDate.getDate() + dealExpirationDays);\r\n disableCancel = expDate > new Date();\r\n }\r\n return (\r\n \r\n \r\n {\r\n unpublishTogle({ data: original });\r\n }}\r\n />\r\n {\r\n cancelTogle({ data: original });\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n });\r\n return tabColumns;\r\n }, [t, tabIndex]);\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (offerId) => {\r\n const selectedOffer = tableState.data.filter(\r\n (of) => of.reclaimedOfferId === offerId\r\n )[0];\r\n const res = await MarketplaceService.getReclaimedOfferById({\r\n id: offerId,\r\n });\r\n let showCancel = false;\r\n if (selectedOffer.status === 2) {\r\n let expDate = new Date(selectedOffer.offerDateTime);\r\n expDate.setDate(expDate.getDate() + dealExpirationDays);\r\n showCancel = expDate < new Date();\r\n }\r\n setSelected({\r\n details: res.data.data[0],\r\n offer: selectedOffer,\r\n showCancel: showCancel,\r\n });\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row.original.reclaimedOfferId);\r\n },\r\n [tableState]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:marketplace.title\")}\r\n \r\n \r\n \r\n }\r\n onSelect={onSelect}\r\n closeSideBar={() => setDetailViewIsOpened(false)}\r\n detailViewIsOpened={detailViewIsOpened}\r\n filterComponent={() => {\r\n return (\r\n \r\n );\r\n }}\r\n filterTitle={t(\"filters:reclaimedMarketPlace.filterTitle\")}\r\n showTitle={true}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n actions={\r\n globalState.isDistributor && {\r\n headerTabs: () => {\r\n return (\r\n \r\n );\r\n },\r\n\r\n headerActions: () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {t(\r\n \"screens:reclaimed.actions.sellRefrigerant\"\r\n )}\r\n \r\n
    \r\n \r\n \r\n );\r\n },\r\n }\r\n }\r\n />\r\n \r\n

    {t(\"actions:dialogs.unPublishOffer.text\")}

    \r\n

    \r\n {unpublishProps.modal &&\r\n unpublishProps.modal.data &&\r\n `${\r\n unpublishProps.modal.data.type\r\n } | ${unpublishProps.modal.data.quantity?.toFixed(\r\n 2\r\n )} kg | ${unpublishProps.modal.data.price.toFixed(\r\n 2\r\n )} EUR`}\r\n

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

    {t(\"actions:dialogs.declineBid.text\")}

    \r\n

    \r\n {cancelProps.modal &&\r\n cancelProps.modal.data &&\r\n `${\r\n cancelProps.modal.data.type\r\n } | ${cancelProps.modal.data.quantity?.toFixed(\r\n 2\r\n )} kg | ${cancelProps.modal.data.price.toFixed(2)} EUR`}\r\n

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ReclaimedMarketOffers;\r\n","import React from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport styled from \"styled-components\";\r\nimport {VSpace} from \"../../../pwa/components/StyledElements\";\r\nimport Globals from \"../../../../globalVars\";\r\n\r\nconst RowWrapper = styled.div`\r\n padding: 0 50px;\r\n\r\n &.separator {\r\n border-bottom: 1px solid ${props => props.theme.borderSeparator};\r\n }\r\n\r\n &.highlight {\r\n border-bottom: 1px solid #000;\r\n }\r\n`;\r\n\r\nconst MainTitle = styled.span`\r\n padding: 0 0 10px;\r\n font-size: 1.5rem;\r\n color: ${props => props.theme.primaryColor};\r\n text-transform: uppercase;\r\n display: inline-block;\r\n width: 100%;\r\n font-weight:700;\r\n`;\r\n\r\nconst Title = styled.span`\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n display: inline-block;\r\n width: 100%;\r\n margin: 0 0 16px;\r\n font-weight:700;\r\n`;\r\n\r\nconst Content = styled.div`\r\n margin: 20px 0;\r\n`;\r\n\r\nconst ContentRow = styled.div`\r\n margin: 0 0 8px;\r\n font-weight: 700;\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n display: inline-block;\r\n vertical-align: top;\r\n font-weight: 400;\r\n }\r\n\r\n div {\r\n display: inline-block;\r\n vertical-align: top;\r\n }\r\n`;\r\n\r\nconst FooterContent = styled.div`\r\n font-size: 1.25rem;\r\n padding: 24px 0 0;\r\n`;\r\n\r\nconst FooterContentRow = styled.div`\r\n margin: 0 0 12px;\r\n\r\n &.flex {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-end;\r\n }\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n font-weight: 400;\r\n }\r\n\r\n & .bold {\r\n font-weight:700;\r\n color:#000;\r\n }\r\n\r\n & .big {\r\n font-size: 2.25rem;\r\n }\r\n .highlight {\r\n color: ${props => props.theme.primaryColor};\r\n font-size: 2.25rem;\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nconst Pipe = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n margin: 0 12px;\r\n\r\n &:after {\r\n content: \"\";\r\n border-left: 1px solid ${props => props.theme.textNeutral};\r\n border-right: 1px solid ${props => props.theme.textNeutral};\r\n }\r\n`;\r\n\r\nconst ReclaimedTransactionDetails = ({transactionDetails, offer, paymentMethod, paymentType = 0}) => {\r\n const {t} = useTranslation();\r\n if (!transactionDetails) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n \r\n \r\n \r\n {t(\"actions:dialogs.transactionDetails.title\")}\r\n \r\n \r\n
    {t(\"actions:dialogs.transactionDetails.paymentType.title\")}: {t(\"actions:dialogs.transactionDetails.paymentType.IBANPayIn\")}
    \r\n
    \r\n\r\n\r\n {\r\n (paymentType !== 2 && paymentType !== 3) &&\r\n \r\n \r\n \r\n \r\n \r\n {transactionDetails.payingCompany} {t('actions:dialogs.transactionDetails.beneficiaryInformationTitle')}\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerName')} :  \r\n {transactionDetails.bankAccountOwnerName}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerAddressLine1')}:  \r\n\r\n
    \r\n {transactionDetails.bankAccountOwnerAddressLine1}\r\n {\r\n transactionDetails.bankAccountOwnerAddressLine2 && (\r\n <>
    {transactionDetails.bankAccountOwnerAddressLine2}\r\n )\r\n }\r\n
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerCity')}:  \r\n {transactionDetails.bankAccountOwnerCity}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerPostalCode')}:  \r\n {transactionDetails.bankAccountOwnerPostalCode}\r\n \r\n\r\n {/* \r\n {t('forms:account.region')}:  \r\n {transactionDetails.bankAccountOwnerRegion || \"-\"}\r\n */}\r\n\r\n \r\n {t('forms:account.country')}:  \r\n {transactionDetails.bankAccountOwnerCountryCode || \"-\"}\r\n \r\n\r\n
    \r\n
    \r\n\r\n \r\n \r\n Bank Details\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwner')}:  \r\n {transactionDetails.bankAccountOwnerName}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.ibanCode')}:  \r\n {transactionDetails.bankAccountOwnerIBAN}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerBIC')}:  \r\n {transactionDetails.bankAccountOwnerBIC}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.referenceNumber')}:  \r\n {transactionDetails.wireReference}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n \r\n \r\n \r\n {\r\n offer && (paymentType === 0 || paymentType === 1) &&\r\n <>\r\n \r\n \r\n {offer.type}\r\n \r\n\r\n {t('navigation:reclaimedGas')}\r\n \r\n\r\n {\r\n offer.quantity.toFixed(2) + \" kg\"\r\n }\r\n \r\n \r\n {(transactionDetails.amount).toFixed(2)} EUR\r\n \r\n \r\n }\r\n \r\n {t('filters:company.vat')} ({Globals.VATPercString}%):  \r\n \r\n {((Globals.VATPercentage-1)*transactionDetails.amount).toFixed(2)} EUR\r\n \r\n\r\n \r\n\r\n \r\n {t('screens:stockListing.headers.total')}:  \r\n {(transactionDetails.amount * Globals.VATPercentage).toFixed(2)} EUR \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n};\r\n\r\nexport default ReclaimedTransactionDetails;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\nimport useReclaimedMarketFilterState from \"./components/ReclaimedMarketFilterState\";\r\nimport ReclaimedMarketplaceFilter from \"./components/ReclaimedMarketFilter\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport DateCell from \"../../../components/data/DateCell\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport { CustomDateCellWithExpiration } from \"../../../components/data/DateCellWithExpiration\";\r\nimport ReclaimedOfferStatus from \"../../../core/enums/ReclaimedOfferStatus\";\r\nimport ReclaimedMarketSidebar from \"./components/ReclaimedMarketSidebar\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport { usePlainModal } from \"../../../components/modal/PlainModal\";\r\nimport PlainModal from \"../../../components/modal/PlainModal\";\r\nimport ReclaimedTransactionDetails from \"./components/ReclaimedTransactionDetails\";\r\n\r\nconst dealExpirationDays = 7;\r\n\r\nconst tabItems = (t) => [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: RouteCreator.salesCenter.reclaimedMarketplace(),\r\n },\r\n {\r\n name: t(\"navigation:myPurchases\"),\r\n path: RouteCreator.salesCenter.reclaimedMarketPurchases(),\r\n },\r\n];\r\n\r\nconst ReclaimedMarketPurchases = (props) => {\r\n const { t, i18n } = useTranslation([\"screens\", \"table\"]);\r\n const [globalState] = useSharedState(\"global\");\r\n const [tabIndex, setTabIndex] = useState(0);\r\n const [\r\n filterState,\r\n filterDispatch,\r\n filterActions,\r\n sortChange,\r\n currentSortBy,\r\n pageChange,\r\n gasTypes,\r\n ] = useReclaimedMarketFilterState(2);\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [selected, setSelected] = useState({\r\n offer: null,\r\n details: null,\r\n showCancel: false,\r\n });\r\n\r\n const [tableState, setTableState] = useState({\r\n data: [],\r\n loading: false,\r\n error: null,\r\n });\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:salesCenter\"),\r\n },\r\n {\r\n text: t(\"navigation:myPurchases\"),\r\n },\r\n ]);\r\n\r\n const getInstallationCompanyReclaimedOffers = async () => {\r\n const res =\r\n await MarketplaceService.getInstallationCompanyReclaimedOffers(\r\n filterState\r\n );\r\n setTableState({ data: res.data.data });\r\n };\r\n\r\n useEffect(() => {\r\n getInstallationCompanyReclaimedOffers();\r\n }, [filterState]);\r\n\r\n const setActiveTab = (tab) => {\r\n let offStatus = 2;\r\n switch (tab) {\r\n case 0:\r\n offStatus = ReclaimedOfferStatus.WaitingForBuyerFunds;\r\n filterDispatch({\r\n type: filterActions.SET_SORT,\r\n payload: [{ id: \"offerDateTime\", desc: false }],\r\n });\r\n break;\r\n case 1:\r\n offStatus = ReclaimedOfferStatus.Sold;\r\n filterDispatch({\r\n type: filterActions.SET_SORT,\r\n payload: [{ id: \"lastChangeDateTime\", desc: true }],\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n setTabIndex(tab);\r\n filterDispatch({\r\n type: filterActions.RESET_FILTERS,\r\n payload: null,\r\n });\r\n filterDispatch({\r\n type: filterActions.SET_OFFER_STATUS,\r\n payload: offStatus,\r\n });\r\n };\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n });\r\n const getTransactionDetails = async (offer) => {\r\n const result = await PaymentService.getReclaimTransactionDetails(\r\n offer.reclaimedOfferId\r\n );\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: offer,\r\n details: result.data.data[0],\r\n });\r\n toggleTransactionDetails();\r\n }\r\n };\r\n\r\n const {\r\n modalProps: transactionDetailsProps,\r\n toggleOpen: toggleTransactionDetails,\r\n } = usePlainModal({\r\n onClose: async () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n const columns = useMemo(() => {\r\n const tabColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"type\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { row, value } }) =>\r\n GreenCell({\r\n cell: {\r\n value: value.toFixed(2) + ` kg`,\r\n },\r\n }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"grade\",\r\n Cell: ({ cell: { value } }) => t(\"filters:cylinders.reclaimed\"),\r\n },\r\n {\r\n Header: t(\"table:headers.owner\"),\r\n accessor: \"seller\",\r\n },\r\n {\r\n Header: t(\"forms:cylinder.price\"),\r\n accessor: \"price\",\r\n Cell: ({ cell: { row, value } }) => {\r\n const ppk = (value / row.original.quantity).toFixed(2);\r\n return (\r\n \r\n {`${value.toFixed(2)} EUR`}\r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n if (tabIndex === 0)\r\n tabColumns.push({\r\n Header: t(\"stockListing.headers.dealExpiration\"),\r\n accessor: \"offerDateTime\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n let translation = \"-\";\r\n const offerStatus = original.status;\r\n let date = new Date(value);\r\n date.setDate(date.getDate() + dealExpirationDays);\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return CustomDateCellWithExpiration(date, translation);\r\n },\r\n });\r\n\r\n if (tabIndex === 1)\r\n tabColumns.push({\r\n Header: t(\"table:headers.purchasedDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell,\r\n });\r\n\r\n tabColumns.push({\r\n Header: \"\",\r\n accessor: \"reclaimedOfferId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n let disableCancel = true;\r\n if (original.status === 2) {\r\n let expDate = new Date(original.offerDateTime);\r\n expDate.setDate(expDate.getDate() + dealExpirationDays);\r\n disableCancel = expDate > new Date();\r\n }\r\n if (original.status !== 2) return null;\r\n return (\r\n \r\n \r\n {original.status === 2 && (\r\n \r\n getTransactionDetails(original)\r\n }\r\n />\r\n )}\r\n \r\n \r\n );\r\n },\r\n });\r\n return tabColumns;\r\n }, [t, tabIndex]);\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (offerId) => {\r\n const selectedOffer = tableState.data.filter(\r\n (of) => of.reclaimedOfferId === offerId\r\n )[0];\r\n const res = await MarketplaceService.getReclaimedOfferById({\r\n id: offerId,\r\n });\r\n let showCancel = false;\r\n if (selectedOffer.status === 2) {\r\n let expDate = new Date(selectedOffer.offerDateTime);\r\n expDate.setDate(expDate.getDate() + dealExpirationDays);\r\n showCancel = expDate < new Date();\r\n }\r\n setSelected({\r\n details: res.data.data[0],\r\n offer: selectedOffer,\r\n showCancel: showCancel,\r\n });\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row.original.reclaimedOfferId);\r\n },\r\n [tableState]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:marketplace.title\")}\r\n \r\n \r\n \r\n }\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${\r\n selected.offer?.offerNumber\r\n }`}\r\n onSelect={onSelect}\r\n closeSideBar={() => setDetailViewIsOpened(false)}\r\n detailViewIsOpened={detailViewIsOpened}\r\n filterComponent={() => {\r\n return (\r\n \r\n );\r\n }}\r\n showTitle={true}\r\n filterTitle={t(\"filters:reclaimedMarketPlace.filterTitle\")}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n actions={{\r\n headerTabs: () => {\r\n return (\r\n \r\n );\r\n },\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReclaimedMarketPurchases;\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport companyAdminMenuItems from \"../../data/menu/companyAdminMenuItems\";\r\nimport MarketplaceListing from \"./views/MarketplaceListing\";\r\nimport MyOffersListing from \"./views/MyOffersListing\";\r\nimport MyBidsListing from \"./views/MyBidsListing\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport SalesDashboard from \"./views/SalesDashboard\";\r\nimport ReclaimedMarketOffers from \"./views/ReclaimedMarketOffers\";\r\nimport ReclaimetMarketplace from \"./views/ReclaimedMarketplace\";\r\nimport REclaimedMarketPurchases from \"./views/ReclaimedMarketPurchases\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\n\r\nconst SalesCenterScreen = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n useLeftMenu(companyAdminMenuItems(globalState));\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SalesCenterScreen;\r\n","import React from \"react\";\r\nimport {Checkbox} from \"../../../../../components/elements/form-elements\";\r\nimport styled from \"styled-components\";\r\n\r\nconst GradeCheckboxes = ({t, formik, ...rest}) => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default styled(GradeCheckboxes)`\r\n margin-bottom: 20px;\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { toast } from \"react-toastify\";\r\nimport * as yup from \"yup\";\r\nimport SingleDatePicker from \"../../../../../components/dateTime/SingleDatePicker\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport Flex from \"../../../../../components/layout/flex/Flex\";\r\nimport {\r\n ErrorMessage,\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport ValidationRule, { buildValidation } from \"../../../../../core/validations/ValidationRule\";\r\nimport ClientsService from \"../../../../../services/Clients/ClientsService\";\r\nimport CompanyService from \"../../../../../services/Company/CompanyService\";\r\nimport TagsService from \"../../../../../services/Tags/TagsService\";\r\nimport WizardClientDetails, {\r\n WizardCylinderDetails,\r\n} from \"../../../../Clients/views/components/details/WizardClientDetails\";\r\nimport GradeCheckboxes from \"./GradeCheckboxes\";\r\nimport PresumedGradeLabel from \"./PresumedGradeLabel\";\r\nimport { ValidationError, Radio } from \"../../../../../components/elements/form-elements\";\r\nimport MoneyInputElement from \"../../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst CliCylWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n & > * {\r\n width: 50%;\r\n }\r\n`;\r\n\r\nconst Row = styled.div`\r\n display: flex;\r\n width: 100%;\r\n`;\r\n\r\nconst Column = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin-bottom: 40px;\r\n &.left {\r\n margin-right: 50px;\r\n flex: 1;\r\n }\r\n &.right {\r\n width: 150px;\r\n }\r\n & img {\r\n width: 150px;\r\n height: 95px;\r\n object-fit: cover;\r\n }\r\n`;\r\n\r\nconst Header = styled.div`\r\n font-size: 16px;\r\n font-weight: bold;\r\n color: #48b05e;\r\n margin-bottom: 12px;\r\n`;\r\n\r\nconst Props = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n font-size: 12px;\r\n font-weight: bold;\r\n color: #000;\r\n\r\n & span:last-child {\r\n text-align: right;\r\n color: #48b05e;\r\n font-weight: normal;\r\n }\r\n`;\r\n\r\nconst RadioTitle = styled.div`\r\n font-size: 14px;\r\n font-weight: bold;\r\n margin: 32px 0 20px 10px;\r\n`;\r\n\r\nconst defaultInitialValues = {\r\n quantity: \"0.00\",\r\n pressumedGrade: 0,\r\n extractionDateTime: new Date(),\r\n countryId: \"\",\r\n street: \"\",\r\n city: \"\",\r\n postalCode: \"\",\r\n region: \"\",\r\n gradeA: false,\r\n gradeB: false,\r\n gradeC: false,\r\n unitTagId: \"\",\r\n cylinderTagId: \"\",\r\n capacity: \"\",\r\n applicationTypeName: \"\",\r\n manufacturerName: \"\",\r\n refrigerantName: \"\",\r\n cylinderFull: false,\r\n cylinderSize: 0,\r\n cylinderSizeExceeded: false,\r\n unitError: \"\",\r\n unitGasType: \"\",\r\n cylQualityMatch: true,\r\n assessment: \"0\",\r\n};\r\n\r\nconst getRealGrade = (values) => {\r\n if (values.gradeC) {\r\n return \"C\";\r\n } else if (values.gradeB) {\r\n return \"B\";\r\n } else {\r\n return \"A\";\r\n }\r\n};\r\n\r\nconst validUnitTagId = (t) => {\r\n return buildValidation({\r\n unitTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n};\r\n\r\nconst validCylinderTagId = (t) => {\r\n return buildValidation({\r\n cylinderTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n extractionDateTime: ValidationRule.isStringRule().required(\r\n t(\"forms:extractionDate.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst validUnit = (t) => {\r\n return buildValidation({\r\n unitError: yup.string().length(0, \"error\"),\r\n });\r\n};\r\n\r\nconst validCylinder = (t) => {\r\n return buildValidation({\r\n cylinderFull: yup\r\n .boolean()\r\n .required()\r\n .oneOf([false], t(\"exceptions:validation.CylinderFull\")),\r\n quantity: ValidationRule.moreThan(\r\n 0,\r\n t(\"forms:quantity.invalidNumber\"),\r\n t(\"forms:quantity.largerThenZero\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst validGrades = (t) =>\r\n yup.lazy((values) => {\r\n if (values.assessment === \"1\")\r\n return buildValidation({\r\n analyzerTagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule,\r\n });\r\n return buildValidation({\r\n gradeA: ValidationRule.boolean().required(\"A\").rule,\r\n gradeB: ValidationRule.boolean().required(\"B\").rule,\r\n gradeC: ValidationRule.boolean().required(\"C\").rule,\r\n cylQualityMatch: yup.boolean().required().oneOf([true]),\r\n cylinderSizeExceeded: yup\r\n .boolean()\r\n .required()\r\n .oneOf([false], t(\"exceptions:validation.CylinderCannotHaveMoreGas\")),\r\n });\r\n });\r\n\r\nconst roundToNearestMinute = (date) => {\r\n var coeff = 1000 * 60 * 1; // <-- Replace {1} with interval\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n};\r\n\r\nconst NewExtractionWizard = (\r\n t,\r\n manufacturers,\r\n refrigerants,\r\n searchFn = () => {},\r\n cylinderSearchFn = () => {},\r\n analyzerSearchFn = () => {}\r\n) => {\r\n return {\r\n title: t(\"forms:extraction.wizard.title\"),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:extraction.wizard.title_step1\"),\r\n fieldNames: [\"unitTagId\"],\r\n validation: validUnitTagId(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.unitInfoTitle\")}\r\n \r\n \r\n {t(\"forms:extraction.wizard.unitInfoText\")}\r\n
    \r\n {t(\"forms:extraction.wizard.unitInfoText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:extraction.wizard.title_step2\"),\r\n fieldNames: [\r\n \"manufacturerId\",\r\n \"applicationTypeName\",\r\n \"refrigerantId\",\r\n \"capacity\",\r\n \"countryId\",\r\n \"street\",\r\n \"city\",\r\n \"postalCode\",\r\n \"region\",\r\n \"unitError\",\r\n \"unitGasType\",\r\n ],\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"unitTagId\"];\r\n let tagDetails = await TagsService.identifyTag(tagId);\r\n\r\n if (tagDetails.length === 0) {\r\n props.updatePropertyBag({\r\n unitError: t(\"forms:extraction.wizard.unitNotFound\"),\r\n clientData: {},\r\n });\r\n props.formik.setFieldValue(\"unitError\", \"error\");\r\n return;\r\n }\r\n let currentUnit;\r\n if (tagDetails && tagDetails.length > 0) {\r\n currentUnit = await ClientsService.getUnitByIdAsync(tagDetails[0].unitId);\r\n }\r\n if (currentUnit && currentUnit.error) {\r\n toast.error(t(currentUnit.error.message));\r\n } else {\r\n const filteredManufacturer = manufacturers.filter(\r\n (m) => m.id === currentUnit.data.data[0].manufacturerId\r\n );\r\n const manufacturerName = filteredManufacturer\r\n ? filteredManufacturer[0].name\r\n : \"\";\r\n const filteredRefrigerant = refrigerants.gasTypes.filter(\r\n (r) => r.id === currentUnit.data.data[0].refrigerantId\r\n );\r\n const refrigerantCode = filteredRefrigerant\r\n ? filteredRefrigerant[0].code\r\n : \"\";\r\n\r\n props.updatePropertyBag({\r\n unitError: \"\",\r\n manufacturerId: currentUnit.data.data[0].manufacturerId,\r\n refrigerantId: currentUnit.data.data[0].refrigerantId,\r\n applicationTypeName: currentUnit.data.data[0].applicationTypeName,\r\n capacity: currentUnit.data.data[0].capacity,\r\n clientData: {\r\n data: currentUnit.data.data[0].client,\r\n },\r\n description: currentUnit.data.data[0].description || \"\",\r\n image: currentUnit.data.data[0]?.images[0]?.imageUrl || \"\",\r\n });\r\n props.formik.setFieldValue(\r\n \"unitGasType\",\r\n currentUnit.data.data[0].refrigerantCode\r\n );\r\n props.formik.setFieldValue(\"manufacturerName\", manufacturerName);\r\n props.formik.setFieldValue(\r\n \"manufacturerId\",\r\n currentUnit.data.data[0].manufacturerId\r\n );\r\n props.formik.setFieldValue(\"refrigerantName\", refrigerantCode);\r\n props.formik.setFieldValue(\r\n \"refrigerantId\",\r\n currentUnit.data.data[0].refrigerantId\r\n );\r\n props.formik.setFieldValue(\r\n \"applicationTypeName\",\r\n currentUnit.data.data[0].applicationTypeName\r\n );\r\n props.formik.setFieldValue(\"capacity\", currentUnit.data.data[0].capacity);\r\n\r\n if (currentUnit.data.data[0].client) {\r\n props.formik.setFieldValue(\r\n \"countryId\",\r\n currentUnit.data.data[0].client.countryId\r\n );\r\n props.formik.setFieldValue(\r\n \"street\",\r\n currentUnit.data.data[0].client.street\r\n );\r\n props.formik.setFieldValue(\r\n \"city\",\r\n currentUnit.data.data[0].client.city\r\n );\r\n props.formik.setFieldValue(\r\n \"postalCode\",\r\n currentUnit.data.data[0].client.postalCode\r\n );\r\n props.formik.setFieldValue(\r\n \"region\",\r\n currentUnit.data.data[0].client.region\r\n );\r\n }\r\n }\r\n },\r\n validation: validUnit(t),\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n {propertyBag.unitError && (\r\n <>\r\n \r\n\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n
    {t(\"screens:technician.unit\")}
    \r\n \r\n {t(\"forms:manufacturer.text\")}\r\n {formik.values[\"manufacturerName\"]}\r\n \r\n \r\n {t(\"forms:application.text\")}\r\n {formik.values[\"applicationTypeName\"]}\r\n \r\n \r\n {t(\"forms:gasType.text\")}\r\n {formik.values[\"refrigerantName\"]}\r\n \r\n \r\n {t(\"formdefaultInitialValuess:capacity.text\")}\r\n {formik.values[\"capacity\"]} kW\r\n \r\n
    \r\n \r\n
    {t(\"screens:technician.gallery\")}
    \r\n \"gallery\"\r\n
    \r\n
    \r\n\r\n \r\n \r\n
    {t(\"screens:technician.installationSite\")}
    \r\n \r\n {t(\"screens:technician.company\")}\r\n \r\n {propertyBag?.clientData?.data?.clientName || \"\"}\r\n \r\n \r\n \r\n {t(\"screens:technician.address\")}\r\n {propertyBag?.clientData?.data?.street || \"\"}\r\n \r\n \r\n {t(\"screens:technician.city\")}\r\n {propertyBag?.clientData?.data?.city || \"\"}\r\n \r\n \r\n {t(\"screens:technician.postal\")}\r\n \r\n {propertyBag?.clientData?.data?.postalCode || \"\"}\r\n \r\n \r\n \r\n {t(\"screens:technician.country\")}\r\n \r\n {propertyBag?.clientData?.data?.countryName || \"\"}\r\n \r\n \r\n
    \r\n \r\n
    {t(\"screens:technician.notes\")}
    \r\n \r\n {propertyBag?.description || \"-\"}\r\n \r\n
    \r\n
    \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:cylinder.wizard.pwaStep1\"),\r\n fieldNames: [\"cylinderTagId\"],\r\n validation: validCylinderTagId(t),\r\n onStepSubmit: async ({ values, updatePropertyBag }) => {\r\n const cylinderId = values[\"cylinderTagId\"];\r\n let tagDetails = await TagsService.identifyTag(cylinderId);\r\n let currentCylinder;\r\n if (tagDetails && tagDetails.length > 0) {\r\n currentCylinder = await CompanyService.getCompanyCylinderByIdAsync(\r\n tagDetails[0].cylinderId\r\n );\r\n }\r\n if (currentCylinder.error) {\r\n toast.error(t(currentCylinder.error.message));\r\n return;\r\n } else {\r\n if (\r\n currentCylinder.data.data[0].refrigerantTypeCode &&\r\n currentCylinder.data.data[0].refrigerantTypeCode !== values.unitGasType\r\n ) {\r\n toast.error(t(\"forms:extraction.wizard.actionGasMismatch\"));\r\n return false;\r\n }\r\n }\r\n updatePropertyBag({ cylinder: currentCylinder?.data?.data[0] || {} });\r\n return true;\r\n },\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.cylinderInfoTitle\")}\r\n \r\n \r\n {t(\"forms:extraction.wizard.cylinderInfoText\")}\r\n
    \r\n {t(\"forms:extraction.wizard.cylinderInfoText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"screens:technician.cylinderInfo\"),\r\n fieldNames: [],\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n {t(\"sidebar:title.extraction.extractionCylinder\")}\r\n
    \r\n \r\n {t(\"forms:cylinderSize.text\")}\r\n {propertyBag.cylinder?.size} kg\r\n \r\n \r\n {t(\"screens:technician.gas\")}\r\n \r\n {propertyBag.cylinder?.refrigerantTypeCode ||\r\n t(\"screens:equipment.emptyCylinder\")}\r\n \r\n \r\n \r\n {t(\"screens:technician.Quantity\")}\r\n {propertyBag.cylinder?.filledQuantity} kg\r\n \r\n
    \r\n \r\n
    {t(\"screens:technician.gallery\")}
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    {t(\"screens:technician.notes\")}
    \r\n \r\n {propertyBag?.description || \"-\"}\r\n \r\n
    \r\n
    \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:extraction.wizard.title_step5\"),\r\n validation: validCylinder(t),\r\n fieldNames: [\"cylinderFull\", \"quantity\", \"extractionDateTime\", \"assessment\"],\r\n onStepRender: async (props) => {\r\n props.formik.setFieldValue(\r\n \"extractionDateTime\",\r\n roundToNearestMinute(new Date())\r\n );\r\n const cylinderId = props.value[\"cylinderTagId\"];\r\n let tagDetails = await TagsService.identifyTag(cylinderId);\r\n let currentCylinder;\r\n if (tagDetails && tagDetails.length > 0) {\r\n currentCylinder = await CompanyService.getCompanyCylinderByIdAsync(\r\n tagDetails[0].cylinderId\r\n );\r\n }\r\n if (currentCylinder.error) {\r\n toast.error(t(currentCylinder.error.message));\r\n } else if (\r\n currentCylinder &&\r\n currentCylinder.data.data[0].filledQuantity >=\r\n currentCylinder.data.data[0].size\r\n ) {\r\n props.updatePropertyBag({ cylinderFull: true });\r\n props.formik.setFieldValue(\"cylinderFull\", true);\r\n } else {\r\n const hasAnalysis = currentCylinder.data.data[0].hasAnalysis;\r\n props.updatePropertyBag({\r\n cylinderTagId: currentCylinder.data.data[0].id,\r\n cylinderFull: false,\r\n cylinderSize: currentCylinder.data.data[0].size,\r\n filledQuantity: currentCylinder.data.data[0].filledQuantity,\r\n hasAnalysis,\r\n });\r\n props.updatePropertyBag({\r\n cylinderGasQuality: currentCylinder.data.data[0].refrigerantGradeName,\r\n });\r\n props.formik.setFieldValue(\"cylinderFull\", false);\r\n props.formik.setFieldValue(\r\n \"cylinderTagId\",\r\n currentCylinder.data.data[0].id\r\n );\r\n if (hasAnalysis) {\r\n props.formik.setFieldValue(\"assessment\", \"1\");\r\n }\r\n }\r\n },\r\n onStepSubmit: async ({ values, propertyBag }) => {\r\n if (\r\n parseFloat(values.quantity) + parseFloat(propertyBag.filledQuantity) >\r\n propertyBag.cylinderSize\r\n ) {\r\n toast.error(t(\"exceptions:validation.CylinderCannotHaveMoreGas\"));\r\n return false;\r\n }\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.extractionDetailsTitle\")}\r\n \r\n \r\n {t(\"forms:extraction.wizard.extractionDetailsText\")}\r\n \r\n
    \r\n
    \r\n {propertyBag.cylinderFull && (\r\n \r\n {t(\"exceptions:validation.CylinderFull\")}\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"forms:extraction.wizard.qualityAssessment\")}\r\n \r\n {\r\n formik.setFieldValue(\"assessment\", \"0\");\r\n }}\r\n checked={formik.values[\"assessment\"] === \"0\"}\r\n >\r\n {\r\n formik.setFieldValue(\"assessment\", \"1\");\r\n }}\r\n checked={formik.values[\"assessment\"] === \"1\"}\r\n >\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: (values) => {\r\n return values.assessment === \"1\"\r\n ? t(\"forms:analyzer.wizard.step1Title\")\r\n : t(\"forms:extraction.wizard.title_step6\");\r\n },\r\n fieldNames: [\"gradeA\", \"gradeB\", \"gradeC\", \"cylinderSizeExceeded\", \"analyzerTagId\"],\r\n validation: validGrades(t),\r\n onStepRender: async (props) => {\r\n if (\r\n parseFloat(props.value.quantity) +\r\n parseFloat(props.propertyBag.filledQuantity) >\r\n props.propertyBag.cylinderSize\r\n ) {\r\n props.updatePropertyBag({ cylinderSizeExceeded: true });\r\n props.formik.setFieldValue(\"cylinderSizeExceeded\", true);\r\n } else {\r\n props.updatePropertyBag({\r\n cylinderSizeExceeded: false,\r\n });\r\n props.formik.setFieldValue(\"cylinderSizeExceeded\", false);\r\n }\r\n },\r\n fields: (formik, propertyBag, updatePropertyBag, updateFields) => {\r\n if (\r\n propertyBag.cylinderGasQuality &&\r\n getRealGrade(formik.values) !== propertyBag.cylinderGasQuality\r\n ) {\r\n formik.values[\"cylQualityMatch\"] &&\r\n updateFields(() => formik.setFieldValue(\"cylQualityMatch\", false));\r\n } else {\r\n !formik.values[\"cylQualityMatch\"] &&\r\n updateFields(() => formik.setFieldValue(\"cylQualityMatch\", true));\r\n }\r\n\r\n if (formik.values[\"assessment\"] === \"1\")\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:extraction.wizard.identifyAnalyzerTitle\")}\r\n \r\n \r\n {t(\"forms:extraction.wizard.identifyAnalyzerText\")}\r\n
    \r\n {t(\"forms:extraction.wizard.identifyAnalyzerText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {propertyBag.cylinderSizeExceeded && (\r\n \r\n {t(\"exceptions:validation.CylinderCannotHaveMoreGas\")}\r\n \r\n )}\r\n {!formik.values[\"cylQualityMatch\"] && (\r\n \r\n {t(\"forms:extraction.wizard.actionQualityMismatch\")}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\nexport default NewExtractionWizard;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../../components/elements/form-elements/ClearableInput\";\r\nimport Select from \"../../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../../components/filter/Filters\";\r\nimport AuthorizeComponent from \"../../../../../core/AuthorizeComponent\";\r\nimport AnalysisStatus from \"../../../../../core/enums/AnalysisStatus\";\r\nimport GradeStatus from \"../../../../../core/enums/GradeStatus\";\r\nimport Roles from \"../../../../../core/enums/Roles\";\r\nimport useDebouncedCallback from \"../../../../../hooks/_shared/useDebouncedCallback\";\r\nimport { DateTimePicker } from \"../../../../../components/elements/form-elements/DatePicker\";\r\nimport helpers from \"../../../../../core/helpers\";\r\n\r\n\r\nconst InstallerStockFilter = ({\r\n filterState,\r\n dispatch,\r\n users,\r\n actionTypes,\r\n gasTypes,\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n\r\n const [quantityToChanged] = useDebouncedCallback((text) => {\r\n text === \"\"\r\n ? dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_TO,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_TO,\r\n payload: text.trim(),\r\n });\r\n });\r\n\r\n const [quantityFromChanged] = useDebouncedCallback((text) => {\r\n text === \"\"\r\n ? dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_FROM,\r\n payload: text.trim(),\r\n });\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n ({\r\n key: user.id,\r\n value: user.id,\r\n label: user.fullName,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) =>\r\n dispatch({\r\n type: actionTypes.SEARCH_USER,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"user.user\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_GAS_TYPE\r\n : actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n quantityFromChanged(evt.currentTarget.value)\r\n }\r\n placeholder={t(\"gas.quantityFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n \r\n \r\n quantityToChanged(evt.currentTarget.value)\r\n }\r\n placeholder={t(\"gas.quantityTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n\r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: GradeStatus[key],\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_PRESUMED_QUALITY\r\n : actionTypes.SET_PRESUMED_QUALITY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.presumedGrade\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: t(\"analysis.\" + AnalysisStatus[key]),\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_QUALITY_ASSURANCE\r\n : actionTypes.SET_QUALITY_ASSURANCE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.qualityAssurance\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXTRACTION_DATE_FROM\r\n : actionTypes.SET_EXTRACTION_DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXTRACTION_DATE_TO\r\n : actionTypes.SET_EXTRACTION_DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(InstallerStockFilter);\r\n","import React from \"react\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport ValidationRule, {buildValidation} from \"../../../../../core/validations/ValidationRule\";\r\nimport {InfoText, InfoTitle, InfoWrapper, RoundInfo} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport TagsService from \"../../../../../services/Tags/TagsService\";\r\nimport ClientService from \"../../../../../services/Company/CompanyService\";\r\nimport FileDisplayWithAction from \"../../../../../components/file-processing/FileDisplayWithAction\";\r\nimport Flex from \"../../../../../components/layout/flex/Flex\";\r\nimport MoneyInputElement from \"../../../../../components/elements/form-elements/MoneyInputElement\";\r\nconst validQR = (t) => {\r\n return buildValidation({\r\n tagId: ValidationRule.isStringRule()\r\n .isUUID(t(\"forms:unit.uuid.invalid\"))\r\n .required(t(\"forms:unit.unitTagId.required\")).rule\r\n });\r\n}\r\n\r\nconst defaultInitialValues = {\r\n tagId: \"\",\r\n StockListHeaderActions:\"\",\r\n refrigerantTypeCode:\"\",\r\n filledQuantity:\"\",\r\n size:\"\",\r\n image:\"\"\r\n}\r\n\r\nconst MoveToStockWizard = (\r\n t,\r\n searchFn = () => {\r\n },\r\n isInCompanyStock = true) => {\r\n return {\r\n title: isInCompanyStock ? t('forms:stock.wizard.moveToInstallerStock.title') : t('forms:stock.wizard.moveToCompanyStock.title'),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t('forms:stock.wizard.moveToCompanyStock.step1'),\r\n fieldNames: [\r\n \"tagId\"\r\n ],\r\n validation: validQR(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {\r\n isInCompanyStock ?\r\n t(\"forms:stock.wizard.moveToInstallerStock.infoTitle\")\r\n :\r\n t(\"forms:stock.wizard.moveToCompanyStock.infoTitle\")\r\n }\r\n\r\n \r\n \r\n {\r\n isInCompanyStock ?\r\n t(\"forms:stock.wizard.moveToInstallerStock.infoText\")\r\n :\r\n t(\"forms:stock.wizard.moveToCompanyStock.infoText\")\r\n }\r\n \r\n
    \r\n
    \r\n \r\n \r\n )\r\n },\r\n {\r\n name: t('forms:stock.wizard.moveToCompanyStock.step2'),\r\n fieldNames: [\r\n \"size\",\r\n \"refrigerantTypeCode\",\r\n \"filledQuantity\",\r\n \"image\"\r\n ],\r\n onStepRender: async (props) => {\r\n const tagId = props.value[\"tagId\"];\r\n let tagDetails = await TagsService.identifyTag(tagId);\r\n let currentSkuId;\r\n let currentCylinder;\r\n let cylinderData;\r\n if (tagDetails && tagDetails.length > 0) {\r\n currentSkuId = tagDetails[0].skuId;\r\n currentCylinder = tagDetails[0].cylinderId;\r\n }\r\n if (currentSkuId) {\r\n props.formik.setFieldValue(\"skuId\", currentSkuId);\r\n props.updatePropertyBag({\r\n skuId: currentSkuId\r\n })\r\n }\r\n\r\n if (currentCylinder) {\r\n cylinderData = await ClientService.getCompanyCylinderById(currentCylinder)\r\n props.updatePropertyBag({\r\n cylinderImage: cylinderData.data[0].imageUrl,\r\n filledQuantity: cylinderData.data[0].filledQuantity.toFixed(2) + \" kg\",\r\n size: cylinderData.data[0].size,\r\n refrigerantTypeCode: cylinderData.data[0].refrigerantTypeCode\r\n });\r\n props.formik.setFieldValue(\"cylinderImage\", cylinderData.data[0].imageUrl);\r\n props.formik.setFieldValue(\"filledQuantity\", cylinderData.data[0].filledQuantity);\r\n props.formik.setFieldValue(\"size\", cylinderData.data[0].size);\r\n props.formik.setFieldValue(\"refrigerantTypeCode\", cylinderData.data[0].refrigerantTypeCode);\r\n }\r\n },\r\n fields: (formik, propertyBag) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {isInCompanyStock\r\n ? t(\r\n \"forms:stock.wizard.moveToInstallerStock.infoTitle\"\r\n )\r\n : t(\r\n \"forms:stock.wizard.moveToCompanyStock.infoTitle\"\r\n )}\r\n \r\n \r\n {isInCompanyStock\r\n ? t(\r\n \"forms:stock.wizard.moveToInstallerStock.infoText\"\r\n )\r\n : t(\r\n \"forms:stock.wizard.moveToCompanyStock.infoText\"\r\n )}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {propertyBag.cylinderImage && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n }\r\n ]\r\n }\r\n};\r\n\r\nexport default MoveToStockWizard\r\n","import React, { useMemo } from \"react\";\r\nimport AccordionWrapper from \"../../../../../components/toggle-view/AccordionWrapper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport QRCode from \"qrcode.react\";\r\nimport { TagTitle } from \"../../../../Equipment/components/TagTitle\";\r\nimport helpers from \"../../../../../core/helpers\";\r\nimport styled from \"styled-components\";\r\nimport SidebarField from \"../../../../../components/elements/sidebar/SidebarField\";\r\nimport DaikinMap from \"../../../../../components/maps/DaikinMap\";\r\nimport LocationMarker from \"../../../../../components/maps/components/LocationMarker\";\r\nimport { useLoadScript } from \"@react-google-maps/api\";\r\nimport MapBounds from \"../../../../../components/maps/components/MapBounds\";\r\nimport { Num, NumInfo, NumSection } from \"../../../../../components/elements/sidebar/SidebarStyle\";\r\nimport ImageGallery from \"../../../../../components/gallery/ImageGallery\";\r\nimport Slider from \"../../../../../components/elements/general/Slider\";\r\nimport useAccordionGroup from \"../../../../../hooks/_shared/useAccordionGroup\";\r\nimport { ReactComponent as InfoSvg } from \"../../../../../assets/orange-info.svg\";\r\n\r\nconst StyledInfo = styled(InfoSvg)`\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 16px;\r\n`;\r\n\r\nconst StyledQR = styled.div`\r\n text-align: center;\r\n margin: 24px 0 12px;\r\n`;\r\n\r\nconst FlexDiv = styled.div`\r\n display: flex;\r\n font-size: 12px;\r\n`;\r\nconst DownloadLink = styled.a`\r\n color: #2294d2;\r\n text-decoration: none;\r\n font-size: 12px;\r\n &.big {\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst formatDateStr = (str) => {\r\n const fmt = Intl.DateTimeFormat(\"sk\", {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n return fmt.format(new Date(str));\r\n};\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst gradeNames = [\"A\",\"B\",\"C\"]\r\n\r\nconst ExtractionDetailSideBar = ({ skuDetails, stockItem, extraction }) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n const { isLoaded } = useLoadScript({\r\n googleMapsApiKey: \"AIzaSyBQSju7sxgnuD4jrzA2cJLP2dVU3RDwHZY\",\r\n });\r\n\r\n const extractionDetails = extraction ? extraction[0] : null;\r\n\r\n const boundsMarkers = useMemo(() => {\r\n let markers = [];\r\n if (extractionDetails) {\r\n if (extractionDetails.locationDetails.latitude) {\r\n markers.push(\r\n new window.google.maps.Marker({\r\n position: {\r\n lat: extractionDetails.locationDetails.latitude,\r\n lng: extractionDetails.locationDetails.longitude,\r\n },\r\n })\r\n );\r\n } else {\r\n markers.push(\r\n new window.google.maps.Marker({\r\n position: {\r\n lat: 0,\r\n lng: 0,\r\n },\r\n })\r\n );\r\n }\r\n }\r\n return markers;\r\n }, [stockItem, extraction]);\r\n\r\n if (!extraction) {\r\n return null;\r\n }\r\n const tagParts = helpers.splitQRTag(extractionDetails.unitDetails.tagId);\r\n\r\n let cnt = 0;\r\n return (\r\n isLoaded && (\r\n <>\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n {stockItem && (\r\n \r\n \r\n {stockItem.hasAnalysis ? (\r\n extractionDetails.isAnalysisReceived ? (\r\n <>\r\n \r\n\r\n \r\n ${t(\"actions:download\")}\r\n `}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n ) : (\r\n \r\n \r\n {t(\"label.waitingForResult\")}\r\n \r\n )\r\n ) : (\r\n
    \r\n {!stockItem.isContaminated &&\r\n !stockItem.isMixture &&\r\n !stockItem.hasR22 && (\r\n \r\n N/A\r\n {t(\"actions:noContamination\")}\r\n \r\n )}\r\n\r\n {stockItem.isContaminated && (\r\n \r\n {++cnt}\r\n {t(\"screens:stock.aGradeText\")}\r\n \r\n )}\r\n {stockItem.isMixture && (\r\n \r\n {++cnt}\r\n {t(\"screens:stock.bGradeText\")}\r\n \r\n )}\r\n {stockItem.hasR22 && (\r\n \r\n {++cnt}\r\n {t(\"screens:stock.cGradeText\")}\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n {tagParts[0]}\r\n {tagParts[1]}\r\n \r\n\r\n
    \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n

    \r\n {extractionDetails.unitDetails.description\r\n ? extractionDetails.unitDetails.description\r\n : \"-\"}\r\n

    \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default ExtractionDetailSideBar;\r\n","import React, { useCallback, useMemo, useRef, useState } from \"react\";\r\nimport AccordionWrapper from \"../../../../../components/toggle-view/AccordionWrapper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ExtractionDetailSideBar from \"./ExtractionDetailSideBar\";\r\nimport DetailSideBar from \"../../../../../components/modal/DetailSideBar\";\r\nimport useClickAway from \"../../../../../hooks/_shared/useClickAway\";\r\nimport styled from \"styled-components\";\r\nimport DataTable from \"../../../../../components/data/DataTable\";\r\nimport { Num, NumInfo, NumSection } from \"../../../../../components/elements/sidebar/SidebarStyle\";\r\nimport globals from \"../../../../../globalVars\";\r\nimport Slider from \"../../../../../components/elements/general/Slider\";\r\nimport CylinderBlock from \"../../../../../components/sidebar/CylinderBlock\";\r\nimport useAccordionGroup from \"../../../../../hooks/_shared/useAccordionGroup\";\r\nimport { ReactComponent as InfoSvg } from \"../../../../../assets/orange-info.svg\";\r\nimport SidebarField from \"../../../../../components/elements/sidebar/SidebarField\";\r\n\r\nconst StyledInfo = styled(InfoSvg)`\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 16px;\r\n`;\r\n\r\nconst FlexDiv = styled.div`\r\n display: flex;\r\n font-size: 12px;\r\n`;\r\n\r\nconst ClientName = styled.span`\r\n color: ${(props) => props.theme.primaryColor};\r\n font-weight: 600;\r\n`;\r\n\r\nconst KeyValue = styled.div`\r\n padding: 20px 20px 0px;\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n & .value {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst KeyValueCell = (key, value) => {\r\n return (\r\n \r\n {key}\r\n {value.toFixed(2)} kg\r\n \r\n );\r\n};\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst gradeNames = [\"A\", \"B\", \"C\"];\r\n\r\nconst formatDateStr = (str) => {\r\n const fmt = Intl.DateTimeFormat(\"sk\", {\r\n day: \"numeric\",\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n });\r\n return fmt.format(new Date(str));\r\n};\r\n\r\nconst StockDetailSideBar = ({\r\n selectedItem,\r\n stockItem,\r\n isLoading,\r\n reportCylinderIssue,\r\n isCompanyStock = false,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const shouldShow = !isLoading && stockItem;\r\n const [extractionViewIsOpened, setExtractionViewIsOpened] = useState(false);\r\n const [extraction, setExtraction] = useState(null);\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n let skuDetails = {};\r\n if (selectedItem) {\r\n skuDetails = {\r\n refrigerantGasTypeCode: selectedItem.refrigerantGasTypeCode,\r\n quantity: selectedItem.quantity,\r\n grade: selectedItem.pressumedGradeName,\r\n };\r\n }\r\n\r\n const handleExtractionClick = (row) => {\r\n setExtraction(getExtraction(row.original.id));\r\n setExtractionViewIsOpened(!extractionViewIsOpened);\r\n };\r\n\r\n const handleCloseExtraction = useCallback(() => {\r\n setExtraction(null);\r\n setExtractionViewIsOpened(false);\r\n }, []);\r\n\r\n const extractionRef = useRef(null);\r\n\r\n useClickAway(extractionRef, () => {\r\n handleCloseExtraction();\r\n });\r\n\r\n const getExtraction = (extractionId) => {\r\n return (\r\n stockItem.extractions && stockItem.extractions.filter((ext) => ext.id === extractionId)\r\n );\r\n };\r\n\r\n const extractionColumns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.extractions.clientName\"),\r\n accessor: \"clientName\",\r\n Cell: ({ row }) => {\r\n return {row.original.clientName};\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.extractions.quantity\"),\r\n accessor: \"extractedQuantity\",\r\n Cell: ({ cell: { value } }) => value.toFixed(2) + \" kg\",\r\n },\r\n {\r\n Header: t(\"table:headers.extractions.userFullName\"),\r\n accessor: \"extractedByUserFullName\",\r\n },\r\n ],\r\n [stockItem, t]\r\n );\r\n\r\n let cnt = 0;\r\n let exCnt = 0;\r\n\r\n const computeGrade = () => {\r\n let grades = [\"A\", \"B\", \"C\"];\r\n if (stockItem?.extractions?.length) {\r\n let result = 0;\r\n stockItem.extractions.forEach((element) => {\r\n if (element.grade > result) result = element.grade;\r\n });\r\n return grades[result];\r\n }\r\n return \"N/A\";\r\n };\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n {stockItem && (\r\n \r\n \r\n {stockItem.hasAnalysis ? (\r\n stockItem.extractions.map((ex, idx) =>\r\n ex.isAnalysisReceived ? (\r\n \r\n {++exCnt}\r\n
    \r\n \r\n\r\n \r\n ${t(\"actions:download\")}\r\n `}\r\n />\r\n\r\n \r\n\r\n \r\n
    \r\n
    \r\n ) : (\r\n \r\n {++exCnt}\r\n \r\n \r\n {t(\"label.waitingForResult\")}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n
    \r\n {!stockItem.isContaminated &&\r\n !stockItem.isMixture &&\r\n !stockItem.hasR22 && (\r\n \r\n N/A\r\n \r\n {t(\"actions:noContamination\")}\r\n \r\n \r\n )}\r\n\r\n {stockItem.isContaminated && (\r\n \r\n {++cnt}\r\n {t(\"screens:stock.aGradeText\")}\r\n \r\n )}\r\n {stockItem.isMixture && (\r\n \r\n {++cnt}\r\n {t(\"screens:stock.bGradeText\")}\r\n \r\n )}\r\n {stockItem.hasR22 && (\r\n \r\n {++cnt}\r\n {t(\"screens:stock.cGradeText\")}\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n )}\r\n\r\n \r\n {KeyValueCell(\r\n `${t(\"sidebar:shared.initialQuantity\")}:`,\r\n stockItem.confirmedAmount ?? 0\r\n )}\r\n {stockItem.extractions && stockItem.extractions.length > 0 && (\r\n ext.extractedByCompanyId === globals.companyId\r\n )}\r\n />\r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default StockDetailSideBar;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport employeeListStateModule from \"../../../../core/state/company/employeeListStateModule\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport installerStockListingStateModule from \"../../../../core/state/stock/installerStockListingStateModule\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport usePromises from \"../../../../hooks/_shared/usePromises\";\r\nimport ClientsService from \"../../../../services/Clients/ClientsService\";\r\nimport StockService from \"../../../../services/Stock/StockService\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport NewExtractionWizard from \"../../../NewRefrigerant/views/new-refrigerant/components/NewExtractionWizard\";\r\nimport InstallerStockFilter from \"./components/InstallerStockFilter\";\r\nimport MoveToStockWizard from \"./components/MoveToStockWizard\";\r\nimport StockDetailSideBar from \"./components/StockDetailSideBar\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport CollectCylinderWizard from \"./components/CollectCylinderWizard\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport MarketplaceService from \"../../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport ModalDialog, { useModal } from \"../../../../components/modal/ModalDialog\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport GreenCell from \"../../../../components/data/GreenCell\";\r\nimport styled from \"styled-components\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport WizardCylinderIssue from \"../../../Equipment/components/wizard/WizardCylinderIssue\";\r\n\r\nconst P = styled.div`\r\n display: block;\r\n font-size: 16px;\r\n font-weight: bold;\r\n margin-bottom: 12px;\r\n`;\r\n\r\nconst actionTypes = {\r\n SEARCH_USER: \"SEARCH_USER\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY_TO\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY_TO\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_EXTRACTION_DATE_FROM: \"SET_EXTRACTION_DATE_FROM\",\r\n RESET_EXTRACTION_DATE_FROM: \"RESET_EXTRACTION_DATE_FROM\",\r\n SET_EXTRACTION_DATE_TO: \"SET_EXTRACTION_DATE_TO\",\r\n RESET_EXTRACTION_DATE_TO: \"RESET_EXTRACTION_DATE_TO\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n};\r\n\r\nconst StockActions = {\r\n NewExtraction: \"0\",\r\n ToCompanyStock: \"1\",\r\n ToInstallerStock: \"2\",\r\n Collect: \"3\",\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SEARCH_USER:\r\n state.filter.userId = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.refrigerantGasTypeCode;\r\n break;\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.refrigerantGasTypeCode = action.payload;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.quantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.quantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.quantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.quantityFrom;\r\n break;\r\n\r\n case actionTypes.SET_EXTRACTION_DATE_FROM:\r\n state.filter.extractFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXTRACTION_DATE_FROM:\r\n delete state.filter.extractFrom;\r\n break;\r\n case actionTypes.SET_EXTRACTION_DATE_TO:\r\n state.filter.extractTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXTRACTION_DATE_TO:\r\n delete state.filter.extractTo;\r\n break;\r\n case actionTypes.SET_PRESUMED_QUALITY:\r\n state.filter.presumedGrade = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_PRESUMED_QUALITY:\r\n delete state.filter.presumedGrade;\r\n break;\r\n case actionTypes.SET_QUALITY_ASSURANCE:\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case actionTypes.RESET_QUALITY_ASSURANCE:\r\n delete state.filter.hasAnalysis;\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst InstallerStockListing = () => {\r\n const {\r\n stockItems,\r\n isLoading,\r\n error,\r\n loadStockItems,\r\n loadStockById,\r\n details,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(installerStockListingStateModule);\r\n const {\r\n employees,\r\n isLoading: employeesLoading,\r\n error: employeesError,\r\n loadEmployees,\r\n } = useStateModule(employeeListStateModule);\r\n\r\n const userId = UserService.getUserDetailsFromToken().UserId;\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n userId: UserService.isInRole(Roles.InstallerCompanyTechnician) ? userId : \"\",\r\n locationStatusName: \"InstallerStock\",\r\n marketplaceStatusName: \"OnStock\",\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"extractionDateTime\",\r\n descending: true,\r\n });\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const stockActions = [\r\n {\r\n text: t(\"screens:pwaMenu.newExtraction\"),\r\n value: StockActions.NewExtraction,\r\n },\r\n {\r\n text: t(\"screens:pwaMenu.toCompanyStock\"),\r\n value: StockActions.ToCompanyStock,\r\n },\r\n {\r\n text: t(\"screens:pwaMenu.toMyStock\"),\r\n value: StockActions.ToInstallerStock,\r\n },\r\n {\r\n text: t(\"screens:pwaMenu.toBuyerStock\"),\r\n value: StockActions.Collect,\r\n },\r\n ];\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:stock\"),\r\n },\r\n {\r\n text:\r\n UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser)\r\n ? t(\"navigation:installerStock\")\r\n : t(\"navigation:myStock\"),\r\n },\r\n ]);\r\n\r\n useEffect(() => {\r\n loadStockItems(filterState);\r\n }, [loadStockItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n useEffect(() => {\r\n loadEmployees({});\r\n }, [loadEmployees]);\r\n\r\n const columns = useMemo(() => {\r\n const columns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { row } }) => {\r\n const item = row.original;\r\n return !item.analysisDone\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : item.isAnalysisReceived\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.pendingMeasurement\");\r\n },\r\n },\r\n {\r\n Header: t(\"stockListing.headers.lastExtraction\"),\r\n accessor: \"extractionDateTime\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"filters:cylinders.type\"),\r\n accessor: \"cylinderType\",\r\n Cell: ({ cell: { value } }) => {\r\n let typeName =\r\n value === 0\r\n ? t(\"filters:cylinders.recovery\")\r\n : t(\"filters:cylinders.reclaimed\");\r\n return typeName;\r\n },\r\n },\r\n ];\r\n if (\r\n UserService.isInRole(Roles.InstallerCompanyAdmin) ||\r\n UserService.isInRole(Roles.InstallerCompanyUser)\r\n ) {\r\n columns.splice(4, 0, {\r\n Header: t(\"stockListing.headers.onStockWith\"),\r\n accessor: \"fullName\",\r\n });\r\n }\r\n return columns;\r\n }, [filterState.filter, t]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const onSelect = useCallback((row) => {\r\n const selectRow = async (row) => {\r\n await loadStockById(row.original.skuId);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n }, []);\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n /* Wizard */\r\n const queryUnitTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupUnitTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const queryCylinderTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupExistingCylinderTags(tag);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const queryAnalyzerTags = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupTagForAnalyzerAsync(tag);\r\n return tags.data.data.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const queryInstallerTag = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupInstallerStockTag(tag, userId);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const queryCompanyTag = async (tag) => {\r\n if (tag.length > 2) {\r\n const tags = await TagsService.lookupCompanyStockTag(tag, 0);\r\n return tags.map((t) => t.id);\r\n }\r\n return [];\r\n };\r\n\r\n const wizardData = usePromises([() => ClientsService.getUnitManufacturersAsync()], (res) => ({\r\n manufacturers: res[0].data.data,\r\n }));\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const [currentStockItem, setCurrentStockItem] = useState({});\r\n useEffect(() => {\r\n setCurrentStockItem(\r\n stockItems.data.filter((item) => item.skuId === details.stockData.skuId)\r\n );\r\n }, [details]);\r\n\r\n const { modalProps: collectInfoModalProps, toggleOpen: toggleCollectInfoModal } = useModal({\r\n title: t(\"forms:stock.wizard.collectCylinder.title\"),\r\n type: \"warning\",\r\n confirmText: t(\"actions:close\"),\r\n onConfirm: () => {\r\n toggleCollectInfoModal();\r\n },\r\n });\r\n\r\n const { modalProps: extractionModalProps, toggleOpen: toggleExtractionModal } = useModal({\r\n title: t(\"forms:analyzer.wizard.measurementResults\"),\r\n type: \"warning\",\r\n confirmText: t(\"forms:wizard.finish\"),\r\n onConfirm: () => {\r\n toggleExtractionModal();\r\n toast.success(t(\"actions:dialogs.newExtraction.success\"));\r\n loadStockItems(filterState);\r\n ModalWizard.hide();\r\n },\r\n });\r\n\r\n const showMoveToStockWizard = (toInstallerStock = false) => {\r\n ModalWizard.show(\r\n MoveToStockWizard(\r\n t,\r\n toInstallerStock ? queryCompanyTag : queryInstallerTag,\r\n toInstallerStock\r\n ),\r\n {\r\n onSubmit: async (id) => {\r\n let res;\r\n if (toInstallerStock) {\r\n res = await StockService.moveToInstallerStock(id.tagId);\r\n } else {\r\n res = await StockService.moveToCompanyStock(id.tagId);\r\n }\r\n\r\n if (res && res.error) toast.error(t(res.error.message));\r\n else {\r\n loadStockItems(filterState);\r\n toast.success(t(\"installerStockListing.toastNotification.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n {\r\n style: {\r\n minHeight: \"610px\",\r\n },\r\n }\r\n );\r\n };\r\n\r\n const showNewExtractionWizard = () => {\r\n ModalWizard.show(\r\n NewExtractionWizard(\r\n t,\r\n wizardData.manufacturers,\r\n gasTypesData,\r\n queryUnitTags,\r\n queryCylinderTags,\r\n queryAnalyzerTags\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n if (values.gradeC) {\r\n values.pressumedGrade = 2;\r\n } else if (values.gradeB) {\r\n values.pressumedGrade = 1;\r\n } else {\r\n values.pressumedGrade = 0;\r\n }\r\n values.isContaminated = values.gradeA;\r\n values.isMixture = values.gradeB;\r\n values.hasR22 = values.gradeC;\r\n let analyzer = [];\r\n if (values.analyzerTagId) {\r\n try {\r\n const analyzerData = await CompanyService.getMyGasAnalyzerByTagAsync(\r\n values.analyzerTagId\r\n );\r\n analyzer = analyzerData?.data?.data?.[0];\r\n } catch (ex) {\r\n analyzer.name = t(\"screens:statistics.fGasAnalyzerTitle\");\r\n }\r\n }\r\n const result = await StockService.addToMyStock(ModalWizard.asFormData(values));\r\n\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n toggleExtractionModal({ analyzer });\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n {\r\n style: {\r\n minHeight: \"680px\",\r\n },\r\n }\r\n );\r\n };\r\n\r\n const [collectCompanies, setCollectCompanies] = useDataReducer(\r\n MarketplaceService.getOffersForCollection\r\n );\r\n useEffect(() => {\r\n setCollectCompanies();\r\n }, []);\r\n\r\n const showCollectWizard = () => {\r\n ModalWizard.show(\r\n CollectCylinderWizard(t, collectCompanies),\r\n {\r\n onSubmit: async (values) => {\r\n // alert('uncomment BE action! Selected tags: ' + values.tagIds);\r\n\r\n const result = await MarketplaceService.shipToBuyer(values.tagIds);\r\n if (result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadStockItems(filterState);\r\n toast.success(t(\"actions:dialogs.shipOut.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n },\r\n { style: { height: \"700px\" } }\r\n );\r\n };\r\n\r\n\r\n const reportCylinderIssue = async (cylinderId) => {\r\n ModalWizard.show(\r\n WizardCylinderIssue(t),\r\n {\r\n onSubmit: async (values) => {\r\n values.cylinderId = cylinderId;\r\n values.issueType = Number(values.issueType);\r\n const result = await TagsService.addCylinderIssueAsync(values);\r\n if (result && result.error) ModalWizard.submitFailed(t(result.error.message));\r\n //toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.reportCylinder.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"708px\" } }\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:installerStock.title\")}\r\n \r\n \r\n }\r\n detailSideBarTitle={t(\"screens:stockListing.sidebarTitle\")}\r\n actions={{\r\n headerActions: () => {\r\n return (\r\n \r\n \r\n ({\r\n key: action.value,\r\n value: action.value,\r\n label: action.text,\r\n }))}\r\n handleChange={(evt) => {\r\n switch (evt.currentTarget.value) {\r\n case StockActions.NewExtraction:\r\n showNewExtractionWizard();\r\n break;\r\n case StockActions.ToCompanyStock:\r\n showMoveToStockWizard();\r\n break;\r\n case StockActions.ToInstallerStock:\r\n showMoveToStockWizard(true);\r\n break;\r\n case StockActions.Collect:\r\n collectCompanies.data.length === 0\r\n ? toggleCollectInfoModal()\r\n : showCollectWizard();\r\n break;\r\n default:\r\n break;\r\n }\r\n }}\r\n className=\"filters action\"\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n );\r\n },\r\n }}\r\n filterTitle={\r\n UserService.isInRole(Roles.InstallerCompanyAdmin)\r\n ? t(\"filters:stock.installerFilterTitle\")\r\n : t(\"filters:stock.myStockFilterTitle\")\r\n }\r\n filterComponent={() => (\r\n \r\n )}\r\n detailViewIsOpened={detailViewIsOpened}\r\n noDataText={t(\"screens:stockListing.notification\")}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n />\r\n\r\n \r\n

    {t(\"forms:stock.wizard.collectCylinder.warning\")}

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

    {t(\"forms:analyzer.wizard.meResultsLine1\")}

    \r\n

    {extractionModalProps?.modal?.analyzer?.name}

    \r\n

    {t(\"forms:analyzer.wizard.meResultsLine2\")}

    \r\n

    {t(\"forms:analyzer.wizard.meResultsLine3\")}

    \r\n

    {t(\"forms:analyzer.wizard.meResultsLine4\")}

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default InstallerStockListing;\r\n","import React from \"react\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\n\r\nconst StockListFooterActions = ({\r\n filteredStockItems,\r\n selectedRows,\r\n gasSelectionIsValid\r\n }) => {\r\n const footerButton = (\r\n <>\r\n \r\n \r\n \r\n {!gasSelectionIsValid(selectedRows) && (\r\n
    \r\n

    \r\n Only gases that meet the following prerequisites\r\n can be bundled:\r\n

    \r\n
      \r\n
    1. All gases have the same gas type
    2. \r\n
    3. All gases have the same grade
    4. \r\n
    5. \r\n All gases either have or don't have the\r\n quality test done\r\n
    6. \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n\r\n if (filteredStockItems.length > 0) {\r\n return footerButton;\r\n }\r\n return null;\r\n};\r\n\r\nexport default StockListFooterActions;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport ActionButton from \"../../../../components/elements/buttons/ActionButton\";\r\n\r\nconst StockListHeaderActions = ({\r\n publishMultipleToMarketplace,\r\n shouldAllowPublish,\r\n listingPageState,\r\n shouldShowDisposeButton,\r\n}) => {\r\n const { t } = useTranslation(\"screens\");\r\n\r\n const [currentTranslations, setCurrentTranslations] = useState([]);\r\n\r\n const getTranslations = useCallback(() => {\r\n setCurrentTranslations([]);\r\n let translationValues = \"\";\r\n listingPageState.selectedRows.map((r, index) => {\r\n translationValues +=\r\n \"
    \" +\r\n (index + 1) +\r\n \": \" +\r\n r.original.refrigerantGasTypeCode +\r\n \" | \" +\r\n r.original.quantity?.toFixed(2) +\r\n \"kg\" +\r\n \" | \" +\r\n r.original.pressumedGradeName +\r\n \" | \" +\r\n (r.original.analysisDone\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"));\r\n });\r\n setCurrentTranslations(translationValues);\r\n toggleOpen();\r\n }, [listingPageState]);\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"sidebar:button.bid_publishOffer\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: () => {\r\n publishMultipleToMarketplace();\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.publishStockItem.confirmText\"),\r\n });\r\n\r\n const footerButton = (\r\n <>\r\n \r\n \r\n {!shouldShowDisposeButton() && (\r\n \r\n {t(\"actions:sellSelected\")}\r\n \r\n )}\r\n {shouldShowDisposeButton() && (\r\n \r\n {t(\"actions:disposeSelected\")}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n

    \r\n

    {t(\"actions:dialogs.publishStockItem.text\")}

    \r\n

    \r\n \r\n
    \r\n \r\n );\r\n\r\n return footerButton;\r\n};\r\nexport default StockListHeaderActions;\r\n","const MarketplaceStatus = {\r\n Sold: \"Sold\",\r\n Offered: \"Offered\",\r\n OnStock : \"OnStock\",\r\n Recycling: \"Recycling\",\r\n RecyclePending: \"RecyclePending\"\r\n};\r\n\r\n\r\nexport default MarketplaceStatus;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../../components/elements/form-elements/ClearableInput\";\r\nimport Select from \"../../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../../components/filter/Filters\";\r\nimport AnalysisStatus from \"../../../../../core/enums/AnalysisStatus\";\r\nimport GradeStatus from \"../../../../../core/enums/GradeStatus\";\r\nimport MarketplaceStatus from \"../../../../../core/enums/MarketplaceStatus\";\r\nimport useDebouncedCallback from \"../../../../../hooks/_shared/useDebouncedCallback\";\r\n\r\nconst StockFilter = ({ filterState, dispatch, actionTypes, gasTypes }) => {\r\n const { t } = useTranslation(\"filters\");\r\n\r\n const statuses = Object.keys(MarketplaceStatus).map((key) => ({\r\n key: key,\r\n value: key,\r\n label: t(\r\n \"screens:stockListing.marketplaceStatus.\" + MarketplaceStatus[key]\r\n ),\r\n }));\r\n // statuses[statuses.findIndex((s) => s.key === \"OnStock\")].label +=\"/\"+ t(\r\n // \"screens:stockListing.marketplaceStatus.RecyclePending\"\r\n // );\r\n statuses.splice(statuses.findIndex((s) => s.key === \"RecyclePending\"),1);\r\n\r\n const [quantityToChanged] = useDebouncedCallback((text) => {\r\n text === \"\"\r\n ? dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_TO,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_TO,\r\n payload: text,\r\n });\r\n });\r\n const [quantityFromChanged] = useDebouncedCallback((text) => {\r\n text === \"\"\r\n ? dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n });\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_GAS_TYPE\r\n : actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n quantityFromChanged(evt.currentTarget.value)\r\n }\r\n placeholder={t(\"gas.quantityFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n \r\n \r\n quantityToChanged(evt.currentTarget.value)\r\n }\r\n placeholder={t(\"gas.quantityTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: GradeStatus[key],\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_PRESUMED_QUALITY\r\n : actionTypes.SET_PRESUMED_QUALITY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.presumedGrade\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: t(\"analysis.\" + AnalysisStatus[key]),\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_QUALITY_ASSURANCE\r\n : actionTypes.SET_QUALITY_ASSURANCE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.qualityAssurance\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_MARKETPLACE_STATUS\r\n : actionTypes.SET_MARKETPLACE_STATUS,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.qualityAssurance\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default StockFilter;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../../components/data/ListingPage\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport ModalDialog, { useModal } from \"../../../../components/modal/ModalDialog\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport stockListingStateModule from \"../../../../core/state/stock/stockListingStateModule\";\r\nimport useListingPageContext from \"../../../../core/state/useListingPage\";\r\nimport useStateModule from \"../../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../../hooks/_shared/usePageChange\";\r\nimport StockService from \"../../../../services/Stock/StockService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport StockListFooterActions from \"../../../SalesCenter/views/components/StockListFooterActions\";\r\nimport StockListHeaderActions from \"../../../SalesCenter/views/components/StockListHeaderActions\";\r\nimport StockDetailSideBar from \"./components/StockDetailSideBar\";\r\nimport StockFilter from \"./components/StockFilter\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport GreenCell from \"../../../../components/data/GreenCell\";\r\nimport Globals from \"../../../../globalVars\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport WizardCylinderIssue from \"../../../Equipment/components/wizard/WizardCylinderIssue\";\r\nimport TagsService from \"../../../../services/Tags/TagsService\";\r\n\r\nconst actionTypes = {\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_MARKETPLACE_STATUS: \"SET_MARKETPLACE_STATUS\",\r\n RESET_MARKETPLACE_STATUS: \"RESET_MARKETPLACE_STATUS\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.refrigerantGasTypeCode = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.refrigerantGasTypeCode;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.quantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.quantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.quantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.quantityFrom;\r\n break;\r\n case actionTypes.SET_PRESUMED_QUALITY:\r\n state.filter.presumedGrade = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_PRESUMED_QUALITY:\r\n delete state.filter.presumedGrade;\r\n break;\r\n case actionTypes.SET_QUALITY_ASSURANCE:\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case actionTypes.RESET_QUALITY_ASSURANCE:\r\n delete state.filter.hasAnalysis;\r\n break;\r\n case actionTypes.SET_MARKETPLACE_STATUS:\r\n state.filter.marketplaceStatusName = action.payload;\r\n break;\r\n case actionTypes.RESET_MARKETPLACE_STATUS:\r\n delete state.filter.marketplaceStatusName;\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst StockListing = () => {\r\n const {\r\n stockItems,\r\n isLoading,\r\n error,\r\n loadStockItems,\r\n loadStockById,\r\n details,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(stockListingStateModule);\r\n\r\n const { state: listingPageState, actions: listingPageActions } = useListingPageContext();\r\n\r\n const [globalState] = useSharedState(\"global\");\r\n\r\n useEffect(() => {\r\n return listingPageActions.resetState();\r\n }, []);\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n locationStatusName: \"CompanyStock\",\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"extractionDateTime\",\r\n descending: true,\r\n });\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:stock\"),\r\n },\r\n {\r\n text: t(\"navigation:companyStock\"),\r\n },\r\n ]);\r\n\r\n useEffect(() => {\r\n loadStockItems(filterState);\r\n }, [loadStockItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const publishToMarketplace = async (skuId, isDisposal = false, isCleaning = 0) => {\r\n if (skuId) {\r\n await StockService.publishToMarketplace([skuId], \"\", isCleaning === true ? 1 : 0);\r\n }\r\n\r\n listingPageState.tableInstance.toggleAllRowsSelected &&\r\n listingPageState.tableInstance.toggleAllRowsSelected(false);\r\n listingPageActions.resetState();\r\n await loadStockItems(filterState);\r\n toast.success(\r\n isDisposal\r\n ? t(\"actions:dialogs.disposal.success\")\r\n : t(\"screens:stockListing.toastNotification.success\")\r\n );\r\n };\r\n\r\n const sendToRecycling = async (tagId) => {\r\n if (tagId) {\r\n await StockService.sendToRecycling(tagId);\r\n }\r\n\r\n listingPageState.tableInstance.toggleAllRowsSelected &&\r\n listingPageState.tableInstance.toggleAllRowsSelected(false);\r\n listingPageActions.resetState();\r\n await loadStockItems(filterState);\r\n toast.success(t(\"actions:dialogs.recycle.success\"));\r\n };\r\n\r\n const finishRecycling = async (tagId) => {\r\n if (tagId) {\r\n const res = await StockService.emptyCylinder(tagId);\r\n }\r\n\r\n listingPageState.tableInstance.toggleAllRowsSelected &&\r\n listingPageState.tableInstance.toggleAllRowsSelected(false);\r\n listingPageActions.resetState();\r\n await loadStockItems(filterState);\r\n toast.success(t(\"actions:dialogs.finishRecycling.success\"));\r\n };\r\n\r\n const [currentStockSkuId, setCurrentStockSkuId] = useState({});\r\n\r\n useEffect(() => {\r\n if (listingPageState.selectedRows.length > 0) {\r\n setCurrentStockSkuId({\r\n gasType: listingPageState.selectedRows[0].original.refrigerantGasTypeCode,\r\n quantity: listingPageState.selectedRows[0].original.quantity,\r\n quality: listingPageState.selectedRows[0].original.pressumedGradeName,\r\n evaluation: listingPageState.selectedRows[0].original.analysisDone\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n });\r\n }\r\n }, [listingPageState]);\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { row } }) => {\r\n const item = row.original;\r\n return !item.analysisDone\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : item.isAnalysisReceived\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.pendingMeasurement\");\r\n },\r\n },\r\n {\r\n Header: t(\"stockListing.headers.onStockWith\"),\r\n accessor: \"fullName\",\r\n },\r\n {\r\n Header: t(\"stockListing.headers.marketplaceStatusName\"),\r\n accessor: \"marketplaceStatusName\",\r\n Cell: ({ cell: { value, row } }) => {\r\n if (\r\n globalState.isDistributor &&\r\n row.original.pressumedGradeName === \"C\" &&\r\n value === \"OnStock\"\r\n )\r\n value = \"RecyclePending\";\r\n return t(\"stockListing.marketplaceStatus.\" + value);\r\n },\r\n },\r\n {\r\n Header: t(\"filters:cylinders.type\"),\r\n accessor: \"cylinderType\",\r\n Cell: ({ cell: { value } }) => {\r\n let typeName =\r\n value === 0\r\n ? t(\"filters:cylinders.recovery\")\r\n : t(\"filters:cylinders.reclaimed\");\r\n return typeName;\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"skuId\",\r\n Cell: ({ cell: { value, row } }) => {\r\n return (\r\n \r\n \r\n \r\n <>\r\n {!Globals.isDistributor && (\r\n {\r\n setCurrentStockSkuId({\r\n isCleaning: 0,\r\n gasType:\r\n row.original.refrigerantGasTypeCode,\r\n quantity: row.original.quantity,\r\n quality: row.original.pressumedGradeName,\r\n evaluation: row.original.analysisDone\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n });\r\n toggleOpen(value);\r\n }}\r\n />\r\n )}\r\n {!Globals.isDistributor && (\r\n {\r\n setCurrentStockSkuId({\r\n isCleaning: 1,\r\n gasType:\r\n row.original.refrigerantGasTypeCode,\r\n quantity: row.original.quantity,\r\n quality: row.original.pressumedGradeName,\r\n evaluation: row.original.analysisDone\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n });\r\n toggleCleaning(value);\r\n }}\r\n />\r\n )}\r\n {!Globals.isDistributor && (\r\n {\r\n setCurrentStockSkuId({\r\n gasType:\r\n row.original.refrigerantGasTypeCode,\r\n quantity: row.original.quantity,\r\n quality: row.original.pressumedGradeName,\r\n evaluation: row.original.analysisDone\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n });\r\n toggleDisposal(value);\r\n }}\r\n />\r\n )}\r\n\r\n {row.original.marketplaceStatusValue === 0 &&\r\n Globals.isDistributor && (\r\n {\r\n setCurrentStockSkuId({\r\n tagId: row.original.tagId,\r\n gasType:\r\n row.original.refrigerantGasTypeCode,\r\n quantity: row.original.quantity,\r\n quality:\r\n row.original.pressumedGradeName,\r\n evaluation: row.original.analysisDone\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\r\n \"filters:analysis.selfAssessment\"\r\n ),\r\n });\r\n toggleRecycle(row.original.tagId);\r\n }}\r\n // text={t(\"actions:publishForDisposal\")}\r\n disabled={row.original.inUnfinishedOffer}\r\n />\r\n )}\r\n\r\n {row.original.marketplaceStatusValue === 10 && (\r\n {\r\n setCurrentStockSkuId({\r\n tagId: row.original.tagId,\r\n gasType:\r\n row.original.refrigerantGasTypeCode,\r\n quantity: row.original.quantity,\r\n quality: row.original.pressumedGradeName,\r\n evaluation: row.original.analysisDone\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n });\r\n toggleFinishRecycle(row.original.tagId);\r\n }}\r\n // text={t(\"actions:publishForDisposal\")}\r\n disabled={row.original.inUnfinishedOffer}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ],\r\n [currentStockSkuId, t]\r\n );\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const onSelect = useCallback((row) => {\r\n const selectRow = async (row) => {\r\n await loadStockById(row.original.skuId);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n }, []);\r\n\r\n const closeSideBar = useCallback(() => {\r\n setDetailViewIsOpened(false);\r\n }, []);\r\n\r\n const [publishState, publishSelectedItems] = useDataReducer(async (skuIds) => {\r\n if (skuIds && skuIds.length > 0) {\r\n await StockService.publishToMarketplace(skuIds);\r\n }\r\n listingPageActions.resetState();\r\n loadStockItems(filterState);\r\n });\r\n\r\n const publishMultipleToMarketplace = useCallback(async () => {\r\n const skuIds = listingPageState.selectedRows.map((r) => r.original.skuId);\r\n await publishSelectedItems(skuIds);\r\n toast.success(t(\"screens:stockListing.toastNotification.successMultiple\"));\r\n }, [publishSelectedItems, listingPageState]);\r\n\r\n const gasSelectionIsValid = (rows) => {\r\n if (rows.length > 0) {\r\n const firstRow = rows[0].original;\r\n\r\n const shouldAllow = rows.every((row) => {\r\n return (\r\n row.original.refrigerantGasTypeCode === firstRow.refrigerantGasTypeCode &&\r\n row.original.pressumedGradeValue === firstRow.pressumedGradeValue &&\r\n row.original.analysisDone === firstRow.analysisDone\r\n );\r\n });\r\n\r\n return shouldAllow;\r\n }\r\n return true;\r\n };\r\n\r\n const shouldAllowPublish = useCallback(() => {\r\n if (listingPageState.selectedRows.length > 0) {\r\n return gasSelectionIsValid(listingPageState.selectedRows);\r\n }\r\n return listingPageState.selectedRows.length > 0;\r\n }, [listingPageState]);\r\n\r\n const shouldShowDisposeButton = useCallback(() => {\r\n if (!globalState.isDistributor && listingPageState.selectedRows.length > 0) {\r\n return listingPageState.selectedRows.every((row) => {\r\n return row.original.pressumedGradeValue === 2;\r\n });\r\n }\r\n return false;\r\n }, [listingPageState]);\r\n\r\n const shouldEnableSelectionForRow = (row, selectedRows) => {\r\n if (row.original.marketplaceStatusName !== \"OnStock\") {\r\n return false;\r\n }\r\n if (UserService.isInRole(Roles.InstallerCompanyTechnician)) {\r\n return false;\r\n }\r\n\r\n if (selectedRows.length > 0) {\r\n return gasSelectionIsValid([...selectedRows, row]);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"sidebar:button.bid_publishOffer\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: async (offer) => {\r\n await publishToMarketplace(offer).then(toggleOpen());\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.publishStockItem.confirmText\"),\r\n });\r\n\r\n const { modalProps: disposalProps, toggleOpen: toggleDisposal } = useModal({\r\n title: t(\"actions:dialogs.disposal.title\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: async (offer) => {\r\n await publishToMarketplace(offer, true).then(toggleDisposal());\r\n },\r\n onCancel: () => {\r\n toggleDisposal();\r\n },\r\n confirmText: t(\"actions:dialogs.publishStockItem.confirmText\"),\r\n });\r\n\r\n const { modalProps: cleaninglProps, toggleOpen: toggleCleaning } = useModal({\r\n title: t(\"actions:dialogs.cleaning.title\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: async (offer) => {\r\n await publishToMarketplace(offer, false, true).then(toggleCleaning());\r\n },\r\n onCancel: () => {\r\n toggleCleaning();\r\n },\r\n confirmText: t(\"actions:dialogs.publishStockItem.confirmText\"),\r\n });\r\n\r\n const { modalProps: recycleProps, toggleOpen: toggleRecycle } = useModal({\r\n title: t(\"actions:dialogs.recycle.title\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: async (tagId) => {\r\n await sendToRecycling(tagId);\r\n toggleRecycle();\r\n },\r\n onCancel: () => {\r\n toggleRecycle();\r\n },\r\n confirmText: t(\"actions:dialogs.recycle.confirmText\"),\r\n });\r\n\r\n const { modalProps: finishRecyclingProps, toggleOpen: toggleFinishRecycle } = useModal({\r\n title: t(\"actions:dialogs.finishRecycling.title\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: async (tagId) => {\r\n await finishRecycling(tagId);\r\n toggleFinishRecycle();\r\n },\r\n onCancel: () => {\r\n toggleFinishRecycle();\r\n },\r\n confirmText: t(\"actions:dialogs.finishRecycling.confirmText\"),\r\n });\r\n\r\n const [currentStockItem, setCurrentStockItem] = useState({});\r\n useEffect(() => {\r\n setCurrentStockItem(\r\n stockItems.data.filter((item) => item.skuId === details.stockData.skuId)\r\n );\r\n }, [details]);\r\n\r\n const reportCylinderIssue = async (cylinderId) => {\r\n ModalWizard.show(\r\n WizardCylinderIssue(t),\r\n {\r\n onSubmit: async (values) => {\r\n values.cylinderId = cylinderId;\r\n values.issueType = Number(values.issueType);\r\n const result = await TagsService.addCylinderIssueAsync(values);\r\n if (result && result.error) ModalWizard.submitFailed(t(result.error.message));\r\n //toast.error(t(result.error.message));\r\n else {\r\n toast.success(t(\"actions:dialogs.reportCylinder.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"708px\" } }\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:companyStock.title\")}\r\n \r\n {\r\n return row.skuId;\r\n }}\r\n shouldEnableSelectionForRow={shouldEnableSelectionForRow}\r\n showSelectAll={false}\r\n actions={{\r\n headerActions: () => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n },\r\n footerActions: () => {\r\n return (\r\n \r\n );\r\n },\r\n }}\r\n detailView={\r\n \r\n }\r\n filterTitle={t(\"filters:stock.companyFilterTitle\")}\r\n filterComponent={() => (\r\n \r\n )}\r\n detailViewIsOpened={detailViewIsOpened}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n noDataText={t(\"screens:stockListing.notification\")}\r\n detailSideBarTitle={t(\"screens:stockListing.sidebarTitle\")}\r\n />\r\n \r\n

    {t(\"actions:dialogs.publishStockItem.text\")}

    \r\n

    \r\n {`• ${currentStockSkuId.gasType} | ${currentStockSkuId.quantity?.toFixed(\r\n 2\r\n )} kg | ${currentStockSkuId.quality} | ${currentStockSkuId.evaluation}`}\r\n

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

    {t(\"actions:dialogs.disposal.text\")}

    \r\n

    \r\n {`• ${currentStockSkuId.gasType} | ${currentStockSkuId.quantity?.toFixed(\r\n 2\r\n )} kg | ${currentStockSkuId.quality} | ${currentStockSkuId.evaluation}`}\r\n

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

    {t(\"actions:dialogs.cleaning.text\")}

    \r\n

    \r\n {`• ${currentStockSkuId.gasType} | ${currentStockSkuId.quantity?.toFixed(\r\n 2\r\n )} kg | ${currentStockSkuId.quality} | ${currentStockSkuId.evaluation}`}\r\n

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

    {t(\"actions:dialogs.recycle.text\")}

    \r\n

    {`• ${currentStockSkuId.tagId}`}

    \r\n

    \r\n {`• ${currentStockSkuId.gasType} | ${currentStockSkuId.quantity?.toFixed(\r\n 2\r\n )} kg`}\r\n

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

    {t(\"actions:dialogs.finishRecycling.text\")}

    \r\n

    {`• ${currentStockSkuId.tagId}`}

    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default StockListing;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport _ from \"lodash\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport useBreadcrumbs from \"../../../../core/state/navigation/useBreadcrumbs\";\r\nimport useImmerReducer from \"../../../../hooks/_shared/useImmerReducer\";\r\nimport useDataReducerImmediate from \"../../../../hooks/_shared/useDataReducerImmediate\";\r\nimport useDataReducer from \"../../../../hooks/_shared/useDataReducer\";\r\nimport StatisticsService from \"../../../../services/Statistics/StatisticsService\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport ChartHeader from \"../../../../components/dashboard/ChartHeader\";\r\nimport CustomTooltip from \"../../../../components/dashboard/CustomTooltip\";\r\nimport ProgressBar from \"../../../../components/dashboard/ProgressBar\";\r\nimport ChartDates from \"../../../../components/dashboard/ChartDates\";\r\nimport GasMenu from \"../../../pwa/GasMenu\";\r\nimport DashboardStyles from \"../../../../components/dashboard/DashboardStyles\";\r\n\r\nimport {\r\n Surface,\r\n Symbols,\r\n ComposedChart,\r\n Area,\r\n XAxis,\r\n YAxis,\r\n Tooltip,\r\n ResponsiveContainer,\r\n PieChart,\r\n Label,\r\n Pie,\r\n Cell,\r\n BarChart,\r\n Bar,\r\n Legend,\r\n CartesianGrid,\r\n} from \"recharts\";\r\n\r\nexport const COLORS = [\"#2B736B\", \"#94C21C\", \"#F0C40D\", \"#FF8042\"];\r\n\r\nexport const FONT_COLOR = \"#AAAEB3\";\r\n\r\nconst WEEK = \"week\";\r\nconst MONTH = \"month\";\r\nconst DAY = \"day\";\r\n\r\nconst DashboardWrapper = styled.div`\r\n padding: 25px 60px 25px;\r\n`;\r\n\r\nconst TechnicianChartWrapper = styled.div`\r\n padding: 20px 30px 0px 0px;\r\n min-height: 10px;\r\n flex-grow: 1;\r\n`;\r\n\r\nconst filterReducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FILTERS:\r\n state.from = action.payload.from;\r\n state.to = action.payload.to;\r\n break;\r\n case actionTypes.RESET_FILTERS:\r\n delete state.from;\r\n delete state.to;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst MainContainer = styled(Flex.Container)`\r\n height: 100%;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n flex-direction: column;\r\n height: auto;\r\n }\r\n`;\r\n\r\nconst LeftContainer = styled(Flex.Container)`\r\n width: 80%;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n order: 2;\r\n width: 100%;\r\n margin: 40px 0px 0px 0px;\r\n }\r\n`;\r\n\r\nconst RightContainer = styled(Flex.Column)`\r\n min-width: 260px;\r\n width: 20%;\r\n min-height: 800px;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n width: 100%;\r\n min-height: 100%;\r\n }\r\n`;\r\n\r\nconst actionTypes = {\r\n SET_FILTERS: \"SET_FILTERS\",\r\n RESET_FILTERS: \"RESET_FILTERS\",\r\n};\r\n\r\nconst ChartHeaderContainer = styled.div`\r\n padding: 25px 30px 0px 30px;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n &.grow {\r\n flex-grow: 1;\r\n }\r\n\r\n &.responsive {\r\n padding-right: 0px;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n padding: 0px;\r\n }\r\n }\r\n`;\r\n\r\nconst TechnicianStockChartHeaderContainer = styled(ChartHeaderContainer)`\r\n padding: 0px 30px 0px 30px;\r\n flex-grow: 1;\r\n min-height: 350px;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n padding: 0px;\r\n }\r\n`;\r\n\r\nconst ListItem = styled.li`\r\n height: 40px;\r\n color: #aaaeb3;\r\n display: flex;\r\n`;\r\n\r\nconst ListText = styled.div`\r\n float: left;\r\n margin: auto;\r\n\r\n & span {\r\n padding-left: 6px;\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst ProgressWrapper = styled.div`\r\n float: right;\r\n width: 137px;\r\n font-size: 12px;\r\n`;\r\n\r\nconst ProgressLabel = styled.span`\r\n float: right;\r\n`;\r\n\r\nconst ProgressList = styled.ul`\r\n list-style: none;\r\n padding: 0;\r\n margin-top: 30px;\r\n`;\r\n\r\nconst LegendList = styled.ul`\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n`;\r\n\r\nconst LegendItem = styled.li`\r\n color: #aaaeb3;\r\n font-size: 14px;\r\n display: inline-block;\r\n padding-right: 10px;\r\n\r\n & span {\r\n padding-left: 6px;\r\n }\r\n`;\r\n\r\nconst QualityContainer = styled(Flex.Column)`\r\n width: 320px;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst ExtractionsContainer = styled(Flex.Column)`\r\n padding-top: 25px;\r\n min-width: 200px;\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst RelativeDiv = styled.div`\r\n position: relative;\r\n height: 100%;\r\n`;\r\n\r\nconst ExtractionsWrapper = styled.div`\r\n height: 441px;\r\n padding-right: 30px;\r\n padding-left: 25px;\r\n\r\n @media all and (max-width: ${(props) => props.theme.extraLargeDevices}) {\r\n padding-right: 0px;\r\n }\r\n`;\r\n\r\nconst ExtractionChartContainer = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst StockDashboard = () => {\r\n const PRESUMED_GRADES = [\r\n { name: \"A\", type: \"circle\", id: 0, color: COLORS[0] },\r\n { name: \"B\", type: \"circle\", id: 1, color: COLORS[1] },\r\n { name: \"C\", type: \"circle\", id: 2, color: COLORS[2] },\r\n ];\r\n\r\n const [selectedGasType, setSelectedGasType] = useState({\r\n id: \"\",\r\n code: \"\",\r\n firstExtractionDate: \"\",\r\n lastExtractionDate: \"\",\r\n });\r\n\r\n const [selectedPeriodGrouping, setSelectedPeriodGrouping] = useState();\r\n\r\n const [menuData, setMenuData] = useState();\r\n\r\n const [extractedFGasState] = useDataReducerImmediate(StatisticsService.extractedFGas);\r\n\r\n const [extractionsState, loadExtractions] = useDataReducer(async (filter) => {\r\n return await StatisticsService.extractions(filter);\r\n });\r\n\r\n const [companyStockState, loadCompanyStock] = useDataReducer(async (filter) => {\r\n return await StatisticsService.companyStock(filter);\r\n });\r\n\r\n const [technicianStockState, loadTechnicianStock] = useDataReducer(async (filter) => {\r\n return await StatisticsService.technicianStock(filter);\r\n });\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n from: null,\r\n to: null,\r\n });\r\n\r\n useEffect(() => {\r\n if (filterState && selectedGasType && selectedGasType.id) {\r\n const refrigerantId = { refrigerantId: selectedGasType.id };\r\n const filter = { ...filterState, ...refrigerantId };\r\n loadExtractions({ filter: filter });\r\n }\r\n }, [filterState]);\r\n\r\n const selectedGasFilter = {\r\n filter: {\r\n refrigerantId: selectedGasType.id,\r\n },\r\n };\r\n\r\n useEffect(() => {\r\n tempFilterData.current.from = selectedGasType.firstExtractionDate;\r\n tempFilterData.current.to = selectedGasType.lastExtractionDate;\r\n applyFilters();\r\n }, [selectedGasType]);\r\n\r\n useEffect(() => {\r\n loadCompanyStock(selectedGasFilter);\r\n }, [selectedGasType]);\r\n\r\n useEffect(() => {\r\n const menuData = getExtractedFGasData();\r\n setMenuData(menuData);\r\n\r\n if (menuData && menuData.length > 0) {\r\n const firstMenu = menuData[0];\r\n\r\n setSelectedGasType({\r\n id: firstMenu.refrigerantId,\r\n code: firstMenu.refrigerantGasTypeCode,\r\n firstExtractionDate: firstMenu.firstExtractionDate,\r\n lastExtractionDate: firstMenu.lastExtractionDate,\r\n });\r\n }\r\n }, [extractedFGasState]);\r\n\r\n useEffect(() => {\r\n loadTechnicianStock(selectedGasFilter);\r\n }, [selectedGasType]);\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:stock\"),\r\n },\r\n {\r\n text: t(\"navigation:dashboard\"),\r\n },\r\n ]);\r\n\r\n const filterData = useRef({\r\n from: \"\",\r\n to: \"\",\r\n });\r\n\r\n const applyFilters = () => {\r\n Object.assign(filterData.current, tempFilterData.current);\r\n dispatch({\r\n type: actionTypes.SET_FILTERS,\r\n payload: filterData.current,\r\n });\r\n };\r\n\r\n const tempFilterData = useRef({});\r\n\r\n const handleClick = (ev) => {\r\n const tgt = ev.currentTarget;\r\n if (tgt.dataset.value !== undefined && tgt.dataset.info !== undefined) {\r\n const refrigerantId = tgt.dataset.value;\r\n const refrigerantCode = tgt.dataset.info;\r\n const gasInfo = menuData.filter((x) => x.refrigerantId == refrigerantId)[0];\r\n\r\n setSelectedGasType({\r\n id: refrigerantId,\r\n code: refrigerantCode,\r\n firstExtractionDate: gasInfo.firstExtractionDate,\r\n lastExtractionDate: gasInfo.lastExtractionDate,\r\n });\r\n }\r\n };\r\n\r\n const getExtractionsPerWeek = (rawData) => {\r\n return _(rawData)\r\n .groupBy((x) => helpers.getWeekName(x.period))\r\n .map((dates, key) => ({\r\n period: `Week ${key}`,\r\n value: _.sumBy(dates, \"value\"),\r\n dates: dates,\r\n }))\r\n .value();\r\n };\r\n\r\n const getExtractionsPerMonth = (rawData) => {\r\n return _(rawData)\r\n .groupBy((x) => x.period.substring(0, 7))\r\n .map((dates, key) => ({\r\n period: t(`screens:months.${parseInt(key.slice(-2))}`).substring(0, 3),\r\n value: _.sumBy(dates, \"value\"),\r\n dates: dates,\r\n }))\r\n .value();\r\n };\r\n\r\n const getExtractionsPerDay = (rawData) => {\r\n return rawData.map((x) => ({\r\n period: helpers.toLocalDateIgnoreTime(x.period),\r\n value: x.value,\r\n }));\r\n };\r\n\r\n const RenderExtractionsLineChart = () => {\r\n var rawData = extractionsState && extractionsState.data ? extractionsState.data : [];\r\n\r\n let data = [];\r\n\r\n const dataPerDay = getExtractionsPerDay(rawData);\r\n const dataPerMonth = getExtractionsPerMonth(rawData);\r\n const dataPerWeek = getExtractionsPerWeek(rawData);\r\n\r\n const threshold = 10;\r\n\r\n if (!selectedPeriodGrouping) {\r\n if (dataPerDay.length < threshold) setSelectedPeriodGrouping(DAY);\r\n else if (dataPerDay.length < threshold) setSelectedPeriodGrouping(WEEK);\r\n else setSelectedPeriodGrouping(MONTH);\r\n }\r\n\r\n if (selectedPeriodGrouping === DAY) data = dataPerDay;\r\n else if (selectedPeriodGrouping === WEEK) data = dataPerWeek;\r\n else if (selectedPeriodGrouping === MONTH) data = dataPerMonth;\r\n\r\n return (\r\n \r\n 0)\r\n ? \"show\"\r\n : \"\"\r\n }`}\r\n >\r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n } />\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const RenderQualityofSelectedGasPieChart = () => {\r\n const filteredData = selectedGasType.id\r\n ? extractedFGasState.data.filter((x) => x.refrigerantId === selectedGasType.id)\r\n : extractedFGasState.data;\r\n const totalQuantity = parseFloat(filteredData.reduce((sum, current) => sum + current.quantity, 0));\r\n\r\n let data = PRESUMED_GRADES.map((grade) => {\r\n const sumQuantity = filteredData\r\n .filter((x) => x.presumedGrade === grade.id)\r\n .reduce((sumQuantity, current) => sumQuantity + current.quantity, 0);\r\n return {\r\n name: grade.name,\r\n color: grade.color,\r\n value: sumQuantity,\r\n percent: (sumQuantity / totalQuantity) * 100,\r\n };\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n\r\n \r\n \r\n \r\n {data.map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n \r\n {data.map((item, idx) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.name} {t(\"screens:stockDashboard.labels.grade\")}\r\n \r\n \r\n \r\n {parseFloat(item.value).toFixed(2)} kg\r\n \r\n \r\n \r\n ))}\r\n \r\n
    \r\n );\r\n };\r\n\r\n const RenderCustomGasGradeLegend = () => {\r\n return (\r\n \r\n {PRESUMED_GRADES.map((grade, index) => (\r\n \r\n \r\n \r\n \r\n {`${grade.name} ${t(\"screens:stockDashboard.labels.grade\")}`}\r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n const barChartMargin = {\r\n top: 40,\r\n bottom: 5,\r\n left: -30,\r\n };\r\n\r\n const legendWrapperStyle = {\r\n top: 0,\r\n right: -30,\r\n };\r\n\r\n const RenderCompanyStockForSelectedGasBarChart = () => {\r\n const rawData = companyStockState && companyStockState.data ? companyStockState.data : [];\r\n\r\n let data = PRESUMED_GRADES.map((grade) => {\r\n const quantity = parseFloat(\r\n rawData\r\n .filter((x) => x.presumedGrade === grade.id)\r\n .reduce((quantity, current) => quantity + current.quantity, 0)\r\n );\r\n return {\r\n name: grade.name,\r\n color: grade.color,\r\n quantity: quantity,\r\n };\r\n }).filter((x) => x.quantity > 0);\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n\r\n \r\n \r\n \r\n {data.map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \"\"} cursor={false} content={} />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const RenderTechnicianStockForSelectedGasBarChart = () => {\r\n const rawData = technicianStockState && technicianStockState.data ? technicianStockState.data : [];\r\n const data = _(rawData)\r\n .groupBy((x) => x.technicianId)\r\n .map((values, key) => ({\r\n technicianId: key,\r\n technicianName: values[0].technicianName,\r\n quantityA: _.sumBy(\r\n values.filter((x) => x.refrigerantGradeName === \"A\"),\r\n \"quantity\"\r\n ),\r\n quantityB: _.sumBy(\r\n values.filter((x) => x.refrigerantGradeName === \"B\"),\r\n \"quantity\"\r\n ),\r\n quantityC: _.sumBy(\r\n values.filter((x) => x.refrigerantGradeName === \"C\"),\r\n \"quantity\"\r\n ),\r\n values: values,\r\n }))\r\n .value();\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"table:headers.noItems\")}\r\n \r\n\r\n \r\n \r\n \r\n\r\n } />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const selectedGasLabel = () => {\r\n return selectedGasType.code ? \"- \" + selectedGasType.code : \"\";\r\n };\r\n\r\n const getExtractedFGasData = () => {\r\n const rawData = extractedFGasState && extractedFGasState.data ? extractedFGasState.data : [];\r\n\r\n const data = _(rawData)\r\n .groupBy((x) => x.refrigerantId)\r\n .map((values, key) => ({\r\n refrigerantId: key,\r\n refrigerantGasTypeCode: values[0].refrigerantGasTypeCode,\r\n quantity: _.sumBy(values, \"quantity\"),\r\n values: values,\r\n firstExtractionDate: helpers.minDate(values.map((a) => a.firstExtractionDate)),\r\n lastExtractionDate: helpers.maxDate(values.map((a) => a.lastExtractionDate)),\r\n }))\r\n .value();\r\n\r\n const sortedData = _.orderBy(data, [\"quantity\"], [\"desc\"]);\r\n\r\n return sortedData;\r\n };\r\n\r\n const handleDateFromFilterChange = (date) => {\r\n tempFilterData.current.from = date;\r\n applyFilters();\r\n };\r\n\r\n const handleDateToFilterChange = (date) => {\r\n tempFilterData.current.to = date;\r\n applyFilters();\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:stockDashboard.title\")}\r\n \r\n {extractedFGasState.isCompleted && extractedFGasState.data && (\r\n \r\n \r\n \r\n \r\n \r\n {RenderQualityofSelectedGasPieChart()}\r\n \r\n \r\n \r\n \r\n {RenderCompanyStockForSelectedGasBarChart()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {RenderExtractionsLineChart()}\r\n \r\n \r\n \r\n \r\n \r\n {RenderTechnicianStockForSelectedGasBarChart()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default StockDashboard;\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport companyAdminMenuItems from \"../../data/menu/companyAdminMenuItems\";\r\nimport InstallerStockListing from \"./views/stock/InstallerStockListing\";\r\nimport StockListing from \"./views/stock/StockListing\";\r\nimport StockDashboard from './views/stock/StockDashboard';\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\n\r\n\r\nconst StockScreen = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n useLeftMenu(companyAdminMenuItems(globalState));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default StockScreen;\r\n","import React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { InputSubmit } from \"../../components/elements/form-elements\";\r\nimport CompanyService from \"../../services/Company/CompanyService\";\r\nimport CountryService from \"../../services/User/CountryService\";\r\nimport Wrappers from \"../../components/wrappers/Wrappers\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\nimport useQueryString from \"../../hooks/_shared/useQueryString\";\r\nimport userStateModule from \"../../core/state/user/userStateModule\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport useDataReducerImmediate from \"../../hooks/_shared/useDataReducerImmediate\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport styled from \"styled-components\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst ScreenWrapper = styled.div`\r\n width: 100%;\r\n`;\r\n\r\nconst FormWrapper = styled.div`\r\n width: 500px;\r\n margin: 0 auto;\r\n border: 1px solid ${p => p.theme.primaryColor};\r\n border-radius: 8px;\r\n padding: 20px;\r\n margin-top: 20px;\r\n`;\r\n\r\nconst ActivateUserScreen = () => {\r\n const { t } = useTranslation();\r\n\r\n /* check if I'm logged in - this will be replaced/upgraded with the Claims and Roles */\r\n const { isAuthenticated, activation, activateUser } = useStateModule(\r\n userStateModule\r\n );\r\n\r\n let userID = useQueryString(\"userId\");\r\n\r\n const [\r\n { isLoading: companyLoading, data: companyData },\r\n ] = useDataReducerImmediate(() =>\r\n CompanyService.getCompanyByUserID(userID)\r\n );\r\n\r\n const [{ data: countryData }] = useDataReducerImmediate(\r\n CountryService.getCountries\r\n );\r\n\r\n let countryName = null;\r\n if (countryData && companyData) {\r\n const filterCountry =\r\n countryData &&\r\n countryData.filter((c) => c.id === companyData.company.countryId);\r\n if (filterCountry) countryName = filterCountry[0].countryName;\r\n }\r\n const handleCompanyActivation = () => {\r\n activateUser({ userId: userID, activate: true });\r\n };\r\n\r\n if (!isAuthenticated) {\r\n return ;\r\n }\r\n\r\n if (activation.isCompleted && !activation.error) {\r\n return (\r\n \r\n \r\n {t(\"seo:activateUser.title\")}\r\n \r\n \r\n

    User has been activated

    \r\n
    \r\n
    \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n {t(\"seo:activateUser.title\")}\r\n \r\n \r\n {companyLoading &&
    Loading...
    }\r\n {companyData && (\r\n <>\r\n \r\n {t(\"screens:activateUser.title\")}\r\n \r\n
    \r\n Company name:{\" \"}\r\n \r\n {companyData.company.companyName}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n VAT:{\" \"}\r\n {companyData.company.vatNumber}\r\n
    \r\n
    \r\n
    \r\n
    \r\n IBAN:{\" \"}\r\n {companyData.company.iban}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Licence number:{\" \"}\r\n \r\n {companyData.company.licenceNumber}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Email:{\" \"}\r\n {companyData.company.email}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Phone:{\" \"}\r\n \r\n {companyData.company.phoneNumber}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Address:{\" \"}\r\n {companyData.company.address}\r\n
    \r\n
    \r\n
    \r\n
    \r\n City:{\" \"}\r\n {companyData.company.city}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Region:{\" \"}\r\n {companyData.company.region}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Country: {countryName}\r\n
    \r\n

    \r\n {!activation.isLoading && (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n};\r\n\r\nexport default ActivateUserScreen;\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport { toast } from \"react-toastify\";\r\nimport UserService from \"../../services/User/UserService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useQueryString from \"../../hooks/_shared/useQueryString\";\r\nimport styled from \"styled-components\";\r\nimport FullScreenNotification from \"../../components/notifications/FullScreenNotification\";\r\nimport Anchor from \"../../components/elements/form-elements/Link\";\r\nimport ReactDOM from \"react-dom\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport userStateModule from \"../../core/state/user/userStateModule.js\";\r\n\r\nconst ScreenWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nconst ChangeEmailScreen = () => {\r\n const { t } = useTranslation();\r\n let username = useQueryString(\"username\");\r\n let token = useQueryString(\"token\");\r\n let newEmail = useQueryString(\"newEmail\");\r\n const [usernameChanged, setUsernameChanged] = useState(false);\r\n const { logout } = useStateModule(userStateModule);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n try {\r\n const res = await UserService.confirmEmail({\r\n username,\r\n newEmail,\r\n token,\r\n });\r\n if (res.status === 204) {\r\n setUsernameChanged(true);\r\n } else {\r\n toast.error(t(\"screens:changeEmail.error\"));\r\n }\r\n } catch (err) {\r\n toast.error(t(\"screens:changeEmail.error\"));\r\n }\r\n })();\r\n }, []);\r\n\r\n if (usernameChanged) {\r\n return ReactDOM.createPortal(\r\n \r\n {t(\"screens:logout.notifications.button\")}\r\n \r\n }\r\n redirectTo={RouteCreator.user.login()}\r\n redirect={true}\r\n redirectTime={5000}\r\n executeFn={logout}\r\n />,\r\n document.getElementById(\"portal\")\r\n );\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default ChangeEmailScreen;\r\n","import React from \"react\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport ValidationRule, {buildValidation} from \"../../../../core/validations/ValidationRule\";\r\nimport * as yup from \"yup\";\r\nimport {InfoText, InfoTitle, InfoWrapper, RoundInfo} from \"../../../../components/modal/components/WizardStyling\";\r\nimport MoneyInputElement from \"../../../../components/elements/form-elements/MoneyInputElement\";\r\n\r\nconst validatePayout = (t, inputAmount) => (\r\n yup.lazy(() => {\r\n return buildValidation({\r\n bankAccountId: ValidationRule.isStringRule().required(t('forms:wallet.wizard.payout.iban.required')).rule,\r\n amount: ValidationRule\r\n .numberRange(0, inputAmount, t(\"forms:wallet.wizard.payout.amount.invalid\"), t(\"forms:wallet.wizard.payout.amount.exceeded\") )\r\n .rule\r\n })\r\n })\r\n)\r\n\r\nconst PayoutWizard = (t, initialValues, myBankAccounts) => {\r\n let amount = initialValues ? initialValues.amount : 0;\r\n return {\r\n title: t(\"forms:wallet.wizard.payout.title\"),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:wallet.wizard.payout.step1\"),\r\n fieldNames: [\"bankAccountId\", \"amount\"],\r\n validation: validatePayout(t, amount),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:wallet.wizard.payout.infoTitle\")}\r\n \r\n \r\n {t(\"forms:wallet.wizard.payout.infoText\")}\r\n
    \r\n {t(\"forms:wallet.wizard.payout.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n 0\r\n ? myBankAccounts.map((account) => {\r\n return {\r\n key: account.id,\r\n value: account.id,\r\n label: account.iban,\r\n };\r\n })\r\n : []\r\n }\r\n wrapperVariant=\"flex-2\"\r\n {...formik}\r\n />\r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default PayoutWizard;\r\n","import React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport styled from \"styled-components\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport RouteCreator from \"../../../../core/RouteCreator\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst Wallet = styled.div`\r\n display: flex;\r\n padding: 12px 0px;\r\n margin: 0px;\r\n\r\n .main {\r\n color: #687191;\r\n }\r\n\r\n &.main-wallet {\r\n border-bottom: 1px solid #d5d5d5;\r\n }\r\n\r\n .transaction {\r\n color: ${(props) => props.theme.walletTransaction};\r\n }\r\n`;\r\n\r\nconst Total = styled(Flex.Container)`\r\n position: relative;\r\n padding: 12px 0px;\r\n &:before {\r\n content:\"\";\r\n position: absolute;\r\n left: -40px;\r\n top: 0px;\r\n width: calc(100% + 40px);\r\n height: 2px;\r\n background-color: #000;\r\n } \r\n`;\r\n\r\nconst TotalTitle = styled.div`\r\n font-weight: 700;\r\n font-size: 28px;\r\n\r\n`;\r\n\r\nconst FirstColumn = styled(Flex.Column)`\r\n min-width: 500px;\r\n\r\n`;\r\n\r\nconst SecondColumn = styled(Flex.Column)`\r\n min-width: 200px;\r\n font-weight: 700;\r\n font-size: 24px;\r\n`;\r\n\r\nconst ActionColumn = styled(Flex.Column)`\r\n flex: 1;\r\n`;\r\n\r\nconst WalletTitle = styled.div`\r\n font-size: 24px;\r\n \r\n`;\r\n\r\nconst WalletInfo = styled.div`\r\n padding: 12px 0px;\r\n font-size: 12px;\r\n`;\r\n\r\nconst ActionWrapper = styled.div`\r\n text-align: right;\r\n`;\r\n\r\nconst KycStatus = styled.span`\r\n font-weight: 600;\r\n`;\r\n\r\n\r\nconst Warning = styled.span`\r\n display: block;\r\n font-size: 12px;\r\n color: ${(props) => props.theme.textNeutral};\r\n\r\n`;\r\n\r\nconst PayButton = styled(Button)`\r\n margin: 0 !important;\r\n font-size: 14px;\r\n font-weight: 500 !important;\r\n outline: none !important;\r\n color: #2294d2;\r\n padding: 0px;\r\n text-align: right;\r\n\r\n background: transparent !important;\r\n box-shadow: none;\r\n border: none !important;\r\n font-size: 16px;\r\n font-weight: 700;\r\n :hover {\r\n text-decoration: underline;\r\n }\r\n height: auto;\r\n`;\r\n\r\n\r\nconst MyWallets = (props) => {\r\n const { data, handlePayout, isTotal, handleDeposit } =\r\n props;\r\n const { t, i18n } = useTranslation();\r\n const isMain = !isTotal && data.tag && data.tag === \"MAIN\";\r\n const [walletValues] = useState({\r\n amount: data.amount,\r\n });\r\n const currency = data.currency;\r\n const currentLanguage = i18n.language;\r\n\r\n const { IsKYCValidated } = UserService.getUserDetailsFromToken();\r\n\r\n const history = useHistory();\r\n\r\n if (data === null) {\r\n return <>;\r\n }\r\n\r\n return isTotal ? (\r\n \r\n \r\n \r\n {t(\"screens:transactions.myWallets.totalBalance\")}:\r\n \r\n \r\n {data.amount}\r\n \r\n ) : (\r\n \r\n \r\n \r\n {data.tag &&\r\n t(\r\n `screens:transactions.myWallets.walletType.${data.tag.toLowerCase()}`\r\n )}\r\n \r\n\r\n \r\n \r\n \r\n {helpers.formatCurrency(data.amount, currentLanguage, currency)}\r\n \r\n \r\n {isMain && (\r\n <>\r\n \r\n {\r\n {\r\n ev.preventDefault();\r\n handleDeposit();\r\n }}\r\n >\r\n {t(\"screens:transactions.myWallets.payIn\")}\r\n \r\n }\r\n \r\n\r\n {IsKYCValidated === \"True\" ? (\r\n \r\n {\r\n ev.preventDefault();\r\n handlePayout(walletValues);\r\n }}\r\n >\r\n {t(\"screens:transactions.myWallets.payOut\")}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {t(\"screens:transactions.myWallets.payoutNotAllowed\")}\r\n Light \r\n \r\n {\r\n history.push(RouteCreator.company.kyc());\r\n ev.preventDefault();\r\n }}\r\n title={t(\"screens:transactions.myWallets.upgradeKycStatus\")}\r\n >\r\n {t(\r\n \"screens:transactions.myWallets.upgradeKycStatus\"\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MyWallets;\r\n","const TransactionFlowType = {\r\n 0: 'RecoveredFGasSale',\r\n 1: 'ReclaimedFGasSale',\r\n 2: 'FGasDisposal',\r\n 3: 'FGasCleaning',\r\n 4: 'PayIn',\r\n 5: 'PayOut'\r\n // 2: 'ReclaimedOffer',\r\n};\r\n\r\nexport default TransactionFlowType;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { GetShortDate } from \"../../../../components/data/DateCell\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport DataTable from \"../../../../components/data/DataTable\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport TransactionFlowType from \"../../../../core/enums/TransactionFlowType\";\r\n\r\nconst Accordion = styled.p`\r\n margin: 0 0 4px 0;\r\n padding: 0 0 0 20px;\r\n position: relative;\r\n cursor: pointer;\r\n color: ${(p) => p.theme.secondaryColor};\r\n font-size: ${(p) => (p.titleVariant === \"small\" ? \"13px\" : \"1.25rem\")};\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n top: ${(p) => (p.titleVariant === \"small\" ? \"0px\" : \"7px\")};\r\n width: 8px;\r\n height: 12px;\r\n background: url(\"/images/actions/arrow-blue.svg\") no-repeat top left;\r\n background-size: 8px 12px;\r\n transform: rotate(-180deg);\r\n }\r\n\r\n &.isOpened {\r\n &:before {\r\n transform: rotate(-90deg);\r\n }\r\n }\r\n\r\n &.disabled:before {\r\n content:none;\r\n }\r\n`;\r\n\r\nconst Container = styled(Flex.Column)`\r\n width: 100%;\r\n`;\r\n\r\nconst Cell = styled.div`\r\n padding: 15px 0px 15px 10px;\r\n width: 25%;\r\n`;\r\n\r\nconst HighlightCell = styled(Cell)`\r\n font-weight: 700;\r\n`;\r\n\r\nconst RowWrapper = styled(Flex.Row)`\r\n background-color: rgb(142, 142, 142, 0.1);\r\n display: flex;\r\n border-radius: 8px;\r\n margin-top: 2px;\r\n cursor: pointer;\r\n`;\r\n\r\nconst AccordionWrapper = styled.div`\r\n padding: 0 0 24px 20px;\r\n margin-top: 10px;\r\n`;\r\n\r\nconst TransactionRow = ({ item, columns, isOpen, onSelect, onRowClick }) => {\r\n const { t } = useTranslation();\r\n\r\n const [accordionIsActive, setAccordionIsActive] = useState(isOpen);\r\n\r\n const toggleAccordion = () => {\r\n if (columns) setAccordionIsActive(!accordionIsActive);\r\n if (onRowClick) onRowClick(item);\r\n };\r\n\r\n const GroupParent = () => {\r\n let parentType = t(\r\n \"table:headers.transactions.parentType.\" + item.parentType + \"\"\r\n );\r\n\r\n return `${parentType}: ${item.id}`;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {GroupParent()}\r\n \r\n\r\n \r\n {t(\r\n `filters:transactions.flowType.${TransactionFlowType[item.flowType]\r\n }`\r\n )}\r\n \r\n\r\n \r\n {`${item.isExecuted\r\n ? t(\r\n \"screens:transactions.myTransactions.executedOn\"\r\n )\r\n : t(\r\n \"screens:transactions.myTransactions.lastChangeOn\"\r\n )\r\n }: ${GetShortDate(item.date)}`}\r\n \r\n \r\n {accordionIsActive && columns && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TransactionRow;\r\n","import React from \"react\";\r\nimport ValidationRule, {buildValidation} from \"../../../../../core/validations/ValidationRule\";\r\nimport MoneyInputElement from \"../../../../../components/elements/form-elements/MoneyInputElement\";\r\nimport {InfoText, InfoTitle, InfoWrapper, RoundInfo} from \"../../../../../components/modal/components/WizardStyling\";\r\n\r\nconst defaultInitialValues = {\r\n amount: \"0.00\"\r\n}\r\n\r\nconst validateAmount = (t) => {\r\n return buildValidation({\r\n amount: ValidationRule.moreThan(0,\r\n t(\"forms:wallet.wizard.deposit.amount.invalid\"),\r\n t(\"forms:wallet.wizard.deposit.amount.largerThenZero\")).rule\r\n })\r\n}\r\n\r\nconst WizardDepositMoney = (t) => {\r\n return {\r\n title: t('forms:wallet.wizard.deposit.title'),\r\n initialValues: defaultInitialValues,\r\n steps: [\r\n {\r\n name: t('forms:wallet.wizard.deposit.step1'),\r\n fieldNames: [\r\n \"amount\"\r\n ],\r\n validation: validateAmount(t),\r\n fields: formik => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\r\n \"forms:wallet.wizard.deposit.infoTitle\"\r\n )}\r\n \r\n \r\n {t(\r\n \"forms:wallet.wizard.deposit.infoText\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n }\r\n ]\r\n }\r\n};\r\n\r\nexport default WizardDepositMoney;\r\n","import React from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport styled from \"styled-components\";\r\nimport {VSpace} from \"../../../pwa/components/StyledElements\";\r\n\r\nconst RowWrapper = styled.div`\r\n padding: 0 60px;\r\n\r\n &.separator {\r\n border-bottom: 1px solid ${props => props.theme.borderSeparator};\r\n }\r\n\r\n &.highlight {\r\n border-bottom: 1px solid #000;\r\n }\r\n`;\r\n\r\nconst MainTitle = styled.span`\r\n padding: 0 0 10px;\r\n font-size: 1.5rem;\r\n color: ${props => props.theme.primaryColor};\r\n text-transform: uppercase;\r\n display: inline-block;\r\n width: 100%;\r\n`;\r\n\r\nconst Title = styled.span`\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n display: inline-block;\r\n width: 100%;\r\n margin: 0 0 38px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n margin: 38px 0 48px;\r\n`;\r\n\r\nconst ContentRow = styled.div`\r\n margin: 0 0 8px;\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n display: inline-block;\r\n vertical-align: top;\r\n font-weight: 400;\r\n }\r\n\r\n div {\r\n display: inline-block;\r\n vertical-align: top;\r\n }\r\n`;\r\n\r\nconst FooterContent = styled.div`\r\n font-size: 1.25rem;\r\n padding: 30px 0 0;\r\n`;\r\n\r\nconst FooterContentRow = styled.div`\r\n margin: 0 0 12px;\r\n\r\n &.flex {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-end;\r\n }\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n font-weight: 400;\r\n }\r\n\r\n .highlight {\r\n color: ${props => props.theme.primaryColor};\r\n font-size: 2.25rem;\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nconst Pipe = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n margin: 0 12px;\r\n\r\n &:after {\r\n content: \"\";\r\n border-left: 1px solid #000;\r\n border-right: 1px solid #828181;\r\n }\r\n`;\r\n\r\nconst TransactionDetails = ({transactionDetails, offer, paymentMethod, paymentType = 0}) => {\r\n const {t} = useTranslation();\r\n\r\n if (!transactionDetails) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n \r\n \r\n \r\n {t(\"actions:dialogs.transactionDetails.title\")}\r\n \r\n \r\n \r\n\r\n\r\n {\r\n (paymentType !== 2 && paymentType !== 3) &&\r\n \r\n \r\n \r\n \r\n \r\n {transactionDetails.payingCompany} {t('actions:dialogs.transactionDetails.beneficiaryInformationTitle')}\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerName')} :  \r\n {transactionDetails.bankAccountOwnerName}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerAddressLine1')}:  \r\n\r\n
    \r\n {transactionDetails.bankAccountOwnerAddressLine1}\r\n {\r\n transactionDetails.bankAccountOwnerAddressLine2 && (\r\n <>
    {transactionDetails.bankAccountOwnerAddressLine2}\r\n )\r\n }\r\n
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerCity')}:  \r\n {transactionDetails.bankAccountOwnerCity}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerPostalCode')}:  \r\n {transactionDetails.bankAccountOwnerPostalCode}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerCountryCode')}:  \r\n {transactionDetails.bankAccountOwnerCountryCode}\r\n \r\n\r\n
    \r\n
    \r\n\r\n \r\n \r\n Bank Details\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerIBAN')}:  \r\n {transactionDetails.bankAccountOwnerIBAN}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerBIC')}:  \r\n {transactionDetails.bankAccountOwnerBIC}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.wireReference')}:  \r\n {transactionDetails.wireReference}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n \r\n \r\n \r\n {\r\n offer && (paymentType === 0 || paymentType === 1) &&\r\n <>\r\n \r\n {t('actions:dialogs.transactionDetails.item')}:  \r\n {offer.refrigerantGasTypeCode}\r\n \r\n\r\n {t('actions:dialogs.transactionDetails.grade', {grade: offer.pressumedGradeName})}\r\n \r\n\r\n {\r\n offer.maximumQuantity &&\r\n offer.maximumQuantity.toFixed(2) + \" kg\"\r\n }\r\n {\r\n offer.quantitySum &&\r\n offer.quantitySum.toFixed(2) + \" kg\"\r\n }\r\n \r\n \r\n }\r\n \r\n {t('actions:dialogs.transactionDetails.paymentType.title')}:  \r\n {\r\n t(`table:headers.transactions.mangoPaymentType.${paymentMethod}`)\r\n }\r\n \r\n\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.amount')}:  \r\n {transactionDetails.amount} EUR \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n};\r\n\r\nexport default TransactionDetails;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport PayoutWizard from \"./components/PayoutWizard\";\r\nimport { toast } from \"react-toastify\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport MyWallets from \"./components/MyWallets\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport Headings from \"../../../components/elements/headings/Headings\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport TransactionRow from \"./components/TransactionRow\";\r\n\r\nimport WizardDepositMoney from \"./components/wizard/WizardDepositMoney\";\r\nimport TransactionDetails from \"./components/TransactionDetails\";\r\nimport PlainModal, {\r\n usePlainModal,\r\n} from \"../../../components/modal/PlainModal\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useHistory } from 'react-router-dom';\r\n\r\n\r\nconst Title = styled(Headings.H1)`\r\n color: #000;\r\n font-size: 36px;\r\n text-transform: uppercase;\r\n margin: 38px 60px;\r\n`;\r\n\r\nconst WalletsWrapper = styled.div`\r\n padding: 0px 60px;\r\n`;\r\n\r\nexport const DataListingContainer = styled.div`\r\n display: flex;\r\n flex-grow: 1;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n margin: 20px 0;\r\n padding: 0 60px;\r\n`;\r\n\r\nexport const DataListingContent = styled.div`\r\n display:flex;\r\n flex-wrap:wrap;\r\n flex: 1;\r\n align-items: flex-start;\r\n align-content: flex-start;\r\n position: relative;\r\n overflow: visible;\r\n\r\n &.empty {\r\n min-height: 190px;\r\n }\r\n`;\r\n\r\nconst Activity = styled.div`\r\n font-size: 20px;\r\n color: #000;\r\n padding: 30px 60px 10px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n & .title {\r\n text-transform: uppercase;\r\n }\r\n\r\n & .link {\r\n color: #2294D2;\r\n font-size: 16px;\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst WalletSection= styled.div`\r\n background-color: #f0f0f0;\r\n border-bottom: 1px solid rgba(0,0,0,0.2);\r\n padding-bottom: 28px;\r\n`;\r\n\r\nconst Wallets = styled(Flex.Column)`\r\n position: relative;\r\n display: flex;\r\n padding-left: 40px;\r\n`;\r\n\r\nconst actionTypes = {\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_STATUS: \"SET_STATUS\",\r\n RESET_STATUS: \"RESET_STATUS\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_PAYMENT_TYPE: \"SET_PAYMENT_TYPE\",\r\n RESET_PAYMENT_TYPE: \"RESET_PAYMENT_TYPE\",\r\n SET_DATE_FROM: \"SET_DATE_FROM\",\r\n RESET_DATE_FROM: \"RESET_DATE_FROM\",\r\n SET_DATE_TO: \"SET_DATE_TO\",\r\n RESET_DATE_TO: \"RESET_DATE_TO\",\r\n};\r\n\r\nconst groupTransactionsReducer = (state, action) => {\r\n if (\r\n (action.type !== actionTypes.SET_PAGING)\r\n )\r\n state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_FLOW_TYPE:\r\n state.filter.flowType = action.payload;\r\n break;\r\n case actionTypes.RESET_FLOW_TYPE:\r\n delete state.filter.flowType;\r\n break;\r\n case actionTypes.SET_PARENT_TYPE:\r\n state.filter.parentType = action.payload;\r\n break;\r\n case actionTypes.RESET_PARENT_TYPE:\r\n delete state.filter.parentType;\r\n break;\r\n case actionTypes.SET_PARENT_STATUS:\r\n state.filter.isExecuted = action.payload;\r\n break;\r\n case actionTypes.RESET_PARENT_STATUS:\r\n delete state.filter.isExecuted;\r\n break;\r\n\r\n case actionTypes.RESET_GROUP_FILTER:\r\n state.filter = {};\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst TransactionsDashboard = () => {\r\n const history = useHistory();\r\n const { t, i18n } = useTranslation();\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:finance\"),\r\n },\r\n {\r\n text: t(\"navigation:myWallets\"),\r\n },\r\n ]);\r\n\r\n // Wallets\r\n const [myWallets, loadMyWallets] = useDataReducer(\r\n PaymentService.getMyWallets\r\n );\r\n\r\n const [myGroupTransactionsState, myGroupTransactionsDispatch] =\r\n useImmerReducer(groupTransactionsReducer, {\r\n filter: {\r\n flowType: null,\r\n parentType: null,\r\n status: null\r\n\r\n },\r\n page: 1,\r\n pageSize: 6,\r\n });\r\n\r\n useEffect(() => {\r\n loadMyWallets();\r\n }, []);\r\n\r\n const [myBankAccounts, loadMyBankAccounts] = useDataReducer(async () => {\r\n return await PaymentService.getMyBankAccounts();\r\n });\r\n\r\n const [myGroupedTransactions, loadMyGroupedTransactions] = useDataReducer(\r\n () => PaymentService.getMyGroupedTransactions(myGroupTransactionsState),\r\n true\r\n );\r\n useEffect(() => {\r\n loadMyGroupedTransactions(myGroupTransactionsState);\r\n }, []);\r\n\r\n useEffect(() => {\r\n loadMyBankAccounts();\r\n }, [t]);\r\n\r\n const [payoutTriggered, setPayoutTriggered] = useState(false);\r\n let initialValues = {\r\n bankAccountId: \"\",\r\n };\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n paymentMethod: \"0\",\r\n paymentType: 0,\r\n });\r\n\r\n\r\n const handlePayout = (walletValues) => {\r\n const payoutInitialValues = Object.assign(\r\n {},\r\n initialValues,\r\n walletValues\r\n );\r\n ModalWizard.show(\r\n PayoutWizard(t, payoutInitialValues, myBankAccounts.data),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await PaymentService.payout(values);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n toast.success(\r\n t(\r\n \"actions:dialogs.wallet.payout.toastNotifications.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n loadMyWallets();\r\n loadMyBankAccounts();\r\n setPayoutTriggered(true);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n };\r\n\r\n const handleDeposit = () => {\r\n ModalWizard.show(WizardDepositMoney(t), {\r\n onSubmit: async (values) => {\r\n const result = await PaymentService.topUp(values);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: null,\r\n details: result.data.data[0],\r\n paymentType: 4,\r\n paymentMethod: \"TopUp\",\r\n });\r\n toast.success(\r\n t(\r\n \"actions:dialogs.wallet.deposit.toastNotifications.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n toggleTransactionDetails();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n };\r\n\r\n const [totalWalletAmount, setTotalWalletAmount] = useState({\r\n amount: 0,\r\n currency: currency,\r\n });\r\n useEffect(() => {\r\n if (myWallets.data) {\r\n let amount = 0;\r\n let currency = \"\";\r\n myWallets.data.forEach((wallet, index) => {\r\n amount += wallet.amount;\r\n if (index === 0) {\r\n currency = wallet.currency;\r\n }\r\n });\r\n setTotalWalletAmount({\r\n amount: helpers.formatCurrency(\r\n amount,\r\n currentLanguage,\r\n currency\r\n ),\r\n currency,\r\n });\r\n }\r\n }, [myWallets, t]);\r\n\r\n const {\r\n modalProps: transactionDetailsProps,\r\n toggleOpen: toggleTransactionDetails,\r\n } = usePlainModal({\r\n onClose: () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n const onRowClick = (item) => {\r\n history.push(`${RouteCreator.finance.hierarchy()}?id=${item.id}`);\r\n }\r\n\r\n const hasData = myWallets.data && myWallets.data.length > 0;\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:transactions.myWallets.title\")}\r\n \r\n \r\n {t(\"screens:transactions.myWallets.title\")}\r\n \r\n \r\n {hasData &&\r\n myWallets.data.map((wallet) => (\r\n \r\n ))}\r\n {hasData && totalWalletAmount && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    {t(\"screens:transactions.recentActivity\")}
    \r\n {\r\n history.push(RouteCreator.finance.hierarchy());\r\n ev.preventDefault();\r\n }}>{t(\"screens:transactions.viewAll\")}\r\n
    \r\n\r\n {myGroupedTransactions?.data?.data.length && (\r\n \r\n \r\n {myGroupedTransactions?.data?.data.map(\r\n (item, index) => {\r\n return (\r\n \r\n );\r\n }\r\n )}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TransactionsDashboard;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ClearableInput, Label } from \"../../../../components/elements/form-elements\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\n\r\nconst DocumentsFilter = ({ filterState, dispatch, actionTypes }) => {\r\n const { t } = useTranslation(\"filters\");\r\n\r\n const [buyerChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_BUYER, payload: text.trim() })\r\n : dispatch({ type: actionTypes.RESET_BUYER });\r\n });\r\n\r\n const [transactionIdChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_MANGOTRANSACTION_ID, payload: text.trim() })\r\n : dispatch({ type: actionTypes.RESET_MANGOTRANSACTION_ID });\r\n });\r\n\r\n const [amountFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_AMOUNT_FROM,\r\n payload: text.trim(),\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_AMOUNT_FROM,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [amountToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_AMOUNT_TO,\r\n payload: text.trim(),\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_AMOUNT_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n transactionIdChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"documents.transactionId\")}\r\n title={t(\"documents.transactionId\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_DATE_FROM\r\n : actionTypes.SET_DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_DATE_TO\r\n : actionTypes.SET_DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n buyerChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"documents.buyer\")}\r\n title={t(\"documents.buyer\")}\r\n className=\"filters\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n {\r\n amountFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"documents.amountFrom\")}\r\n title={t(\"documents.amountFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n amountToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"documents.amountTo\")}\r\n title={t(\"documents.amountTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DocumentsFilter;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport {\r\n Num,\r\n NumInfo,\r\n NumSection,\r\n} from \"../../../../components/elements/sidebar/SidebarStyle\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport { getApiUrl } from \"../../../../services/getAxios\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst DownloadWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n &.pad {\r\n padding: 25px 20px;\r\n }\r\n\r\n &.big > * {\r\n font-size: 14px !important;\r\n }\r\n\r\n & > div {\r\n font-size: 12px;\r\n color: #333333;\r\n font-weight: 600;\r\n }\r\n`;\r\n\r\nexport const SidebarLabel = styled.label`\r\n display: inline-block;\r\n margin: 20px 20px 0 0;\r\n padding: 0 0 0 20px;\r\n font-weight: bold;\r\n min-width: 130px;\r\n\r\n &.pl-0 {\r\n padding-left: 0px;\r\n }\r\n`;\r\n\r\nconst DownloadLink = styled.a`\r\n color: #2294d2;\r\n text-decoration: none;\r\n font-size: 12px;\r\n &.big {\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst getFileName = (url) => {\r\n const parts = url.split(\"/\");\r\n return parts[parts.length - 1];\r\n};\r\n\r\nconst InvoiceDetailsSidebar = ({\r\n selectedOffer,\r\n offer,\r\n isLoading,\r\n document,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const shouldShow = !isLoading && offer;\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n const numQualityTests = () => {\r\n if (!offer.skUs) return 0;\r\n let cnt = 0;\r\n offer.skUs.forEach((offer) => {\r\n if (offer.qualityTestDone) cnt++;\r\n });\r\n return cnt;\r\n };\r\n\r\n let transDesc = \"\";\r\n switch (document?.transferType) {\r\n case 50:\r\n transDesc = t(\"description.toMainWallet\", {\r\n amount: document.amount.toFixed(2),\r\n });\r\n break;\r\n case 40:\r\n case 60:\r\n transDesc = t(\"description.toIBAN\", {\r\n amount: document.amount.toFixed(2),\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n const showDesc = [40, 50, 60].includes(document?.transferType);\r\n\r\n return (\r\n <>\r\n {showDesc && (\r\n \r\n {transDesc}\r\n \r\n )}\r\n {shouldShow && (\r\n <>\r\n \r\n {selectedOffer.offer && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {offer.skUs && (\r\n \r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n return (\r\n
    \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n \r\n N/A\r\n \r\n \r\n {t(\r\n \"actions:noContamination\"\r\n )}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.aGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.bGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.cGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n {/*//Show only if Accepted*/}\r\n {selectedOffer.bid && selectedOffer.bid.bidStatus === 1 && (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {offer.skUs && (\r\n \r\n {numQualityTests() > 0 && (\r\n \r\n
    \r\n {numQualityTests()}{\" \"}\r\n {numQualityTests() > 1\r\n ? t(\r\n \"actions:availableTests\"\r\n )\r\n : t(\r\n \"actions:availableTest\"\r\n )}\r\n
    \r\n \r\n // handleDownloadAllTest(ev)\r\n // }\r\n >\r\n {t(\"actions:downloadAll\")}\r\n \r\n
    \r\n )}\r\n\r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n return (\r\n \r\n
    \r\n {getFileName(\r\n sku.qualityTestUrl\r\n )}\r\n
    \r\n {sku.qualityTestDone ? (\r\n \r\n {t(\r\n \"actions:download\"\r\n )}\r\n \r\n ) : (\r\n
    -
    \r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedOffer.bid.bidCompanyCountry && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceDetailsSidebar;\r\n","const DocumentType = {\r\n invoice: 0,\r\n receipt: 1,\r\n payInOrder: 2,\r\n};\r\n\r\nexport default DocumentType;\r\n","const MangoTransferType = {\r\n \"1\":\"BuyerPaysForAorBClass\",\r\n \"2\":\"BuyerGetsReservationForAClassBack\",\r\n \"3\":\"BuyerGetsLeftoverReservedMoneyBack\",\r\n \"4\":\"SellerGetsBackReservationForCClass\",\r\n \"5\":\"SellerPaysForCClass\",\r\n \"6\":\"SellerGetsLeftoverReservedMoneyBack\",\r\n \"7\":\"BuyerPays30PercentForAorBClass\",\r\n \"9\": \"BuyerPays70PercentForAorBClassBack\",\r\n \"10\": \"HandlingCosts\",\r\n \"13\":\"ReclaimedOfferPayment\",\r\n \"20\": \"FeeTransfer\",\r\n \"25\": \"HandlingCostsFee\",\r\n \"30\":\"DepositForAClass\",\r\n \"31\":\"DepositForCClass\",\r\n \"32\":\"DepositForCleaningService\",\r\n \"33\":\"SecurityDepositForCleaningService\",\r\n \"34\":\"CleaningServicePurchase\",\r\n \"35\": \"ReturnOfSecurityDeposit\",\r\n \"36\": \"DepositForCClassWithHandling\",\r\n \"37\": \"DepositForCleaningServiceWithHandling\",\r\n \"40\":\"TransferToIBAN\",\r\n \"50\":\"DepositToMainWallet\",\r\n \"60\":\"AutomaticPayment\"\r\n};\r\n\r\n\r\nexport default MangoTransferType;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport DocumentsFilter from \"./components/DocumentsFilter\";\r\nimport InvoiceDetailsSidebar from \"./components/InvoiceDetailsSidebar\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport ActionButton from \"../../../components/elements/buttons/ActionButton\";\r\nimport SellRefrigerantService from \"../../../services/SellRefrigerant/SellRefrigerantService\";\r\nimport DocumentType from \"../../../core/enums/DocumentType\";\r\nimport MangoTransferType from \"../../../core/enums/MangoTransferType\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport useListingPageContext from \"../../../core/state/useListingPage\";\r\nimport {\r\n formatDateForExportDocument,\r\n ShortDateCell,\r\n} from \"../../../components/data/DateCell\";\r\nimport { getApiUrl } from \"../../../services/getAxios\";\r\n\r\nconst actionTypes = {\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_MANGOTRANSACTION_ID: \"SET_MANGOTRANSACTION_ID\",\r\n RESET_MANGOTRANSACTION_ID: \"RESET_MANGOTRANSACTION_ID\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_DOCUMENT_TYPE: \"SET_DOCUMENT_TYPE\",\r\n RESET_DOCUMENT_TYPE: \"RESET_DOCUMENT_TYPE\",\r\n SET_DATE_FROM: \"SET_DATE_FROM\",\r\n RESET_DATE_FROM: \"RESET_DATE_FROM\",\r\n SET_DATE_TO: \"SET_DATE_TO\",\r\n RESET_DATE_TO: \"RESET_DATE_TO\",\r\n SET_BUYER: \"SET_BUYER\",\r\n RESET_BUYER: \"RESET_BUYER\",\r\n SET_AMOUNT: \"SET_AMOUNT\",\r\n RESET_AMOUNT: \"RESET_AMOUNT\",\r\n SET_AMOUNT_TO: \"SET_AMOUNT_TO\",\r\n RESET_AMOUNT_TO: \"RESET_AMOUNT_TO\",\r\n};\r\n\r\nconst documentsReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"executedDate\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_AMOUNT_FROM:\r\n state.filter.amountFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_AMOUNT_FROM:\r\n delete state.filter.amountFrom;\r\n break;\r\n case actionTypes.SET_AMOUNT_TO:\r\n state.filter.amountTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_AMOUNT_TO:\r\n delete state.filter.amountTo;\r\n break;\r\n case actionTypes.SET_DOCUMENT_TYPE:\r\n state.filter.documentType = action.payload;\r\n break;\r\n case actionTypes.RESET_DOCUMENT_TYPE:\r\n delete state.filter.documentType;\r\n break;\r\n case actionTypes.SET_DATE_FROM:\r\n state.filter.dateFrom = action.payload;\r\n break;\r\n case actionTypes.SET_DATE_TO:\r\n state.filter.dateTo = action.payload;\r\n break;\r\n case actionTypes.RESET_DATE_FROM:\r\n delete state.filter.dateFrom;\r\n break;\r\n case actionTypes.RESET_DATE_TO:\r\n delete state.filter.dateTo;\r\n break;\r\n case actionTypes.SET_MANGOTRANSACTION_ID:\r\n state.filter.mangoTransactionId = action.payload;\r\n break;\r\n case actionTypes.RESET_MANGOTRANSACTION_ID:\r\n delete state.filter.mangoTransactionId;\r\n break;\r\n case actionTypes.SET_BUYER:\r\n state.filter.buyer = action.payload;\r\n break;\r\n case actionTypes.RESET_BUYER:\r\n delete state.filter.buyer;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst EmptyGuid = \"00000000-0000-0000-0000-000000000000\";\r\n\r\nconst findAcceptedBid = (bids) => {\r\n return bids\r\n ? bids.find((b) => {\r\n if (b.bidStatus === 1) {\r\n return true;\r\n }\r\n return null;\r\n })\r\n : null;\r\n};\r\n\r\nconst DocumentListing = () => {\r\n const { t, i18n } = useTranslation();\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:finance\"),\r\n },\r\n {\r\n text: t(\"navigation:documents\"),\r\n },\r\n ]);\r\n\r\n const { state: listingPageState, actions: listingPageActions } =\r\n useListingPageContext();\r\n\r\n const [tabIndex, setTabIndex] = useState(0);\r\n\r\n const [filterState, dispatch] = useImmerReducer(documentsReducer, {\r\n filter: { documentType: DocumentType.payInOrder },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"executedDate\",\r\n descending: true,\r\n });\r\n\r\n const [myDocuments, loadMyDocuments] = useDataReducer(async () => {\r\n var result = await PaymentService.getMyDocuments(filterState);\r\n return result;\r\n }, true);\r\n\r\n const [invoiceOffer, loadInvoiceOffer] = useDataReducer((offerId) => {\r\n if(offerId===EmptyGuid) return null;\r\n return SellRefrigerantService.getSellingItemById(offerId);\r\n }, true);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [bidData, setBidData] = useState({\r\n bid: null,\r\n });\r\n\r\n const [selectedDocument, setSelectedDocument] = useState(null);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n useEffect(() => {\r\n return listingPageActions.resetState();\r\n }, []);\r\n\r\n useEffect(() => {\r\n loadMyDocuments(filterState);\r\n }, [filterState]);\r\n\r\n useEffect(() => {\r\n listingPageActions.resetState();\r\n }, [filterState.filter]);\r\n\r\n const setActiveTab = (tab) => {\r\n setTabIndex(tab);\r\n\r\n const activeDocumentType =\r\n tab === 0\r\n ? DocumentType.payInOrder\r\n : tab === 1\r\n ? DocumentType.receipt\r\n : DocumentType.invoice;\r\n dispatch({\r\n type: actionTypes.SET_DOCUMENT_TYPE,\r\n payload: activeDocumentType,\r\n });\r\n };\r\n\r\n const downloadSelected = async () => {\r\n const documentIds = listingPageState.selectedRows.map(\r\n (doc) => doc.original.documentId\r\n );\r\n const result = await PaymentService.downloadMyDocuments(documentIds);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n const fileNamePrefix =\r\n tabIndex === 0\r\n ? \"PaymentOrders\"\r\n : tabIndex === 1\r\n ? \"TransactionReceipts\"\r\n : \"SalesInformation\";\r\n helpers.downloadFile(\r\n result.data,\r\n `${fileNamePrefix}_${formatDateForExportDocument()}.zip`,\r\n \"application/zip\"\r\n );\r\n\r\n await loadMyDocuments(filterState);\r\n }\r\n };\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n if (row.original.offerId !== EmptyGuid) {\r\n const bids = await MarketplaceService.getBids(\r\n row.original.offerId\r\n );\r\n\r\n const acceptedBid = findAcceptedBid(bids);\r\n setBidData({\r\n bid: acceptedBid,\r\n });\r\n } else {\r\n setBidData({\r\n bid: null,\r\n });\r\n }\r\n await loadInvoiceOffer(row.original.offerId);\r\n setSelectedDocument(row.original);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [loadInvoiceOffer, setDetailViewIsOpened, setBidData]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.documents.transactionId\"),\r\n accessor: \"mangoPayTransactionId\",\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: t(\"table:headers.documents.executedDate\"),\r\n accessor: \"executedDate\",\r\n\r\n Cell: ({ value }) => {\r\n return value ? ShortDateCell({ cell: { value } }) : \"-\";\r\n },\r\n },\r\n {\r\n Header:\r\n tabIndex === 2\r\n ? t(\"table:headers.documents.buyer\")\r\n : t(\"table:headers.documents.beneficiary\"),\r\n accessor: \"buyer\",\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: t(\"table:headers.documents.amount\"),\r\n accessor: \"amount\",\r\n Cell: ({ cell: { value } }) => {\r\n return helpers.formatCurrency(\r\n value,\r\n currentLanguage,\r\n currency\r\n );\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.documents.description\"),\r\n accessor: \"transferType\",\r\n Cell: ({ cell: { value } }) => {\r\n let transferTypeTranslation;\r\n if (MangoTransferType[value]) {\r\n transferTypeTranslation = t(\r\n \"table:headers.transactions.transferType.\" +\r\n MangoTransferType[value] +\r\n \"\"\r\n );\r\n }\r\n\r\n return transferTypeTranslation || value;\r\n },\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"documentId\",\r\n Cell: ({ cell: { value } }) => (\r\n \r\n \r\n window.open(\r\n `${getApiUrl}/Documents/${value}`,\r\n \"_blank\"\r\n )\r\n }\r\n />\r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n const offerAndBidData = useMemo(() => {\r\n return { offer: invoiceOffer?.data, bid: bidData.bid };\r\n }, [invoiceOffer, bidData]);\r\n\r\n const sortChange = (sortBy) => {\r\n if (sortBy.length > 0) {\r\n dispatch({ type: \"SET_SORT\", payload: sortBy });\r\n }\r\n };\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:documents.title\")}\r\n \r\n {\r\n return (\r\n \r\n );\r\n },\r\n headerActions: () => {\r\n return (\r\n <>\r\n \r\n \r\n {t(\r\n \"screens:documents.actions.downloadSelected\"\r\n )}\r\n \r\n \r\n \r\n );\r\n },\r\n }}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortChange,\r\n currentSortBy: currentSortBy,\r\n }}\r\n onSelect={onSelect}\r\n enableSelection={true}\r\n showSelectAll\r\n filterTitle={t(\"screens:documents.filterTitle\")}\r\n filterComponent={() => {\r\n return (\r\n \r\n );\r\n }}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n getRowId={(row) => {\r\n return row.documentId;\r\n }}\r\n closeSideBar={closeSideBar}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailView={\r\n \r\n }\r\n detailSideBarTitle={t(\"sidebar:title.document.details\")}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default DocumentListing;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1429\",\n \"data-name\": \"Group 1429\",\n transform: \"translate(-1011 -795)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_591\",\n \"data-name\": \"Rectangle 591\",\n width: 18,\n height: 2,\n rx: 1,\n transform: \"translate(1019 796)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_595\",\n \"data-name\": \"Rectangle 595\",\n width: 18,\n height: 2,\n rx: 1,\n transform: \"translate(1019 803)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_596\",\n \"data-name\": \"Rectangle 596\",\n width: 18,\n height: 2,\n rx: 1,\n transform: \"translate(1019 810)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_71\",\n \"data-name\": \"Ellipse 71\",\n cx: 2,\n cy: 2,\n r: 2,\n transform: \"translate(1011 795)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_72\",\n \"data-name\": \"Ellipse 72\",\n cx: 2,\n cy: 2,\n r: 2,\n transform: \"translate(1011 802)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_73\",\n \"data-name\": \"Ellipse 73\",\n cx: 2,\n cy: 2,\n r: 2,\n transform: \"translate(1011 809)\",\n fill: \"#2294d2\"\n}));\n\nvar SvgListView = function SvgListView(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26,\n height: 18,\n viewBox: \"0 0 26 18\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgListView, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/list-view.39cd5c5b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1443\",\n \"data-name\": \"Group 1443\",\n transform: \"translate(-1054 -795)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_597\",\n \"data-name\": \"Rectangle 597\",\n width: 18,\n height: 2,\n rx: 1,\n transform: \"translate(1062 796)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_598\",\n \"data-name\": \"Rectangle 598\",\n width: 12,\n height: 2,\n rx: 1,\n transform: \"translate(1068 803)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_599\",\n \"data-name\": \"Rectangle 599\",\n width: 12,\n height: 2,\n rx: 1,\n transform: \"translate(1068 810)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_74\",\n \"data-name\": \"Ellipse 74\",\n cx: 2,\n cy: 2,\n r: 2,\n transform: \"translate(1054 795)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_75\",\n \"data-name\": \"Ellipse 75\",\n cx: 2,\n cy: 2,\n r: 2,\n transform: \"translate(1060 802)\",\n fill: \"#2294d2\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_76\",\n \"data-name\": \"Ellipse 76\",\n cx: 2,\n cy: 2,\n r: 2,\n transform: \"translate(1060 809)\",\n fill: \"#2294d2\"\n}));\n\nvar SvgHierarchyView = function SvgHierarchyView(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26,\n height: 18,\n viewBox: \"0 0 26 18\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHierarchyView, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/hierarchy-view.6be50f3b.svg\";\nexport { ForwardRef as ReactComponent };","const TransactionStatus = {\r\n 0: \"Created\",\r\n 1: \"Succeeded\",\r\n 2: \"Failed\",\r\n};\r\n\r\nexport default TransactionStatus;\r\n","const MangoPaymentTypeForDisplay = {\r\n 0: \"PayIn\",\r\n 1: \"TransferDebiting\",\r\n 2: \"TransferCrediting\",\r\n 3: \"PayOut\",\r\n};\r\n\r\n\r\nexport default MangoPaymentTypeForDisplay;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport MangoPaymentTypeForDisplay from \"../../../../core/enums/MangoPaymentTypeForDisplay\";\r\nimport TransactionStatus from \"../../../../core/enums/TransactionStatus\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport {\r\n ClearableInput,\r\n Label,\r\n} from \"../../../../components/elements/form-elements\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\n\r\nconst TransactionsFilter = ({ filterState, dispatch, actionTypes }) => {\r\n const { t } = useTranslation(\"filters\");\r\n\r\n const [amountFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_AMOUNT_FROM,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_AMOUNT_FROM,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [amountToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_AMOUNT_TO,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_AMOUNT_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n {\r\n return {\r\n key: key,\r\n value: key,\r\n label: t(\r\n `transactions.mangoPaymentType.${MangoPaymentTypeForDisplay[key]}`\r\n ),\r\n };\r\n }\r\n )}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_PAYMENT_TYPE\r\n : actionTypes.SET_PAYMENT_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"transactions.transactionType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n {\r\n return {\r\n key: key,\r\n value: key,\r\n label: t(\r\n `transactions.statusType.${TransactionStatus[\r\n key\r\n ].toLowerCase()}`\r\n ),\r\n };\r\n }\r\n )}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_STATUS\r\n : actionTypes.SET_STATUS,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"transactions.status\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_CREATION_DATE_FROM\r\n : actionTypes.SET_CREATION_DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_CREATION_DATE_TO\r\n : actionTypes.SET_CREATION_DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXECUTION_DATE_FROM\r\n : actionTypes.SET_EXECUTION_DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXECUTION_DATE_TO\r\n : actionTypes.SET_EXECUTION_DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {\r\n amountFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"transactions.amountFrom\")}\r\n title={t(\"transactions.amountFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n amountToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"transactions.amountTo\")}\r\n title={t(\"transactions.amountTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TransactionsFilter;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n} from \"../../../../components/bids/BidGrade\";\r\n\r\nconst InfoWrapper = styled.div`\r\n padding: 20px 0 0 20px;\r\n`;\r\n\r\nconst TransactionDetailsSidebar = ({\r\n selectedOffer,\r\n offer,\r\n isLoading,\r\n info,\r\n closeSideBar,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const shouldShow = !isLoading && info;\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n \r\n {info.transactionTypeDescription}\r\n \r\n \r\n {selectedOffer.offer && (\r\n \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {/*//Show only if Accepted*/}\r\n {selectedOffer.bid && selectedOffer.bid.bidStatus === 1 && (\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {info && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {info.buyerSeller.countryName && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TransactionDetailsSidebar;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nconst Wrapper = styled.div``;\r\n\r\nconst Subtitle = styled.span`\r\n font-size: 16px;\r\n font-weight: 600;\r\n display: block;\r\n`;\r\n\r\nconst Bullet = styled.span`\r\n display: list-item;\r\n\r\n &:after {\r\n content: \":\";\r\n }\r\n\r\n &.no-content:after {\r\n content: \"\";\r\n }\r\n min-width: 140px;\r\n`;\r\n\r\nconst FilterContainer = styled.div`\r\n margin: 10px 20px;\r\n font-size: 14px;\r\n`;\r\n\r\nconst FilterRow = styled.div`\r\n display: flex;\r\n margin: 4px 0px;\r\n`;\r\n\r\nconst FilterLabel = styled.div`\r\n padding: 0px 10px;\r\n font-weight: 500;\r\n color: #707070;\r\n`;\r\nconst FilterValue = styled.div`\r\n font-weight: 600;\r\n`;\r\n\r\nconst TotalContainer = styled.div`\r\n margin: 18px 0px;\r\n`;\r\nconst FilterSummary = ({ filters, total }) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n {filters && filters.length > 0 && (\r\n \r\n {t(\"actions:dialogs.exportTransactions.subtitle\")}\r\n \r\n )}\r\n {filters && filters.length > 0 && (\r\n \r\n {filters?.map((item) => (\r\n \r\n \r\n {item.label}\r\n \r\n {item.value}\r\n \r\n ))}\r\n \r\n )}\r\n\r\n \r\n \r\n {t(\"actions:dialogs.exportTransactions.totalNumber\")}\r\n \r\n \r\n \r\n \r\n {`${total} ${t(\r\n \"actions:dialogs.exportTransactions.transactions\"\r\n )}`}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FilterSummary;\r\n","import React, { useCallback, useEffect, useMemo, useState, useRef } from \"react\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport { ReactComponent as ListSvg } from \"../../../assets/list-view.svg\";\r\nimport { ReactComponent as HierarchySvg } from \"../../../assets/hierarchy-view.svg\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport { getApiUrl } from \"../../../services/getAxios\";\r\n// import { DataListingContent } from \"../../../components/data/styles/StyledDataContainer\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport DataTable from \"../../../components/data/DataTable\";\r\nimport TransactionStatus from \"../../../core/enums/TransactionStatus\";\r\nimport DetailSideBar from \"../../../components/modal/DetailSideBar\";\r\nimport useClickAway from \"../../../hooks/_shared/useClickAway\";\r\nimport { toast } from \"react-toastify\";\r\nimport { getDateFormat, getTimeFormat, GetShortDate, ShortDateCell } from \"../../../components/data/DateCell\";\r\nimport TransactionDetails from \"./components/TransactionDetails\";\r\nimport PlainModal, { usePlainModal } from \"../../../components/modal/PlainModal\";\r\nimport { Helmet } from \"react-helmet\";\r\n// import TransactionGroupFilter from \"./components/TransactionGroupFilter\";\r\nimport TransactionsFilter from \"./components/TransactionsFilter\";\r\nimport TransactionDetailsSidebar from \"./components/TransactionDetailsSidebar\";\r\nimport MangoPaymentTypeForDisplay from \"../../../core/enums/MangoPaymentTypeForDisplay\";\r\nimport MangoTransferType from \"../../../core/enums/MangoTransferType\";\r\n// import Pagination from \"../../../components/pagination/Pagination\";\r\nimport LayoutInnerContainer from \"../../../components/layout/split/one/LayoutInnerContainer\";\r\n// import TransactionRow from \"./components/TransactionRow\";\r\nimport FilterSummary from \"./components/FilterSummary\";\r\nimport Filters from \"../../../components/filter/Filters\";\r\nimport ActionButton from \"../../../components/elements/buttons/ActionButton\";\r\nimport HeaderActionsWrapper from \"../../../components/wrappers/HeaderActionsWrapper\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\n\r\nconst HeaderWrapper = styled.div`\r\n display: flex;\r\n padding: 0px 60px 5px;\r\n margin: 0px -60px;\r\n border-radius: 15px 15px 0px 0px;\r\n background: linear-gradient(180deg, rgba(245, 245, 245, 1) 0%, rgba(240, 240, 240, 1) 100%);\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n\r\n &.transparent {\r\n background: transparent;\r\n box-shadow: none;\r\n border-bottom: none;\r\n }\r\n\r\n &.hidden {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const DataListingContainer = styled.div`\r\n display: flex;\r\n flex-grow: 1;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n margin: 20px 10px 20px 0;\r\n`;\r\n\r\nconst Header = styled.div`\r\n color: #687191;\r\n &.escrow {\r\n color: #e69221;\r\n }\r\n\r\n & .title {\r\n font-size: 24px;\r\n font-weight: 600;\r\n line-height: 35px;\r\n }\r\n\r\n & .subtitle {\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst SwitchButton = styled.button`\r\n cursor: pointer;\r\n min-width: 70px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 16px;\r\n text-align: center;\r\n position: relative;\r\n text-align: center;\r\n border: none;\r\n background: none;\r\n font-weight: 500;\r\n color: ${(p) => p.theme.secondaryColor};\r\n text-decoration: none;\r\n`;\r\n\r\nconst TableTitleContainer = styled(Flex.Container)`\r\n justify-content: space-between;\r\n margin: 20px 0px 0px 0px;\r\n`;\r\n\r\nconst Highlight = styled.span`\r\n font-weight: 600;\r\n &.green {\r\n color: #48b05e;\r\n }\r\n`;\r\n\r\nconst actionTypes = {\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_STATUS: \"SET_STATUS\",\r\n RESET_STATUS: \"RESET_STATUS\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_PAYMENT_TYPE: \"SET_PAYMENT_TYPE\",\r\n RESET_PAYMENT_TYPE: \"RESET_PAYMENT_TYPE\",\r\n SET_CREATION_DATE_FROM: \"SET_CREATION_DATE_FROM\",\r\n RESET_CREATION_DATE_FROM: \"RESET_CREATION_DATE_FROM\",\r\n SET_CREATION_DATE_TO: \"SET_CREATION_DATE_TO\",\r\n RESET_CREATION_DATE_TO: \"RESET_CREATION_DATE_TO\",\r\n SET_EXECUTION_DATE_FROM: \"SET_EXECUTION_DATE_FROM\",\r\n RESET_EXECUTION_DATE_FROM: \"RESET_EXECUTION_DATE_FROM\",\r\n SET_EXECUTION_DATE_TO: \"SET_EXECUTION_DATE_TO\",\r\n RESET_EXECUTION_DATE_TO: \"RESET_EXECUTION_DATE_TO\",\r\n SET_PARENT_TYPE: \"SET_PARENT_TYPE\",\r\n RESET_PARENT_TYPE: \"RESET_PARENT_TYPE\",\r\n SET_PARENT_STATUS: \"SET_PARENT_STATUS\",\r\n RESET_PARENT_STATUS: \"RESET_PARENT_STATUS\",\r\n SET_FLOW_TYPE: \"SET_FLOW_TYPE\",\r\n RESET_FLOW_TYPE: \"RESET_FLOW_TYPE\",\r\n RESET_GROUP_FILTER: \"RESET_GROUP_FILTER\",\r\n SET_AMOUNT_FROM: \"SET_AMOUNT_FROM\",\r\n RESET_AMOUNT_FROM: \"RESET_AMOUNT_FROM\",\r\n SET_AMOUNT_TO: \"SET_AMOUNT_TO\",\r\n RESET_AMOUNT_TO: \"RESET_AMOUNT_TO\",\r\n TOGGLE_WALLET: \"TOGGLE_WALLET\",\r\n};\r\n\r\nconst transactionsReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_AMOUNT_FROM:\r\n state.filter.amountFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_AMOUNT_FROM:\r\n delete state.filter.amountFrom;\r\n break;\r\n case actionTypes.SET_AMOUNT_TO:\r\n state.filter.amountTo = action.payload;\r\n break;\r\n case actionTypes.RESET_AMOUNT_TO:\r\n delete state.filter.amountTo;\r\n break;\r\n case actionTypes.SET_CREATION_DATE_FROM:\r\n state.filter.creationDateFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_CREATION_DATE_FROM:\r\n delete state.filter.creationDateFrom;\r\n break;\r\n case actionTypes.SET_CREATION_DATE_TO:\r\n state.filter.creationDateTo = action.payload;\r\n break;\r\n case actionTypes.RESET_CREATION_DATE_TO:\r\n delete state.filter.creationDateTo;\r\n break;\r\n\r\n case actionTypes.SET_EXECUTION_DATE_FROM:\r\n state.filter.executionDateFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXECUTION_DATE_FROM:\r\n delete state.filter.executionDateFrom;\r\n break;\r\n case actionTypes.SET_EXECUTION_DATE_TO:\r\n state.filter.creationDateTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXECUTION_DATE_TO:\r\n delete state.filter.creationDateTo;\r\n break;\r\n case actionTypes.SET_STATUS:\r\n state.filter.status = action.payload;\r\n break;\r\n case actionTypes.RESET_STATUS:\r\n delete state.filter.status;\r\n break;\r\n case actionTypes.SET_PAYMENT_TYPE:\r\n state.filter.paymentType = action.payload;\r\n break;\r\n case actionTypes.RESET_PAYMENT_TYPE:\r\n delete state.filter.paymentType;\r\n break;\r\n case actionTypes.TOGGLE_WALLET:\r\n state.filter = { mainWallet: !state.filter.mainWallet };\r\n state.page = 1;\r\n state.pageSize = 10;\r\n state.orderColumn = \"creationDate\";\r\n state.descending = true;\r\n break;\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst walletBreadcrumbs = (t, mainWallet = true) => [\r\n {\r\n text: t(\"navigation:finance\"),\r\n },\r\n {\r\n text: t(\"screens:transactions.myTransactions.walletView\"),\r\n },\r\n {\r\n text: mainWallet\r\n ? t(\"screens:transactions.myTransactions.mainWallet\")\r\n : t(\"screens:transactions.myTransactions.escrowWallet\"),\r\n },\r\n];\r\n\r\nconst TransactionsView = () => {\r\n const { t, i18n } = useTranslation();\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n\r\n const sideBarRef = useRef(null);\r\n\r\n useClickAway(sideBarRef, () => {\r\n try {\r\n closeSideBar();\r\n } catch (ex) {}\r\n });\r\n\r\n const [myTransactionsState, myTransactionsDispatch] = useImmerReducer(transactionsReducer, {\r\n filter: {\r\n mainWallet: true,\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"creationDate\",\r\n descending: true,\r\n });\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.transactions.transactionId\"),\r\n accessor: \"mangoTransactionId\",\r\n Cell: ({ cell: { value } }) => {\r\n return {value};\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.transactions.paymentType\"),\r\n accessor: \"paymentTypeForDisplay\",\r\n Cell: ({ cell: { value } }) => {\r\n let paymentTypeTranslation;\r\n if (MangoPaymentTypeForDisplay[value]) {\r\n paymentTypeTranslation = t(\"table:headers.transactions.mangoPaymentTypeDisplay.\" + value + \"\");\r\n }\r\n\r\n return {paymentTypeTranslation || value};\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.transactions.creationDate\"),\r\n accessor: \"creationDate\",\r\n Cell: ({ cell: { value } }) => {\r\n return value ? ShortDateCell({ cell: { value } }) : \"-\";\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.transactions.executionDate\"),\r\n accessor: \"executionDate\",\r\n Cell: ({ cell: { value } }) => {\r\n return value ? ShortDateCell({ cell: { value } }) : \"-\";\r\n },\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.transactions.status\"),\r\n accessor: \"transactionStatus\",\r\n Cell: ({ cell: { value } }) => {\r\n let transactionTranslation;\r\n if (TransactionStatus[value]) {\r\n transactionTranslation = t(\r\n \"table:headers.transactions.transactionStatus.\" + TransactionStatus[value] + \"\"\r\n );\r\n }\r\n\r\n return transactionTranslation || value;\r\n },\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.transactions.amount\"),\r\n accessor: \"totalAmount\",\r\n Cell: ({ cell: { value, row } }) => {\r\n const val = row.original.direction === \"Out\" ? -1 * value : value;\r\n return {helpers.formatCurrency(val, currentLanguage, currency, true)};\r\n },\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.transactions.transferTypeDescription\"),\r\n accessor: \"transferType\",\r\n Cell: ({ cell: { value } }) => {\r\n let transferTypeTranslation;\r\n if (MangoTransferType[value]) {\r\n transferTypeTranslation = t(\r\n \"table:headers.transactions.transferType.\" + MangoTransferType[value] + \"\"\r\n );\r\n }\r\n\r\n return transferTypeTranslation || value;\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"documentId\",\r\n Cell: ({ cell: { value } }) =>\r\n value && (\r\n \r\n window.open(`${getApiUrl}/Documents/${value}`, \"_blank\")}\r\n />\r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n const { update: updateBreadcrumbs } = useBreadcrumbs(walletBreadcrumbs(t, myTransactionsState.filter.mainWallet));\r\n\r\n const [myTransactions, loadMyTransactions] = useDataReducer(\r\n () => PaymentService.getMyTransactions(myTransactionsState),\r\n true\r\n );\r\n\r\n useEffect(() => {\r\n loadMyTransactions(myTransactionsState);\r\n }, [myTransactionsState]);\r\n\r\n const pageChange = usePageChange(myTransactionsDispatch, myTransactionsState);\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n paymentMethod: \"0\",\r\n paymentType: 0,\r\n });\r\n\r\n const { modalProps: transactionDetailsProps, toggleOpen: toggleTransactionDetails } = usePlainModal({\r\n onClose: () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [transaction, setTransaction] = useState({\r\n bid: null,\r\n offer: null,\r\n info: null,\r\n });\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const onSelect = useCallback((row) => {\r\n const getDetails = async () => {\r\n const info = await PaymentService.transactionDetails(row.original.id);\r\n if (info.data) {\r\n let offer = null;\r\n let acceptedBid = null;\r\n if (row.original.offerId !== \"00000000-0000-0000-0000-000000000000\") {\r\n offer = await MarketplaceService.getBuyingItemById(row.original.offerId);\r\n\r\n const bids = await MarketplaceService.getBids(row.original.offerId);\r\n const acceptedBid = bids.filter((bid) => bid.bidStatus === 1)[0];\r\n }\r\n setTransaction({\r\n bid: acceptedBid,\r\n offer: offer,\r\n info: info.data,\r\n });\r\n setDetailViewIsOpened(true);\r\n }\r\n };\r\n getDetails();\r\n }, []);\r\n\r\n const toggleView = () => {\r\n updateBreadcrumbs(walletBreadcrumbs(t, !myTransactionsState.filter.mainWallet));\r\n myTransactionsDispatch({ type: actionTypes.TOGGLE_WALLET });\r\n };\r\n\r\n const getFiltersForExport = () => {\r\n let filteredItems = [];\r\n if (myTransactionsState.filter) {\r\n filteredItems.push({\r\n label: t(\"filters:transactions.transactionType\"),\r\n value: myTransactionsState.filter.paymentType\r\n ? t(\r\n `filters:transactions.mangoPaymentType.${\r\n MangoPaymentTypeForDisplay[myTransactionsState.filter.paymentType]\r\n }`\r\n )\r\n : \"-\",\r\n });\r\n\r\n filteredItems.push({\r\n label: t(\"filters:transactions.status\"),\r\n value: myTransactionsState.filter.status\r\n ? t(\r\n `filters:transactions.statusType.${TransactionStatus[\r\n myTransactionsState.filter.status\r\n ].toLowerCase()}`\r\n )\r\n : \"-\",\r\n });\r\n\r\n const creationDateFrom = myTransactionsState.filter.creationDateFrom\r\n ? GetShortDate(myTransactionsState.filter.creationDateFrom)\r\n : \"\";\r\n const creationDateTo = myTransactionsState.filter.creationDateTo\r\n ? GetShortDate(myTransactionsState.filter.creationDateTo)\r\n : \"\";\r\n\r\n filteredItems.push({\r\n label: t(\"filters:transactions.creationDateFromTo\"),\r\n value: `${creationDateFrom} - ${creationDateTo}`,\r\n });\r\n\r\n const executionDateFrom = myTransactionsState.filter.executionDateFrom\r\n ? GetShortDate(myTransactionsState.filter.executionDateFrom)\r\n : \"\";\r\n const executionDateTo = myTransactionsState.filter.executionDateTo\r\n ? GetShortDate(myTransactionsState.filter.executionDateTo)\r\n : \"\";\r\n\r\n filteredItems.push({\r\n label: t(\"filters:transactions.executionDateFromTo\"),\r\n value: `${executionDateFrom} - ${executionDateTo}`,\r\n });\r\n\r\n const amountFrom = myTransactionsState.filter.amountFrom\r\n ? helpers.formatCurrency(myTransactionsState.filter.amountFrom, currentLanguage, currency)\r\n : \"\";\r\n\r\n const amountTo = myTransactionsState.filter.amountTo\r\n ? helpers.formatCurrency(myTransactionsState.filter.amountTo, currentLanguage, currency)\r\n : \"\";\r\n\r\n filteredItems.push({\r\n label: t(\"filters:transactions.amountFromTo\"),\r\n value: `${amountFrom} - ${amountTo}`,\r\n });\r\n }\r\n\r\n return filteredItems;\r\n };\r\n\r\n const exportModal = useModal({\r\n title: t(\"actions:dialogs.exportTransactions.title\").toUpperCase(),\r\n type: \"info\",\r\n onConfirm: async () => {\r\n const result = await PaymentService.downloadTransactionsFromMango(myTransactionsState.filter);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n const dateValue = new Date();\r\n const date = getDateFormat(currentLanguage).format(dateValue);\r\n const time = getTimeFormat(currentLanguage).format(dateValue);\r\n\r\n helpers.downloadFile(result.data, `transactions_${date}/${time}.xlsx`, \"application/vnd.ms-excel\");\r\n exportModal.toggleOpen();\r\n }\r\n },\r\n onCancel: () => {\r\n exportModal.toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.exportTransactions.confirmText\"),\r\n });\r\n\r\n const sortChange = (sortBy) => {\r\n if (sortBy.length > 0) {\r\n myTransactionsDispatch({ type: \"SET_SORT\", payload: sortBy });\r\n }\r\n };\r\n const currentSortBy = useMemo(() => {\r\n return [\r\n {\r\n id: myTransactionsState.orderColumn,\r\n desc: myTransactionsState.descending,\r\n },\r\n ];\r\n }, [myTransactionsState.orderColumn, myTransactionsState.descending]);\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:transactions.title\")}\r\n \r\n \r\n \r\n
    \r\n {t(\"screens:transactions.search\")}\r\n\r\n \r\n
    \r\n \r\n \r\n {\r\n ev.preventDefault();\r\n exportModal.toggleOpen();\r\n }}\r\n >\r\n {t(\"screens:transactions.myTransactions.exportButtonText\")}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {myTransactionsState.filter.mainWallet\r\n ? t(\"screens:transactions.myTransactions.mainWalletTitle\")\r\n : t(\"screens:transactions.myTransactions.escrowWalletTitle\")}\r\n
    \r\n
    \r\n {myTransactionsState.filter.mainWallet\r\n ? t(\"screens:transactions.myTransactions.mainWalletSubtitle\")\r\n : t(\"screens:transactions.myTransactions.escrowWalletSubtitle\")}\r\n
    \r\n
    \r\n \r\n {myTransactionsState.filter.mainWallet\r\n ? t(\"screens:transactions.myTransactions.switchToEscrow\")\r\n : t(\"screens:transactions.myTransactions.switchToMain\")}\r\n \r\n
    \r\n {myTransactions?.data && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n\r\n \r\n

    {t(\"actions:dialogs.exportTransactions.text\")}

    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TransactionsView;\r\n","const TransactionParentType = {\r\n 0: 'Offer',\r\n 1: 'Transaction'\r\n // 2: 'ReclaimedOffer',\r\n};\r\n\r\nexport default TransactionParentType;\r\n","const TransactionParentStatus = {\r\n 0: 'InProgress',\r\n 1: 'Executed'\r\n};\r\n\r\nexport default TransactionParentStatus;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Select } from \"../../../../components/elements/form-elements\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport TransactionParentType from \"../../../../core/enums/TransactionParentType\";\r\nimport TransactionFlowType from \"../../../../core/enums/TransactionFlowType\";\r\nimport TransactionParentStatus from \"../../../../core/enums/TransactionParentStatus\";\r\n\r\n\r\nconst TransactionGroupFilter = ({ filterState, dispatch, actionTypes }) => {\r\n const { t } = useTranslation(\"filters\");\r\n\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n {\r\n return {\r\n key: key,\r\n value: key,\r\n label: t(\r\n `transactions.parentType.${TransactionParentType[key]}`\r\n ),\r\n };\r\n }\r\n )}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_PARENT_TYPE\r\n : actionTypes.SET_PARENT_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"transactions.parentLabel\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n {\r\n return {\r\n key: key,\r\n value: key,\r\n label: t(\r\n `transactions.flowType.${TransactionFlowType[key]}`\r\n ),\r\n };\r\n }\r\n )}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_FLOW_TYPE\r\n : actionTypes.SET_FLOW_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"transactions.parentTypeLabel\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n {\r\n return {\r\n key: key,\r\n value: key,\r\n label: t(\r\n `transactions.parentStatus.${key}`\r\n ),\r\n };\r\n }\r\n )}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_PARENT_STATUS\r\n : actionTypes.SET_PARENT_STATUS,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"transactions.parentStatusLabel\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TransactionGroupFilter;\r\n","import React, {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useState,\r\n useRef,\r\n} from \"react\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport { getApiUrl } from \"../../../services/getAxios\";\r\nimport { DataListingContent } from \"../../../components/data/styles/StyledDataContainer\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport TransactionStatus from \"../../../core/enums/TransactionStatus\";\r\nimport DetailSideBar from \"../../../components/modal/DetailSideBar\";\r\nimport useClickAway from \"../../../hooks/_shared/useClickAway\";\r\nimport {\r\n ShortDateCell,\r\n} from \"../../../components/data/DateCell\";\r\nimport TransactionDetails from \"./components/TransactionDetails\";\r\nimport PlainModal, {\r\n usePlainModal,\r\n} from \"../../../components/modal/PlainModal\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport TransactionGroupFilter from \"./components/TransactionGroupFilter\";\r\nimport TransactionDetailsSidebar from \"./components/TransactionDetailsSidebar\";\r\nimport MangoPaymentTypeForDisplay from \"../../../core/enums/MangoPaymentTypeForDisplay\";\r\nimport MangoTransferType from \"../../../core/enums/MangoTransferType\";\r\nimport Pagination from \"../../../components/pagination/Pagination\";\r\nimport LayoutInnerContainer from \"../../../components/layout/split/one/LayoutInnerContainer\";\r\nimport TransactionRow from \"./components/TransactionRow\";\r\nimport Filters from \"../../../components/filter/Filters\";\r\nimport useQueryString from \"../../../hooks/_shared/useQueryString\";\r\n\r\nconst HeaderWrapper = styled.div`\r\n display: flex;\r\n padding: 0px 60px 5px;\r\n margin: 0px -60px;\r\n border-radius: 15px 15px 0px 0px;\r\n background: linear-gradient(\r\n 180deg,\r\n rgba(245, 245, 245, 1) 0%,\r\n rgba(240, 240, 240, 1) 100%\r\n );\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n border-bottom: 1px solid #ffffff;\r\n\r\n &.transparent {\r\n background: transparent;\r\n box-shadow: none;\r\n border-bottom: none;\r\n }\r\n\r\n &.hidden {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const DataListingContainer = styled.div`\r\n display: flex;\r\n flex-grow: 1;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n margin: 20px 10px 20px 0;\r\n`;\r\n\r\nconst TableTitleContainer = styled(Flex.Container)`\r\n justify-content: flex-end;\r\n margin: 20px 0px 0px 0px;\r\n`;\r\n\r\nconst Highlight = styled.span`\r\n font-weight: 700;\r\n &.green {\r\n color: #48b05e;\r\n }\r\n`;\r\n\r\nconst actionTypes = {\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_STATUS: \"SET_STATUS\",\r\n RESET_STATUS: \"RESET_STATUS\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_PAYMENT_TYPE: \"SET_PAYMENT_TYPE\",\r\n RESET_PAYMENT_TYPE: \"RESET_PAYMENT_TYPE\",\r\n SET_CREATION_DATE_FROM: \"SET_CREATION_DATE_FROM\",\r\n RESET_CREATION_DATE_FROM: \"RESET_CREATION_DATE_FROM\",\r\n SET_CREATION_DATE_TO: \"SET_CREATION_DATE_TO\",\r\n RESET_CREATION_DATE_TO: \"RESET_CREATION_DATE_TO\",\r\n SET_EXECUTION_DATE_FROM: \"SET_EXECUTION_DATE_FROM\",\r\n RESET_EXECUTION_DATE_FROM: \"RESET_EXECUTION_DATE_FROM\",\r\n SET_EXECUTION_DATE_TO: \"SET_EXECUTION_DATE_TO\",\r\n RESET_EXECUTION_DATE_TO: \"RESET_EXECUTION_DATE_TO\",\r\n SET_PARENT_TYPE: \"SET_PARENT_TYPE\",\r\n RESET_PARENT_TYPE: \"RESET_PARENT_TYPE\",\r\n SET_PARENT_STATUS: \"SET_PARENT_STATUS\",\r\n RESET_PARENT_STATUS: \"RESET_PARENT_STATUS\",\r\n SET_FLOW_TYPE: \"SET_FLOW_TYPE\",\r\n RESET_FLOW_TYPE: \"RESET_FLOW_TYPE\",\r\n RESET_TRANSACTION_FILTER: \"RESET_TRANSACTION_FILTER\",\r\n RESET_GROUP_FILTER: \"RESET_GROUP_FILTER\",\r\n SET_AMOUNT_FROM: \"SET_AMOUNT_FROM\",\r\n RESET_AMOUNT_FROM: \"RESET_AMOUNT_FROM\",\r\n SET_AMOUNT_TO: \"SET_AMOUNT_TO\",\r\n RESET_AMOUNT_TO: \"RESET_AMOUNT_TO\"\r\n};\r\n\r\nconst groupTransactionsReducer = (state, action) => {\r\n if (\r\n (action.type !== actionTypes.SET_PAGING)\r\n )\r\n state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_FLOW_TYPE:\r\n state.filter.flowType = action.payload;\r\n break;\r\n case actionTypes.RESET_FLOW_TYPE:\r\n delete state.filter.flowType;\r\n break;\r\n case actionTypes.SET_PARENT_TYPE:\r\n state.filter.parentType = action.payload;\r\n break;\r\n case actionTypes.RESET_PARENT_TYPE:\r\n delete state.filter.parentType;\r\n break;\r\n case actionTypes.SET_PARENT_STATUS:\r\n state.filter.isExecuted = action.payload;\r\n break;\r\n case actionTypes.RESET_PARENT_STATUS:\r\n delete state.filter.isExecuted;\r\n break;\r\n\r\n case actionTypes.RESET_GROUP_FILTER:\r\n state.filter = {};\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst HierarchyView = () => {\r\n const { t, i18n } = useTranslation();\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n const openDetailId = useQueryString(\"id\", \"\");\r\n\r\n const sideBarRef = useRef(null);\r\n\r\n useClickAway(sideBarRef, () => {\r\n try {\r\n closeSideBar();\r\n } catch (ex) { }\r\n });\r\n\r\n // Group Transactions\r\n const [myGroupTransactionsState, myGroupTransactionsDispatch] =\r\n useImmerReducer(groupTransactionsReducer, {\r\n filter: {\r\n flowType: null,\r\n parentType: null,\r\n status: null\r\n\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n });\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.transactions.transactionId\"),\r\n accessor: \"mangoTransactionId\",\r\n Cell: ({ cell: { value } }) => {\r\n return {value};\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.transactions.paymentType\"),\r\n accessor: \"paymentTypeForDisplay\",\r\n Cell: ({ cell: { value } }) => {\r\n let paymentTypeTranslation;\r\n if (MangoPaymentTypeForDisplay[value]) {\r\n paymentTypeTranslation = t(\r\n \"table:headers.transactions.mangoPaymentTypeDisplay.\" +\r\n value +\r\n \"\"\r\n );\r\n }\r\n\r\n return (\r\n \r\n {paymentTypeTranslation || value}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.transactions.creationDate\"),\r\n accessor: \"creationDate\",\r\n Cell: ({ cell: { value } }) => {\r\n return value ? ShortDateCell({ cell: { value } }) : \"-\";\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.transactions.executionDate\"),\r\n accessor: \"executionDate\",\r\n Cell: ({ cell: { value } }) => {\r\n return value ? ShortDateCell({ cell: { value } }) : \"-\";\r\n },\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.transactions.status\"),\r\n accessor: \"transactionStatus\",\r\n Cell: ({ cell: { value } }) => {\r\n let transactionTranslation;\r\n if (TransactionStatus[value]) {\r\n transactionTranslation = t(\r\n \"table:headers.transactions.transactionStatus.\" +\r\n TransactionStatus[value] +\r\n \"\"\r\n );\r\n }\r\n\r\n return transactionTranslation || value;\r\n },\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.transactions.amount\"),\r\n accessor: \"totalAmount\",\r\n Cell: ({ cell: { value } }) => {\r\n return (\r\n \r\n {helpers.formatCurrency(\r\n value,\r\n currentLanguage,\r\n currency\r\n )}\r\n \r\n );\r\n },\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.transactions.transferTypeDescription\"),\r\n accessor: \"transferType\",\r\n Cell: ({ cell: { value } }) => {\r\n let transferTypeTranslation;\r\n if (MangoTransferType[value]) {\r\n transferTypeTranslation = t(\r\n \"table:headers.transactions.transferType.\" +\r\n MangoTransferType[value] +\r\n \"\"\r\n );\r\n }\r\n\r\n return transferTypeTranslation || value;\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"documentId\",\r\n Cell: ({ cell: { value } }) =>\r\n value && (\r\n \r\n \r\n window.open(\r\n `${getApiUrl}/Documents/${value}`,\r\n \"_blank\"\r\n )\r\n }\r\n />\r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ],\r\n [t]\r\n );\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:finance\"),\r\n },\r\n {\r\n text: t(\"screens:transactions.myTransactions.hierarchyView\"),\r\n },\r\n ]);\r\n\r\n const [myGroupedTransactions, loadMyGroupedTransactions] = useDataReducer(\r\n () => PaymentService.getMyGroupedTransactions(myGroupTransactionsState),\r\n true\r\n );\r\n\r\n useEffect(() => {\r\n loadMyGroupedTransactions(myGroupTransactionsState);\r\n }, [myGroupTransactionsState]);\r\n\r\n useEffect(() => {\r\n myGroupTransactionsDispatch({\r\n type: actionTypes.RESET_GROUP_FILTER,\r\n });\r\n\r\n }, []);\r\n\r\n const groupPageChange = usePageChange(\r\n myGroupTransactionsDispatch,\r\n myGroupTransactionsState\r\n );\r\n\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n paymentMethod: \"0\",\r\n paymentType: 0,\r\n });\r\n\r\n const {\r\n modalProps: transactionDetailsProps,\r\n toggleOpen: toggleTransactionDetails,\r\n } = usePlainModal({\r\n onClose: () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [transaction, setTransaction] = useState({\r\n bid: null,\r\n offer: null,\r\n info: null,\r\n });\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const onSelect = useCallback((row) => {\r\n const getDetails = async () => {\r\n const info = await PaymentService.transactionDetails(\r\n row.original.id\r\n );\r\n if (info.data) {\r\n let offer = null;\r\n let acceptedBid = null;\r\n if (\r\n row.original.offerId !==\r\n \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n offer = await MarketplaceService.getBuyingItemById(\r\n row.original.offerId\r\n );\r\n\r\n const bids = await MarketplaceService.getBids(\r\n row.original.offerId\r\n );\r\n const acceptedBid = bids.filter(\r\n (bid) => bid.bidStatus === 1\r\n )[0];\r\n }\r\n setTransaction({\r\n bid: acceptedBid,\r\n offer: offer,\r\n info: info.data,\r\n });\r\n setDetailViewIsOpened(true);\r\n }\r\n };\r\n getDetails();\r\n }, []);\r\n\r\n const gotoPage = (pageIndex) => {\r\n groupPageChange({\r\n pageIndex: pageIndex,\r\n pageSize: myGroupTransactionsState?.pageSize ?? 10,\r\n });\r\n };\r\n\r\n const nextPage = () => {\r\n groupPageChange({\r\n pageIndex: myGroupTransactionsState.page,\r\n pageSize: myGroupTransactionsState?.pageSize ?? 10,\r\n });\r\n };\r\n\r\n const previousPage = () => {\r\n groupPageChange({\r\n pageIndex: myGroupTransactionsState.page - 2,\r\n pageSize: myGroupTransactionsState?.pageSize ?? 10,\r\n });\r\n };\r\n\r\n const numPageButtons = 3;\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:transactions.title\")}\r\n \r\n \r\n \r\n
    \r\n \r\n {t(\"screens:transactions.search\")}\r\n \r\n {/* {isListView ? (\r\n \r\n ) : ( */}\r\n \r\n {/* )} */}\r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n {myGroupedTransactions?.data?.data.map(\r\n (item, index) => {\r\n return (\r\n \r\n );\r\n }\r\n )}\r\n \r\n {\r\n 1\r\n }\r\n canNextPage={\r\n myGroupTransactionsState.page <\r\n myGroupedTransactions?.data?.totalPages\r\n }\r\n pageCount={\r\n myGroupedTransactions?.data?.totalPages\r\n }\r\n currentPageIndex={\r\n myGroupTransactionsState.page - 1\r\n }\r\n numButtons={numPageButtons}\r\n />\r\n }\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HierarchyView;\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport companyAdminMenuItems from \"../../data/menu/companyAdminMenuItems\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport TransactionsDashboard from \"./views/TransactionsDashboard\";\r\nimport DocumentListing from \"./views/DocumentListing\";\r\nimport TransactionsView from \"./views/TransactionsView\";\r\nimport HierarchyView from \"./views/HierarchyView\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\n\r\nconst FinanceScreen = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n useLeftMenu(companyAdminMenuItems(globalState));\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FinanceScreen;\r\n","import React from \"react\";\r\nimport DateCellWithExpiration from \"../../../../components/data/DateCellWithExpiration\";\r\nimport TransactionStatus from \"../../../../components/elements/general/TransactionStatus\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport OfferStatus from \"../../../../core/enums/OfferStatus\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport GradeCell from \"../../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../../components/data/GreenCell\";\r\nimport TooltipCell from \"../../../../components/data/TooltipCell\";\r\nimport BidGradePriceCell from \"../../../SalesCenter/views/components/BidGradePriceCell\";\r\nimport HandlingCell from \"../../../../components/data/HandlingCell\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\n\r\nconst createSteps = (value, t, offerer = \"\", buyer = \"\") => {\r\n if (buyer === \"\") buyer = t(\"common:status.theProvider\");\r\n let result = Array.from([\r\n {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Accept\", {\r\n company: offerer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_collect\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_test\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 4/4 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_confirmTest\", {\r\n company: offerer,\r\n }),\r\n },\r\n ]);\r\n\r\n switch (value) {\r\n case OfferStatus.waitingForOffererFunds:\r\n result[0] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.disposeAccepted:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n\r\n case OfferStatus.buyerClaimedBottles:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.qualityTested:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 4/4 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.disposed:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/4 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nconst InstaDisposalColumns = {\r\n getColumns: (\r\n offerStatus,\r\n t,\r\n actions,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n ) => {\r\n const pendingColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.numBids\")}`,\r\n accessor: \"totalOffers\",\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) =>\r\n original.totalOffers > 0 && (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n \r\n {\r\n actions.toggleOpen({\r\n offerIds: [value],\r\n original,\r\n });\r\n }}\r\n />\r\n \r\n \r\n ),\r\n },\r\n ];\r\n\r\n const acceptedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"confirmedQuality\",\r\n Cell: ({ cell: { row } }) => {\r\n if (row.original.acceptedBidInfo) {\r\n const currency = \"EUR\";\r\n let totalPrice = helpers.calculatePurchasedPrice(\r\n row.original.acceptedBidInfo.offeredPriceGradeC,\r\n row.original.quantity,\r\n true\r\n );\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n totalPrice,\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n }\r\n\r\n return \"-\";\r\n },\r\n },\r\n {\r\n Header: t(\"stockListing.headers.dealExpiration\"),\r\n accessor: \"dealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.status;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return DateCellWithExpiration(value, translation);\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n const dateTimeNow = new Date();\r\n return (\r\n \r\n \r\n \r\n dateTimeNow.toISOString()\r\n }\r\n text={t(\"actions:rejectBid\")}\r\n onClick={async () => {\r\n actions.rejectToggleOpen([original]);\r\n }}\r\n />\r\n {original.status === 2 && (\r\n {\r\n await actions.getTransactionDetails(\r\n original,\r\n original.acceptedBid.id\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const qualityTestColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"disposalServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.acceptedBidInfo\r\n ?.offeredPriceGradeC *\r\n row.original.quantity\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"myBids.headers.bidDealExpiration\"),\r\n accessor: \"dealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.status;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n const onHold =\r\n offerStatus === 10 ? t(\"common:status.onHold\") : null;\r\n return DateCellWithExpiration(value, translation, onHold);\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n const dateTimeNow = new Date();\r\n return (\r\n \r\n \r\n \r\n dateTimeNow.toISOString())\r\n }\r\n text={t(\"actions:finishTransaction\")}\r\n onClick={async () => {\r\n actions.sellToggleOpen([original]);\r\n }}\r\n />\r\n {\r\n actions.openDisputeWizard(original);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const soldColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"confirmedRefrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"confirmedQuantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value?.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"confirmedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) => (value ? \"Yes\" : \"No\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"confirmedQuality\",\r\n Cell: ({ cell: { row } }) => {\r\n if (row.original.acceptedBidInfo) {\r\n const currency = \"EUR\";\r\n let totalPrice = helpers.calculatePurchasedPrice(\r\n row.original.acceptedBidInfo.offeredPriceGradeC,\r\n row.original.quantity,\r\n true\r\n );\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n totalPrice,\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n }\r\n\r\n return \"-\";\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.disposedDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n if (\r\n offerStatus.includes(OfferStatus.offererEscrowedFunds) ||\r\n offerStatus.includes(OfferStatus.disposeAccepted)\r\n ) {\r\n return acceptedColumns;\r\n } else if (\r\n offerStatus.includes(OfferStatus.buyerClaimedBottles) ||\r\n offerStatus.includes(OfferStatus.qualityTested)\r\n ) {\r\n return qualityTestColumns;\r\n } else if (offerStatus.includes(OfferStatus.disposed)) {\r\n return soldColumns;\r\n }\r\n\r\n return pendingColumns;\r\n },\r\n};\r\n\r\nexport default InstaDisposalColumns;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport AnalysisStatus from \"../../../../core/enums/AnalysisStatus\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport Globals from \"../../../../globalVars\";\r\n\r\nconst MarketplaceFilter = ({\r\n filterState,\r\n dispatch,\r\n actionTypes,\r\n gasTypes,\r\n screen,\r\n tabIndex,\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [quantityToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_GAS_QUANTITY_TO, payload: text.trim() })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [quantityFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_FROM,\r\n payload: text.trim(),\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n });\r\n });\r\n const showHideOffers = [\r\n { key: t(\"offers.hideMyOffers\"), value: true },\r\n { key: t(\"offers.showMyOffers\"), value: false },\r\n ];\r\n\r\n const hideWithBids = [\r\n { key: t(\"offers.hideItemsWithBids\"), value: true },\r\n { key: t(\"offers.showItemsWithBids\"), value: false },\r\n ];\r\n\r\n const showWithBids = [\r\n { key: t(\"offers.allOffers\"), value: false },\r\n { key: t(\"offers.offersWithBids\"), value: true },\r\n ];\r\n\r\n return (\r\n \r\n {screen === \"market\" && (\r\n <>\r\n {!Globals.isAdmin && (\r\n <>\r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hideMyOffers !== undefined\r\n ? filterState.hideMyOffers\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HIDEMYOFFERS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HIDEMYOFFERS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.hideMyOffers\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hideOffersWithMyBid !==\r\n undefined\r\n ? filterState.hideOffersWithMyBid\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HIDEWITHBIDS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HIDEWITHBIDS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.hideItemsWithBids\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_FROM\r\n : actionTypes.SET_OFFER_CREATION__DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_TO\r\n : actionTypes.SET_OFFER_CREATION__DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n {screen === \"offers\" && tabIndex === 0 && (\r\n <>\r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hasOffers !== undefined\r\n ? filterState.hasOffers\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HASOFFERS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HASOFFERS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.showItemsWithBids\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n )}\r\n\r\n {(screen === \"offers\" || screen === \"bids\") &&\r\n (tabIndex === 1 || tabIndex === 2) && (\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXPIRATION_DATE_FROM\r\n : actionTypes.SET_EXPIRATION_DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXPIRATION_DATE_TO\r\n : actionTypes.SET_EXPIRATION_DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n )}\r\n\r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n {\r\n quantityFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityFrom\")}\r\n title={t(\"gas.quantityFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n quantityToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityTo\")}\r\n title={t(\"gas.quantityTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n\r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: t(\"analysis.\" + AnalysisStatus[key]),\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_QUALITY_ASSURANCE\r\n : actionTypes.SET_QUALITY_ASSURANCE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.qualityAssurance\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n {Globals.isAdmin && (\r\n \r\n ({\r\n key: country.id,\r\n value: country.id,\r\n label: country.localName,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n if (evt.currentTarget.value === \"\") {\r\n dispatch({\r\n type: actionTypes.RESET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"filters:clients.country\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(MarketplaceFilter);\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport MarketplaceService from \"../../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport { toast } from \"react-toastify\";\r\nimport InstallerDisposalListing from \"../InstallerDisposalListing\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport WizardPayForOffer from \"../../../SalesCenter/views/components/wizard/WizardPayForOffer\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n BigHandlingCosts,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ButtonWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 30px;\r\n`;\r\n\r\nconst DisposalBidDetailSideBar = ({\r\n bid,\r\n offer,\r\n closeSingleBidSideBar,\r\n closeOfferSideBar,\r\n openAccordionId,\r\n}) => {\r\n const [openAccordion, setOpenAccordion] =\r\n useAccordionGroup(openAccordionId);\r\n const { t, i18n } = useTranslation([\"sidebar\"]);\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n const [globalState] = useSharedState(\"global\");\r\n\r\n const acceptBid = useCallback(\r\n async (\r\n bidId,\r\n offeredPriceGradeC,\r\n offerInfo = \"\",\r\n bidCompanyCountryId\r\n ) => {\r\n ModalWizard.show(\r\n WizardPayForOffer(\r\n t,\r\n currentLanguage,\r\n currency,\r\n offeredPriceGradeC * offer.maximumQuantity,\r\n offerInfo,\r\n true,\r\n bidCompanyCountryId\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const result = await MarketplaceService.acceptBid(\r\n bidId,\r\n values.paymentMethod\r\n );\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n InstallerDisposalListing.refreshNeeded = true;\r\n toast.success(\r\n t(\r\n \"actions:dialogs.acceptBid.toastNotification.success\"\r\n )\r\n );\r\n closeOfferSideBar();\r\n closeSingleBidSideBar();\r\n }\r\n ModalWizard.hide();\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n },\r\n [t, bid]\r\n );\r\n\r\n const gasGradeNames = [\r\n t(\"sidebar:label.bid.aGrade\"),\r\n t(\"sidebar:label.bid.bGrade\"),\r\n t(\"sidebar:label.bid.cGrade\"),\r\n ];\r\n\r\n // Reject Bid action\r\n const { modalProps: modalPropsDecline, toggleOpen: toggleOpenDecline } =\r\n useModal({\r\n title: t(\"actions:dialogs.rejectBid.title\"),\r\n onConfirm: async (bidId) => {\r\n const result = await MarketplaceService.rejectBid(bidId);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n InstallerDisposalListing.refreshNeeded = true;\r\n // if (offer.offerId) {\r\n // loadBids(offer.offerId);\r\n // }\r\n toast.success(\r\n t(\"actions:dialogs.rejectBid.toastNotification.success\")\r\n );\r\n }\r\n toggleOpenDecline();\r\n closeSingleBidSideBar();\r\n },\r\n onCancel: () => {\r\n toggleOpenDecline();\r\n },\r\n confirmText: t(\"actions:dialogs.rejectBid.confirmText\"),\r\n });\r\n\r\n const [bidStatus, setBidStatus] = useState(null);\r\n useEffect(() => {\r\n if (bid) {\r\n setBidStatus(bid.bidStatusName);\r\n }\r\n }, [bid]);\r\n\r\n return (\r\n
    \r\n \r\n {offer && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {bid && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {offer && bid && (\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n \r\n {bid && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n {bid && bid.bidStatus === 0 && (\r\n \r\n {\r\n var offerInfo = `${\r\n offer.refrigerantGasTypeCode\r\n } | ${gasGradeNames[offer.pressumedGradeValue]} | ${\r\n offer.maximumQuantity\r\n } kg`;\r\n acceptBid(\r\n bid.bidId,\r\n bid.offeredPriceGradeC,\r\n offerInfo\r\n );\r\n }}\r\n >\r\n {t(\"actions:bidActions.accept\")}\r\n \r\n\r\n {\r\n toggleOpenDecline(bid.bidId);\r\n }}\r\n >\r\n {t(\"actions:bidActions.reject\")}\r\n \r\n \r\n )}\r\n\r\n {bid && bid.bidStatus !== 0 && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n

    {t(\"actions:dialogs.rejectBid.text\")}

    \r\n

    \r\n {bid && `•${bid.offeredPriceGradeC.toFixed(2)} EUR/kg`}\r\n

    \r\n

    \r\n {t(\"actions:dialogs.revokeBid.offeredItem\")}\r\n

    \r\n

    \r\n {offer &&\r\n `• ${\r\n offer.refrigerantGasTypeCode\r\n } | ${offer.quantity?.toFixed(2)} kg | ${\r\n offer.pressumedGradeName\r\n } | ${\r\n offer.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DisposalBidDetailSideBar;\r\n","import React, { useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport BidsListing from \"../../../../components/bids/BidsListing\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport {\r\n Num,\r\n NumInfo,\r\n NumSection,\r\n} from \"../../../../components/elements/sidebar/SidebarStyle\";\r\nimport DetailSideBar from \"../../../../components/modal/DetailSideBar\";\r\nimport DisposalBidDetailSideBar from \"./DisposalBidDetailSideBar\";\r\nimport useClickAway from \"../../../../hooks/_shared/useClickAway\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n BigHandlingCosts,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport { getApiUrl } from \"../../../../services/getAxios\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst ButtonWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 30px;\r\n`;\r\n\r\nconst DownloadWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n &.pad {\r\n padding: 25px 20px 0px;\r\n }\r\n\r\n &.big > * {\r\n font-size: 14px !important;\r\n }\r\n\r\n & > div {\r\n font-size: 12px;\r\n color: #333333;\r\n font-weight: 600;\r\n }\r\n`;\r\n\r\nconst DownloadLink = styled.a`\r\n color: #2294d2;\r\n text-decoration: none;\r\n font-size: 12px;\r\n &.big {\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst getFileName = (url) => {\r\n const parts = url.split(\"/\");\r\n return parts[parts.length - 1];\r\n};\r\n\r\nconst MyOffersDetailSideBar = ({\r\n selectedOffer,\r\n offer,\r\n isLoading,\r\n sellToggleOpen,\r\n disputeToggleOpen,\r\n closeSideBar,\r\n openAccordionId = null,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const shouldShow = !isLoading && offer;\r\n const [openAccordion, setOpenAccordion] =\r\n useAccordionGroup(openAccordionId);\r\n\r\n const [singleBidViewIsOpened, setSingleBidviewIsOpened] = useState(false);\r\n const [singleBidData, setSingleBidData] = useState(null);\r\n\r\n const openSingleBid = (bid) => {\r\n setSingleBidviewIsOpened(!singleBidViewIsOpened);\r\n setSingleBidData(bid);\r\n };\r\n\r\n const closeSingleBidSidebar = () => {\r\n setSingleBidviewIsOpened(false);\r\n };\r\n\r\n const bidRef = useRef(null);\r\n useClickAway(bidRef, () => {\r\n closeSingleBidSidebar();\r\n });\r\n\r\n const numQualityTests = () => {\r\n if (!offer.skUs) return 0;\r\n let cnt = 0;\r\n offer.skUs.forEach((offer) => {\r\n if (offer.qualityTestDone) cnt++;\r\n });\r\n return cnt;\r\n };\r\n\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n \r\n \r\n \r\n {selectedOffer.offer && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {offer.skUs && (\r\n \r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n return (\r\n
    \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n \r\n N/A\r\n \r\n \r\n {t(\r\n \"actions:noContamination\"\r\n )}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.aGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.bGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.cGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n {/*// Show only if Offered */}\r\n {selectedOffer.offer && selectedOffer.offer.status === 0 && (\r\n \r\n {offer && offer.offerId && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n {/*//Show only if Accepted*/}\r\n {selectedOffer.bid && selectedOffer.bid.bidStatus === 1 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {selectedOffer.bid && (\r\n \r\n )}\r\n \r\n\r\n {offer.skUs && (\r\n \r\n {numQualityTests() > 0 && (\r\n \r\n
    \r\n {numQualityTests()}{\" \"}\r\n {numQualityTests() > 1\r\n ? t(\r\n \"actions:availableTests\"\r\n )\r\n : t(\r\n \"actions:availableTest\"\r\n )}\r\n
    \r\n \r\n {t(\"actions:downloadAll\")}\r\n \r\n
    \r\n )}\r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n return (\r\n \r\n \r\n
    \r\n {getFileName(\r\n sku.qualityTestUrl\r\n )}\r\n
    \r\n {sku.qualityTestDone ? (\r\n \r\n {t(\r\n \"actions:download\"\r\n )}\r\n \r\n ) : (\r\n
    -
    \r\n )}\r\n \r\n {sku.buyerCylindersAnalysis && (\r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedOffer.bid.bidCompanyCountry && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n\r\n {selectedOffer.offer &&\r\n selectedOffer.offer.status === 6 && (\r\n \r\n {\r\n sellToggleOpen([\r\n selectedOffer.offer,\r\n ]);\r\n }}\r\n >\r\n {t(\"actions:finishTransaction\")}\r\n \r\n \r\n disputeToggleOpen(\r\n selectedOffer.offer\r\n )\r\n }\r\n >\r\n {t(\"actions:dispute.start\")}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MyOffersDetailSideBar;\r\n","import React from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Flex from \"../../../../components/layout/flex/Flex\";\r\nimport styled from \"styled-components\";\r\nimport {VSpace} from \"../../../pwa/components/StyledElements\";\r\nimport Globals from \"../../../../globalVars\";\r\n\r\nconst RowWrapper = styled.div`\r\n padding: 0 50px;\r\n\r\n &.separator {\r\n border-bottom: 1px solid ${props => props.theme.borderSeparator};\r\n }\r\n\r\n &.highlight {\r\n border-bottom: 1px solid #000;\r\n }\r\n`;\r\n\r\nconst MainTitle = styled.span`\r\n padding: 0 0 10px;\r\n font-size: 1.5rem;\r\n color: ${props => props.theme.primaryColor};\r\n text-transform: uppercase;\r\n display: inline-block;\r\n width: 100%;\r\n font-weight:700;\r\n`;\r\n\r\nconst Title = styled.span`\r\n font-size: 1.25rem;\r\n font-weight: bold;\r\n display: inline-block;\r\n width: 100%;\r\n margin: 0 0 16px;\r\n font-weight:700;\r\n`;\r\n\r\nconst Content = styled.div`\r\n margin: 20px 0;\r\n`;\r\n\r\nconst ContentRow = styled.div`\r\n margin: 0 0 8px;\r\n font-weight: 700;\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n display: inline-block;\r\n vertical-align: top;\r\n font-weight: 400;\r\n }\r\n\r\n div {\r\n display: inline-block;\r\n vertical-align: top;\r\n }\r\n`;\r\n\r\nconst FooterContent = styled.div`\r\n font-size: 1.25rem;\r\n padding: 24px 0 0;\r\n`;\r\n\r\nconst FooterContentRow = styled.div`\r\n margin: 0 0 12px;\r\n\r\n &.flex {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-end;\r\n }\r\n\r\n span {\r\n color: ${props => props.theme.textNeutral};\r\n font-weight: 400;\r\n }\r\n\r\n & .bold {\r\n font-weight:700;\r\n color:#000;\r\n }\r\n\r\n & .big {\r\n font-size: 2.25rem;\r\n }\r\n .highlight {\r\n color: ${props => props.theme.primaryColor};\r\n font-size: 2.25rem;\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nconst Pipe = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n margin: 0 12px;\r\n\r\n &:after {\r\n content: \"\";\r\n border-left: 1px solid ${props => props.theme.textNeutral};\r\n border-right: 1px solid ${props => props.theme.textNeutral};\r\n }\r\n`;\r\n\r\nconst TransactionDetails = ({transactionDetails, offer, paymentMethod, paymentType = 0}) => {\r\n const {t} = useTranslation();\r\n\r\n if (!transactionDetails) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n \r\n \r\n \r\n {t(\"actions:dialogs.transactionDetails.title\")}\r\n \r\n \r\n
    {t(\"actions:dialogs.transactionDetails.paymentType.title\")}: {t(\"actions:dialogs.transactionDetails.paymentType.IBANPayIn\")}
    \r\n
    \r\n\r\n\r\n {\r\n (paymentType !== 2 && paymentType !== 3) &&\r\n \r\n \r\n \r\n \r\n \r\n {transactionDetails.payingCompany} {t('actions:dialogs.transactionDetails.beneficiaryInformationTitle')}\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerName')} :  \r\n {transactionDetails.bankAccountOwnerName}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerAddressLine1')}:  \r\n\r\n
    \r\n {transactionDetails.bankAccountOwnerAddressLine1}\r\n {\r\n transactionDetails.bankAccountOwnerAddressLine2 && (\r\n <>
    {transactionDetails.bankAccountOwnerAddressLine2}\r\n )\r\n }\r\n
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerCity')}:  \r\n {transactionDetails.bankAccountOwnerCity}\r\n \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerPostalCode')}:  \r\n {transactionDetails.bankAccountOwnerPostalCode}\r\n \r\n\r\n {/* \r\n {t('forms:account.region')}:  \r\n {transactionDetails.bankAccountOwnerRegion || \"-\"}\r\n */}\r\n\r\n \r\n {t('forms:account.country')}:  \r\n {transactionDetails.bankAccountOwnerCountryCode || \"-\"}\r\n \r\n\r\n
    \r\n
    \r\n\r\n \r\n \r\n Bank Details\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwner')}:  \r\n {transactionDetails.bankAccountOwnerName}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.ibanCode')}:  \r\n {transactionDetails.bankAccountOwnerIBAN}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.bankAccountOwnerBIC')}:  \r\n {transactionDetails.bankAccountOwnerBIC}
    \r\n
    \r\n\r\n \r\n {t('actions:dialogs.transactionDetails.referenceNumber')}:  \r\n {transactionDetails.wireReference}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n \r\n \r\n \r\n {\r\n offer && (paymentType === 0 || paymentType === 1) &&\r\n <>\r\n \r\n \r\n {offer.refrigerantGasTypeCode}\r\n \r\n\r\n {t('actions:dialogs.transactionDetails.grade', {grade: offer.pressumedGradeName})}\r\n \r\n\r\n {\r\n offer.maximumQuantity &&\r\n offer.maximumQuantity.toFixed(2) + \" kg\"\r\n }\r\n {\r\n offer.quantitySum &&\r\n offer.quantitySum.toFixed(2) + \" kg\"\r\n }\r\n \r\n {(transactionDetails.amount).toFixed(2)} EUR\r\n \r\n \r\n }\r\n \r\n {t('filters:company.vat')} ({Globals.VATPercString}%):  \r\n \r\n {((Globals.VATPercentage-1)*transactionDetails.amount).toFixed(2)} EUR\r\n \r\n\r\n \r\n\r\n \r\n {t('screens:stockListing.headers.total')}:  \r\n {(transactionDetails.amount * Globals.VATPercentage).toFixed(2)} EUR \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n};\r\n\r\nexport default TransactionDetails;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport sellRefrigerantListingStateModule from \"../../../core/state/sell-refrigerant/sellRefrigerantListingStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport InstaDisposalColumns from \"./columns/InstaDisposalColumns\";\r\nimport DisposalFilter from \"./components/DisposalFIlter\";\r\nimport DisposalDetailSideBar from \"./components/DisposalDetailSideBar\";\r\nimport TransactionDetails from \"./components/TransactionDetails\";\r\nimport PlainModal, {\r\n usePlainModal,\r\n} from \"../../../components/modal/PlainModal\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport WizardDispute from \"../../SalesCenter/views/components/wizard/WizardDispute\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst actionTypes = {\r\n SET_HASOFFERS: \"SET_HASOFFERS\",\r\n RESET_HASOFFERS: \"RESET_HASOFFERS\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_EXPIRATION_DATE_FROM: \"SET_EXPIRATION_DATE_FROM\",\r\n RESET_EXPIRATION_DATE_FROM: \"RESET_EXPIRATION_DATE_FROM\",\r\n SET_EXPIRATION_DATE_TO: \"SET_EXPIRATION_DATE_TO\",\r\n RESET_EXPIRATION_DATE_TOM: \"RESET_EXPIRATION_DATE_TO\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst myOffersReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) {\r\n state.page = 1;\r\n }\r\n switch (action.type) {\r\n case \"SET_ACTIVETAB\":\r\n state.filter = { showDisposals: true };\r\n state.filter.offerStatuses = action.payload;\r\n break;\r\n case \"SET_HASOFFERS\":\r\n state.filter.hasOffers = action.payload;\r\n break;\r\n case \"RESET_HASOFFERS\":\r\n delete state.filter.hasOffers;\r\n break;\r\n case \"SET_PAGING\":\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n\r\n case actionTypes.SET_EXPIRATION_DATE_FROM:\r\n state.filter.bidDealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_FROM:\r\n delete state.filter.bidDealExpirationFrom;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_TO:\r\n state.filter.bidDealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_TO:\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst InstallerDisposalListing = () => {\r\n const {\r\n sellingItems,\r\n isLoading,\r\n error,\r\n loadSellingItems,\r\n loadSellingItemById,\r\n details,\r\n unpublishData,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(sellRefrigerantListingStateModule);\r\n\r\n const { t, i18n } = useTranslation(\"screens\");\r\n const currentLanguage = i18n.language;\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n\r\n const [filterState, dispatch] = useImmerReducer(myOffersReducer, {\r\n filter: { offerStatuses: [OfferStatus.offered], showDisposals: true },\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"dealExpiration\",\r\n descending: false,\r\n });\r\n\r\n const setActiveTab = (tab) => {\r\n if (tab[0] === 21) {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [{ id: \"lastChangeDateTime\", desc: true }],\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [{ id: \"dealExpiration\", desc: false }],\r\n });\r\n }\r\n dispatch({ type: \"SET_ACTIVETAB\", payload: tab });\r\n };\r\n\r\n useEffect(() => {\r\n loadSellingItems(filterState);\r\n }, [loadSellingItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const [currentRowData, setCurrentRowData] = useState({\r\n offer: null,\r\n bid: null,\r\n });\r\n\r\n const fetchGridData = () => {\r\n loadSellingItems({\r\n isInstaller: true,\r\n options: filterState,\r\n });\r\n };\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n let currentBid = null;\r\n if (row.original.acceptedBid) {\r\n const bids = await MarketplaceService.getBids(\r\n row.original.offerId\r\n );\r\n currentBid = bids\r\n ? bids.find((b) => {\r\n if (b.bidStatus === 1) {\r\n return (\r\n b.bidId === row.original.acceptedBid.id\r\n );\r\n }\r\n return null;\r\n })\r\n : null;\r\n }\r\n\r\n setCurrentRowData({\r\n offer: row.original,\r\n bid: currentBid,\r\n });\r\n\r\n await loadSellingItemById(row.original.offerId);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [details, loadSellingItemById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n if (detailViewIsOpened) {\r\n setOpenAccordionId(null);\r\n setDetailViewIsOpened(false);\r\n if (InstallerDisposalListing.refreshNeeded) {\r\n InstallerDisposalListing.refreshNeeded = false;\r\n loadSellingItems(filterState);\r\n }\r\n }\r\n };\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:services\"),\r\n },\r\n {\r\n text: t(\"navigation:disposalService\"),\r\n },\r\n ]);\r\n\r\n //Unpublish action\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.unPublishOffer.title\"),\r\n type: \"warning\",\r\n onConfirm: async (model) => {\r\n const result = await StockService.unpublishFromMarketplace({\r\n offerIds: model.offerIds,\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadSellingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.offerUnpublished\"));\r\n }\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.unPublishOffer.confirmText\"),\r\n });\r\n //Finish action\r\n const { modalProps: sellModalProps, toggleOpen: sellToggleOpen } = useModal(\r\n {\r\n title: t(\"actions:dialogs.sellOffer.title\"),\r\n isWarning: false,\r\n onConfirm: async (row) => {\r\n const result = await MarketplaceService.offerSold([\r\n row[0].offerId,\r\n ]);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setDetailViewIsOpened(false);\r\n loadSellingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.sellOffer\"));\r\n }\r\n sellToggleOpen();\r\n },\r\n onCancel: () => {\r\n sellToggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.sellOffer.confirmText\"),\r\n type: \"info\",\r\n }\r\n );\r\n\r\n //Reject expired bid action\r\n const { modalProps: rejectModalProps, toggleOpen: rejectToggleOpen } =\r\n useModal({\r\n title: t(\"actions:dialogs.rejectBid.title\"),\r\n onConfirm: async (row) => {\r\n const result =\r\n await MarketplaceService.rejectBidDueToExpiration({\r\n bidId: row[0].acceptedBid.id,\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadSellingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.rejectBid\"));\r\n }\r\n rejectToggleOpen();\r\n },\r\n onCancel: () => {\r\n rejectToggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.rejectBid.confirmText\"),\r\n });\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n });\r\n const getTransactionDetails = async (offer, bidId) => {\r\n const result = await PaymentService.getTransactionDetails(0, bidId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: offer,\r\n details: result.data.data[0],\r\n });\r\n toggleTransactionDetails();\r\n }\r\n };\r\n const {\r\n modalProps: transactionDetailsProps,\r\n toggleOpen: toggleTransactionDetails,\r\n } = usePlainModal({\r\n onClose: async () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const openDisputeWizard = (offer) => {\r\n return ModalWizard.show(\r\n WizardDispute(t, offer),\r\n {\r\n onSubmit: async (values) => {\r\n const data = ModalWizard.groupValues(\r\n values,\r\n \"_\",\r\n true\r\n ).filter((itm) => itm.disputeThisResult === true);\r\n if (data.length > 0) {\r\n const result = await MarketplaceService.dispute(data);\r\n if (result && result.error) {\r\n ModalWizard.submitFailed(t(result.error.message));\r\n } else {\r\n fetchGridData();\r\n toast.success(\r\n t(\"myOffers.toastNotification.disputed\")\r\n );\r\n ModalWizard.hide();\r\n }\r\n } else ModalWizard.hide(0);\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { width: \"800px\", height: \"730px\" } }\r\n );\r\n };\r\n\r\n const columns = useMemo(() => {\r\n return InstaDisposalColumns.getColumns(\r\n filterState.filter.offerStatuses,\r\n t,\r\n {\r\n toggleOpen: toggleOpen,\r\n sellToggleOpen: sellToggleOpen,\r\n rejectToggleOpen: rejectToggleOpen,\r\n openDisputeWizard: openDisputeWizard,\r\n getTransactionDetails: getTransactionDetails,\r\n },\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n );\r\n }, [filterState.filter.offerStatuses, t, globalState]);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n let tabIndex = 0;\r\n const statuses = filterState.filter.offerStatuses;\r\n\r\n if (statuses.includes(OfferStatus.offered)) {\r\n tabIndex = 0;\r\n } else if (\r\n statuses.includes(OfferStatus.waitingForOffererFunds) ||\r\n statuses.includes(OfferStatus.disposeAccepted)\r\n ) {\r\n tabIndex = 1;\r\n } else if (\r\n statuses.includes(OfferStatus.buyerClaimedBottles) ||\r\n statuses.includes(OfferStatus.qualityTested)\r\n ) {\r\n tabIndex = 2;\r\n } else if (statuses.includes(OfferStatus.disposed)) {\r\n tabIndex = 3;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {t(\"navigation:disposalService\")}\r\n \r\n (\r\n \r\n ),\r\n }}\r\n filterTitle={t(\"filters:disposal.filterTitle\")}\r\n filterComponent={() => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }}\r\n noDataText={t(\"myOffers.noData\")}\r\n columns={columns}\r\n closeSideBar={closeSideBar}\r\n onSelect={onSelect}\r\n detailView={\r\n \r\n }\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailSideBarTitle={t(\"sidebar:title.refrigerantDetails\")}\r\n />\r\n \r\n

    {t(\"actions:dialogs.unPublishOffer.text\")}

    \r\n

    \r\n {modalProps.modal &&\r\n modalProps.modal.original &&\r\n `${\r\n modalProps.modal.original.refrigerantGasTypeCode\r\n } | ${modalProps.modal.original.quantity?.toFixed(\r\n 2\r\n )} kg | ${\r\n modalProps.modal.original.pressumedGradeName\r\n } | ${\r\n modalProps.modal.original.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

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

    {t(\"actions:dialogs.sellOffer.text\")}

    \r\n

    \r\n {sellModalProps.modal &&\r\n sellModalProps.modal.length > 0 &&\r\n `• ${\r\n sellModalProps.modal[0].cylindersAnalysis\r\n ? sellModalProps.modal[0].acceptedBid[\r\n `offeredPriceGrade${sellModalProps.modal[0].cylindersAnalysis[0].gradeName}`\r\n ].toFixed(2)\r\n : sellModalProps.modal[0].acceptedBid[\r\n `offeredPriceGrade${sellModalProps.modal[0].pressumedGradeName}`\r\n ].toFixed(2)\r\n } EUR/kg (${t(\r\n \"actions:bidActions.establishedQuality\"\r\n )})`}\r\n

    \r\n

    \r\n {t(\"actions:dialogs.revokeBid.offeredItem\")}\r\n

    \r\n

    \r\n {sellModalProps.modal &&\r\n sellModalProps.modal.length > 0 &&\r\n `• ${\r\n sellModalProps.modal[0].refrigerantGasTypeCode\r\n } | ${sellModalProps.modal[0].quantity.toFixed(\r\n 2\r\n )} kg | ${\r\n sellModalProps.modal[0].pressumedGradeName\r\n } | ${\r\n sellModalProps.modal[0].analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

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

    {t(\"actions:dialogs.rejectBids.text\")}

    \r\n

    \r\n {rejectModalProps.modal &&\r\n rejectModalProps.modal.length > 0 &&\r\n `•${rejectModalProps.modal[0].acceptedBidInfo.offeredPriceGradeC.toFixed(\r\n 2\r\n )} EUR/kg`}\r\n

    \r\n

    \r\n {t(\"actions:dialogs.revokeBid.offeredItem\")}\r\n

    \r\n

    \r\n {rejectModalProps.modal &&\r\n rejectModalProps.modal.length > 0 &&\r\n `• ${\r\n rejectModalProps.modal[0].refrigerantGasTypeCode\r\n } | ${rejectModalProps.modal[0].quantity.toFixed(\r\n 2\r\n )} kg | ${\r\n rejectModalProps.modal[0].pressumedGradeName\r\n } | ${\r\n rejectModalProps.modal[0].analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nInstallerDisposalListing.refreshNeeded = false;\r\n\r\nexport default InstallerDisposalListing;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport AnalysisStatus from \"../../../../core/enums/AnalysisStatus\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport Globals from \"../../../../globalVars\";\r\n\r\nconst DisposalFilterDist = ({\r\n filterState,\r\n dispatch,\r\n actionTypes,\r\n gasTypes,\r\n tabIndex,\r\n screen=\"offers\"\r\n}) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [quantityToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_GAS_QUANTITY_TO, payload: text.trim() })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [quantityFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_FROM,\r\n payload: text.trim(),\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n });\r\n });\r\n return (\r\n \r\n {screen===\"offers\" && (\r\n <>\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_FROM\r\n : actionTypes.SET_OFFER_CREATION__DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_TO\r\n : actionTypes.SET_OFFER_CREATION__DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n\r\n {screen!==\"offers\" && tabIndex >=1 && (\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXPIRATION_DATE_FROM\r\n : actionTypes.SET_EXPIRATION_DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_EXPIRATION_DATE_TO\r\n : actionTypes.SET_EXPIRATION_DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(date),\r\n })\r\n }\r\n />\r\n \r\n \r\n )}\r\n\r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n {tabIndex < 2 && (\r\n \r\n \r\n \r\n\r\n {\r\n quantityFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityFrom\")}\r\n title={t(\"gas.quantityFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n quantityToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityTo\")}\r\n title={t(\"gas.quantityTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n )}\r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: t(\"analysis.\" + AnalysisStatus[key]),\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_QUALITY_ASSURANCE\r\n : actionTypes.SET_QUALITY_ASSURANCE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.qualityAssurance\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n {Globals.isAdmin && (\r\n \r\n ({\r\n key: country.id,\r\n value: country.id,\r\n label: country.localName,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n if (evt.currentTarget.value === \"\") {\r\n dispatch({\r\n type: actionTypes.RESET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_COUNTRY,\r\n payload: evt.currentTarget.value,\r\n });\r\n }\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"filters:clients.country\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(DisposalFilterDist);\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport BidStatus from \"../../../core/enums/BidStatus\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport myBidsListingStateModule from \"../../../core/state/buy-refrigerant/myBidsListingStateModule\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport MyBidDetailSideBar from \"../../../screens/SalesCenter/views/components/MyBidDetailSideBar\";\r\nimport QualityTestWizard from \"../../../screens/SalesCenter/views/components/QualityTestWizard\";\r\nimport TransactionDetails from \"../../../screens/SalesCenter/views/components/TransactionDetails\";\r\nimport PlainModal, { usePlainModal } from \"../../../components/modal/PlainModal\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport ActionButton from \"../../../components/elements/buttons/ActionButton\";\r\nimport CollectCylinderWizard from \"../../Stock/views/stock/components/CollectCylinderWizard\";\r\nimport WizardPayForOffer from \"../../../screens/SalesCenter/views/components/wizard/WizardPayForOffer\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport helpers from \"../../../core/helpers\";\r\nimport GradeCell from \"../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport DateCellWithExpiration from \"../../../components/data/DateCellWithExpiration\";\r\nimport TransactionStatus from \"../../../components/elements/general/TransactionStatus\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport TooltipCell from \"../../../components/data/TooltipCell\";\r\nimport DisposalFilterDist from \"./components/DisposalFilterDist\";\r\nimport BidGradePriceCell from \"../../SalesCenter/views/components/BidGradePriceCell\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\nimport HandlingCell from \"../../../components/data/HandlingCell\";\r\nimport DateCell from \"../../../components/data/DateCell\";\r\n\r\nconst actionTypes = {\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_EXPIRATION_DATE_FROM: \"SET_EXPIRATION_DATE_FROM\",\r\n RESET_EXPIRATION_DATE_FROM: \"RESET_EXPIRATION_DATE_FROM\",\r\n SET_EXPIRATION_DATE_TO: \"SET_EXPIRATION_DATE_TO\",\r\n RESET_EXPIRATION_DATE_TOM: \"RESET_EXPIRATION_DATE_TO\",\r\n SET_OFFER_CREATION__DATE_FROM: \"SET_OFFER_CREATION__DATE_FROM\",\r\n RESET_OFFER_CREATION__DATE_FROM: \"SET_OFFER_CREATION__DATE_FROM\",\r\n SET_OFFER_CREATION__DATE_TO: \"SET_OFFER_CREATION__DATE_TO\",\r\n RESET_OFFER_CREATION__DATE_TO: \"SET_OFFER_CREATION__DATE_TO\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst createSteps = (value, bidStatus, t, offerer = \"\", buyer = \"\") => {\r\n if (bidStatus === 2 || bidStatus === 3) {\r\n return Array.from([\r\n {\r\n status: 2,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\"common:status.canceled\").toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\"common:status.canceled\").toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 4/4 - ${t(\"common:status.canceled\").toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: buyer,\r\n }),\r\n },\r\n ]);\r\n }\r\n\r\n let result = Array.from([\r\n {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\"common:status.inProgress\").toUpperCase()} `,\r\n tip: t(\"common:status.progress_Accept\", {\r\n company: offerer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\"common:status.pending\").toUpperCase()} `,\r\n tip: t(\"common:status.pending_collect\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\"common:status.pending\").toUpperCase()} `,\r\n tip: t(\"common:status.pending_test\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 4/4 - ${t(\"common:status.pending\").toUpperCase()} `,\r\n tip: t(\"common:status.pending_confirmTest\", {\r\n company: offerer,\r\n }),\r\n },\r\n ]);\r\n\r\n if (bidStatus === 2) {\r\n result[0] = {\r\n status: 2,\r\n tip: t(\"screens:myOffers.toastNotification.rejectBid\"),\r\n };\r\n return result;\r\n } else if (bidStatus === 3) {\r\n result[0] = {\r\n status: 2,\r\n tip: t(\"screens:myBids.successfullyRevoked\"),\r\n };\r\n return result;\r\n }\r\n\r\n switch (value) {\r\n case OfferStatus.waitingForOffererFunds:\r\n result[0] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\"common:status.inProgress\").toUpperCase()} `,\r\n tip: t(\"common:status.progress_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.disposeAccepted:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\"common:status.inProgress\").toUpperCase()} `,\r\n tip: t(\"common:status.progress_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n\r\n case OfferStatus.buyerClaimedBottles:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\"common:status.inProgress\").toUpperCase()} `,\r\n tip: t(\"common:status.progress_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.qualityTested:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 4/4 - ${t(\"common:status.inProgress\").toUpperCase()} `,\r\n tip: t(\"common:status.progress_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.disposed:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/4 - ${t(\"common:status.completed\").toUpperCase()} `,\r\n tip: t(\"common:status.completed_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nconst tabItems = (t) => [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: RouteCreator.services.disposal(),\r\n },\r\n {\r\n name: t(\"navigation:myBids\"),\r\n path: RouteCreator.services.cleaningBids(),\r\n },\r\n];\r\n\r\nconst myBidsReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case \"SET_ACTIVETAB\":\r\n state.filter = {};\r\n state.filter.bidStatuses = action.payload.bidStatuses;\r\n state.filter.offerStatuses = action.payload.offerStatuses;\r\n break;\r\n case \"SET_PAGING\":\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case \"SET_PRESUMED_QUALITY\":\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_PRESUMED_QUALITY\":\r\n delete state.filter.presumedQuality;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_FROM:\r\n state.filter.bidDealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_FROM:\r\n delete state.filter.bidDealExpirationFrom;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_TO:\r\n state.filter.bidDealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_TO:\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n\r\n case actionTypes.SET_OFFER_CREATION__DATE_FROM:\r\n state.filter.offerCreationDateTimeFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_FROM:\r\n delete state.filter.offerCreationDateTimeFrom;\r\n break;\r\n case actionTypes.SET_OFFER_CREATION__DATE_TO:\r\n state.filter.offerCreationDateTimeTo = action.payload;\r\n break;\r\n case actionTypes.RESSET_OFFER_CREATION__DATE_TO:\r\n delete state.filter.offerCreationDateTimeTo;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst qualityGrades = [\"A\", \"B\", \"C\"];\r\n\r\nconst DisposalBidsColumns = {\r\n getColumns: (bidStatus, t, actions, offerStatus, currentLanguage, globalState, setOpenAccordionId) => {\r\n const pendingColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) => GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value ? t(\"filters:analysis.measurement\") : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\"sidebar:label.extraction.qualityGrade\")}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) => HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"bidId\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {\r\n actions.setSelectedBid(row.original);\r\n actions.toggleOpenRevoke(value);\r\n }}\r\n />\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ];\r\n const acceptedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) => GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value ? t(\"filters:analysis.measurement\") : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\"sidebar:label.extraction.qualityGrade\")}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) => HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"disposalServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.offeredPriceGradeC * row.original.quantitySum\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"myBids.headers.bidDealExpiration\"),\r\n accessor: \"bidDealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.offerStatus;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return DateCellWithExpiration(value, translation);\r\n },\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n const qualityTestColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) => GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value ? t(\"filters:analysis.measurement\") : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\"sidebar:label.extraction.qualityGrade\")}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) => HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"disposalServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.offeredPriceGradeC * row.original.quantitySum\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"myBids.headers.bidDealExpiration\"),\r\n accessor: \"bidDealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.offerStatus;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n const onHold = offerStatus === 10 ? t(\"common:status.onHold\") : null;\r\n return DateCellWithExpiration(value, translation, onHold);\r\n },\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value, row } }) => {\r\n if (row.original.bidStatus !== 1) return <>;\r\n return (\r\n \r\n \r\n {\r\n actions.showQualityTestForm(\r\n row.original.offerId,\r\n row.original.offerer,\r\n row.original.refrigerantGasTypeCode,\r\n row.original.cylindersAnalysis\r\n );\r\n }}\r\n disabled={\r\n row.original.offerStatus !== OfferStatus.buyerClaimedBottles ||\r\n !globalState.hasCertificateRights\r\n }\r\n />\r\n {\r\n actions.setSelectedBid(row.original);\r\n actions.togglePayPresumedQuality([value]);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ];\r\n const paymentCompletedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"confirmedRefrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"confirmedQuantity\",\r\n Cell: ({ cell: { value } }) => GreenCell({ cell: { value: value?.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"confirmedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value ? t(\"filters:analysis.measurement\") : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\"sidebar:label.extraction.qualityGrade\")}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) => HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"disposalServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.offeredPriceGradeC * row.original.quantitySum\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.disposedDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const rejectedRevokedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) => GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value ? t(\"filters:analysis.measurement\") : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\"sidebar:label.extraction.qualityGrade\")}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) => HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n (offerStatus.includes(OfferStatus.buyerEscrowedFunds) ||\r\n offerStatus.includes(OfferStatus.offererEscrowedFunds))\r\n ) {\r\n return acceptedColumns;\r\n } else if (bidStatus.includes(BidStatus.accepted) && offerStatus.includes(OfferStatus.disposed)) {\r\n return paymentCompletedColumns;\r\n } else if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n (offerStatus.includes(OfferStatus.buyerClaimedBottles) || offerStatus.includes(OfferStatus.qualityTested))\r\n ) {\r\n return qualityTestColumns;\r\n } else if (bidStatus.includes(BidStatus.revoked) || bidStatus.includes(BidStatus.rejected)) {\r\n return rejectedRevokedColumns;\r\n }\r\n return pendingColumns;\r\n },\r\n};\r\n\r\nconst DistributorDisposalBids = () => {\r\n const { myBids, isLoading, error, loadMyBids, loadBidById, details, loadGasTypes, gasTypesData } =\r\n useStateModule(myBidsListingStateModule);\r\n\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n const [selectedBid, setSelectedBid] = useState(null);\r\n const { userId } = UserService.getUserDetailsFromToken();\r\n const [globalState] = useSharedState(\"global\");\r\n const [filterState, dispatch] = useImmerReducer(myBidsReducer, {\r\n filter: {\r\n bidStatuses: [BidStatus.active],\r\n offerStatuses: [],\r\n userId: userId,\r\n },\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"bidDealExpiration\",\r\n descending: false,\r\n isDisposal: true,\r\n });\r\n\r\n useEffect(() => {\r\n loadMyBids(filterState);\r\n }, [loadMyBids, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const [myBidsDataState, getMyBidsForOffer] = useDataReducer(async (params) => {\r\n const bids = await MarketplaceService.getMyBids(params);\r\n const currentBid = bids.find((b) => b.bidId === params.bidId);\r\n return [currentBid];\r\n });\r\n\r\n const { t, i18n } = useTranslation([\"screens\", \"table\"]);\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:services\"),\r\n },\r\n {\r\n text: t(\"navigation:disposalService\"),\r\n },\r\n ]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const closeSideBar = () => {\r\n setOpenAccordionId(null);\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const [currentRowData, setCurrentRowData] = useState(null);\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n setCurrentRowData(row.original);\r\n setSelectedBid(row.original);\r\n await loadBidById(row.original.offerId);\r\n await getMyBidsForOffer({\r\n filter: { offerId: row.original.offerId },\r\n bidId: row.original.bidId,\r\n });\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [details.bidDetails, getMyBidsForOffer, loadBidById]\r\n );\r\n // revoke bid action\r\n const { modalProps: revokeModalProps, toggleOpen: toggleOpenRevoke } = useModal({\r\n title: t(\"actions:dialogs.revokeBid.title\"),\r\n onConfirm: async (bidId) => {\r\n const result = await MarketplaceService.revokeBid(bidId);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n setDetailViewIsOpened(false);\r\n loadMyBids(filterState);\r\n toast.success(t(\"screens:myBids.successfullyRevoked\"));\r\n }\r\n toggleOpenRevoke();\r\n },\r\n onCancel: () => {\r\n toggleOpenRevoke();\r\n },\r\n confirmText: t(\"actions:dialogs.revokeBid.confirmText\"),\r\n type: \"warning\",\r\n });\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n });\r\n\r\n const getTransactionDetails = async (offer, bidId) => {\r\n const result = await PaymentService.getTransactionDetails(0, bidId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: offer,\r\n details: result.data.data[0],\r\n });\r\n toggleTransactionDetails();\r\n }\r\n };\r\n\r\n const payForAGrade = useCallback(\r\n async (bidId, offeredPriceGradeA, offerInfo) => {\r\n ModalWizard.show(\r\n WizardPayForOffer(\r\n t,\r\n currentLanguage,\r\n currency,\r\n offeredPriceGradeA,\r\n offerInfo,\r\n false,\r\n t(\"forms:payForOffer.wizard.securityDeposit\"),\r\n t(\"forms:payForOffer.wizard.securityDeposit\"),\r\n t(\"forms:payForOffer.wizard.placeSecurityDeposit\")\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const res = await MarketplaceService.payAClass(bidId, values.paymentMethod, true);\r\n if (res && res.error) {\r\n toast.error(t(res.error.message));\r\n } else {\r\n toast.success(t(\"actions:dialogs.payAClass.toastNotifications.success\"));\r\n loadMyBids(filterState);\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n },\r\n [filterState]\r\n );\r\n\r\n const { modalProps: transactionDetailsProps, toggleOpen: toggleTransactionDetails } = usePlainModal({\r\n onClose: () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n //buy presumed quality action\r\n const { modalProps: buyPresumedQualityProps, toggleOpen: togglePayPresumedQuality } = useModal({\r\n title: t(\"actions:bidActions.sellServicePresumedQuality\"),\r\n onConfirm: async (offerIds) => {\r\n const result = await MarketplaceService.offerSoldByBuyer(offerIds);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n loadMyBids(filterState);\r\n toast.success(t(\"actions:dialogs.payPresumedQuality.success\"));\r\n }\r\n togglePayPresumedQuality();\r\n },\r\n onCancel: () => {\r\n togglePayPresumedQuality();\r\n },\r\n });\r\n\r\n const [, setOfferDetails] = useState(null);\r\n const getOfferDetails = (details) => {\r\n setOfferDetails(details);\r\n };\r\n\r\n //Upload Quality Test action\r\n const asyncEvery = async (arr, predicate) => {\r\n for (let e of arr) {\r\n if (!(await predicate(e))) return false;\r\n }\r\n return true;\r\n };\r\n\r\n const showQualityTestForm = useCallback(\r\n async (offerId, offerer, gasTypeCode, cylinders) => {\r\n ModalWizard.show(QualityTestWizard(t, offerId, offerer, gasTypeCode, cylinders), {\r\n onSubmit: async (values) => {\r\n const forms = ModalWizard.groupValues(values, \"_\");\r\n const uploadCompleted = await asyncEvery(forms, async (form) => {\r\n let gradeIdx = qualityGrades.indexOf(form.values.quality);\r\n form.values.grade = gradeIdx;\r\n const result = await MarketplaceService.addBuyerAnalysis(ModalWizard.asFormData(form.values));\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n });\r\n\r\n if (uploadCompleted) {\r\n toast.success(t(\"screens:myBids.successfullyTested\"));\r\n ModalWizard.hide();\r\n loadMyBids(filterState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n },\r\n [filterState, t, loadMyBids]\r\n );\r\n\r\n const columns = useMemo(() => {\r\n return DisposalBidsColumns.getColumns(\r\n filterState.filter.bidStatuses,\r\n t,\r\n {\r\n showQualityTestForm: showQualityTestForm,\r\n toggleOpenRevoke: toggleOpenRevoke,\r\n getOfferDetails: getOfferDetails,\r\n togglePayPresumedQuality: togglePayPresumedQuality,\r\n getTransactionDetails: getTransactionDetails,\r\n payForAGrade: payForAGrade,\r\n setSelectedBid: setSelectedBid,\r\n },\r\n filterState.filter.offerStatuses,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n );\r\n }, [\r\n filterState.filter.bidStatuses,\r\n filterState.filter.offerStatuses,\r\n t,\r\n showQualityTestForm,\r\n toggleOpenRevoke,\r\n toggleTransactionDetails,\r\n togglePayPresumedQuality,\r\n details,\r\n globalState,\r\n ]);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n let tabIndexSuccess = -1;\r\n\r\n const bidStatuses = filterState.filter.bidStatuses;\r\n const offerStatuses = filterState.filter.offerStatuses;\r\n let showQRButton = false;\r\n\r\n if (bidStatuses.includes(BidStatus.active)) {\r\n tabIndexSuccess = 0;\r\n } else if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n (offerStatuses.includes(OfferStatus.waitingForOffererFunds) ||\r\n offerStatuses.includes(OfferStatus.disposeAccepted) ||\r\n offerStatuses.includes(OfferStatus.offererEscrowedFunds))\r\n ) {\r\n tabIndexSuccess = 1;\r\n } else if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n (offerStatuses.includes(OfferStatus.buyerClaimedBottles) || offerStatuses.includes(OfferStatus.qualityTested))\r\n ) {\r\n tabIndexSuccess = 2;\r\n } else if (bidStatuses.includes(BidStatus.accepted) && offerStatuses.includes(OfferStatus.disposed)) {\r\n tabIndexSuccess = 3;\r\n }\r\n\r\n if (bidStatuses.includes(BidStatus.accepted) && offerStatuses.includes(OfferStatus.buyerEscrowedFunds)) {\r\n //flip this to true if you want the collect button to show, but only if the QR stickers\r\n //have a guid printed on them, otherwise this does not make any sense\r\n showQRButton = false;\r\n }\r\n\r\n let tabIndexFail = -1;\r\n switch (filterState.filter.bidStatuses[0]) {\r\n case BidStatus.revoked:\r\n tabIndexFail = 0;\r\n break;\r\n case BidStatus.rejected:\r\n tabIndexFail = 1;\r\n break;\r\n default:\r\n tabIndexFail = -1;\r\n }\r\n const listingKey = tabIndexSuccess + 10 * tabIndexFail;\r\n\r\n const [collectCompanies, setCollectCompanies] = useDataReducer(MarketplaceService.getOffersForCollection);\r\n useEffect(() => {\r\n setCollectCompanies();\r\n }, []);\r\n\r\n const { modalProps: collectInfoModalProps, toggleOpen: toggleCollectInfoModal } = useModal({\r\n title: t(\"forms:stock.wizard.collectCylinder.title\"),\r\n type: \"warning\",\r\n confirmText: t(\"actions:close\"),\r\n onConfirm: () => {\r\n toggleCollectInfoModal();\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:myBids.title\")}\r\n \r\n \r\n (\r\n <>\r\n {\r\n setSelectedBid(null);\r\n if (status[0].offerStatuses[0] === 21) {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [\r\n {\r\n id: \"lastChangeDateTime\",\r\n desc: true,\r\n },\r\n ],\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [\r\n {\r\n id: \"bidDealExpiration\",\r\n desc: false,\r\n },\r\n ],\r\n });\r\n }\r\n dispatch({\r\n type: \"SET_ACTIVETAB\",\r\n payload: status[0],\r\n });\r\n }}\r\n tabs={[\r\n {\r\n label: t(\"screens:myBids.tabs.pending\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.active],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.accepted\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.accepted],\r\n offerStatuses: [\r\n OfferStatus.waitingForOffererFunds,\r\n OfferStatus.offererEscrowedFunds,\r\n OfferStatus.disposeAccepted,\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.qualityTest\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.accepted],\r\n offerStatuses: [\r\n OfferStatus.qualityTested,\r\n OfferStatus.buyerClaimedBottles,\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:disposal.tabs.disposed\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.accepted],\r\n offerStatuses: [OfferStatus.disposed],\r\n },\r\n ],\r\n },\r\n ]}\r\n />\r\n {\r\n setSelectedBid(null);\r\n dispatch({\r\n type: \"SET_ACTIVETAB\",\r\n payload: status[0],\r\n });\r\n }}\r\n tabs={[\r\n {\r\n label: t(\"screens:myBids.tabs.revoked\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.revoked],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.rejected\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.rejected],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n ]}\r\n />\r\n\r\n {showQRButton && (\r\n \r\n {\r\n ev.preventDefault();\r\n collectCompanies.data.length === 0\r\n ? toggleCollectInfoModal()\r\n : ModalWizard.show(CollectCylinderWizard(t, collectCompanies), {\r\n onSubmit: async (values) => {\r\n // alert('uncomment BE action! Selected tags: ' + values.tagIds);\r\n const result = await MarketplaceService.shipToBuyer(\r\n values.tagIds\r\n );\r\n if (result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadMyBids(filterState);\r\n toast.success(t(\"actions:dialogs.shipOut.success\"));\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n });\r\n }}\r\n tooltip={t(\"screens:stockListing.tooltip.moveToCompanyStock\")}\r\n >\r\n {t(\"actions:collect\")}\r\n \r\n \r\n )}\r\n \r\n ),\r\n }}\r\n filterTitle={t(\"filters:disposalMarketPlace.filterTitle\")}\r\n showTitle={true}\r\n filterComponent={() => {\r\n return (\r\n \r\n );\r\n }}\r\n noDataText={t(\"myBids.noData\")}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailView={\r\n toggleOpenRevoke(myBidsDataState.data[0].bidId)}\r\n />\r\n }\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${currentRowData?.offerNumber}`}\r\n />\r\n\r\n \r\n

    {t(\"actions:dialogs.revokeBid.text\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${selectedBid.offeredPriceGradeA.toFixed(\r\n 2\r\n )} EUR/kg | ${selectedBid.offeredPriceGradeB.toFixed(\r\n 2\r\n )} EUR/kg | ${selectedBid.offeredPriceGradeC.toFixed(2)} EUR/kg`}\r\n

    \r\n

    {t(\"actions:dialogs.revokeBid.offeredItem\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${selectedBid.refrigerantGasTypeCode} | ${selectedBid.quantitySum.toFixed(2)} kg | ${\r\n selectedBid.pressumedGradeName\r\n } | ${\r\n selectedBid.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

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

    {t(\"actions:dialogs.payPresumedQuality.info\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${selectedBid.refrigerantGasTypeCode} | ${selectedBid.quantitySum.toFixed(2)} kg | ${\r\n selectedBid.pressumedGradeName\r\n } | ${\r\n selectedBid.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

    \r\n

    {t(\"actions:dialogs.payPresumedQuality.text\")}

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

    {t(\"forms:stock.wizard.collectCylinder.warning\")}

    \r\n
    \r\n \r\n );\r\n};\r\nexport default DistributorDisposalBids;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport {\r\n Num,\r\n NumInfo,\r\n NumSection,\r\n} from \"../../../../components/elements/sidebar/SidebarStyle\";\r\n\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst DistDisposalDetailSideBar = ({\r\n offer,\r\n details,\r\n item,\r\n bid,\r\n isLoading,\r\n companyId,\r\n toggleBidModal,\r\n bidAlreadyPlaced,\r\n toggleRevokeBid,\r\n getActiveBidStatus,\r\n}) => {\r\n const { t } = useTranslation([\"sidebar\"]);\r\n const shouldShow = item && !isLoading;\r\n const [openAccordion, setOpenAccordion] = useAccordionGroup();\r\n\r\n let currentBid = null;\r\n if (bid) currentBid = bid;\r\n if (offer && offer.acceptedBidInfo) currentBid = offer.acceptedBidInfo;\r\n const activeBidStatus = getActiveBidStatus();\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n {offer && (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n {details.buyingItemData.skUs && (\r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {details.buyingItemData.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n return (\r\n
    \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n \r\n N/A\r\n \r\n \r\n {t(\r\n \"actions:noContamination\"\r\n )}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.aGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.bGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.cGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n {currentBid && currentBid.bidStatus === activeBidStatus && (\r\n \r\n \r\n \r\n\r\n \r\n {/* \r\n */}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {companyId &&\r\n companyId !== item.companyId &&\r\n !bidAlreadyPlaced &&\r\n activeBidStatus === 0 && (\r\n
    \r\n \r\n {t(\"label.placeBid\")}\r\n \r\n
    \r\n )}\r\n {bidAlreadyPlaced && bid && bid.bidStatus === 0 && (\r\n
    \r\n \r\n {t(\"actions:bidActions.revokeBid\")}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DistDisposalDetailSideBar;\r\n","import React from \"react\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport OfferBids from \"../../../../SalesCenter/views/components/OfferBids\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport { Checkbox } from \"../../../../../components/elements/form-elements\";\r\n\r\nconst validGrades = (t) => {\r\n return buildValidation({\r\n gradeC: ValidationRule.min(\r\n 0.1,\r\n t(\"forms:bid.wizard.minimum\"),\r\n t(\"forms:bid.wizard.minimum\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst WizardPlaceDisposalBid = (\r\n t,\r\n initialValues,\r\n offers,\r\n bidIsLoading,\r\n enableHandlingCosts\r\n) => {\r\n initialValues.chargeSeller = false;\r\n const handleChargeSellerCheck = (ev, formik, updatePropertyBag) => {\r\n formik.setFieldValue(\"chargeSeller\", ev.target.checked);\r\n updatePropertyBag({ chargeSeller: ev.target.checked });\r\n };\r\n return {\r\n title: t(\"forms:bid.wizard.title\"),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:bid.wizard.step1\"),\r\n fieldNames: [\"gradeA\", \"gradeB\", \"gradeC\"],\r\n validation: validGrades(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:bid.wizard.infoTitle\")}\r\n \r\n \r\n {t(\"forms:bid.wizard.infoText\")}\r\n
    \r\n {t(\"forms:bid.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n name: t(\"forms:bid.wizard.step2\"),\r\n fieldNames: [\r\n \"chargeSeller\",\r\n \"transportationCosts\",\r\n \"administrationCosts\",\r\n ],\r\n // validation: validCosts(t),\r\n onStepRender: (props) => {\r\n props.updatePropertyBag({ handling: true });\r\n props.formik.setFieldValue(\r\n \"chargeSeller\",\r\n props.propertyBag.chargeSeller\r\n );\r\n },\r\n fields: (\r\n formik,\r\n propertyBag,\r\n updatePropertyBag,\r\n updateFields\r\n ) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:bid.wizard.infoTitle\")}\r\n \r\n \r\n {t(\"forms:bid.wizard.infoText\")}\r\n
    \r\n {t(\"forms:bid.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n handleChargeSellerCheck(\r\n ev,\r\n formik,\r\n updatePropertyBag\r\n )\r\n }\r\n {...formik}\r\n />\r\n\r\n \r\n \r\n );\r\n },\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default WizardPlaceDisposalBid;\r\n","import React, { useEffect, useMemo, useState, useCallback, useRef } from \"react\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport marketplaceListingStateModule from \"../../../core/state/buy-refrigerant/marketplaceListingStateModule\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport DateCell from \"../../../components/data/DateCell\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport DistDisposalDetailSideBar from \"./components/DistDisposalDetailSideBar\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport DetailSideBar from \"../../../components/modal/DetailSideBar\";\r\nimport OfferBids from \"../../SalesCenter/views/components/OfferBids\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport Button from \"../../../components/elements/buttons/Button\";\r\nimport useClickAway from \"../../../hooks/_shared/useClickAway\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport { toast } from \"react-toastify\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport DisposalFilterDist from \"./components/DisposalFilterDist\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport WizardPlaceDisposalBid from \"./components/wizard/WizardPlaceDisposalBid\";\r\nimport GradeCell from \"../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst actionTypes = {\r\n SET_HIDEMYOFFERS: \"SET_HIDEMYOFFERS\",\r\n RESET_HIDEMYOFFERS: \"RESET_HIDEMYOFFERS\",\r\n SET_HIDEWITHBIDS: \"SET_HIDEWITHBIDS\",\r\n RESET_HIDEWITHBIDS: \"RESET_HIDEWITHBIDS\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY: \"RESET_GAS_QUANTITY\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_OFFER_CREATION__DATE_FROM: \"SET_OFFER_CREATION__DATE_FROM\",\r\n RESET_OFFER_CREATION__DATE_FROM: \"RESET_OFFER_CREATION__DATE_FROM\",\r\n SET_OFFER_CREATION__DATE_TO: \"SET_OFFER_CREATION__DATE_TO\",\r\n RESET_OFFER_CREATION__DATE_TO: \"RESET_OFFER_CREATION__DATE_TO\",\r\n SET_DEAL_EXPIRATION_FROM: \"SET_DEAL_EXPIRATION_FROM\",\r\n RESET_DEAL_EXPIRATION_FROM: \"RESET_DEAL_EXPIRATION_FROM\",\r\n SET_DEAL_EXPIRATION_TO: \"SET_DEAL_EXPIRATION_TO\",\r\n RESET_DEAL_EXPIRATION_TO: \"RESET_DEAL_EXPIRATION_TO\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_COUNTRY: \"SET_COUNTRY\",\r\n RESET_COUNTRY: \"RESET_COUNTRY\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst marketplaceReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case \"SET_ACTIVETAB\":\r\n state.filter.offerStatuses = action.payload;\r\n state.filter.bidStatuses = [];\r\n delete state.filter.hasOffers;\r\n delete state.filter.gasType;\r\n delete state.filter.gasQuantityFrom;\r\n delete state.filter.gasQuantityTo;\r\n delete state.filter.presumedQuality;\r\n delete state.filter.hasAnalysis;\r\n delete state.filter.bidDealExpirationFrom;\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n case \"SET_ACTIVETAB_FAIL\":\r\n state.filter.offerStatuses = [];\r\n state.filter.bidStatuses = action.payload;\r\n delete state.filter.hasOffers;\r\n delete state.filter.gasType;\r\n delete state.filter.gasQuantityFrom;\r\n delete state.filter.gasQuantityTo;\r\n delete state.filter.presumedQuality;\r\n delete state.filter.hasAnalysis;\r\n delete state.filter.bidDealExpirationFrom;\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n case \"SET_HIDEWITHBIDS\":\r\n if (action.payload === \"2\") {\r\n state.filter.hideOffersWithMyBid = true;\r\n delete state.filter.showOnlyMyBids;\r\n } else {\r\n delete state.filter.hideOffersWithMyBid;\r\n state.filter.showOnlyMyBids = true;\r\n }\r\n break;\r\n case \"RESET_HIDEWITHBIDS\":\r\n delete state.filter.hideOffersWithMyBid;\r\n delete state.filter.showOnlyMyBids;\r\n break;\r\n case \"SET_PAGING\":\r\n state.page = action.payload.pageIndex + 1;\r\n state.pageSize = action.payload.pageSize;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case \"SET_GAS_QUANTITY\":\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case \"RESET_GAS_QUANTITY\":\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case \"SET_PRESUMED_QUALITY\":\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_PRESUMED_QUALITY\":\r\n delete state.filter.presumedQuality;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"true\" ? true : false;\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n\r\n case actionTypes.SET_OFFER_CREATION__DATE_FROM:\r\n state.filter.offerCreationDateTimeFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_FROM:\r\n delete state.filter.offerCreationDateTimeFrom;\r\n break;\r\n case actionTypes.SET_OFFER_CREATION__DATE_TO:\r\n state.filter.offerCreationDateTimeTo = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_TO:\r\n delete state.filter.offerCreationDateTimeTo;\r\n break;\r\n\r\n case actionTypes.SET_DEAL_EXPIRATION_FROM:\r\n state.filter.dealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_DEAL_EXPIRATION_FROM:\r\n delete state.filter.dealExpirationFrom;\r\n break;\r\n case actionTypes.SET_DEAL_EXPIRATION_TO:\r\n state.filter.dealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_DEAL_EXPIRATION_TO:\r\n delete state.filter.dealExpirationTo;\r\n break;\r\n case actionTypes.SET_COUNTRY:\r\n state.filter.countryId = action.payload;\r\n break;\r\n case actionTypes.RESET_COUNTRY:\r\n delete state.filter.countryId;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst tabItems = (t, isAdmin) => {\r\n let items = [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: RouteCreator.services.disposal(),\r\n },\r\n ];\r\n if (!isAdmin) {\r\n items.push({\r\n name: t(\"navigation:myBids\"),\r\n path: RouteCreator.services.disposalBids(),\r\n });\r\n }\r\n return items;\r\n};\r\n\r\nconst initialValues = {\r\n gradeA: \"0.00\",\r\n gradeB: \"0.00\",\r\n gradeC: \"0.00\",\r\n transportationCosts: 0,\r\n administrationCosts: 0,\r\n chargeSeller: false,\r\n};\r\n\r\nconst createSteps = (value, t, offerer = \"\", buyer = \"\") => {\r\n let result = Array.from([{ status: 0 }, { status: 0 }]);\r\n switch (value) {\r\n case OfferStatus.waitingForOffererFunds:\r\n result[0] = {\r\n status: 2,\r\n tip: t(\"screens:myOffers.waitingForOffererFunds\"),\r\n };\r\n break;\r\n case OfferStatus.disposeAccepted:\r\n result[0] = {\r\n status: 1,\r\n tip: t(\"screens:myOffers.sellerEscrowed\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.disposed:\r\n result[0] = {\r\n status: 1,\r\n tip: t(\"screens:myOffers.sellerEscrowed\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n tip: t(\"screens:myOffers.buyerClaimed\", {\r\n company: buyer,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nconst disposalColumns = ({\r\n t,\r\n currentLanguage,\r\n offerStatuses,\r\n CompanyId,\r\n setCurrentOfferTranslations,\r\n toggleOpen,\r\n openPlaceBid,\r\n revokeBid,\r\n activeBidStatus,\r\n globalState,\r\n}) => {\r\n const columns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { row, value } }) =>\r\n GreenCell({\r\n cell: {\r\n value:\r\n value.toFixed(2) +\r\n ` kg / ${row.original.numberOfCylinders || \"-\"} ${t(\"screens:technician.cylinders\")}`,\r\n },\r\n }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value ? t(\"filters:analysis.measurement\") : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: t(\"table:headers.owner\"),\r\n accessor: \"offerer\",\r\n },\r\n {\r\n Header: t(\"table:headers.published\"),\r\n accessor: \"offerCreationDateTime\",\r\n Cell: (params) => {\r\n return DateCell(params);\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({\r\n cell: {\r\n row: { original },\r\n value,\r\n },\r\n }) => {\r\n return (\r\n \r\n {original.offerStatus !== OfferStatus.disposed && (\r\n \r\n {!original.bidAlreadyPlaced &&\r\n original.offererId !== CompanyId &&\r\n activeBidStatus === 0 && (\r\n {\r\n setCurrentOfferTranslations(\r\n `${original.refrigerantGasTypeCode} - ${original.quantity}kg`\r\n );\r\n openPlaceBid(original);\r\n }}\r\n />\r\n )}\r\n {original.bidAlreadyPlaced && original.offererId !== CompanyId && (\r\n {\r\n revokeBid(original);\r\n }}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ];\r\n\r\n return columns;\r\n};\r\n\r\nconst DistributorDisposalMarket = () => {\r\n const {\r\n buyingItems,\r\n isLoading,\r\n error,\r\n loadBuyingItems,\r\n loadBuyingItemsById,\r\n details,\r\n unpublishData,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(marketplaceListingStateModule);\r\n const { t, i18n } = useTranslation(\"screens\");\r\n const [globalState] = useSharedState(\"global\");\r\n\r\n const [tabIndex, setTabIndex] = useState(0);\r\n const [tabIndexFail, settabIndexFail] = useState(-1);\r\n\r\n const getActiveBidStatus = () => {\r\n if (tabIndex === 1 || tabIndex === 2) return 1;\r\n if (tabIndexFail === 0) return 3;\r\n if (tabIndexFail === 1) return 2;\r\n return 0;\r\n };\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:services\"),\r\n },\r\n {\r\n text: t(\"navigation:disposalService\"),\r\n },\r\n ]);\r\n\r\n const { CompanyId } = useMemo(() => UserService.getUserDetailsFromToken(), []);\r\n\r\n const [filterState, dispatch] = useImmerReducer(marketplaceReducer, {\r\n filter: {\r\n showDisposals: true,\r\n hideOffersWithMyBid: true,\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"offerCreationDateTime\",\r\n descending: true,\r\n });\r\n\r\n const [myBids, setMyBids] = useState([]);\r\n\r\n useEffect(() => {\r\n loadBuyingItems(filterState);\r\n }, [loadBuyingItems, filterState]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n const [selectedOffer, setSelectedOffer] = useState({\r\n offer: null,\r\n bid: null,\r\n });\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n let currentBid = null;\r\n\r\n const bids = await MarketplaceService.getBids(row.original.offerId);\r\n //Filter ny activeBidStatus\r\n if (bids.length > 0) {\r\n const activeBidStatus = getActiveBidStatus();\r\n const activeBids = bids.filter((b) => b.bidStatus === activeBidStatus);\r\n if (activeBids.length > 0) currentBid = activeBids[0];\r\n }\r\n\r\n await loadBuyingItemsById(row.original.offerId);\r\n setSelectedOffer({ offer: row.original, bid: currentBid });\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [loadBuyingItemsById, tabIndex, tabIndexFail]\r\n );\r\n\r\n const closeSideBar = () => {\r\n setDetailViewIsOpened(false);\r\n setSelectedOffer({\r\n offer: null,\r\n bid: null,\r\n });\r\n };\r\n\r\n //unpublish action\r\n const { modalProps, toggleOpen } = useModal({\r\n type: \"warning\",\r\n title: t(\"actions:dialogs.unPublishOffer.title\"),\r\n onConfirm: async (model) => {\r\n const result = await StockService.unpublishFromMarketplace({\r\n offerIds: [model.original.offerId],\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n loadBuyingItems(filterState);\r\n toast.success(t(\"myOffers.toastNotification.offerUnpublished\"));\r\n toggleOpen();\r\n }\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.unPublishOffer.confirmText\"),\r\n });\r\n\r\n // revoke bid action\r\n const revokeBid = async (offer) => {\r\n const bids = await MarketplaceService.getBids(offer.offerId);\r\n const currentBid = bids.filter((b) => b.bidId === offer.bidId)[0];\r\n setSelectedOffer({ offer: offer, bid: currentBid });\r\n toggleOpenRevoke();\r\n };\r\n\r\n const { modalProps: revokeModalProps, toggleOpen: toggleOpenRevoke } = useModal({\r\n title: t(\"actions:dialogs.revokeBid.title\"),\r\n onConfirm: async () => {\r\n const result = await MarketplaceService.revokeBid(selectedOffer.bid.bidId);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n loadBuyingItems(filterState);\r\n setDetailViewIsOpened(false);\r\n toast.success(t(\"screens:myBids.successfullyRevoked\"));\r\n }\r\n toggleOpenRevoke();\r\n },\r\n onCancel: () => {\r\n toggleOpenRevoke();\r\n },\r\n confirmText: t(\"actions:dialogs.revokeBid.confirmText\"),\r\n type: \"warning\",\r\n });\r\n\r\n const [currentOfferTranslations, setCurrentOfferTranslations] = useState(\"\");\r\n const getRowClassName = useCallback((row) => {\r\n if (row.original.offererId === CompanyId) {\r\n return \"my-company\";\r\n }\r\n }, []);\r\n\r\n const [bidViewIsOpened, setBidViewIsOpened] = useState(false);\r\n const [offers, setOffers] = useState([]);\r\n const bidSideBarRef = useRef(null);\r\n\r\n const closeBidSidebar = () => {\r\n setBidViewIsOpened(!bidViewIsOpened);\r\n };\r\n\r\n const [selectedRows, setSelectedRows] = useState([]);\r\n const toggleMultipleBids = (rows) => {\r\n setBidViewIsOpened(!bidViewIsOpened);\r\n if (rows) {\r\n const offers = rows.reduce((acc, currentRow) => {\r\n let offer = currentRow.original;\r\n acc.push(offer);\r\n return acc;\r\n }, []);\r\n\r\n setOffers(offers);\r\n }\r\n };\r\n\r\n useClickAway(bidSideBarRef, () => {\r\n setBidViewIsOpened(false);\r\n });\r\n\r\n const shouldShowCheckbox = useCallback(\r\n (row) => {\r\n if (row.original.bidAlreadyPlaced) {\r\n return false;\r\n }\r\n if (row.original.offererId === CompanyId) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n [CompanyId]\r\n );\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const openPlaceBid = (offer) => {\r\n return ModalWizard.show(\r\n WizardPlaceDisposalBid(t, initialValues, [offer], buyingItems.isLoading, globalState.enableHandlingCosts),\r\n {\r\n onSubmit: async (values) => {\r\n if (!values.chargeSeller) {\r\n values.administrationCosts = 0;\r\n values.transportationCosts = 0;\r\n }\r\n const result = await MarketplaceService.addBid({\r\n gradeA: values.gradeA,\r\n gradeB: values.gradeB,\r\n gradeC: values.gradeC,\r\n offerIds: [offer.offerId],\r\n disposalBid: true,\r\n administrationCosts: values.administrationCosts,\r\n transportationCosts: values.transportationCosts,\r\n });\r\n\r\n if (result && result.error) toast.error(t(result.error.message));\r\n else {\r\n loadBuyingItems(filterState);\r\n toast.success(t(\"marketplace.toastNotification.bidPlaced\"));\r\n closeBidSidebar();\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(setDetailViewIsOpened(false));\r\n },\r\n }\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:disposalService.title\")}\r\n \r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n //enableSelection\r\n paging={{\r\n enablePaging: true,\r\n pageCount: buyingItems.totalPages,\r\n pageSize: buyingItems.pageSize,\r\n onPageChange: pageChange,\r\n currentPageIndex: buyingItems.currentPage - 1,\r\n }}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortChange,\r\n currentSortBy: currentSortBy,\r\n }}\r\n setSelectedRows={setSelectedRows}\r\n noDataText={t(\"marketplace.notification\")}\r\n getRowClassName={getRowClassName}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n shouldShowSelection={shouldShowCheckbox}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailView={\r\n openPlaceBid(selectedOffer.offer)}\r\n toggleRevokeBid={() => revokeBid(selectedOffer.offer)}\r\n />\r\n }\r\n />\r\n\r\n {offers && offers.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n \r\n

    {t(\"actions:dialogs.unPublishOffer.text\")}

    \r\n

    \r\n {modalProps.modal &&\r\n modalProps.modal.original &&\r\n `${\r\n modalProps.modal.original.refrigerantGasTypeCode\r\n } | ${modalProps.modal.original.quantity?.toFixed(2)} kg | ${\r\n modalProps.modal.original.pressumedGradeName\r\n } | ${\r\n modalProps.modal.original.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

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

    {t(\"actions:dialogs.revokeBid.text\")}

    \r\n

    \r\n {selectedOffer.bid && `•${selectedOffer.bid.offeredPriceGradeC.toFixed(2)} EUR/kg`}\r\n

    \r\n

    {t(\"actions:dialogs.revokeBid.offeredItem\")}

    \r\n

    \r\n {selectedOffer.offer &&\r\n `• ${selectedOffer.offer.refrigerantGasTypeCode} | ${selectedOffer.offer.quantity.toFixed(\r\n 2\r\n )} kg | ${selectedOffer.offer.pressumedGradeName} | ${\r\n selectedOffer.offer.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

    \r\n
    \r\n\r\n
    \r\n 0 ? \"block\" : \"none\",\r\n }}\r\n onClick={() => toggleMultipleBids(selectedRows)}\r\n className=\"primary\"\r\n >\r\n {t(\"marketplace.button.placeMultipleBids\")}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default DistributorDisposalMarket;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Button from \"../../../../components/elements/buttons/Button\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper, {\r\n AccordionGroup,\r\n} from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport {\r\n Num,\r\n NumInfo,\r\n NumSection,\r\n} from \"../../../../components/elements/sidebar/SidebarStyle\";\r\n\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst CleaningDetailSideBar = ({\r\n offer,\r\n details,\r\n companyId,\r\n toggleBidModal,\r\n bidAlreadyPlaced,\r\n openAccordionId,\r\n}) => {\r\n const { t } = useTranslation([\"sidebar\"]);\r\n const shouldShow = details !== null;\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordion, setOpenAccordion] =\r\n useAccordionGroup(openAccordionId);\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n {offer && (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n {details.skUs && (\r\n \r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {details.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n return (\r\n \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n \r\n N/A\r\n \r\n \r\n {t(\r\n \"actions:noContamination\"\r\n )}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.aGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.bGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.cGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {companyId &&\r\n companyId !== details.companyId &&\r\n !bidAlreadyPlaced && (\r\n
    \r\n \r\n {t(\"label.placeBid\")}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CleaningDetailSideBar;\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ClearableInput from \"../../../../components/elements/form-elements/ClearableInput\";\r\nimport Select from \"../../../../components/elements/form-elements/Select\";\r\nimport Filters from \"../../../../components/filter/Filters\";\r\nimport useDebouncedCallback from \"../../../../hooks/_shared/useDebouncedCallback\";\r\nimport { DateTimePicker } from \"../../../../components/elements/form-elements/DatePicker\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport Label from \"../../../../components/elements/form-elements/Label\";\r\nimport AnalysisStatus from \"../../../../core/enums/AnalysisStatus\";\r\nimport useSharedState from \"../../../../hooks/_shared/useSharedState\";\r\n\r\nconst CleaningFilter = ({ filterState, dispatch, actionTypes, gasTypes }) => {\r\n const { t } = useTranslation(\"filters\");\r\n const [globalState] = useSharedState(\"global\");\r\n const isDistributor = globalState.isDistributor;\r\n\r\n const [quantityToChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({ type: actionTypes.SET_GAS_QUANTITY_TO, payload: text })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_TO,\r\n payload: text,\r\n });\r\n });\r\n\r\n const [quantityFromChanged] = useDebouncedCallback((text) => {\r\n text\r\n ? dispatch({\r\n type: actionTypes.SET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_GAS_QUANTITY_FROM,\r\n payload: text,\r\n });\r\n });\r\n\r\n const hideWithBids = [\r\n { key: t(\"offers.hideItemsWithBids\"), value: true },\r\n { key: t(\"offers.showItemsWithBids\"), value: false },\r\n ];\r\n\r\n const showWithBids = [\r\n { key: t(\"offers.allOffers\"), value: false },\r\n { key: t(\"offers.offersWithBids\"), value: true },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n {isDistributor && (\r\n <>\r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hideOffersWithMyBid !==\r\n undefined\r\n ? filterState.hideOffersWithMyBid\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HIDEWITHBIDS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HIDEWITHBIDS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.hideItemsWithBids\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_FROM\r\n : actionTypes.SET_OFFER_CREATION__DATE_FROM,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n new Date(date)\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n dispatch({\r\n type:\r\n date === \"\"\r\n ? actionTypes.RESET_OFFER_CREATION__DATE_TO\r\n : actionTypes.SET_OFFER_CREATION__DATE_TO,\r\n payload:\r\n date === \"\"\r\n ? date\r\n : helpers.dateToIsoDateString(\r\n date\r\n ),\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n\r\n {!isDistributor && (\r\n <>\r\n \r\n ({\r\n key: item.key,\r\n value: item.value,\r\n label: item.key,\r\n }))}\r\n defaultValue={\r\n filterState.hasOffers !== undefined\r\n ? filterState.hasOffers\r\n : false\r\n }\r\n handleChange={(evt) =>\r\n evt.currentTarget.value === \"true\"\r\n ? dispatch({\r\n type: actionTypes.SET_HASOFFERS,\r\n payload: true,\r\n })\r\n : dispatch({\r\n type: actionTypes.RESET_HASOFFERS,\r\n })\r\n }\r\n className=\"filters\"\r\n labelText={t(\"offers.showItemsWithBids\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n )}\r\n\r\n \r\n ({\r\n key: gas.code,\r\n value: gas.code,\r\n label: gas.code,\r\n }))\r\n : []\r\n }\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_GAS_TYPE\r\n : actionTypes.SET_GAS_TYPE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.gasType\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n {\r\n quantityFromChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityFrom\")}\r\n title={t(\"gas.quantityFrom\")}\r\n className=\"filters left group\"\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n quantityToChanged(evt.currentTarget.value);\r\n }}\r\n placeholder={t(\"gas.quantityTo\")}\r\n title={t(\"gas.quantityTo\")}\r\n className=\"filters right group\"\r\n />\r\n \r\n \r\n\r\n \r\n ({\r\n key: key,\r\n value: key,\r\n label: t(\"analysis.\" + AnalysisStatus[key]),\r\n }))}\r\n handleChange={(evt) => {\r\n dispatch({\r\n type:\r\n evt.currentTarget.value === \"\"\r\n ? actionTypes.RESET_QUALITY_ASSURANCE\r\n : actionTypes.SET_QUALITY_ASSURANCE,\r\n payload: evt.currentTarget.value,\r\n });\r\n }}\r\n className=\"filters\"\r\n labelText={t(\"gas.qualityAssurance\")}\r\n labelClassName=\"sr-only\"\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CleaningFilter;\r\n","import React from \"react\";\r\nimport {InfoText, InfoTitle, InfoWrapper, RoundInfo} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport OfferBids from \"../../../../SalesCenter/views/components/OfferBids\";\r\nimport ValidationRule, {buildValidation} from \"../../../../../core/validations/ValidationRule\";\r\nimport { Checkbox } from \"../../../../../components/elements/form-elements\";\r\nconst validGrades = (t) => {\r\n return buildValidation({\r\n gradeA: ValidationRule.min(0.1, t('forms:bid.wizard.minimum'), t('forms:bid.wizard.minimum')).rule,\r\n gradeB: ValidationRule.min(0.1, t('forms:bid.wizard.minimum'), t('forms:bid.wizard.minimum')).rule,\r\n })\r\n}\r\n\r\nconst WizardPlaceCleaningBid = (t, initialValues, offers, bidIsLoading, enableHandlingCosts) => {\r\n initialValues.chargeSeller = false;\r\n const handleChargeSellerCheck = (ev, formik, updatePropertyBag) => {\r\n formik.setFieldValue(\"chargeSeller\", ev.target.checked);\r\n updatePropertyBag({ chargeSeller: ev.target.checked });\r\n };\r\n return {\r\n title: t('forms:bid.wizard.title'),\r\n initialValues: initialValues,\r\n steps: [\r\n {\r\n name: t('forms:bid.wizard.step1'),\r\n fieldNames: [\r\n \"gradeA\",\r\n \"gradeB\",\r\n \"gradeC\"\r\n ],\r\n validation: validGrades(t),\r\n fields: (formik) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t('forms:bid.wizard.infoTitle')}\r\n \r\n \r\n {t('forms:bid.wizard.infoText')}
    \r\n {t('forms:bid.wizard.infoText2')}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n )}\r\n },\r\n {\r\n name: t(\"forms:bid.wizard.step2\"),\r\n fieldNames: [\r\n \"chargeSeller\",\r\n \"transportationCosts\",\r\n \"administrationCosts\",\r\n ],\r\n // validation: validCosts(t),\r\n onStepRender: (props) => {\r\n props.updatePropertyBag({ handling: true });\r\n props.formik.setFieldValue(\r\n \"chargeSeller\",\r\n props.propertyBag.chargeSeller\r\n );\r\n },\r\n fields: (\r\n formik,\r\n propertyBag,\r\n updatePropertyBag,\r\n updateFields\r\n ) => {\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:bid.wizard.infoTitle\")}\r\n \r\n \r\n {t(\"forms:bid.wizard.infoText\")}\r\n
    \r\n {t(\"forms:bid.wizard.infoText2\")}\r\n
    \r\n
    \r\n
    \r\n \r\n handleChargeSellerCheck(\r\n ev,\r\n formik,\r\n updatePropertyBag\r\n )\r\n }\r\n {...formik}\r\n />\r\n\r\n \r\n \r\n );\r\n },\r\n },\r\n ]\r\n }\r\n};\r\n\r\nexport default WizardPlaceCleaningBid;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport stockListingStateModule from \"../../../core/state/stock/stockListingStateModule\";\r\nimport useListingPageContext from \"../../../core/state/useListingPage\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport DateCell from \"../../../components/data/DateCell\";\r\nimport CleaningDetailsSidebar from \"./components/CleaningDetailsSidebar\";\r\nimport CleaningFilter from \"./components/CleaningFilter\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport WizardPlaceCleaningBid from \"./components/wizard/WizardPlaceCleaningBid\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport { toast } from \"react-toastify\";\r\nimport UserService from \"../../../services/User/UserService\";\r\n\r\nconst actionTypes = {\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_OFFER_CREATION__DATE_FROM: \"SET_OFFER_CREATION__DATE_FROM\",\r\n RESET_OFFER_CREATION__DATE_FROM: \"RESET_OFFER_CREATION__DATE_FROM\",\r\n SET_OFFER_CREATION__DATE_TO: \"SET_OFFER_CREATION__DATE_TO\",\r\n RESET_OFFER_CREATION__DATE_TO: \"RESET_OFFER_CREATION__DATE_TO\",\r\n SET_PAGING: \"SET_PAGING\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_HIDEWITHBIDS: \"SET_HIDEWITHBIDS\",\r\n RESET_HIDEWITHBIDS: \"RESET_HIDEWITHBIDS\",\r\n};\r\n\r\nconst tabItems = (t, isAdmin = false) => {\r\n let items = [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: RouteCreator.services.cleaning(),\r\n },\r\n ];\r\n if (!isAdmin)\r\n items.push({\r\n name: t(\"navigation:myBids\"),\r\n path: RouteCreator.services.cleaningBids(),\r\n });\r\n return items;\r\n};\r\n\r\nconst filterReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.gasType = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n\r\n case actionTypes.SET_OFFER_CREATION__DATE_FROM:\r\n state.filter.offerCreationDateTimeFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_FROM:\r\n delete state.filter.offerCreationDateTimeFrom;\r\n break;\r\n\r\n case actionTypes.SET_OFFER_CREATION__DATE_TO:\r\n state.filter.offerCreationDateTimeTo = action.payload;\r\n break;\r\n case actionTypes.RESET_OFFER_CREATION__DATE_TO:\r\n delete state.filter.offerCreationDateTimeTo;\r\n break;\r\n\r\n case actionTypes.SET_QUALITY_ASSURANCE:\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case actionTypes.RESET_QUALITY_ASSURANCE:\r\n delete state.filter.hasAnalysis;\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_HIDEWITHBIDS:\r\n state.filter.hideOffersWithMyBid = action.payload;\r\n break;\r\n case actionTypes.RESET_HIDEWITHBIDS:\r\n delete state.filter.hideOffersWithMyBid;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst initialValues = {\r\n gradeA: \"0.00\",\r\n gradeB: \"0.00\",\r\n gradeC: \"0.00\",\r\n transportationCosts: 0,\r\n administrationCosts: 0,\r\n chargeSeller: false,\r\n};\r\n\r\nconst CleaningMarketplace = () => {\r\n const [cleaningItems, setCleaningItems] = useState({});\r\n const [globalState] = useSharedState(\"global\");\r\n const isDistributor = globalState.isDistributor;\r\n const { isLoading, error, loadGasTypes, gasTypesData } = useStateModule(\r\n stockListingStateModule\r\n );\r\n\r\n const { CompanyId } = useMemo(\r\n () => UserService.getUserDetailsFromToken(),\r\n []\r\n );\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n const [detailViewKey, setDetailViewKey] = useState(null);\r\n const [currentOfferTranslations, setCurrentOfferTranslations] =\r\n useState(\"\");\r\n\r\n const { state: listingPageState, actions: listingPageActions } =\r\n useListingPageContext();\r\n\r\n useEffect(() => {\r\n return listingPageActions.resetState();\r\n }, []);\r\n\r\n const [filterState, dispatch] = useImmerReducer(filterReducer, {\r\n filter: {\r\n hideOffersWithMyBid: true,\r\n },\r\n page: 1,\r\n pageSize: 10,\r\n orderColumn: \"refrigerantGasTypeCode\",\r\n descending: true,\r\n });\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const { t } = useTranslation(\"screens\");\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:services\"),\r\n },\r\n {\r\n text: t(\"navigation:cleaningService\"),\r\n },\r\n ]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const fetchCleaningItems = async () => {\r\n const res = await StockService.getCleaningListing({\r\n isInstaller: !isDistributor & !globalState.isAdmin,\r\n options: filterState,\r\n });\r\n setCleaningItems(res.data);\r\n };\r\n\r\n useEffect(() => {\r\n fetchCleaningItems();\r\n }, [filterState]);\r\n\r\n const [currentStockSkuId] = useState({});\r\n\r\n const openPlaceBid = (offer) => {\r\n return ModalWizard.show(\r\n WizardPlaceCleaningBid(t, initialValues, [offer], false, globalState.enableHandlingCosts),\r\n {\r\n onSubmit: async (values) => {\r\n if (!values.chargeSeller) {\r\n values.administrationCosts = 0;\r\n values.transportationCosts = 0;\r\n }\r\n const result = await MarketplaceService.addBid({\r\n gradeA: values.gradeA,\r\n gradeB: values.gradeB,\r\n gradeC: values.gradeC,\r\n offerIds: [offer.offerId],\r\n cleaningBid: true,\r\n administrationCosts: values.administrationCosts,\r\n transportationCosts: values.transportationCosts,\r\n });\r\n\r\n if (result && result.error)\r\n toast.error(t(result.error.message));\r\n else {\r\n await fetchCleaningItems();\r\n toast.success(\r\n t(\"marketplace.toastNotification.bidPlaced\")\r\n );\r\n closeSideBar();\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(setDetailViewIsOpened(false));\r\n },\r\n }\r\n );\r\n };\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) => {\r\n return value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\");\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.owner\"),\r\n accessor: \"offerer\",\r\n },\r\n {\r\n Header: t(\"table:headers.published\"),\r\n\r\n accessor: \"offerCreationDateTime\",\r\n Cell: (params) => {\r\n return DateCell(params);\r\n },\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({\r\n cell: {\r\n row: { original },\r\n value,\r\n },\r\n }) => {\r\n return (\r\n !original.bidAlreadyPlaced && (\r\n \r\n \r\n {!original.bidAlreadyPlaced && (\r\n {\r\n setCurrentOfferTranslations(\r\n `${original.refrigerantGasTypeCode} - ${original.quantity}kg`\r\n );\r\n openPlaceBid(original);\r\n }}\r\n />\r\n )}\r\n \r\n \r\n )\r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ],\r\n [currentStockSkuId, t, globalState]\r\n );\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const [selectedOffer, setSelectedOffer] = useState(null);\r\n const [details, setDetails] = useState(null);\r\n\r\n const onSelect = useCallback((row) => {\r\n const selectRow = async (row) => {\r\n //await loadBuyingItemsById(row.original.offerId);\r\n const res = await MarketplaceService.getBuyingItemById(\r\n row.original.offerId\r\n );\r\n setDetailViewKey(row.original.offerId);\r\n setDetails(res);\r\n setSelectedOffer(row.original);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n }, []);\r\n\r\n const closeSideBar = useCallback(() => {\r\n setOpenAccordionId(null);\r\n setDetailViewKey(null);\r\n setDetailViewIsOpened(false);\r\n }, []);\r\n\r\n const gasSelectionIsValid = (rows) => {\r\n if (rows.length > 0) {\r\n const firstRow = rows[0].original;\r\n\r\n const shouldAllow = rows.every((row) => {\r\n return (\r\n row.original.refrigerantGasTypeCode ===\r\n firstRow.refrigerantGasTypeCode &&\r\n row.original.pressumedGradeValue ===\r\n firstRow.pressumedGradeValue &&\r\n row.original.analysisDone === firstRow.analysisDone\r\n );\r\n });\r\n\r\n return shouldAllow;\r\n }\r\n return true;\r\n };\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n if (!cleaningItems) return null;\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:cleaningService.title\")}\r\n \r\n \r\n {\r\n return row.skuId;\r\n }}\r\n detailViewKey={detailViewKey}\r\n detailView={\r\n openPlaceBid(selectedOffer)}\r\n />\r\n }\r\n filterTitle={t(\"filters:cleaning.filterTitle\")}\r\n showTitle={true}\r\n filterComponent={() => (\r\n \r\n )}\r\n detailViewIsOpened={detailViewIsOpened}\r\n variants={{\r\n headerViewVariant: \"right-action\",\r\n }}\r\n noDataText={t(\"screens:stockListing.notification\")}\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${\r\n details?.offerNumber\r\n }`}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CleaningMarketplace;\r\n","import SellRefrigerantService from \"../../../services/SellRefrigerant/SellRefrigerantService\";\r\nimport createListStateModule from \"../createListStateModule\";\r\nimport gasTypesStatePlugin from \"../plugins/gasTypesStatePlugin\";\r\nimport unpublishOfferPlugin from \"../sell-refrigerant/sellRefrigerantListingPlugins\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\n\r\nconst cleanRefrigerantListingStateModule = createListStateModule({\r\n stateNamespace: \"sellrefrigerant\",\r\n itemsPropertyName: \"sellingItems\",\r\n loadItemsMethodName: \"loadSellingItems\",\r\n itemsDataMethod: StockService.getCleaningListingData,\r\n loadDetailMethodName: \"loadSellingItemById\",\r\n detailDataMethod: SellRefrigerantService.getSellingItemById,\r\n detailsPropertyName: \"sellingItemData\",\r\n updateMethodName: \"updateSellingItem\",\r\n updateDataMethod: () => {},\r\n createMethodName: 'createSellingItem',\r\n createDataMethod: () => {},\r\n defaultItemsData: {data:[]},\r\n plugins: [unpublishOfferPlugin, gasTypesStatePlugin]\r\n});\r\n\r\nexport default cleanRefrigerantListingStateModule;\r\n","import React from \"react\";\r\nimport DateCellWithExpiration from \"../../../../components/data/DateCellWithExpiration\";\r\nimport TransactionStatus from \"../../../../components/elements/general/TransactionStatus\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport OfferStatus from \"../../../../core/enums/OfferStatus\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport BidGradePriceCell from \"../../../SalesCenter/views/components/BidGradePriceCell\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport GradeCell from \"../../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../../components/data/GreenCell\";\r\nimport TooltipCell from \"../../../../components/data/TooltipCell\";\r\nimport HandlingCell from \"../../../../components/data/HandlingCell\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\n\r\nconst createSteps = (value, t, original) => {\r\n //seller is distributor company who is bidding for cleaning service\r\n const cleaningServiceProvider =\r\n original?.acceptedBidInfo?.bidCompanyName ??\r\n t(\"common:status.theProvider\");\r\n const offerer = original?.offerer;\r\n let result = Array.from([\r\n {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Accept\", {\r\n company: offerer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_confirmTest\", {\r\n company: offerer,\r\n }),\r\n },\r\n ]);\r\n\r\n switch (value) {\r\n case OfferStatus.waitingForOffererFunds:\r\n result[0] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.offererEscrowedFunds:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.buyerEscrowedFunds:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n break;\r\n case OfferStatus.buyerClaimedBottles:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[3] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n break;\r\n case 6:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[4] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case 99:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[4] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nconst CleaningOffersColumns = {\r\n getColumns: (\r\n offerStatus,\r\n t,\r\n actions,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n ) => {\r\n const pendingColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.numBids\")}`,\r\n accessor: \"totalOffers\",\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) =>\r\n original.totalOffers > 0 && (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n \r\n {\r\n actions.toggleOpen({\r\n offerIds: [value],\r\n original,\r\n });\r\n }}\r\n />\r\n \r\n \r\n ),\r\n },\r\n ];\r\n\r\n const acceptedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"offeredPrices\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"stockListing.headers.dealExpiration\"),\r\n accessor: \"dealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.status;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return DateCellWithExpiration(value, translation);\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n const dateTimeNow = new Date();\r\n return (\r\n \r\n \r\n \r\n dateTimeNow\r\n }\r\n text={t(\"actions:rejectBid\")}\r\n onClick={async () => {\r\n actions.rejectToggleOpen([original]);\r\n }}\r\n />\r\n {original.status === 2 && (\r\n {\r\n await actions.getTransactionDetails(\r\n original,\r\n original.acceptedBidInfo.bidId\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const qualityColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) => (value ? \"Yes\" : \"No\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"offeredPrices\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"cleaningServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.cleaningServicePrice\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.dealExpiration\"),\r\n accessor: \"dealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.status;\r\n if (offerStatus === 5) {\r\n translation = \"screens:myOffers.offerStatus.5\";\r\n }\r\n const onHold =\r\n offerStatus === 10 ? t(\"common:status.onHold\") : null;\r\n return DateCellWithExpiration(value, translation, onHold);\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n const dateTimeNow = new Date();\r\n return (\r\n \r\n \r\n \r\n dateTimeNow.toISOString() &&\r\n !globalState.hasCertificateRights)\r\n }\r\n text={t(\"actions:finishTransaction\")}\r\n onClick={async () => {\r\n actions.sellToggleOpen([original]);\r\n }}\r\n />\r\n {\r\n actions.openDisputeWizard(original);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const soldColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"confirmedRefrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"confirmedQuantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value?.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"confirmedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) => (value ? \"Yes\" : \"No\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"offeredPrices\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"cleaningServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.cleaningServicePrice\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.cleanedDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell,\r\n },\r\n {\r\n Header: t(\"table:headers.status\"),\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n if (\r\n offerStatus.includes(OfferStatus.offererEscrowedFunds) ||\r\n offerStatus.includes(OfferStatus.buyerEscrowedFunds)\r\n ) {\r\n return acceptedColumns;\r\n } else if (\r\n offerStatus.includes(OfferStatus.buyerClaimedBottles) ||\r\n offerStatus.includes(OfferStatus.qualityTested)\r\n ) {\r\n return qualityColumns;\r\n } else if (offerStatus.includes(OfferStatus.sold)) {\r\n return soldColumns;\r\n }\r\n\r\n return pendingColumns;\r\n },\r\n};\r\n\r\nexport default CleaningOffersColumns;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport cleanRefrigerantListingStateModule from \"../../../core/state/clean-refrigerant/cleanRefrigerantListingStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport StockService from \"../../../services/Stock/StockService\";\r\nimport CleaningOffersColumns from \"./columns/CleaningOffersColumns\";\r\nimport MarketplaceFilter from \"../../SalesCenter/views/components/MarketplaceFilter\";\r\nimport MyOffersDetailSideBar from \"../../SalesCenter/views/components/MyOffersDetailSideBar\";\r\nimport TransactionDetails from \"./components/TransactionDetails\";\r\nimport PlainModal, {\r\n usePlainModal,\r\n} from \"../../../components/modal/PlainModal\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport WizardDispute from \"../../SalesCenter/views/components/wizard/WizardDispute\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst actionTypes = {\r\n SET_HASOFFERS: \"SET_HASOFFERS\",\r\n RESET_HASOFFERS: \"RESET_HASOFFERS\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_CONFIRMED_GAS_QUANTITY_TO: \"SET_CONFIRMED_GAS_QUANTITY_TO\",\r\n RESET_CONFIRMED_GAS_QUANTITY_TO: \"RESET_CONFIRMED_GAS_QUANTITY\",\r\n SET_CONFIRMED_GAS_QUANTITY_FROM: \"SETCONFIRMED__GAS_QUANTITY_FROM\",\r\n RESET_CONFIRMED_GAS_QUANTITY_FROM: \"RESET_CONFIRMED_GAS_QUANTITY_FROM\",\r\n SET_CONFIRMED_QUALITY: \"SET_CONFIRMED_QUALITY\",\r\n RESET_CONFIRMED_QUALITY: \"RESET_CONFIRMED_QUALITY\",\r\n SET_CONFIRMED_GAS_TYPE: \"SET_CONFIRMED_GAS_TYPE\",\r\n RESET_CONFIRMED_GAS_TYPE: \"RESET_CONFIRMED_GAS_TYPE\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_EXPIRATION_DATE_FROM: \"SET_EXPIRATION_DATE_FROM\",\r\n RESET_EXPIRATION_DATE_FROM: \"RESET_EXPIRATION_DATE_FROM\",\r\n SET_EXPIRATION_DATE_TO: \"SET_EXPIRATION_DATE_TO\",\r\n RESET_EXPIRATION_DATE_TOM: \"RESET_EXPIRATION_DATE_TO\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst myOffersReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case \"SET_HASOFFERS\":\r\n state.filter.hasOffers = action.payload;\r\n break;\r\n case \"SET_ACTIVETAB\":\r\n state.filter.offerStatuses = action.payload;\r\n delete state.filter.hasOffers;\r\n delete state.filter.gasType;\r\n delete state.filter.gasQuantityFrom;\r\n delete state.filter.gasQuantityTo;\r\n delete state.filter.presumedQuality;\r\n delete state.filter.hasAnalysis;\r\n delete state.filter.bidDealExpirationFrom;\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n case \"RESET_HASOFFERS\":\r\n delete state.filter.hasOffers;\r\n break;\r\n case \"SET_PAGING\":\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_TYPE:\r\n state.filter.confirmedGasType = action.payload;\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_TYPE:\r\n delete state.filter.confirmedGasType;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_QUANTITY_TO:\r\n state.filter.confirmedGasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_QUANTITY_TO:\r\n delete state.filter.confirmedGasQuantityTo;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_QUANTITY_FROM:\r\n state.filter.confirmedGasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_QUANTITY_FROM:\r\n delete state.filter.confirmedGasQuantityFrom;\r\n break;\r\n case \"SET_CONFIRMED_QUALITY\":\r\n state.filter.confirmedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_CONFIRMED_QUALITY\":\r\n delete state.filter.confirmedQuality;\r\n break;\r\n case \"SET_PRESUMED_QUALITY\":\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_PRESUMED_QUALITY\":\r\n delete state.filter.presumedQuality;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"1\";\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n\r\n case actionTypes.SET_EXPIRATION_DATE_FROM:\r\n state.filter.bidDealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_FROM:\r\n delete state.filter.bidDealExpirationFrom;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_TO:\r\n state.filter.bidDealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_TO:\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst CleaningOffers = () => {\r\n const {\r\n sellingItems,\r\n isLoading,\r\n error,\r\n loadSellingItems,\r\n loadSellingItemById,\r\n details,\r\n unpublishData,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(cleanRefrigerantListingStateModule);\r\n\r\n const { t, i18n } = useTranslation(\"screens\");\r\n const currentLanguage = i18n.language;\r\n const [globalState] = useSharedState(\"global\");\r\n const [filterState, dispatch] = useImmerReducer(myOffersReducer, {\r\n filter: { offerStatuses: [OfferStatus.offered] },\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"dealExpiration\",\r\n descending: false,\r\n });\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n const setActiveTab = (tab) => {\r\n dispatch({ type: \"SET_ACTIVETAB\", payload: tab });\r\n if (tab[0] === 99) {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [{ id: \"lastChangeDateTime\", desc: true }],\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [{ id: \"dealExpiration\", desc: false }],\r\n });\r\n }\r\n };\r\n\r\n const fetchGridData = () => {\r\n loadSellingItems({\r\n isInstaller: true,\r\n options: filterState,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fetchGridData();\r\n }, [loadSellingItems, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const [currentRowData, setCurrentRowData] = useState({\r\n offer: null,\r\n bid: null,\r\n });\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n let currentBid = null;\r\n let bidId = row.original.acceptedBid\r\n ? row.original.acceptedBid.id\r\n : row.original.acceptedBidInfo\r\n ? row.original.acceptedBidInfo.bidId\r\n : null;\r\n if (bidId) {\r\n const bids = await MarketplaceService.getBids(\r\n row.original.offerId\r\n );\r\n currentBid = bids\r\n ? bids.find((b) => {\r\n if (b.bidStatus === 1) {\r\n return b.bidId === bidId;\r\n }\r\n return null;\r\n })\r\n : null;\r\n }\r\n\r\n setCurrentRowData({\r\n offer: row.original,\r\n bid: currentBid,\r\n isCleaning: true,\r\n });\r\n\r\n await loadSellingItemById(row.original.offerId);\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [details, loadSellingItemById]\r\n );\r\n\r\n const closeSideBar = () => {\r\n if (detailViewIsOpened) {\r\n setOpenAccordionId(null);\r\n setDetailViewIsOpened(false);\r\n if (CleaningOffers.refreshNeeded) {\r\n CleaningOffers.refreshNeeded = false;\r\n fetchGridData();\r\n }\r\n }\r\n };\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:services\"),\r\n },\r\n {\r\n text: t(\"navigation:cleaningService\"),\r\n },\r\n ]);\r\n\r\n //Unpublish action\r\n const { modalProps, toggleOpen } = useModal({\r\n title: t(\"actions:dialogs.unPublishOffer.title\"),\r\n type: \"warning\",\r\n onConfirm: async (model) => {\r\n const result = await StockService.unpublishFromMarketplace({\r\n offerIds: model.offerIds,\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n fetchGridData();\r\n toast.success(t(\"myOffers.toastNotification.offerUnpublished\"));\r\n }\r\n toggleOpen();\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.unPublishOffer.confirmText\"),\r\n });\r\n //Finish action\r\n const { modalProps: sellModalProps, toggleOpen: sellToggleOpen } = useModal(\r\n {\r\n title: t(\"actions:dialogs.sellOffer.title\"),\r\n isWarning: false,\r\n onConfirm: async (row) => {\r\n const result = await MarketplaceService.offerSold([\r\n row[0].offerId,\r\n ]);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setDetailViewIsOpened(false);\r\n fetchGridData();\r\n toast.success(t(\"myOffers.toastNotification.sellOffer\"));\r\n }\r\n sellToggleOpen();\r\n },\r\n onCancel: () => {\r\n sellToggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.sellOffer.confirmText\"),\r\n type: \"info\",\r\n }\r\n );\r\n\r\n //Reject expired bid action\r\n const { modalProps: rejectModalProps, toggleOpen: rejectToggleOpen } =\r\n useModal({\r\n title: t(\"actions:dialogs.rejectBid.title\"),\r\n onConfirm: async (row) => {\r\n const result =\r\n await MarketplaceService.rejectBidDueToExpiration({\r\n bidId: row[0].acceptedBid.id,\r\n });\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n fetchGridData();\r\n toast.success(t(\"myOffers.toastNotification.rejectBid\"));\r\n }\r\n rejectToggleOpen();\r\n },\r\n onCancel: () => {\r\n rejectToggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.rejectBid.confirmText\"),\r\n });\r\n\r\n const openDisputeWizard = (offer) => {\r\n return ModalWizard.show(\r\n WizardDispute(t, offer),\r\n {\r\n onSubmit: async (values) => {\r\n const data = ModalWizard.groupValues(\r\n values,\r\n \"_\",\r\n true\r\n ).filter((itm) => itm.disputeThisResult === true);\r\n if (data.length > 0) {\r\n const result = await MarketplaceService.dispute(data);\r\n if (result && result.error) {\r\n ModalWizard.submitFailed(t(result.error.message));\r\n } else {\r\n fetchGridData();\r\n toast.success(\r\n t(\"myOffers.toastNotification.disputed\")\r\n );\r\n ModalWizard.hide();\r\n }\r\n } else ModalWizard.hide(0);\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { width: \"800px\", height: \"730px\" } }\r\n );\r\n };\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n });\r\n const getTransactionDetails = async (offer, bidId) => {\r\n const result = await PaymentService.getTransactionDetails(1, bidId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: offer,\r\n details: result.data.data[0],\r\n });\r\n toggleTransactionDetails();\r\n }\r\n };\r\n const {\r\n modalProps: transactionDetailsProps,\r\n toggleOpen: toggleTransactionDetails,\r\n } = usePlainModal({\r\n onClose: async () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const columns = useMemo(() => {\r\n return CleaningOffersColumns.getColumns(\r\n filterState.filter.offerStatuses,\r\n t,\r\n {\r\n toggleOpen: toggleOpen,\r\n sellToggleOpen: sellToggleOpen,\r\n rejectToggleOpen: rejectToggleOpen,\r\n openDisputeWizard: openDisputeWizard,\r\n getTransactionDetails: getTransactionDetails,\r\n },\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n );\r\n }, [filterState.filter.offerStatuses, t, globalState]);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n let tabIndex = 0;\r\n const statuses = filterState.filter.offerStatuses;\r\n\r\n if (statuses.includes(OfferStatus.offered)) {\r\n tabIndex = 0;\r\n } else if (\r\n statuses.includes(OfferStatus.waitingForOffererFunds) ||\r\n statuses.includes(OfferStatus.offererEscrowedFunds) ||\r\n statuses.includes(OfferStatus.buyerEscrowedFunds)\r\n ) {\r\n tabIndex = 1;\r\n } else if (\r\n statuses.includes(OfferStatus.buyerClaimedBottles) ||\r\n statuses.includes(OfferStatus.qualityTested)\r\n ) {\r\n tabIndex = 2;\r\n } else if (statuses.includes(OfferStatus.sold)) {\r\n tabIndex = 3;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:myOffers.title\")}\r\n \r\n (\r\n \r\n ),\r\n }}\r\n filterTitle={t(\"filters:services.filterTitle\")}\r\n showTitle={true}\r\n filterComponent={() => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }}\r\n noDataText={t(\"myOffers.noData\")}\r\n columns={columns}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailView={\r\n \r\n }\r\n detailViewId=\"my-offers\"\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${\r\n currentRowData?.offer?.offerNumber\r\n }`}\r\n />\r\n \r\n

    {t(\"actions:dialogs.unPublishOffer.text\")}

    \r\n

    \r\n {modalProps.modal &&\r\n modalProps.modal.original &&\r\n `${\r\n modalProps.modal.original.refrigerantGasTypeCode\r\n } | ${modalProps.modal.original.quantity?.toFixed(\r\n 2\r\n )} kg | ${\r\n modalProps.modal.original.pressumedGradeName\r\n } | ${\r\n modalProps.modal.original.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

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

    {t(\"actions:dialogs.sellOffer.text\")}

    \r\n

    \r\n {sellModalProps.modal &&\r\n sellModalProps.modal.length > 0 &&\r\n `• ${\r\n sellModalProps.modal[0].cylindersAnalysis\r\n ? sellModalProps.modal[0].acceptedBidInfo[\r\n `offeredPriceGrade${sellModalProps.modal[0].cylindersAnalysis[0].gradeName}`\r\n ].toFixed(2)\r\n : sellModalProps.modal[0].acceptedBidInfo[\r\n `offeredPriceGrade${sellModalProps.modal[0].pressumedGradeName}`\r\n ].toFixed(2)\r\n } EUR/kg (${t(\r\n \"actions:bidActions.establishedQuality\"\r\n )})`}\r\n

    \r\n

    \r\n {t(\"actions:dialogs.revokeBid.offeredItem\")}\r\n

    \r\n

    \r\n {sellModalProps.modal &&\r\n sellModalProps.modal.length > 0 &&\r\n `• ${\r\n sellModalProps.modal[0].refrigerantGasTypeCode\r\n } | ${sellModalProps.modal[0].quantity.toFixed(\r\n 2\r\n )} kg | ${\r\n sellModalProps.modal[0].pressumedGradeName\r\n } | ${\r\n sellModalProps.modal[0].analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

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

    {t(\"actions:dialogs.rejectBid.text\")}

    \r\n

    \r\n {rejectModalProps.modal &&\r\n rejectModalProps.modal.length > 0 &&\r\n `• ${rejectModalProps.modal[0].acceptedBidInfo.offeredPriceGradeA.toFixed(\r\n 2\r\n )} EUR/kg | ${rejectModalProps.modal[0].acceptedBidInfo.offeredPriceGradeB.toFixed(\r\n 2\r\n )} EUR/kg | ${rejectModalProps.modal[0].acceptedBidInfo.offeredPriceGradeC.toFixed(\r\n 2\r\n )} EUR/kg`}\r\n

    \r\n

    \r\n {t(\"actions:dialogs.revokeBid.offeredItem\")}\r\n

    \r\n

    \r\n {rejectModalProps.modal &&\r\n rejectModalProps.modal.length > 0 &&\r\n `• ${\r\n rejectModalProps.modal[0].refrigerantGasTypeCode\r\n } | ${rejectModalProps.modal[0].quantity.toFixed(\r\n 2\r\n )} kg | ${\r\n rejectModalProps.modal[0].pressumedGradeName\r\n } | ${\r\n rejectModalProps.modal[0].analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n }`}\r\n

    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nCleaningOffers.refreshNeeded = false;\r\n\r\nexport default CleaningOffers;\r\n","import React from \"react\";\r\nimport DateCellWithExpiration from \"../../../../components/data/DateCellWithExpiration\";\r\nimport TransactionStatus from \"../../../../components/elements/general/TransactionStatus\";\r\nimport HamburgerMenu from \"../../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../../components/menu/HamburgerMenuAction\";\r\nimport AuthorizeComponent from \"../../../../core/AuthorizeComponent\";\r\nimport BidStatus from \"../../../../core/enums/BidStatus\";\r\nimport OfferStatus from \"../../../../core/enums/OfferStatus\";\r\nimport Roles from \"../../../../core/enums/Roles\";\r\nimport BidGradePriceCell from \"../../../SalesCenter/views/components/BidGradePriceCell\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport GradeCell from \"../../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../../components/data/GreenCell\";\r\nimport TooltipCell from \"../../../../components/data/TooltipCell\";\r\nimport HandlingCell from \"../../../../components/data/HandlingCell\";\r\nimport DateCell from \"../../../../components/data/DateCell\";\r\n\r\n\r\nexport const createSteps = (value, t, bidStatus, original) => {\r\n const offerer = original?.offerer;\r\n const cleaningServiceProvider = original?.bidCompanyName;\r\n\r\n if (bidStatus === 2 || bidStatus === 3) {\r\n return Array.from([\r\n {\r\n status: 2,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 0,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.canceled\"\r\n ).toUpperCase()} `,\r\n tip:\r\n bidStatus === 2\r\n ? t(\"common:status.completed_rejected\", {\r\n company: offerer,\r\n })\r\n : t(\"common:status.completed_revoked\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n ]);\r\n }\r\n\r\n let result = Array.from([\r\n {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Accept\", {\r\n company: offerer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_confirmTest\", {\r\n company: offerer,\r\n }),\r\n },\r\n ]);\r\n\r\n switch (value) {\r\n case 0:\r\n if (bidStatus === 2) {\r\n result[0] = {\r\n status: 2,\r\n tip: t(\"screens:myOffers.toastNotification.rejectBid\"),\r\n };\r\n } else if (bidStatus === 3) {\r\n result[0] = {\r\n status: 2,\r\n tip: t(\"screens:myBids.successfullyRevoked\"),\r\n };\r\n }\r\n break;\r\n\r\n case 2:\r\n result[0] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case 3:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n break;\r\n case 4:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n break;\r\n case 5:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[3] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n break;\r\n case 6:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[4] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n case 10:\r\n result[0] = {\r\n status: 1,\r\n tip: t(\"screens:disputes.pendingSettlement\"),\r\n };\r\n break;\r\n case 99:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Cdeposit\", {\r\n company: offerer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_Adeposit\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[2] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 3/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_collect\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[3] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 4/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_test\", {\r\n company: cleaningServiceProvider,\r\n }),\r\n };\r\n result[4] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 5/5 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_confirmTest\", {\r\n company: offerer,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nconst CleaningBidsColumns = {\r\n getColumns: (\r\n bidStatus,\r\n t,\r\n actions,\r\n offerStatus,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n ) => {\r\n const gasGradeNames = [\r\n t(\"sidebar:label.bid.aGrade\"),\r\n t(\"sidebar:label.bid.bGrade\"),\r\n t(\"sidebar:label.bid.cGrade\"),\r\n ];\r\n const pendingColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"bidId\",\r\n Cell: ({ cell: { value, row } }) => (\r\n \r\n \r\n {\r\n actions.setSelectedBid(row.original);\r\n actions.toggleOpenRevoke(value);\r\n }}\r\n />\r\n \r\n \r\n ),\r\n disableSortBy: true,\r\n },\r\n ];\r\n const acceptedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"myBids.headers.bidDealExpiration\"),\r\n accessor: \"bidDealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.offerStatus;\r\n if (offerStatus === 2) {\r\n translation = \"screens:myOffers.offerStatus.2\";\r\n } else if (offerStatus === 3) {\r\n translation = \"screens:myOffers.offerStatus.3\";\r\n } else if (offerStatus === 4) {\r\n translation = \"screens:myOffers.offerStatus.4\";\r\n }\r\n return DateCellWithExpiration(value, translation);\r\n },\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({\r\n cell: {\r\n value,\r\n row: { original },\r\n },\r\n }) => {\r\n if (original.bidStatus !== 1) return null;\r\n\r\n return (\r\n \r\n \r\n {!original.hasMangoTransaction && (\r\n {\r\n var offerInfo = `${\r\n original.refrigerantGasTypeCode\r\n } | ${\r\n gasGradeNames[\r\n original.pressumedGradeValue\r\n ]\r\n } | ${original.maxQuantitySum} kg`;\r\n\r\n await actions.payForAGrade(\r\n original.bidId,\r\n 14 * original.maxQuantitySum,\r\n offerInfo,\r\n original\r\n );\r\n }}\r\n disabled={\r\n original.offerStatus !== 3 ||\r\n !globalState.hasCertificateRights\r\n }\r\n />\r\n )}\r\n\r\n {original.hasMangoTransaction && (\r\n {\r\n await actions.getTransactionDetails(\r\n original,\r\n original.bidId\r\n );\r\n }}\r\n disabled={\r\n original.offerStatus !== 3 ||\r\n !globalState.hasCertificateRights\r\n }\r\n />\r\n )}\r\n \r\n \r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ];\r\n const qualityTestColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"cleaningServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.cleaningServicePrice\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"stockListing.headers.dealExpiration\"),\r\n accessor: \"bidDealExpiration\",\r\n Cell: (value) => {\r\n let translation = \"\";\r\n const offerStatus = value.row.original.offerStatus;\r\n if (offerStatus === 5) {\r\n translation = \"screens:myOffers.offerStatus.5\";\r\n }\r\n const onHold =\r\n offerStatus === 10 ? t(\"common:status.onHold\") : null;\r\n return DateCellWithExpiration(value, translation, onHold);\r\n },\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"offerId\",\r\n Cell: ({ cell: { value, row } }) => {\r\n if (row.original.bidStatus !== 1) return <>;\r\n return (\r\n \r\n \r\n {\r\n actions.showQualityTestForm(\r\n row.original.offerId,\r\n row.original.offerer,\r\n row.original.refrigerantGasTypeCode,\r\n row.original.cylindersAnalysis\r\n );\r\n }}\r\n disabled={\r\n row.original.offerStatus !==\r\n OfferStatus.buyerClaimedBottles ||\r\n !globalState.hasCertificateRights\r\n }\r\n />\r\n {\r\n actions.setSelectedBid(row.original);\r\n actions.togglePayPresumedQuality([\r\n value,\r\n ]);\r\n }}\r\n />\r\n \r\n \r\n );\r\n },\r\n disableSortBy: true,\r\n },\r\n ];\r\n const paymentCompletedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"confirmedRefrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"confirmedQuantity\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value?.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"confirmedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: t(\"table:headers.purchasePrice\"),\r\n accessor: \"cleaningServicePrice\",\r\n Cell: ({ cell: { row } }) => {\r\n const currency = \"EUR\";\r\n\r\n return TooltipCell({\r\n cell: {\r\n value: helpers.formatCurrency(\r\n helpers.calculatePriceWithVat(\r\n row.original.cleaningServicePrice\r\n ),\r\n currentLanguage,\r\n currency\r\n ),\r\n },\r\n tip: t(\"table:tooltips.withVat\"),\r\n });\r\n },\r\n },\r\n {\r\n Header: t(\"table:headers.cleanedDate\"),\r\n accessor: \"lastChangeDateTime\",\r\n Cell: DateCell\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const rejectedRevokedColumns = [\r\n {\r\n Header: t(\"table:headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"table:headers.gasQuantity\"),\r\n accessor: \"quantitySum\",\r\n Cell: ({ cell: { value } }) =>\r\n GreenCell({ cell: { value: value.toFixed(2) + \" kg\" } }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: t(\"table:headers.evaluation\"),\r\n accessor: \"analysisDone\",\r\n Cell: ({ cell: { value } }) =>\r\n !value\r\n ? t(\"filters:analysis.measurement\")\r\n : t(\"filters:analysis.selfAssessment\"),\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"handlingCosts\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(value, setOpenAccordionId, \"bid.details\"),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"offerStatus\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { value }, row: { original } }) => (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n (offerStatus.includes(OfferStatus.buyerEscrowedFunds) ||\r\n offerStatus.includes(OfferStatus.offererEscrowedFunds))\r\n ) {\r\n return acceptedColumns;\r\n } else if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n (offerStatus.includes(OfferStatus.buyerClaimedBottles) ||\r\n offerStatus.includes(OfferStatus.qualityTested))\r\n ) {\r\n return qualityTestColumns;\r\n } else if (\r\n bidStatus.includes(BidStatus.accepted) &&\r\n offerStatus.includes(OfferStatus.sold)\r\n ) {\r\n return paymentCompletedColumns;\r\n } else if (\r\n bidStatus.includes(BidStatus.revoked) ||\r\n bidStatus.includes(BidStatus.rejected)\r\n ) {\r\n return rejectedRevokedColumns;\r\n }\r\n return pendingColumns;\r\n },\r\n};\r\n\r\nexport default CleaningBidsColumns;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport RoundTabs from \"../../../components/elements/tabs/RoundTabs\";\r\nimport Flex from \"../../../components/layout/flex/Flex\";\r\nimport ModalDialog, { useModal } from \"../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport BidStatus from \"../../../core/enums/BidStatus\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport myBidsListingStateModule from \"../../../core/state/buy-refrigerant/myBidsListingStateModule\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useDataReducer from \"../../../hooks/_shared/useDataReducer\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport CleaningBidsColumns from \"./columns/CleaningBidsColumns\";\r\nimport MarketplaceFilter from \"../../../screens/SalesCenter/views/components/MarketplaceFilter\";\r\nimport MyBidDetailSideBar from \"../../../screens/SalesCenter/views/components/MyBidDetailSideBar\";\r\nimport QualityTestWizard from \"../../../screens/SalesCenter/views/components/QualityTestWizard\";\r\nimport TransactionDetails from \"../../../screens/SalesCenter/views/components/TransactionDetails\";\r\nimport PlainModal, {\r\n usePlainModal,\r\n} from \"../../../components/modal/PlainModal\";\r\nimport UserService from \"../../../services/User/UserService\";\r\nimport ActionButton from \"../../../components/elements/buttons/ActionButton\";\r\nimport CollectCylinderWizard from \"../../Stock/views/stock/components/CollectCylinderWizard\";\r\nimport WizardPayForOffer from \"../../../screens/SalesCenter/views/components/wizard/WizardPayForOffer\";\r\nimport PaymentService from \"../../../services/Payment/PaymentService\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport RouteCreator from \"../../../core/RouteCreator\";\r\nimport TabLinks from \"../../../components/elements/tabs/TabLinks\";\r\nimport useSharedState from \"../../../hooks/_shared/useSharedState\";\r\n\r\nconst actionTypes = {\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_EXPIRATION_DATE_FROM: \"SET_EXPIRATION_DATE_FROM\",\r\n RESET_EXPIRATION_DATE_FROM: \"RESET_EXPIRATION_DATE_FROM\",\r\n SET_EXPIRATION_DATE_TO: \"SET_EXPIRATION_DATE_TO\",\r\n RESET_EXPIRATION_DATE_TOM: \"RESET_EXPIRATION_DATE_TO\",\r\n SET_CONFIRMED_GAS_QUANTITY_TO: \"SET_CONFIRMED_GAS_QUANTITY_TO\",\r\n RESET_CONFIRMED_GAS_QUANTITY_TO: \"RESET_CONFIRMED_GAS_QUANTITY\",\r\n SET_CONFIRMED_GAS_QUANTITY_FROM: \"SETCONFIRMED__GAS_QUANTITY_FROM\",\r\n RESET_CONFIRMED_GAS_QUANTITY_FROM: \"RESET_CONFIRMED_GAS_QUANTITY_FROM\",\r\n SET_CONFIRMED_QUALITY: \"SET_CONFIRMED_QUALITY\",\r\n RESET_CONFIRMED_QUALITY: \"RESET_CONFIRMED_QUALITY\",\r\n SET_CONFIRMED_GAS_TYPE: \"SET_CONFIRMED_GAS_TYPE\",\r\n RESET_CONFIRMED_GAS_TYPE: \"RESET_CONFIRMED_GAS_TYPE\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst tabItems = (t) => [\r\n {\r\n name: t(\"navigation:marketplace\"),\r\n path: RouteCreator.services.cleaning(),\r\n },\r\n {\r\n name: t(\"navigation:myBids\"),\r\n path: RouteCreator.services.cleaningBids(),\r\n },\r\n];\r\n\r\nconst myBidsReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case \"SET_ACTIVETAB\":\r\n state.filter.bidStatuses = action.payload.bidStatuses;\r\n state.filter.offerStatuses = action.payload.offerStatuses;\r\n delete state.filter.gasType;\r\n delete state.filter.gasQuantityFrom;\r\n delete state.filter.gasQuantityTo;\r\n delete state.filter.presumedQuality;\r\n delete state.filter.hasAnalysis;\r\n delete state.filter.bidDealExpirationFrom;\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n case \"SET_PAGING\":\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case \"SET_SORT\":\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case \"RESET_SORT\":\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case \"SET_GAS_TYPE\":\r\n state.filter.gasType = action.payload;\r\n break;\r\n case \"RESET_GAS_TYPE\":\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case \"SET_PRESUMED_QUALITY\":\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_PRESUMED_QUALITY\":\r\n delete state.filter.presumedQuality;\r\n break;\r\n case \"SET_QUALITY_ASSURANCE\":\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case \"RESET_QUALITY_ASSURANCE\":\r\n delete state.filter.hasAnalysis;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_TYPE:\r\n state.filter.confirmedGasType = action.payload;\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_TYPE:\r\n delete state.filter.confirmedGasType;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_QUANTITY_TO:\r\n state.filter.confirmedGasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_QUANTITY_TO:\r\n delete state.filter.confirmedGasQuantityTo;\r\n break;\r\n case actionTypes.SET_CONFIRMED_GAS_QUANTITY_FROM:\r\n state.filter.confirmedGasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_CONFIRMED_GAS_QUANTITY_FROM:\r\n delete state.filter.confirmedGasQuantityFrom;\r\n break;\r\n case \"SET_CONFIRMED_QUALITY\":\r\n state.filter.confirmedQuality = Number(action.payload);\r\n break;\r\n case \"RESET_CONFIRMED_QUALITY\":\r\n delete state.filter.confirmedQuality;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_FROM:\r\n state.filter.bidDealExpirationFrom = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_FROM:\r\n delete state.filter.bidDealExpirationFrom;\r\n break;\r\n case actionTypes.SET_EXPIRATION_DATE_TO:\r\n state.filter.bidDealExpirationTo = action.payload;\r\n break;\r\n case actionTypes.RESET_EXPIRATION_DATE_TO:\r\n delete state.filter.bidDealExpirationTo;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst qualityGrades = [\"A\", \"B\", \"C\"];\r\n\r\nconst CleaningBidsListing = () => {\r\n const {\r\n myBids,\r\n isLoading,\r\n error,\r\n loadMyBids,\r\n loadBidById,\r\n details,\r\n loadGasTypes,\r\n gasTypesData,\r\n } = useStateModule(myBidsListingStateModule);\r\n\r\n const [selectedBid, setSelectedBid] = useState(null);\r\n const { userId } = UserService.getUserDetailsFromToken();\r\n const [globalState] = useSharedState(\"global\");\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n const [detailViewKey, setDetailViewKey] = useState(null);\r\n const [filterState, dispatch] = useImmerReducer(myBidsReducer, {\r\n filter: {\r\n bidStatuses: [BidStatus.active],\r\n offerStatuses: [],\r\n userId: userId,\r\n },\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"bidDealExpiration\",\r\n descending: false,\r\n isCleaning: true,\r\n });\r\n\r\n useEffect(() => {\r\n loadMyBids(filterState);\r\n }, [loadMyBids, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const [myBidsDataState, getMyBidsForOffer] = useDataReducer(\r\n async (params) => {\r\n const bids = await MarketplaceService.getMyBids(params);\r\n const currentBid = bids.find((b) => b.bidId === params.bidId);\r\n return [currentBid];\r\n }\r\n );\r\n\r\n const { t, i18n } = useTranslation([\"screens\", \"table\"]);\r\n const currentLanguage = i18n.language;\r\n const currency = \"EUR\";\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:services\"),\r\n },\r\n {\r\n text: t(\"navigation:cleaningService\"),\r\n },\r\n ]);\r\n\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const closeSideBar = () => {\r\n setOpenAccordionId(null);\r\n setDetailViewKey(null);\r\n setDetailViewIsOpened(false);\r\n };\r\n\r\n const [currentRowData, setCurrentRowData] = useState(null);\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n setDetailViewKey(row.original.offerId);\r\n setCurrentRowData(row.original);\r\n setSelectedBid(row.original);\r\n await loadBidById(row.original.offerId);\r\n await getMyBidsForOffer({\r\n filter: { offerId: row.original.offerId },\r\n bidId: row.original.bidId,\r\n });\r\n setDetailViewIsOpened(true);\r\n };\r\n selectRow(row);\r\n },\r\n [details.bidDetails, getMyBidsForOffer, loadBidById]\r\n );\r\n\r\n // revoke bid action\r\n const { modalProps: revokeModalProps, toggleOpen: toggleOpenRevoke } =\r\n useModal({\r\n title: t(\"actions:dialogs.revokeBid.title\"),\r\n onConfirm: async (bidId) => {\r\n const result = await MarketplaceService.revokeBid(bidId);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n setDetailViewIsOpened(false);\r\n loadMyBids(filterState);\r\n toast.success(t(\"screens:myBids.successfullyRevoked\"));\r\n }\r\n toggleOpenRevoke();\r\n },\r\n onCancel: () => {\r\n toggleOpenRevoke();\r\n },\r\n confirmText: t(\"actions:dialogs.revokeBid.confirmText\"),\r\n type: \"warning\",\r\n });\r\n\r\n const [transactionDetails, setTransactionDetails] = useState({\r\n offer: \"\",\r\n details: \"\",\r\n });\r\n\r\n const getTransactionDetails = async (offer, bidId) => {\r\n const result = await PaymentService.getTransactionDetails(0, bidId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n } else {\r\n setTransactionDetails({\r\n offer: offer,\r\n details: result.data.data[0],\r\n });\r\n toggleTransactionDetails();\r\n }\r\n };\r\n\r\n const payForAGrade = useCallback(\r\n async (bidId, offeredPriceGradeA, offerInfo, offer) => {\r\n ModalWizard.show(\r\n WizardPayForOffer(\r\n t,\r\n currentLanguage,\r\n currency,\r\n offeredPriceGradeA,\r\n offerInfo,\r\n false,\r\n \"\",\r\n \"\",\r\n \"\",\r\n offer.offererCountryId\r\n ),\r\n {\r\n onSubmit: async (values) => {\r\n const res = await MarketplaceService.payAClass(\r\n bidId,\r\n values.paymentMethod,\r\n true\r\n );\r\n if (res && res.error) {\r\n toast.error(t(res.error.message));\r\n } else {\r\n toast.success(\r\n t(\r\n \"actions:dialogs.payAClass.toastNotifications.success\"\r\n )\r\n );\r\n loadMyBids(filterState);\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n },\r\n [filterState]\r\n );\r\n\r\n const {\r\n modalProps: transactionDetailsProps,\r\n toggleOpen: toggleTransactionDetails,\r\n } = usePlainModal({\r\n onClose: () => {\r\n toggleTransactionDetails();\r\n },\r\n closeText: t(\"actions:close\"),\r\n });\r\n\r\n //buy presumed quality action\r\n const {\r\n modalProps: buyPresumedQualityProps,\r\n toggleOpen: togglePayPresumedQuality,\r\n } = useModal({\r\n title: t(\"actions:bidActions.sellServicePresumedQuality\"),\r\n onConfirm: async (offerIds) => {\r\n const result = await MarketplaceService.offerSoldByBuyer(offerIds);\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n } else {\r\n loadMyBids(filterState);\r\n toast.success(t(\"actions:dialogs.payPresumedQuality.success\"));\r\n }\r\n togglePayPresumedQuality();\r\n },\r\n onCancel: () => {\r\n togglePayPresumedQuality();\r\n },\r\n });\r\n\r\n const [, setOfferDetails] = useState(null);\r\n const getOfferDetails = (details) => {\r\n setOfferDetails(details);\r\n };\r\n\r\n //Upload Quality Test action\r\n const asyncEvery = async (arr, predicate) => {\r\n for (let e of arr) {\r\n if (!(await predicate(e))) return false;\r\n }\r\n return true;\r\n };\r\n\r\n const showQualityTestForm = useCallback(\r\n async (offerId, offerer, gasTypeCode, cylinders) => {\r\n ModalWizard.show(\r\n QualityTestWizard(t, offerId, offerer, gasTypeCode, cylinders),\r\n {\r\n onSubmit: async (values) => {\r\n const forms = ModalWizard.groupValues(values, \"_\");\r\n const uploadCompleted = await asyncEvery(\r\n forms,\r\n async (form) => {\r\n let gradeIdx = qualityGrades.indexOf(\r\n form.values.quality\r\n );\r\n form.values.grade = gradeIdx;\r\n const result =\r\n await MarketplaceService.addBuyerAnalysis(\r\n ModalWizard.asFormData(form.values)\r\n );\r\n if (result.error) {\r\n toast.error(result.error.message);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n );\r\n\r\n if (uploadCompleted) {\r\n toast.success(\r\n t(\"screens:myBids.successfullyTested\")\r\n );\r\n ModalWizard.hide();\r\n loadMyBids(filterState);\r\n }\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n },\r\n [filterState, t, loadMyBids]\r\n );\r\n\r\n const columns = useMemo(() => {\r\n return CleaningBidsColumns.getColumns(\r\n filterState.filter.bidStatuses,\r\n t,\r\n {\r\n showQualityTestForm: showQualityTestForm,\r\n toggleOpenRevoke: toggleOpenRevoke,\r\n getOfferDetails: getOfferDetails,\r\n togglePayPresumedQuality: togglePayPresumedQuality,\r\n getTransactionDetails: getTransactionDetails,\r\n payForAGrade: payForAGrade,\r\n setSelectedBid: setSelectedBid,\r\n },\r\n filterState.filter.offerStatuses,\r\n currentLanguage,\r\n globalState,\r\n setOpenAccordionId\r\n );\r\n }, [\r\n filterState.filter.bidStatuses,\r\n filterState.filter.offerStatuses,\r\n t,\r\n showQualityTestForm,\r\n toggleOpenRevoke,\r\n toggleTransactionDetails,\r\n togglePayPresumedQuality,\r\n details,\r\n globalState,\r\n ]);\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n let tabIndexSuccess = -1;\r\n\r\n const bidStatuses = filterState.filter.bidStatuses;\r\n const offerStatuses = filterState.filter.offerStatuses;\r\n let showQRButton = false;\r\n\r\n if (bidStatuses.includes(BidStatus.active)) {\r\n tabIndexSuccess = 0;\r\n } else if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n (offerStatuses.includes(OfferStatus.waitingForOffererFunds) ||\r\n offerStatuses.includes(OfferStatus.buyerEscrowedFunds) ||\r\n offerStatuses.includes(OfferStatus.offererEscrowedFunds))\r\n ) {\r\n tabIndexSuccess = 1;\r\n } else if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n (offerStatuses.includes(OfferStatus.buyerClaimedBottles) ||\r\n offerStatuses.includes(OfferStatus.qualityTested))\r\n ) {\r\n tabIndexSuccess = 2;\r\n } else if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n offerStatuses.includes(OfferStatus.sold)\r\n ) {\r\n tabIndexSuccess = 3;\r\n }\r\n\r\n if (\r\n bidStatuses.includes(BidStatus.accepted) &&\r\n offerStatuses.includes(OfferStatus.buyerEscrowedFunds)\r\n ) {\r\n //flip this to true if you want the collect button to show, but only if the QR stickers\r\n //have a guid printed on them, otherwise this does not make any sense\r\n showQRButton = false;\r\n }\r\n\r\n let tabIndexFail = -1;\r\n switch (filterState.filter.bidStatuses[0]) {\r\n case BidStatus.revoked:\r\n tabIndexFail = 0;\r\n break;\r\n case BidStatus.rejected:\r\n tabIndexFail = 1;\r\n break;\r\n default:\r\n tabIndexFail = -1;\r\n }\r\n\r\n const listingKey = tabIndexSuccess + 10 * tabIndexFail;\r\n\r\n const [collectCompanies, setCollectCompanies] = useDataReducer(\r\n MarketplaceService.getOffersForCollection\r\n );\r\n useEffect(() => {\r\n setCollectCompanies();\r\n }, []);\r\n\r\n const {\r\n modalProps: collectInfoModalProps,\r\n toggleOpen: toggleCollectInfoModal,\r\n } = useModal({\r\n title: t(\"forms:stock.wizard.collectCylinder.title\"),\r\n type: \"warning\",\r\n confirmText: t(\"actions:close\"),\r\n onConfirm: () => {\r\n toggleCollectInfoModal();\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:myBids.title\")}\r\n \r\n \r\n (\r\n <>\r\n {\r\n setSelectedBid(null);\r\n if (status[0].offerStatuses[0] === 99) {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [\r\n {\r\n id: \"lastChangeDateTime\",\r\n desc: true,\r\n },\r\n ],\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.SET_SORT,\r\n payload: [\r\n {\r\n id: \"bidDealExpiration\",\r\n desc: false,\r\n },\r\n ],\r\n });\r\n }\r\n dispatch({\r\n type: \"SET_ACTIVETAB\",\r\n payload: status[0],\r\n });\r\n }}\r\n tabs={[\r\n {\r\n label: t(\"screens:myBids.tabs.pending\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [BidStatus.active],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\r\n \"screens:myBids.tabs.accepted\"\r\n ),\r\n activeValue: [\r\n {\r\n bidStatuses: [\r\n BidStatus.accepted,\r\n ],\r\n offerStatuses: [\r\n OfferStatus.waitingForOffererFunds,\r\n OfferStatus.offererEscrowedFunds,\r\n OfferStatus.buyerEscrowedFunds,\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\r\n \"screens:myBids.tabs.qualityTest\"\r\n ),\r\n activeValue: [\r\n {\r\n bidStatuses: [\r\n BidStatus.accepted,\r\n ],\r\n offerStatuses: [\r\n OfferStatus.qualityTested,\r\n OfferStatus.buyerClaimedBottles,\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\"screens:myBids.tabs.cleaned\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [\r\n BidStatus.accepted,\r\n ],\r\n offerStatuses: [\r\n OfferStatus.sold,\r\n ],\r\n },\r\n ],\r\n },\r\n ]}\r\n />\r\n {\r\n setSelectedBid(null);\r\n dispatch({\r\n type: \"SET_ACTIVETAB\",\r\n payload: status[0],\r\n });\r\n }}\r\n tabs={[\r\n {\r\n label: t(\"screens:myBids.tabs.revoked\"),\r\n activeValue: [\r\n {\r\n bidStatuses: [\r\n BidStatus.revoked,\r\n ],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n {\r\n label: t(\r\n \"screens:myBids.tabs.rejected\"\r\n ),\r\n activeValue: [\r\n {\r\n bidStatuses: [\r\n BidStatus.rejected,\r\n ],\r\n offerStatuses: [],\r\n },\r\n ],\r\n },\r\n ]}\r\n />\r\n\r\n {showQRButton && (\r\n \r\n {\r\n ev.preventDefault();\r\n collectCompanies.data.length === 0\r\n ? toggleCollectInfoModal()\r\n : ModalWizard.show(\r\n CollectCylinderWizard(\r\n t,\r\n collectCompanies\r\n ),\r\n {\r\n onSubmit: async (\r\n values\r\n ) => {\r\n // alert('uncomment BE action! Selected tags: ' + values.tagIds);\r\n const result =\r\n await MarketplaceService.shipToBuyer(\r\n values.tagIds\r\n );\r\n if (\r\n result.error\r\n ) {\r\n toast.error(\r\n t(\r\n result\r\n .error\r\n .message\r\n )\r\n );\r\n } else {\r\n loadMyBids(\r\n filterState\r\n );\r\n toast.success(\r\n t(\r\n \"actions:dialogs.shipOut.success\"\r\n )\r\n );\r\n ModalWizard.hide();\r\n }\r\n },\r\n onCancel:\r\n async () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n }\r\n );\r\n }}\r\n tooltip={t(\r\n \"screens:stockListing.tooltip.moveToCompanyStock\"\r\n )}\r\n >\r\n {t(\"actions:collect\")}\r\n \r\n \r\n )}\r\n \r\n ),\r\n }}\r\n filterTitle={t(\"filters:services.filterTitle\")}\r\n showTitle={true}\r\n filterComponent={() => {\r\n return (\r\n \r\n );\r\n }}\r\n noDataText={t(\"myBids.noData\")}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n detailViewIsOpened={detailViewIsOpened}\r\n detailViewKey={detailViewKey}\r\n detailView={\r\n \r\n toggleOpenRevoke(myBidsDataState.data[0].bidId)\r\n }\r\n />\r\n }\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${\r\n currentRowData?.offerNumber\r\n }`}\r\n />\r\n\r\n \r\n

    {t(\"actions:dialogs.revokeBid.text\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${selectedBid.offeredPriceGradeA.toFixed(\r\n 2\r\n )} EUR/kg | ${selectedBid.offeredPriceGradeB.toFixed(\r\n 2\r\n )} EUR/kg | ${selectedBid.offeredPriceGradeC.toFixed(\r\n 2\r\n )} EUR/kg`}\r\n

    \r\n

    \r\n {t(\"actions:dialogs.revokeBid.offeredItem\")}\r\n

    \r\n

    \r\n {selectedBid &&\r\n `• ${\r\n selectedBid.refrigerantGasTypeCode\r\n } | ${selectedBid.quantitySum.toFixed(2)} kg | ${\r\n selectedBid.pressumedGradeName\r\n } | ${\r\n selectedBid.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

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

    {t(\"actions:dialogs.payPresumedQuality.info\")}

    \r\n

    \r\n {selectedBid &&\r\n `• ${\r\n selectedBid.refrigerantGasTypeCode\r\n } | ${selectedBid.quantitySum.toFixed(2)} kg | ${\r\n selectedBid.pressumedGradeName\r\n } | ${\r\n selectedBid.analysisDone === \"False\"\r\n ? t(\"filters:analysis.selfAssessment\")\r\n : t(\"filters:analysis.measurement\")\r\n } `}\r\n

    \r\n

    {t(\"actions:dialogs.payPresumedQuality.text\")}

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

    {t(\"forms:stock.wizard.collectCylinder.warning\")}

    \r\n
    \r\n \r\n );\r\n};\r\nexport default CleaningBidsListing;\r\n","import React from \"react\";\r\nimport { Switch, Redirect } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport companyAdminMenuItems from \"../../data/menu/companyAdminMenuItems\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport InstallerDisposalListing from \"./views/InstallerDisposalListing.js\";\r\nimport DistributorDisposalBids from \"./views/DistributorDisposalBids\";\r\nimport DistributorDisposalMarket from \"./views/DistributorDisposalMarket\";\r\nimport CleaningMarketplace from \"./views/CleaningMarketplace\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\nimport CleaningOffers from \"./views/CleaningOffers\";\r\nimport CleaningBidsListing from \"./views/CleaningBidsListing\";\r\n\r\n\r\nconst ServicesScreen = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n useLeftMenu(companyAdminMenuItems(globalState));\r\n \r\n return (\r\n \r\n null\r\n : globalState.isDistributor\r\n ? DistributorDisposalMarket\r\n : InstallerDisposalListing\r\n }\r\n />\r\n null\r\n : globalState.isDistributor\r\n ? DistributorDisposalBids\r\n : null\r\n }\r\n />\r\n null\r\n : globalState.isDistributor\r\n ? CleaningMarketplace\r\n : CleaningOffers\r\n }\r\n />\r\n null\r\n : globalState.isDistributor\r\n ? CleaningBidsListing\r\n : null\r\n }\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ServicesScreen;\r\n","const createDisputeSteps = (value, t, row) => {\r\n const seller = row?.offerer ?? \"Seller\";\r\n const buyer = row?.acceptedBidInfo?.bidCompanyName ?? \"Buyer\";\r\n let result = Array.from([\r\n {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 1/2 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_settlement\", {\r\n company: buyer,\r\n }),\r\n },\r\n {\r\n status: 3,\r\n title: `${t(\"common:status.step\")}: 2/2 - ${t(\r\n \"common:status.pending\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.pending_settlement\", {\r\n company: seller,\r\n }),\r\n },\r\n ]);\r\n switch (value) {\r\n case 1:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/2 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_settlement\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 4,\r\n title: `${t(\"common:status.step\")}: 2/2 - ${t(\r\n \"common:status.inProgress\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.progress_confirmSettlement\", {\r\n company: seller,\r\n }),\r\n };\r\n break;\r\n case 2:\r\n result[0] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 1/2 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_settlement\", {\r\n company: buyer,\r\n }),\r\n };\r\n result[1] = {\r\n status: 1,\r\n title: `${t(\"common:status.step\")}: 2/2 - ${t(\r\n \"common:status.completed\"\r\n ).toUpperCase()} `,\r\n tip: t(\"common:status.completed_confirmSettlement\", {\r\n company: seller,\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n};\r\n\r\nexport default createDisputeSteps;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SidebarField from \"../../../../components/elements/sidebar/SidebarField\";\r\nimport AccordionWrapper from \"../../../../components/toggle-view/AccordionWrapper\";\r\nimport {\r\n Num,\r\n NumInfo,\r\n NumSection,\r\n} from \"../../../../components/elements/sidebar/SidebarStyle\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport { VSpace } from \"../../../pwa/components/StyledElements\";\r\nimport {\r\n BidGradeWrapper,\r\n BidGrade,\r\n BigHandlingCosts,\r\n} from \"../../../../components/bids/BidGrade\";\r\nimport Slider from \"../../../../components/elements/general/Slider\";\r\nimport { getApiUrl } from \"../../../../services/getAxios\";\r\nimport useAccordionGroup from \"../../../../hooks/_shared/useAccordionGroup\";\r\n\r\nconst DownloadWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n &.pad {\r\n padding: 25px 20px 0px;\r\n }\r\n\r\n &.big > * {\r\n font-size: 14px !important;\r\n }\r\n\r\n & > div {\r\n font-size: 12px;\r\n color: #333333;\r\n font-weight: 600;\r\n }\r\n`;\r\n\r\nconst DownloadLink = styled.a`\r\n color: #2294d2;\r\n text-decoration: none;\r\n font-size: 12px;\r\n &.big {\r\n font-size: 14px;\r\n }\r\n`;\r\n\r\nconst splitTag = (tag) => {\r\n if (!tag || tag.length < 8) return tag;\r\n return tag.substring(0, 4) + \" \" + tag.substring(4, 8);\r\n};\r\n\r\nconst getFileName = (url) => {\r\n const parts = url.split(\"/\");\r\n return parts[parts.length - 1];\r\n};\r\n\r\nconst DisputesDetailSideBar = ({\r\n selectedDispute,\r\n offer,\r\n isLoading,\r\n openAccordionId = null,\r\n}) => {\r\n const { t } = useTranslation(\"sidebar\");\r\n const shouldShow = !isLoading && offer && selectedDispute;\r\n const [openAccordion, setOpenAccordion] =\r\n useAccordionGroup(openAccordionId);\r\n // const buyerCylindersAnalysis =\r\n // selectedDispute?.buyerCylindersAnalysis &&\r\n // selectedDispute.buyerCylindersAnalysis.length > 0\r\n // ? selectedDispute.buyerCylindersAnalysis\r\n // : null;\r\n\r\n const numQualityTests = () => {\r\n if (!offer.skUs) return 0;\r\n let cnt = 0;\r\n offer.skUs.forEach((offer) => {\r\n if (offer.qualityTestDone) cnt++;\r\n });\r\n return cnt;\r\n };\r\n\r\n return (\r\n <>\r\n {shouldShow && (\r\n <>\r\n \r\n {selectedDispute && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {offer.skUs && (\r\n \r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n let cnt = 0;\r\n return (\r\n
    \r\n
    \r\n \r\n {!sku.saIsContaminated &&\r\n !sku.saIsMixture &&\r\n !sku.saHasR22 && (\r\n \r\n \r\n N/A\r\n \r\n \r\n {t(\r\n \"actions:noContamination\"\r\n )}\r\n \r\n \r\n )}\r\n\r\n {sku.saIsContaminated && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.aGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saIsMixture && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.bGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n {sku.saHasR22 && (\r\n \r\n {++cnt}\r\n \r\n {t(\r\n \"screens:stock.cGradeText\"\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n\r\n {offer.skUs && (\r\n \r\n {numQualityTests() > 0 && (\r\n \r\n
    \r\n {numQualityTests()}{\" \"}\r\n {numQualityTests() > 1\r\n ? t(\"actions:availableTests\")\r\n : t(\"actions:availableTest\")}\r\n
    \r\n \r\n {t(\"actions:downloadAll\")}\r\n \r\n
    \r\n )}\r\n\r\n \r\n splitTag(sku.tagId)\r\n )}\r\n >\r\n {offer.skUs.map((sku, idx) => {\r\n const buyerAnalysis =\r\n selectedDispute.buyerCylindersAnalysis.filter(\r\n (ba) => ba.skuId === sku.skuId\r\n );\r\n const customQuantityAndPrice =\r\n buyerAnalysis &&\r\n buyerAnalysis.length > 0\r\n ? buyerAnalysis[0]\r\n : null;\r\n return (\r\n
    \r\n \r\n
    \r\n {getFileName(\r\n sku.qualityTestUrl\r\n )}\r\n
    \r\n {sku.qualityTestDone ? (\r\n \r\n {t(\"actions:download\")}\r\n \r\n ) : (\r\n
    -
    \r\n )}\r\n
    \r\n {customQuantityAndPrice && (\r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n )}\r\n {selectedDispute && selectedDispute.acceptedBidInfo && (\r\n <>\r\n \r\n \r\n \r\n {selectedDispute.isCleaning ? (\r\n <>\r\n \r\n \r\n \r\n {selectedDispute.acceptedBidInfo && (\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {selectedDispute.acceptedBidInfo && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n {offer && offer.hasAnalysis && (\r\n \r\n {offer.skUs.map((o, i) => {\r\n return (\r\n <>\r\n \" +\r\n t(\"actions:download\") +\r\n \"\"\r\n }\r\n dangerousHtml={true}\r\n />\r\n \" +\r\n t(\"actions:download\") +\r\n \"\"\r\n }\r\n dangerousHtml={true}\r\n />\r\n \r\n );\r\n })}\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {selectedDispute.acceptedBidInfo\r\n .bidCompanyCountry && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DisputesDetailSideBar;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { buildValidation } from \"../../../../../core/validations/ValidationRule\";\r\n\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport { Select } from \"../../../../../components/elements/form-elements\";\r\nimport { VSpace } from \"../../../../pwa/components/StyledElements\";\r\nimport * as yup from \"yup\";\r\n\r\nconst validDispute = (t, index) => {\r\n return yup.lazy((values) => {\r\n return buildValidation({\r\n [`quantity_${index}`]: yup.number().typeError(\"Please Enter a number\").required(\r\n t(\"forms:dispute.wizard.quantityRequired\")\r\n ),\r\n });\r\n });\r\n};\r\n\r\nconst HR = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n border-top: 1px solid #eee;\r\n`;\r\nconst InfoWrapper = styled.div`\r\n width: 100%;\r\n margin-bottom: 10px;\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n & > section {\r\n width: 33.3333%;\r\n display: flex;\r\n flex-direction: column;\r\n font-size: 12px;\r\n font-weight: 700;\r\n\r\n & > div.wrong {\r\n color: #f0c40d !important;\r\n }\r\n }\r\n\r\n & > section.double {\r\n width: 66.666%;\r\n color: #f0c40d !important;\r\n }\r\n\r\n & > section.bold {\r\n font-size: 14px;\r\n font-weight: 700;\r\n }\r\n\r\n & > section.green {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst SectionTitle = styled.div`\r\n width: 100%;\r\n font-size: 14px;\r\n font-weight: bold;\r\n color: ${(p) => p.theme.primaryColor};\r\n`;\r\n\r\nconst SettleWrapper = styled.div`\r\n padding: 0px 0px 0px 25%;\r\n width: 100%;\r\n display: flex;\r\n`;\r\n\r\nconst WizardDisputeSettle = (t, disputes) => {\r\n const initialValues = {};\r\n const steps = [];\r\n\r\n disputes.forEach((cyl) => {\r\n\r\n const index = cyl.disputeDetailId;\r\n\r\n initialValues[`grade_${index}`] = cyl.buyerCylinderDetails.gradeName;\r\n initialValues[`quantity_${index}`] = cyl.buyerCylinderDetails.extractedQuantity;\r\n initialValues[`id_${index}`] = cyl.disputeDetailId;\r\n\r\n steps.push({\r\n name: `${t(\"forms:qualityTest.cylinder\")}: ${cyl.cylinderTagId}`,\r\n fieldNames: [\r\n `grade_${index}`,\r\n `quantity_${index}`,\r\n `id_${index}`,\r\n ],\r\n validation: validDispute(t, index),\r\n fields: (formik) => (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n {t(\"forms:dispute.wizard.qualityAssessment\")}\r\n
    \r\n
    {cyl.sellerCylinderDetails.companyName}
    \r\n
    \r\n
    \r\n
    \r\n {t(\"sidebar:title.quality.qualityConfirmation\")}\r\n
    \r\n
    {cyl.buyerCylinderDetails.companyName}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {t(\"forms:cylinder.cylinderGas\")}:
    \r\n
    {t(\"screens:technician.netQuantity\")}:
    \r\n
    \r\n {t(\"sidebar:label.totalExtractedQuantity\")}:\r\n
    \r\n
    \r\n {t(\"sidebar:label.extraction.qualityGrade\")}:\r\n
    \r\n
    \r\n
    \r\n
    {cyl.sellerCylinderDetails.gasCode}
    \r\n
    {cyl.sellerCylinderDetails.netQuantity.toFixed(2)} kg
    \r\n
    {cyl.sellerCylinderDetails.extractedQuantity.toFixed(2)} kg
    \r\n
    {cyl.sellerCylinderDetails.gradeName}
    \r\n
    \r\n\r\n
    \r\n
    {cyl.buyerCylinderDetails.gasCode}
    \r\n
    {cyl.buyerCylinderDetails.netQuantity.toFixed(2)} kg
    \r\n \r\n {cyl.buyerCylinderDetails.extractedQuantity.toFixed(2)} kg\r\n \r\n \r\n {cyl.buyerCylinderDetails.gradeName}\r\n \r\n
    \r\n
    \r\n \r\n
    {t(\"actions:dialogs.dispute.claim\")}:
    \r\n
    \r\n {cyl.disputeDetailView.disputeReason}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {t(\"actions:dialogs.dispute.settlement\")}:\r\n \r\n \r\n handleSelectChange(e)}\r\n wrapperVariant=\"flex-2\"\r\n {...formik}\r\n />\r\n \r\n \r\n ),\r\n });\r\n });\r\n\r\n return {\r\n title: t(\"actions:dialogs.dispute.finalize\"),\r\n initialValues: initialValues,\r\n steps,\r\n };\r\n};\r\n\r\nexport default WizardDisputeSettle;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n buildValidation,\r\n skipValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\n\r\nimport { Checkbox } from \"../../../../../components/elements/form-elements\";\r\nimport { VSpace } from \"../../../../pwa/components/StyledElements\";\r\nimport * as yup from \"yup\";\r\n\r\nconst HR = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n border-top: 1px solid #eee;\r\n`;\r\nconst InfoWrapper = styled.div`\r\n width: 100%;\r\n margin-bottom: 10px;\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n & > section {\r\n width: 33.3333%;\r\n display: flex;\r\n flex-direction: column;\r\n font-size: 12px;\r\n font-weight: 700;\r\n\r\n & > div.wrong {\r\n color: #f0c40d !important;\r\n }\r\n }\r\n\r\n & > div.third {\r\n width: 33.3333%;\r\n font-size: 12px;\r\n font-weight: 600;\r\n }\r\n\r\n & > div.small {\r\n width: 16.6666%;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n & > div.half {\r\n font-size: 12px;\r\n font-weight: 600;\r\n width: 50%;\r\n }\r\n\r\n & > section.double {\r\n width: 66.666%;\r\n color: #f0c40d !important;\r\n }\r\n\r\n & > section.bold {\r\n font-size: 14px;\r\n font-weight: 700;\r\n }\r\n\r\n & > section.green {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst SectionTitle = styled.div`\r\n width: 100%;\r\n font-size: 14px;\r\n font-weight: bold;\r\n color: ${(p) => p.theme.primaryColor};\r\n`;\r\n\r\nconst validDispute = (t, index) => {\r\n return yup.lazy((values) => {\r\n if (!values[`disputeThisResult_${index}`]) return skipValidation();\r\n return buildValidation({\r\n [`gasConfirmed_${index}`]: yup.boolean().required().oneOf([true]),\r\n [`quantityConfirmed_${index}`]: yup\r\n .boolean()\r\n .required()\r\n .oneOf([true]),\r\n [`gradeConfirmed_${index}`]: yup.boolean().required().oneOf([true]),\r\n });\r\n });\r\n};\r\n\r\nconst WizardDisputeConfirm = (t, disputes) => {\r\n const initialValues = {};\r\n const steps = [];\r\n\r\n disputes.forEach((cyl) => {\r\n const index = cyl.disputeDetailId;\r\n\r\n initialValues[`gasConfirmed_${index}`] =\r\n cyl.sellerCylinderDetails.gasCode ===\r\n cyl.buyerCylinderDetails.gasCode;\r\n initialValues[`gradeConfirmed_${index}`] =\r\n cyl.sellerCylinderDetails.gradeName ===\r\n cyl.disputeDetailView.gradeName;\r\n initialValues[`quantityConfirmed_${index}`] =\r\n cyl.sellerCylinderDetails.extractedQuantity ===\r\n cyl.disputeDetailView.quantity;\r\n initialValues[`id_${index}`] = cyl.disputeDetailId;\r\n initialValues[`disputeThisResult_${index}`] =\r\n (cyl.sellerCylinderDetails.extractedQuantity !==\r\n cyl.disputeDetailView.quantity) |\r\n (cyl.sellerCylinderDetails.gradeName !==\r\n cyl.disputeDetailView.gradeName);\r\n\r\n steps.push({\r\n name: `${t(\"forms:qualityTest.cylinder\")}: ${cyl.cylinderTagId}`,\r\n fieldNames: [\r\n `gradeConfirmed_${index}`,\r\n `quantityConfirmed_${index}`,\r\n `id_${index}`,\r\n ],\r\n validation: validDispute(t, index),\r\n fields: (formik) => (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n {t(\"forms:dispute.wizard.qualityAssessment\")}\r\n
    \r\n
    {cyl.sellerCylinderDetails.companyName}
    \r\n
    \r\n
    \r\n
    \r\n {t(\"sidebar:title.quality.qualityConfirmation\")}\r\n
    \r\n
    {cyl.buyerCylinderDetails.companyName}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {t(\"forms:cylinder.cylinderGas\")}:
    \r\n
    {t(\"screens:technician.netQuantity\")}:
    \r\n
    \r\n {t(\"sidebar:label.totalExtractedQuantity\")}:\r\n
    \r\n
    \r\n {t(\"sidebar:label.extraction.qualityGrade\")}:\r\n
    \r\n
    \r\n
    \r\n
    {cyl.sellerCylinderDetails.gasCode}
    \r\n
    \r\n {cyl.sellerCylinderDetails.netQuantity.toFixed(\r\n 2\r\n )}\r\n kg\r\n
    \r\n
    \r\n {cyl.sellerCylinderDetails.extractedQuantity.toFixed(\r\n 2\r\n )}\r\n kg\r\n
    \r\n
    {cyl.sellerCylinderDetails.gradeName}
    \r\n
    \r\n\r\n
    \r\n
    {cyl.buyerCylinderDetails.gasCode}
    \r\n
    \r\n {cyl.buyerCylinderDetails.netQuantity.toFixed(\r\n 2\r\n )}\r\n kg\r\n
    \r\n \r\n {cyl.buyerCylinderDetails.extractedQuantity.toFixed(2)}\r\n kg\r\n \r\n \r\n {cyl.disputeDetailView.gradeName}\r\n \r\n
    \r\n
    \r\n \r\n
    {t(\"actions:dialogs.dispute.claim\")}:
    \r\n
    \r\n {cyl.disputeDetailView.disputeReason}\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n {initialValues[`disputeThisResult_${index}`] && (\r\n <>\r\n \r\n \r\n {t(\"actions:dialogs.dispute.settlementConsent\")}\r\n :\r\n \r\n \r\n
    \r\n {t(\"forms:cylinder.cylinderGas\")}:\r\n
    \r\n
    \r\n {cyl.sellerCylinderDetails.gasCode}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {t(\"sidebar:label.totalExtractedQuantity\")}:\r\n
    \r\n
    \r\n {cyl.disputeDetailView.quantity.toFixed(\r\n 2\r\n )}\r\n kg\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {t(\"sidebar:label.extraction.qualityGrade\")}\r\n :\r\n
    \r\n
    \r\n {cyl.disputeDetailView.gradeName}\r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n ),\r\n });\r\n });\r\n\r\n return {\r\n title: t(\"actions:dialogs.dispute.finalize\"),\r\n initialValues: initialValues,\r\n steps,\r\n };\r\n};\r\n\r\nexport default WizardDisputeConfirm;\r\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ListingPage from \"../../../components/data/ListingPage\";\r\nimport TransactionStatus from \"../../../components/elements/general/TransactionStatus\";\r\nimport OfferStatus from \"../../../core/enums/OfferStatus\";\r\nimport useBreadcrumbs from \"../../../core/state/navigation/useBreadcrumbs\";\r\nimport sellRefrigerantListingStateModule from \"../../../core/state/sell-refrigerant/sellRefrigerantListingStateModule\";\r\nimport useStateModule from \"../../../core/state/useStateModule\";\r\nimport useImmerReducer from \"../../../hooks/_shared/useImmerReducer\";\r\nimport createDisputeSteps from \"../../SalesCenter/views/components/createDisputeSteps\";\r\nimport BidGradePriceCell from \"../../SalesCenter/views/components/BidGradePriceCell\";\r\nimport MarketplaceFilter from \"../../SalesCenter/views/components/MarketplaceFilter\";\r\nimport DisputesDetailSideBar from \"../../SalesCenter/views/components/DisputesDetailSideBar\";\r\nimport usePageChange from \"../../../hooks/_shared/usePageChange\";\r\nimport AuthorizeComponent from \"../../../core/AuthorizeComponent\";\r\nimport Roles from \"../../../core/enums/Roles\";\r\nimport HamburgerMenu from \"../../../components/menu/HamburgerMenu\";\r\nimport HamburgerMenuAction from \"../../../components/menu/HamburgerMenuAction\";\r\nimport ModalWizard from \"../../../components/modal/ModalWizard\";\r\nimport WizardDisputeSettle from \"../../SalesCenter/views/components/wizard/WizardDiputeSettle\";\r\nimport WizardDisputeConfirm from \"../../SalesCenter/views/components/wizard/WizardDisputeConfirm\";\r\nimport GradeCell from \"../../../components/data/GradeCell\";\r\nimport GreenCell from \"../../../components/data/GreenCell\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport MarketplaceService from \"../../../services/BuyRefrigerant/MarketplaceService\";\r\nimport { toast } from \"react-toastify\";\r\nimport globals from \"../../../globalVars\";\r\nimport HandlingCell from \"../../../components/data/HandlingCell\";\r\n\r\nconst actionTypes = {\r\n SET_HASOFFERS: \"SET_HASOFFERS\",\r\n RESET_HASOFFERS: \"RESET_HASOFFERS\",\r\n SET_GAS_TYPE: \"SET_GAS_TYPE\",\r\n RESET_GAS_TYPE: \"RESET_GAS_TYPE\",\r\n SET_GAS_QUANTITY_TO: \"SET_GAS_QUANTITY\",\r\n RESET_GAS_QUANTITY_TO: \"RESET_GAS_QUANTITY\",\r\n SET_GAS_QUANTITY_FROM: \"SET_GAS_QUANTITY_FROM\",\r\n RESET_GAS_QUANTITY_FROM: \"RESET_GAS_QUANTITY_FROM\",\r\n SET_PRESUMED_QUALITY: \"SET_PRESUMED_QUALITY\",\r\n RESET_PRESUMED_QUALITY: \"RESET_PRESUMED_QUALITY\",\r\n SET_QUALITY_ASSURANCE: \"SET_QUALITY_ASSURANCE\",\r\n RESET_QUALITY_ASSURANCE: \"RESET_QUALITY_ASSURANCE\",\r\n SET_SORT: \"SET_SORT\",\r\n RESET_SORT: \"RESET_SORT\",\r\n SET_ACTIVETAB: \"SET_ACTIVETAB\",\r\n SET_PAGING: \"SET_PAGING\",\r\n};\r\n\r\nconst disputesReducer = (state, action) => {\r\n if (action.type !== actionTypes.SET_PAGING) state.page = 1;\r\n switch (action.type) {\r\n case actionTypes.SET_HASOFFERS:\r\n state.filter.hasOffers = action.payload;\r\n break;\r\n case actionTypes.RESET_HASOFFERS:\r\n delete state.filter.hasOffers;\r\n break;\r\n case actionTypes.SET_ACTIVETAB:\r\n state.filter.offerStatuses = action.payload;\r\n delete state.filter.hasOffers;\r\n delete state.filter.gasType;\r\n delete state.filter.gasQuantityTo;\r\n delete state.filter.presumedQuality;\r\n delete state.filter.hasAnalysis;\r\n // state.orderColumn = \"dealExpiration\";\r\n // state.descending = true;\r\n break;\r\n case actionTypes.SET_PAGING:\r\n state.pageSize = action.payload.pageSize;\r\n state.page = action.payload.pageIndex + 1;\r\n break;\r\n case actionTypes.SET_SORT:\r\n if (action.payload[0].id === \"analysisDone\")\r\n action.payload[0].id = \"hasAnalysis\";\r\n state.orderColumn = action.payload[0].id;\r\n state.descending = action.payload[0].desc;\r\n break;\r\n case actionTypes.RESET_SORT:\r\n state.orderColumn = \"\";\r\n state.descending = true;\r\n break;\r\n case actionTypes.SET_GAS_TYPE:\r\n state.filter.gasType = action.payload;\r\n break;\r\n case actionTypes.RESET_GAS_TYPE:\r\n delete state.filter.gasType;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_TO:\r\n state.filter.gasQuantityTo = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_TO:\r\n delete state.filter.gasQuantityTo;\r\n break;\r\n case actionTypes.SET_GAS_QUANTITY_FROM:\r\n state.filter.gasQuantityFrom = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_GAS_QUANTITY_FROM:\r\n delete state.filter.gasQuantityFrom;\r\n break;\r\n case actionTypes.SET_PRESUMED_QUALITY:\r\n state.filter.presumedQuality = Number(action.payload);\r\n break;\r\n case actionTypes.RESET_PRESUMED_QUALITY:\r\n delete state.filter.presumedQuality;\r\n break;\r\n case actionTypes.SET_QUALITY_ASSURANCE:\r\n state.filter.hasAnalysis = action.payload === \"true\";\r\n break;\r\n case actionTypes.RESET_QUALITY_ASSURANCE:\r\n delete state.filter.hasAnalysis;\r\n break;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst DisputesListing = () => {\r\n const { t } = useTranslation(\"screens\");\r\n const [openAccordionId, setOpenAccordionId] = useState();\r\n const {\r\n // sellingItems,\r\n isLoading,\r\n error,\r\n loadSellingItems,\r\n loadSellingItemById,\r\n loadGasTypes,\r\n gasTypesData,\r\n details,\r\n } = useStateModule(sellRefrigerantListingStateModule);\r\n\r\n useBreadcrumbs([\r\n {\r\n text: t(\"navigation:disputes\"),\r\n },\r\n ]);\r\n\r\n const [sellingItems, setSellingItems] = useState({ data: [] });\r\n\r\n const [filterState, dispatch] = useImmerReducer(disputesReducer, {\r\n filter: { offerStatuses: [OfferStatus.disputed] },\r\n pageSize: 10,\r\n page: 1,\r\n orderColumn: \"disputeDateTime\",\r\n descending: true,\r\n });\r\n\r\n const getDisputes = async () => {\r\n const items = await MarketplaceService.getDisputes(filterState);\r\n setSellingItems(items.data);\r\n };\r\n\r\n useEffect(() => {\r\n getDisputes();\r\n }, [loadGasTypes, filterState]);\r\n\r\n useEffect(() => {\r\n loadGasTypes();\r\n }, [loadGasTypes]);\r\n\r\n const columns = useMemo(() => {\r\n return [\r\n {\r\n Header: t(\"stockListing.headers.gasType\"),\r\n accessor: \"refrigerantGasTypeCode\",\r\n Cell: GreenCell,\r\n },\r\n {\r\n Header: t(\"stockListing.headers.gasQuantity\"),\r\n accessor: \"quantity\",\r\n Cell: ({ cell: { row, value } }) =>\r\n GreenCell({\r\n cell: {\r\n value:\r\n value.toFixed(2) +\r\n ` kg / ${\r\n row.original.numberOfCylinders || \"-\"\r\n } ${t(\"screens:technician.cylinders\")}`,\r\n },\r\n }),\r\n },\r\n {\r\n Header: t(\"table:headers.grade\"),\r\n accessor: \"pressumedGradeName\",\r\n Cell: GradeCell,\r\n },\r\n {\r\n Header: `${t(\"table:headers.bidAmounts\")}/${t(\r\n \"sidebar:label.extraction.qualityGrade\"\r\n )}`,\r\n accessor: \"price\",\r\n Cell: BidGradePriceCell,\r\n },\r\n {\r\n Header: t(\"table:headers.handlingCosts\"),\r\n accessor: \"acceptedBidInfo\",\r\n Cell: ({ cell: { value } }) =>\r\n HandlingCell(\r\n value?.handlingCosts || 0,\r\n setOpenAccordionId,\r\n \"bid.details\"\r\n ),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"status\",\r\n disableSortBy: true,\r\n Cell: ({ cell: { row, value } }) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"disputeId\",\r\n Cell: ({ cell: { value }, row: { original } }) => {\r\n const myDisputeSettle =\r\n original.acceptedBidInfo.bidCompanyId ===\r\n globals.companyId;\r\n return (\r\n \r\n {myDisputeSettle === true && original.status === 0 && (\r\n \r\n {\r\n handleDisputeSettle(original);\r\n }}\r\n />\r\n \r\n )}\r\n {myDisputeSettle !== true && original.status === 1 && (\r\n \r\n {\r\n handleDisputeConfirm(original);\r\n }}\r\n />\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n ];\r\n }, [filterState.filter.offerStatuses, sellingItems, t]);\r\n\r\n const [currentRowData, setCurrentRowData] = useState(null);\r\n const [detailViewIsOpened, setDetailViewIsOpened] = useState(false);\r\n\r\n const onSelect = useCallback(\r\n (row) => {\r\n const selectRow = async (row) => {\r\n setCurrentRowData(row.original);\r\n await loadSellingItemById(row.original.offerId);\r\n setDetailViewIsOpened(!detailViewIsOpened);\r\n };\r\n selectRow(row);\r\n },\r\n [details, loadSellingItemById]\r\n );\r\n\r\n const pageChange = usePageChange(dispatch, filterState);\r\n\r\n const currentSortBy = useMemo(() => {\r\n return [{ id: filterState.orderColumn, desc: filterState.descending }];\r\n }, [filterState.orderColumn, filterState.descending]);\r\n\r\n const sortChange = (sortBy) => {\r\n sortBy.length > 0\r\n ? dispatch({ type: actionTypes.SET_SORT, payload: sortBy })\r\n : dispatch({ type: actionTypes.RESET_SORT });\r\n };\r\n\r\n const closeSideBar = () => {\r\n if (detailViewIsOpened) {\r\n setOpenAccordionId(null);\r\n setDetailViewIsOpened(false);\r\n loadSellingItems(filterState);\r\n }\r\n };\r\n\r\n const handleDisputeSettle = async (dispute) => {\r\n const details = await MarketplaceService.getDisputeDetails(\r\n dispute.disputeId\r\n );\r\n if (details && details.error) {\r\n toast.error(t(details.error.message));\r\n return;\r\n }\r\n ModalWizard.show(\r\n WizardDisputeSettle(t, details.data.data),\r\n {\r\n onSubmit: async (values) => {\r\n const results = ModalWizard.groupValues(values, \"_\", true);\r\n results.forEach((res) => {\r\n res.grade =\r\n res.grade === \"A\" ? 0 : res.grade === \"B\" ? 1 : 2;\r\n res.quantity = Number(res.quantity);\r\n });\r\n const submitted = await MarketplaceService.addDisputeSettle(\r\n results\r\n );\r\n if (submitted && submitted.error) {\r\n toast.error(t(submitted.error.message));\r\n return;\r\n }\r\n getDisputes();\r\n ModalWizard.hide();\r\n },\r\n onCancel: () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"654px\" } }\r\n );\r\n };\r\n\r\n const handleDisputeConfirm = async (dispute) => {\r\n const details = await MarketplaceService.getDisputeDetails(\r\n dispute.disputeId\r\n );\r\n if (details && details.error) {\r\n toast.error(t(details.error.message));\r\n return;\r\n }\r\n ModalWizard.show(\r\n WizardDisputeConfirm(t, details.data.data),\r\n {\r\n onSubmit: async (values) => {\r\n const results = ModalWizard.groupValues(values, \"_\", true);\r\n results.forEach((res) => {\r\n delete res.disputeThisResult;\r\n });\r\n\r\n const submitted = await MarketplaceService.finishDispute({\r\n details: results,\r\n });\r\n if (submitted && submitted.error) {\r\n toast.error(t(submitted.error.message));\r\n return;\r\n }\r\n getDisputes();\r\n ModalWizard.hide();\r\n },\r\n onCancel: () => {\r\n ModalWizard.hidePrompt();\r\n },\r\n },\r\n { style: { minHeight: \"654px\" } }\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {t(\"seo:disputes.title\")}\r\n \r\n {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }}\r\n columns={columns}\r\n tableState={{\r\n data: sellingItems.data,\r\n loading: isLoading,\r\n error: error,\r\n }}\r\n noDataText={t(\"myOffers.noData\")}\r\n paging={{\r\n enablePaging: true,\r\n pageCount: sellingItems.totalPages,\r\n pageSize: sellingItems.pageSize,\r\n onPageChange: pageChange,\r\n currentPageIndex: sellingItems.currentPage - 1,\r\n }}\r\n sorting={{\r\n enableSorting: true,\r\n onSortByChange: sortChange,\r\n currentSortBy: currentSortBy,\r\n }}\r\n detailSideBarTitle={`${t(\"sidebar:title.offerId\")}: ${\r\n details.sellingItemData?.offerNumber\r\n }`}\r\n detailView={\r\n \r\n }\r\n detailViewIsOpened={detailViewIsOpened}\r\n onSelect={onSelect}\r\n closeSideBar={closeSideBar}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default DisputesListing;\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport companyAdminMenuItems from \"../../data/menu/companyAdminMenuItems\";\r\nimport DisputesListing from \"./views/DisputesListing\";\r\nimport useSharedState from \"../../hooks/_shared/useSharedState\";\r\n\r\nconst DisputesScreen = () => {\r\n const [globalState] = useSharedState(\"global\");\r\n useLeftMenu(companyAdminMenuItems(globalState));\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DisputesScreen;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ValidationRule, { buildValidation, skipValidation } from \"../../core/validations/ValidationRule\";\r\nimport commonValidation, { commonRegex } from \"../../core/validations/common\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport useStateModule from \"../../core/state/useStateModule\";\r\nimport companyStateModule from \"../../core/state/company/companyStateModule\";\r\nimport * as yup from \"yup\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport LayoutOneTwo from \"../../components/layout/split/one-two/LayoutOneTwo\";\r\nimport styled from \"styled-components\";\r\nimport Flex from \"../../components/layout/flex/Flex\";\r\nimport { toast } from \"react-toastify\";\r\nimport Headings from \"../../components/elements/headings/Headings\";\r\nimport { Select, Radio, Checkbox } from \"../../components/elements/form-elements\";\r\nimport Button from \"../../components/elements/buttons/Button\";\r\nimport NavigationLink from \"../../components/elements/links/NavigationLink\";\r\nimport InputElement from \"../../components/elements/form-elements/InputElement\";\r\nimport CountryService from \"../../services/User/CountryService\";\r\nimport SingleDatePicker from \"../../components/dateTime/SingleDatePicker\";\r\nimport helpers from \"../../core/helpers\";\r\nimport RegistrationService from \"../../services/Registration/RegistrationService\";\r\n\r\nconst Wrapper = styled.div`\r\n height: 100%;\r\n padding: 50px 30px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-size: 14px;\r\n color: #000;\r\n line-height: 14px;\r\n &.radio {\r\n font-weight: 700;\r\n font-size: 20px;\r\n line-height: 20px;\r\n }\r\n`;\r\n\r\nconst Desc = styled.ul`\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 14px;\r\n padding-inline-start: 30px;\r\n color: #666;\r\n`;\r\n\r\nconst StepsWrapper = styled.div`\r\n position: absolute;\r\n left: 50%;\r\n display: flex;\r\n margin: 32px auto;\r\n width: max-content;\r\n transform: translateX(-50%);\r\n`;\r\n\r\nconst Circle = styled.span`\r\n width: 10px;\r\n height: 10px;\r\n border-radius: 50%;\r\n border: 1px solid ${(p) => p.theme.secondaryColor};\r\n background-color: #fff;\r\n\r\n & + & {\r\n margin-left: 12px;\r\n }\r\n\r\n &.active {\r\n background-color: ${(p) => p.theme.secondaryColor};\r\n }\r\n`;\r\n\r\nconst NavContainer = styled.div`\r\n display: flex;\r\n position: relative;\r\n align-items: center;\r\n justify-content: space-evenly;\r\n`;\r\n\r\nconst GreenCircle = styled.div`\r\n width: 44px;\r\n height: 44px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background: #fff;\r\n color: ${(p) => p.theme.primaryColor};\r\n border: 3px solid ${(p) => p.theme.primaryColor};\r\n border-radius: 50%;\r\n float: left;\r\n margin-right: 25px;\r\n\r\n & img {\r\n height: 16px;\r\n }\r\n`;\r\n\r\nconst VSpace = styled.div`\r\n width: 100%;\r\n height: ${(p) => p.size || 0}px;\r\n`;\r\n\r\nconst Email = styled.div`\r\n margin-top: 35px;\r\n color: ${(p) => p.theme.primaryColor};\r\n`;\r\n\r\nconst Form = styled.form`\r\n display: flex;\r\n justify-content: center;\r\n height: 100%;\r\n flex-direction: column;\r\n margin-bottom: 32px;\r\n & button {\r\n margin: auto auto 0;\r\n }\r\n\r\n & section {\r\n flex-grow: 1;\r\n }\r\n`;\r\n\r\nconst OrangeInfo = styled.img`\r\n width: 44px;\r\n height: 44px;\r\n margin-right: 24px;\r\n`;\r\n\r\nconst BigTitle = styled.div`\r\n font-size: 20px;\r\n font-weight: 700;\r\n\r\n &.regular {\r\n font-weight: 400;\r\n }\r\n\r\n &.vspace {\r\n margin-top: 32px;\r\n margin-bottom: 32px;\r\n }\r\n\r\n &.vspace-big {\r\n margin-top: 40px;\r\n margin-bottom: 48px;\r\n }\r\n\r\n &.header {\r\n text-align: center;\r\n font-size: 24px;\r\n }\r\n`;\r\n\r\nconst QuestMark = styled.span`\r\n position: absolute;\r\n right: -38px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 12px;\r\n width: 20px;\r\n height: 20px;\r\n background-color: ${(p) => p.theme.secondaryColor};\r\n border-radius: 50%;\r\n color: white;\r\n cursor: help;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n &:hover span {\r\n display: block;\r\n }\r\n\r\n & a {\r\n color: #fff;\r\n }\r\n\r\n & span {\r\n display: none;\r\n position: absolute;\r\n right: 0px;\r\n top: 12px;\r\n background-color: #2294d2;\r\n border-radius: 8px;\r\n min-width: 150px;\r\n min-height: 48px;\r\n padding: 8px;\r\n font-size: 12px;\r\n box-shadow: -2px 9px 11px -16px rgba(0, 0, 0, 0.75);\r\n transform: translateY(-50%);\r\n z-index: 2;\r\n line-height: 16px;\r\n\r\n &.wide {\r\n min-width: 250px;\r\n }\r\n\r\n & ul {\r\n margin: 0;\r\n padding-inline-start: 15px;\r\n }\r\n & ul.dashed {\r\n list-style-type: none;\r\n }\r\n & ul.dashed > li {\r\n line-height: 16px;\r\n text-indent: -5px;\r\n }\r\n & ul.dashed > li:before {\r\n content: \"-\";\r\n text-indent: -5px;\r\n }\r\n }\r\n`;\r\n\r\nconst PassInfo = styled.div`\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #fff;\r\n line-height: 18px;\r\n & ul {\r\n margin: 0;\r\n padding-inline-start: 15px;\r\n }\r\n & ul.dashed {\r\n list-style-type: none;\r\n }\r\n & ul.dashed > li {\r\n text-indent: -5px;\r\n }\r\n & ul.dashed > li:before {\r\n content: \"-\";\r\n text-indent: -5px;\r\n }\r\n`;\r\n\r\nconst Section = styled.div`\r\n font-size: 20px;\r\n padding: 0px 0px;\r\n margin-bottom: 35px;\r\n &.bold {\r\n font-weight: 600;\r\n }\r\n & span {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n\r\n @media ${(p) => p.theme.device.mobile} {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nconst FlexNoWrap = styled.div`\r\n display: flex;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n position: relative;\r\n &.between {\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nconst initialValues = {\r\n email: \"\",\r\n country: \"\",\r\n companyName: \"\",\r\n vatNumber: \"\",\r\n password: \"\",\r\n repeatPassword: \"\",\r\n fGasCertificateCheck: true,\r\n fGasCertificate: \"\",\r\n licenceNumber: \"\",\r\n licenceExpirationDate: \"\",\r\n licenceNeverExpires: false,\r\n companyType: 0,\r\n createDaikinId: false,\r\n};\r\n\r\nconst vatMaxLength = {\r\n CZ: 10,\r\n HU: 8,\r\n SK: 10,\r\n};\r\n\r\nconst signupSteps = (t, formik, countries, resendValidationEmail) => {\r\n const handleCountryChange = (ev) => {\r\n formik.setFieldValue(\"vatNumber\", \"\");\r\n formik.handleChange(ev);\r\n };\r\n\r\n return [\r\n
    \r\n \r\n {\r\n formik.setFieldValue(\"companyType\", 0);\r\n }}\r\n >\r\n {t(\"forms:companyType.InstallationCompany\")}\r\n \r\n
    \r\n {\r\n formik.setFieldValue(\"companyType\", 1);\r\n }}\r\n >\r\n {t(\"forms:companyType.Distributor\")}\r\n \r\n {/* setCompany(c.companyId)}\r\n >\r\n
    \r\n We are regulatory body\r\n
    \r\n */}\r\n
    \r\n
    ,\r\n
    \r\n \r\n \r\n \r\n {t(\"screens:login.certNeeded\")}\r\n \r\n \r\n {formik.values.companyType === 0\r\n ? t(\"screens:login.registerProvider\")\r\n : t(\"screens:login.registerWholesaler\")}\r\n \r\n
    {t(\"screens:login.documentReady\")}
    \r\n
    ,\r\n
    \r\n \r\n \r\n ({\r\n key: c.name,\r\n value: c.code,\r\n label: `${c.name}`,\r\n }))}\r\n {...formik}\r\n handleChange={handleCountryChange}\r\n />\r\n \r\n \r\n \r\n ?{t(`screens:login.${formik.values.country}Vat`)}\r\n \r\n \r\n
    ,\r\n
    \r\n {t(\"screens:certificates.companyCert\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ,\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n ?\r\n \r\n \r\n {t(\"screens:login.passInfo\")}\r\n
      \r\n
    • {t(\"screens:login.passLower\")}
    • \r\n
    • {t(\"screens:login.passUpper\")}
    • \r\n
    • {t(\"screens:login.passDigits\")}
    • \r\n
    • {t(\"screens:login.passSymbols\")}
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n ?\r\n \r\n \r\n
    {t(\"screens:login.daikinIdPlatform\")}
    \r\n
    {t(\"screens:login.moreInfo\")}:
    \r\n \r\n https://www.daikin.eu/en_us/daikin-id.html\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ,\r\n
    \r\n \r\n \r\n
    \r\n \r\n \"ok\"\r\n \r\n {t(\"screens:login.receivedRequest\")}\r\n
    \r\n
    \r\n {t(\"screens:forgottenPassword.emailSent\")}:{formik.values.email}\r\n
    \r\n
    {t(\"screens:registration.validateEmail.verify\")}
    \r\n
    \r\n {t(\"screens:registration.validateEmail.resend.text\")}\r\n resendValidationEmail(formik.values.email)}\r\n >\r\n {t(\"screens:registration.validateEmail.resend.button\")}\r\n \r\n
    \r\n
    \r\n
    ,\r\n ];\r\n};\r\n\r\nconst signupValidator = (t, step) =>\r\n yup.lazy((values) => {\r\n switch (step) {\r\n case 3:\r\n return buildValidation({\r\n companyName: ValidationRule.isStringRule().required(t(\"forms:companyName.required\")).rule,\r\n country: ValidationRule.isStringRule().required(t(\"forms:country.required\")).rule,\r\n vatNumber: ValidationRule.isStringRule()\r\n .transform((value, originalValue) => {\r\n return values.country + value;\r\n })\r\n .regexMatchRule(commonRegex.VATMatch, t(\"forms:VAT.invalid\"))\r\n .required(t(\"forms:VAT.required\")).rule,\r\n });\r\n case 4:\r\n return buildValidation({\r\n licenceExpirationDate: values.licenceNeverExpires\r\n ? yup.string()\r\n : ValidationRule.isStringRule().required(t(\"screens:registration.licenceExpirationDateError\"))\r\n .rule,\r\n fGasCertificate: ValidationRule.isStringRule().required(t(\"screens:registration.uploadFile.error\"))\r\n .rule,\r\n licenceNumber: ValidationRule.isStringRule().required(t(\"screens:registration.licenceError\")).rule,\r\n });\r\n\r\n case 5:\r\n return buildValidation({\r\n email: commonValidation.email(t).rule,\r\n password: commonValidation.password(t).rule,\r\n repeatPassword: ValidationRule.shouldBeEqual(\r\n \"password\",\r\n t(\"forms:repeatPassword.invalid\"),\r\n t(\"forms:repeatPassword.required\")\r\n ).rule,\r\n });\r\n\r\n default:\r\n return skipValidation();\r\n }\r\n });\r\n\r\nconst SignupScreen = () => {\r\n const { t } = useTranslation([\"common\", \"forms\"]);\r\n const [currStep, setCurrStep] = useState(1);\r\n const [countries, setCountries] = useState([]);\r\n const { resendValidationEmail } = useStateModule(companyStateModule);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n const result = await CountryService.getCountriesAsync();\r\n let c = result?.data?.data || [];\r\n setCountries(\r\n c\r\n .filter((c) => c.twoLetterCode !== \"NL\")\r\n .map((r) => ({\r\n name: r.countryName,\r\n code: r.twoLetterCode,\r\n }))\r\n );\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async (values) => {\r\n let advance = true;\r\n if (currStep === 5) advance = await handleSignup(values);\r\n if (advance) setCurrStep((s) => s + 1);\r\n };\r\n\r\n const onBack = async (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n setCurrStep((s) => s - 1);\r\n };\r\n\r\n const handleSignup = async (values) => {\r\n if (values.licenceNeverExpires) values.licenceExpirationDate = new Date(\"1/1/3000\");\r\n delete values.licenceNeverExpires;\r\n values.vatNumber = values.country + values.vatNumber;\r\n let formData = helpers.getFormData(values);\r\n\r\n if (values.fGasFile && values.fGasCertificateCheck)\r\n formData.append(\"fGasCertificate\", values.fGasFile, values.fGasFile.name);\r\n const result = await RegistrationService.registerAsync(formData);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n initialValues.country = countries?.[0]?.code || \"\";\r\n const formik = useFormik({\r\n initialValues: initialValues,\r\n validationSchema: signupValidator(t, currStep),\r\n onSubmit: onSubmit,\r\n });\r\n\r\n return (\r\n \r\n \r\n {t(\"seo:registration.title\")}\r\n \r\n \r\n \r\n
    \r\n {t(\"screens:registration.title\")}\r\n {currStep < 6 && (\r\n \r\n )}\r\n
    \r\n
    \r\n {signupSteps(t, formik, countries, resendValidationEmail)[currStep - 1]}\r\n {currStep < 6 && (\r\n \r\n {\r\n onBack(ev);\r\n }}\r\n disabled={currStep === 1}\r\n >\r\n < {t(\"forms:wizard.previous\")}\r\n \r\n\r\n \r\n {[1, 2, 3, 4, 5].map((step, idx) => (\r\n \r\n ))}\r\n \r\n\r\n {}}\r\n >\r\n {t(\"forms:wizard.next\")} >\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {currStep < 6 ? (\r\n
    \r\n {t(\"screens:login.haveAccount\")}{\" \"}\r\n \r\n {t(\"screens:login.title\")}\r\n {\" \"}\r\n {t(\"screens:login.here\")}.\r\n
    \r\n ) : (\r\n
    \r\n \r\n {t(\"screens:forgottenPassword.backToLoginLink\")}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SignupScreen;\r\n","import React from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport PrivateRoute from \"../../core/PrivateRoute\";\r\nimport useLeftMenu from \"../../core/state/navigation/useLeftMenu\";\r\nimport globalAdminMenuItems from \"../../data/menu/globalAdminMenuItems\";\r\nimport RouteCreator from \"../../core/RouteCreator\";\r\nimport CleaningMarketplace from \"../Services/views/CleaningMarketplace\";\r\nimport DistributorDisposalMarket from \"../Services/views/DistributorDisposalMarket\";\r\n\r\nconst ServicesStatisticsScreen = () => {\r\n useLeftMenu(globalAdminMenuItems);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ServicesStatisticsScreen;","import Roles from \"./core/enums/Roles\";\r\nimport RouteCreator from \"./core/RouteCreator\";\r\nimport CompanyAdministrationScreen from \"./screens/Administration/CompanyAdministrationScreen\";\r\nimport MarketplaceStatisticsScreen from \"./screens/Administration/MarketplaceStatisticsScreen\";\r\nimport QRTagsScreen from \"./screens/Administration/QRTagsScreen\";\r\nimport UserAdministrationScreen from \"./screens/Administration/UserAdministrationScreen\";\r\nimport ClientsScreen from \"./screens/Clients/ClientsScreen\";\r\nimport CompanyScreen from \"./screens/Company/views/company/CompanyScreen\";\r\nimport DashboardScreen from \"./screens/Dashboard/DashboardScreen\";\r\nimport MobileDashboard from \"./screens/Dashboard/MobileDashboard\";\r\nimport EquipmentScreen from \"./screens/Equipment/EquipmentScreen\";\r\nimport ForgottenPasswordScreen from \"./screens/ForgottenPassword/ForgottenPasswordScreen\";\r\nimport ResetPasswordScreen from \"./screens/ForgottenPassword/ResetPasswordScreen\";\r\nimport LoginScreen from \"./screens/Login/LoginScreen\";\r\nimport RegisterScreen from \"./screens/Register/RegisterScreen\";\r\nimport RegistrationConfirmedScreen from \"./screens/Register/RegistrationConfirmedScreen\";\r\nimport SalesCenterScreen from \"./screens/SalesCenter/SalesCenterScreen\";\r\nimport StockScreen from \"./screens/Stock/StockScreen\";\r\nimport ActivateUserScreen from \"./screens/User/ActivateUserScreen\";\r\nimport ChangeEmailScreen from \"./screens/User/ChangeEmailScreen\";\r\nimport ProfileScreen from \"./screens/Company/views/employees/ProfileScreen\";\r\nimport FinanceScreen from \"./screens/Finance/FinanceScreen\";\r\nimport ServicesScreen from \"./screens/Services/ServicesScreen\";\r\nimport DisputesScreen from \"./screens/Disputes/DisputesScreen\";\r\nimport SignupScreen from \"./screens/Register/SignupScreen\";\r\nimport ServicesStatisticsScreen from \"./screens/Administration/ServicesStatisticsScreen\";\r\n\r\nexport default [\r\n {\r\n path: RouteCreator.user.login(),\r\n text: \"Login\",\r\n component: LoginScreen,\r\n unprotected: true,\r\n exact: true,\r\n },\r\n {\r\n path: RouteCreator.user.changeEmail(),\r\n text: \"Verify email\",\r\n component: ChangeEmailScreen,\r\n unprotected: true,\r\n exact: true,\r\n },\r\n {\r\n path: RouteCreator.user.verifyLogin(),\r\n text: \"Verify Login\",\r\n component: LoginScreen,\r\n unprotected: true,\r\n exact: true,\r\n },\r\n {\r\n path: RouteCreator.home(),\r\n text: \"Dashboard\",\r\n exact: true,\r\n component: DashboardScreen,\r\n },\r\n {\r\n path: RouteCreator.pwa.root(),\r\n text: \"Mobile Dashboard\",\r\n exact: false,\r\n component: MobileDashboard,\r\n },\r\n {\r\n path: RouteCreator.user.register(),\r\n text: \"Register here\",\r\n component: SignupScreen,\r\n unprotected: true,\r\n },\r\n {\r\n path: RouteCreator.salesCenter.root(),\r\n text: \"Marketplace\",\r\n component: SalesCenterScreen,\r\n roles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser],\r\n },\r\n {\r\n path: RouteCreator.disputes.root(),\r\n text: \"Disputes\",\r\n component: DisputesScreen,\r\n roles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser],\r\n },\r\n {\r\n path: RouteCreator.stock.root(),\r\n text: \"Stock\",\r\n component: StockScreen,\r\n roles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser,Roles.InstallerCompanyTechnician],\r\n },\r\n {\r\n path: RouteCreator.company.root(),\r\n text: \"Company\",\r\n component: CompanyScreen,\r\n roles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser, Roles.InstallerCompanyTechnician],\r\n },\r\n {\r\n path: RouteCreator.equipment.root(),\r\n text: \"Equipment\",\r\n component: EquipmentScreen,\r\n roles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser, Roles.InstallerCompanyTechnician],\r\n },\r\n {\r\n path: RouteCreator.user.forgotPassword(),\r\n text: \"Forgotten password\",\r\n component: ForgottenPasswordScreen,\r\n unprotected: true,\r\n },\r\n {\r\n path: RouteCreator.user.resetPassword(),\r\n text: \"Setup new password\",\r\n component: ResetPasswordScreen,\r\n unprotected: true,\r\n },\r\n {\r\n path: RouteCreator.user.activate(),\r\n text: \"Activate user\",\r\n component: ActivateUserScreen,\r\n unprotected: true,\r\n roles: [Roles.Admin, Roles.MasterAdmin],\r\n },\r\n {\r\n path: RouteCreator.admin.users.root(),\r\n text: \"User Administration\",\r\n component: UserAdministrationScreen,\r\n roles: [Roles.Admin, Roles.MasterAdmin],\r\n },\r\n {\r\n path: RouteCreator.admin.companies.root(),\r\n text: \"CompanyAdministration\",\r\n component: CompanyAdministrationScreen,\r\n roles: [Roles.Admin, Roles.MasterAdmin],\r\n },\r\n {\r\n path: RouteCreator.admin.hangfire(),\r\n component: () => {\r\n window.location.href =\r\n \"/hangfire?token=\" + localStorage.getItem(\"token\");\r\n return null;\r\n },\r\n roles: [Roles.MasterAdmin],\r\n },\r\n {\r\n path: RouteCreator.admin.marketplaceStatistics(),\r\n text: \"Marketplace statistics\",\r\n component: MarketplaceStatisticsScreen,\r\n roles: [Roles.MasterAdmin, Roles.Admin],\r\n },\r\n {\r\n path: RouteCreator.admin.services.root(),\r\n text: \"Services statistics\",\r\n component: ServicesStatisticsScreen,\r\n roles: [Roles.MasterAdmin, Roles.Admin],\r\n },\r\n // {\r\n // path: RouteCreator.admin.marketplace(),\r\n // text: \"Marketplace\",\r\n // component: SalesCenterScreen,\r\n // roles: [Roles.MasterAdmin, Roles.Admin],\r\n // },\r\n // {\r\n // path: RouteCreator.admin.reclaimedMarketplace(),\r\n // text: \"Marketplace\",\r\n // component: SalesCenterScreen,\r\n // roles: [Roles.MasterAdmin, Roles.Admin],\r\n // },\r\n {\r\n path: RouteCreator.user.verifyLogin(),\r\n text: \"Verify login\",\r\n component: () => console.log(\"Verify login\")\r\n },\r\n {\r\n path: RouteCreator.confirm.company(':username'),\r\n text: \"Company confirmed\",\r\n component: RegistrationConfirmedScreen,\r\n unprotected: true\r\n },\r\n {\r\n path: RouteCreator.clients.root(),\r\n text: \"Clients\",\r\n component: ClientsScreen,\r\n roles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser, Roles.InstallerCompanyTechnician]\r\n },\r\n {\r\n path: RouteCreator.admin.qrTags(),\r\n text: 'QR Tags',\r\n component: QRTagsScreen,\r\n roles: [Roles.MasterAdmin, Roles.Admin],\r\n },\r\n {\r\n path: RouteCreator.user.profile(),\r\n text: \"Profile\",\r\n component: ProfileScreen\r\n },\r\n {\r\n path: RouteCreator.finance.root(),\r\n text: \"Finance\",\r\n component: FinanceScreen\r\n },\r\n {\r\n path: RouteCreator.services.root(),\r\n text: \"Services\",\r\n component: ServicesScreen,\r\n roles: [Roles.InstallerCompanyAdmin, Roles.InstallerCompanyUser, Roles.MasterAdmin],\r\n },\r\n];\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n Checkbox,\r\n Select,\r\n} from \"../../../../../components/elements/form-elements\";\r\nimport DatePicker from \"../../../../../components/elements/form-elements/DatePicker\";\r\nimport InputElement from \"../../../../../components/elements/form-elements/InputElement\";\r\nimport commonValidation from \"../../../../../core/validations/common\";\r\nimport ValidationRule, {\r\n buildValidation,\r\n skipValidation,\r\n} from \"../../../../../core/validations/ValidationRule\";\r\nimport {\r\n InfoText,\r\n InfoTitle,\r\n InfoWrapper,\r\n RoundInfo,\r\n} from \"../../../../../components/modal/components/WizardStyling\";\r\nimport CompanyService from \"../../../../../services/Company/CompanyService\";\r\nimport { toast } from \"react-toastify\";\r\nimport CountryService from \"../../../../../services/User/CountryService\";\r\n\r\nconst validTerms = (t) => {\r\n return buildValidation({\r\n acceptTerms: yup\r\n .boolean()\r\n .required()\r\n .oneOf([true], \"'Must Accept Terms and Conditions'\"),\r\n acceptMangoPay: yup\r\n .boolean()\r\n .required()\r\n .oneOf([true], \"'Must Accept Terms and Conditions'\"),\r\n acceptData: yup\r\n .boolean()\r\n .required()\r\n .oneOf([true], \"'Must Accept Terms and Conditions'\"),\r\n });\r\n};\r\n\r\nconst validCompany = (t) => {\r\n return buildValidation({\r\n address: ValidationRule.isStringRule().required(\r\n t(\"forms:address.required\")\r\n ).rule,\r\n city: ValidationRule.isStringRule().required(t(\"forms:city.required\"))\r\n .rule,\r\n postalCode: ValidationRule.isStringRule().required(\r\n t(\"forms:postalCode.required\")\r\n ).rule,\r\n countryId: ValidationRule.isStringRule().required(\r\n t(\"forms:country.required\")\r\n ).rule,\r\n iban: ValidationRule.isStringRule()\r\n .isIBAN(t(\"forms:iban.invalid\"))\r\n .required(t(\"forms:iban.required\")).rule,\r\n companyNumber: ValidationRule.isStringRule().required(\r\n t(\"forms:companyNumber.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst validRepresentative = (t) => {\r\n return yup.lazy((values) => {\r\n return buildValidation({\r\n legalRepresentativeRegion:ValidationRule.isStringRule().required(\r\n t(\"forms:region.required\")\r\n ).rule,\r\n legalRepresentativePostalCode:ValidationRule.isStringRule().required(\r\n t(\"forms:postalCode.required\")\r\n ).rule,\r\n legalRepresentativeCity: ValidationRule.isStringRule().required(\r\n t(\"forms:city.required\")\r\n ).rule,\r\n legalRepresentativeAddress: ValidationRule.isStringRule().required(\r\n t(\"forms:address.required\")\r\n ).rule,\r\n legalRepresentativeFirstName:\r\n ValidationRule.isStringRule().required(\r\n t(\"forms:firstName.required\")\r\n ).rule,\r\n legalRepresentativeLastName: ValidationRule.isStringRule().required(\r\n t(\"forms:lastName.required\")\r\n ).rule,\r\n legalRepresentativeBirthDate:\r\n ValidationRule.isStringRule().required(\r\n t(\"forms:birthDate.required\")\r\n ).rule,\r\n legalRepresentativeCountryOfResidenceId:\r\n ValidationRule.isStringRule().required(\r\n t(\"forms:country.required\")\r\n ).rule,\r\n legalRepresentativeCountryOfResidence: ValidationRule.shouldBeEqual(\r\n \"legalRepresentativeCountryOfResidenceSelected\",\r\n t(\"forms:countryOfResidence.invalid\"),\r\n t(\"forms:countryOfResidence.required\")\r\n ).rule,\r\n legalRepresentativeNationality: ValidationRule.shouldBeEqual(\r\n \"legalRepresentativeNationalitySelected\",\r\n t(\"forms:nationality.invalid\"),\r\n t(\"forms:nationality.required\")\r\n ).rule,\r\n legalRepresentativeEmail: commonValidation.email(t).rule,\r\n });\r\n });\r\n};\r\n\r\nconst validPerson = (t) => {\r\n return buildValidation({\r\n userEmail: commonValidation.email(t).rule,\r\n userLastName: ValidationRule.isStringRule().required(\r\n t(\"forms:contactLastName.required\")\r\n ).rule,\r\n userFirstName: ValidationRule.isStringRule().required(\r\n t(\"forms:contactLastName.required\")\r\n ).rule,\r\n });\r\n};\r\n\r\nconst validCert = (t) =>\r\n yup.lazy((values) => {\r\n if (!values.licenceCheck) return skipValidation();\r\n return buildValidation({\r\n userlicenceNumber: ValidationRule.isStringRule().required(\r\n t(\"forms:equipmentName.required\")\r\n ).rule,\r\n userlicenceExpiryDate: ValidationRule.isStringRule().required(\r\n t(\"forms:equipmentSerialNumber.required\")\r\n ).rule,\r\n userlicenceCertificateFile: ValidationRule.isStringRule().required(\r\n t(\"forms:equipmentManufacturer.required\")\r\n ).rule,\r\n });\r\n });\r\n\r\nlet nationalityLookupResult = [];\r\n\r\nconst nationalityLookup = async (filter) => {\r\n if (!filter || filter.length < 3) return [];\r\n const res = await CompanyService.getNationalities(filter);\r\n if (res.error) {\r\n toast.error(res.error.message);\r\n return [];\r\n }\r\n nationalityLookupResult = res.data.data;\r\n return res.data.data.map((r) => r.nationality);\r\n};\r\n\r\nlet countryLookupResult = [];\r\nconst countryLookup = async (getAllCountries) => {\r\n if (!getAllCountries || getAllCountries.length < 3) return [];\r\n const res = await CountryService.getCountryNames(getAllCountries);\r\n\r\n if (res.error) {\r\n toast.error(res.error.message);\r\n return [];\r\n }\r\n countryLookupResult = res.data.data;\r\n return res.data.data.map((r) => r.countryName);\r\n};\r\n\r\nconst getNationalId = (nationality) => {\r\n const match = nationalityLookupResult.filter(\r\n (itm) => itm.nationality === nationality\r\n );\r\n return match.length > 0 ? match[0].id : \"\";\r\n};\r\n\r\nconst getCountryId = (country) => {\r\n const match = countryLookupResult.filter((c) => c.countryName === country);\r\n return match.length > 0 ? match[0].id : \"\";\r\n};\r\n\r\nconst CertificateWrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-grow: 1;\r\n\r\n &.non-selectable {\r\n opacity: 0.45;\r\n }\r\n`;\r\n\r\nconst FlexRowBetween = styled.div`\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 0 2%;\r\n\r\n & > * {\r\n flex-grow: 1 !important;\r\n margin: 0 !important;\r\n max-width: 100% !important;\r\n }\r\n\r\n & > * + * {\r\n margin-left: 3% !important;\r\n }\r\n`;\r\n\r\nconst StepInfo = styled.div`\r\n width: 100%;\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: #000;\r\n padding: 15px 0px;\r\n & a {\r\n text-decoration: none;\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n & a:hover {\r\n text-decoration: underline;\r\n }\r\n & div {\r\n padding-bottom: 25px;\r\n margin-left: -30px;\r\n }\r\n & span {\r\n color: ${(p) => p.theme.primaryColor};\r\n }\r\n`;\r\n\r\nconst Separator = styled.div`\r\n width: 100%;\r\n height: 1px;\r\n background-color: #ddd;\r\n`;\r\n\r\nconst TermsWrapper = styled.div`\r\n padding: 0px 15px;\r\n & label {\r\n font-weight: normal;\r\n }\r\n`;\r\n\r\nconst defaultInitialValues = {};\r\n\r\nconst AccountWizard = (t, i18n, initialValues, countries, isEdit) => {\r\n let validateCert = initialValues ? initialValues.licenceCheck : false;\r\n\r\n const getLocalizedPdfLink = (docType) => {\r\n const lng = i18n.language;\r\n switch (docType) {\r\n case \"terms\":\r\n switch (lng) {\r\n case \"hu\":\r\n return \"https://retradeables.com/hu/altalanos-felhasznalasi-feltetelek/\";\r\n case \"sk\":\r\n return \"https://retradeables.com/sk/zmluvne-podmienky/\";\r\n case \"cz\":\r\n return \"https://retradeables.com/cs/podminkami-pouzivani-a-prohlasenim/\";\r\n default:\r\n return \"https://retradeables.com/terms-and-conditions/\";\r\n }\r\n case \"data\":\r\n switch (lng) {\r\n case \"hu\":\r\n return \"https://retradeables.com/hu/adatvedelmi-szabalyzat/\";\r\n case \"sk\":\r\n return \"https://retradeables.com/sk/zasady-ochrany-udajov/ \";\r\n case \"cz\":\r\n return \" https://retradeables.com/cs/smernice-o-ochrane-udaju/\";\r\n default:\r\n return \"https://retradeables.com/data-protection-policy/\";\r\n }\r\n case \"mango\":\r\n switch (lng) {\r\n default:\r\n return \"https://www.mangopay.com/terms/PSP/PSP_MANGOPAY_EN.pdf\";\r\n }\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n const handleLicenceCheck = (ev, formik) => {\r\n validateCert = ev.target.checked;\r\n formik.setFieldValue(\"licenceCheck\", ev.target.checked);\r\n };\r\n\r\n const handleTermsCheck = (ev, formik) => {\r\n formik.setFieldValue(\"acceptTerms\", ev.target.checked);\r\n };\r\n\r\n const handleDataCheck = (ev, formik) => {\r\n formik.setFieldValue(\"acceptData\", ev.target.checked);\r\n };\r\n\r\n const handleMangoCheck = (ev, formik) => {\r\n formik.setFieldValue(\"acceptMangoPay\", ev.target.checked);\r\n };\r\n\r\n return {\r\n title: t(\"forms:account.title\"),\r\n initialValues: initialValues || defaultInitialValues,\r\n steps: [\r\n {\r\n name: t(\"forms:account.step0Name\"),\r\n fieldNames: [\"acceptTerms\", \"acceptData\", \"acceptMangoPay\"],\r\n validation: validTerms(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n
    {`${t(\r\n \"forms:account.giveConsent\"\r\n )}:`}
    \r\n \r\n {`${t(\r\n \"forms:account.terms\"\r\n )} `}\r\n \r\n {`${t(\"forms:account.ofPlatform\")} `}\r\n
    \r\n\r\n handleTermsCheck(ev, formik)}\r\n {...formik}\r\n />\r\n \r\n \r\n \r\n {`${t(\r\n \"forms:account.dataAgreement\"\r\n )} `}\r\n \r\n {`${t(\"forms:account.ofDaikinEurope\")} `}\r\n \r\n\r\n handleDataCheck(ev, formik)}\r\n {...formik}\r\n />\r\n \r\n \r\n \r\n {`${t(\r\n \"forms:account.agreement\"\r\n )} `}\r\n \r\n {`${t(\"forms:account.ofMangoPay\")} `}\r\n \r\n\r\n handleMangoCheck(ev, formik)}\r\n {...formik}\r\n />\r\n
    \r\n \r\n \r\n
    \r\n \r\n {t(\"forms:account.didYouKnow\")}\r\n \r\n \r\n {t(\"forms:account.step1Info\")}\r\n \r\n
    \r\n
    \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:account.step1Name\"),\r\n fieldNames: [\r\n \"address\",\r\n \"city\",\r\n \"postalCode\",\r\n \"region\",\r\n \"countryId\",\r\n \"iban\",\r\n \"companyNumber\",\r\n ],\r\n validation: validCompany(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n 0\r\n ? countries.map((country) => {\r\n return {\r\n key: country.id,\r\n value: country.id,\r\n label: country.countryName,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n />\r\n\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:account.didYouKnow\")}\r\n \r\n \r\n {t(\"forms:account.step1Info\")}\r\n \r\n
    \r\n
    \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:account.step2Name\"),\r\n fieldNames: [\r\n \"legalRepresentativeFirstName\",\r\n \"legalRepresentativeLastName\",\r\n \"legalRepresentativeBirthDate\",\r\n \"legalRepresentativeNationalityId\",\r\n \"legalRepresentativeNationality\",\r\n \"legalRepresentativeNationalitySelected\",\r\n \"legalRepresentativeCountryOfResidenceId\",\r\n \"legalRepresentativeCountryOfResidence\",\r\n \"legalRepresentativeCountryOfResidenceSelected\",\r\n \"legalRepresentativeEmail\",\r\n \"legalRepresentativeAddress\",\r\n \"legalRepresentativeCity\",\r\n \"legalRepresentativePostalCode\",\r\n \"legalRepresentativeRegion\"\r\n ],\r\n validation: validRepresentative(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* 0\r\n ? countries.map((country) => {\r\n return {\r\n key: country.id,\r\n value: country.id,\r\n label: country.countryName,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n /> */}\r\n \r\n \r\n {\r\n setTimeout(() => {\r\n formik.setFieldValue(\r\n \"legalRepresentativeNationalitySelected\",\r\n sel\r\n );\r\n formik.setFieldValue(\r\n \"legalRepresentativeNationalityId\",\r\n getNationalId(sel)\r\n );\r\n }, 250);\r\n }}\r\n wrapperVariant=\"flex-3\"\r\n {...formik}\r\n />\r\n {\r\n setTimeout(() => {\r\n formik.setFieldValue(\r\n \"legalRepresentativeCountryOfResidenceSelected\",\r\n sel\r\n );\r\n formik.setFieldValue(\r\n \"legalRepresentativeCountryOfResidenceId\",\r\n getCountryId(sel)\r\n );\r\n }, 250);\r\n }}\r\n wrapperVariant=\"flex-3\"\r\n {...formik}\r\n />\r\n \r\n {/* 0\r\n ? countries.map((country) => {\r\n return {\r\n key: country.id,\r\n value: country.id,\r\n label: country.countryName,\r\n };\r\n })\r\n : []\r\n }\r\n {...formik}\r\n /> */}\r\n\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:account.didYouKnow\")}\r\n \r\n \r\n {t(\"forms:account.step2Info\")}\r\n \r\n
    \r\n
    \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:account.step4Name\"),\r\n fieldNames: [\r\n \"userEmail\",\r\n \"userPhoneNumber\",\r\n \"userFirstName\",\r\n \"userLastName\",\r\n ],\r\n validation: validPerson(t),\r\n fields: (formik) => (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n
    \r\n \r\n {t(\"forms:account.didYouKnow\")}\r\n \r\n \r\n {t(\"forms:account.step4Info\")}\r\n \r\n
    \r\n
    \r\n \r\n ),\r\n },\r\n {\r\n name: t(\"forms:account.step5Name\"),\r\n fieldNames: [\r\n \"licenceCheck\",\r\n \"userlicenceNumber\",\r\n \"userlicenceExpiryDate\",\r\n \"userlicenceCertificateFile\",\r\n ],\r\n validation: validCert(t),\r\n fields: (formik) => (\r\n <>\r\n handleLicenceCheck(ev, formik)}\r\n {...formik}\r\n />\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {t(\"forms:account.didYouKnow\")}\r\n \r\n \r\n {t(\"forms:account.step5Info\")}\r\n \r\n
    \r\n
    \r\n \r\n ),\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport default AccountWizard;\r\n","import React, { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport Headings from \"../../../../components/elements/headings/Headings\";\r\nimport ModalDialog, {\r\n useModal,\r\n} from \"../../../../components/modal/ModalDialog\";\r\nimport ModalWizard from \"../../../../components/modal/ModalWizard\";\r\nimport helpers from \"../../../../core/helpers\";\r\nimport CompanyService from \"../../../../services/Company/CompanyService\";\r\nimport LoginService from \"../../../../services/Login/LoginService\";\r\nimport CountryService from \"../../../../services/User/CountryService\";\r\nimport UserService from \"../../../../services/User/UserService\";\r\nimport AccountWizard from \"./wizard/AccountWizard\";\r\n\r\nconst SetupAccountScreen = () => {\r\n const { t, i18n } = useTranslation(\"screens\");\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const companyId = userDetails.CompanyId || null;\r\n\r\n const updateCompanyData = async (values) => {\r\n const data = {\r\n phoneNumber: values.phoneNumber,\r\n iban: values.iban,\r\n address: values.address,\r\n postalCode: values.postalCode,\r\n city: values.city,\r\n countryId: values.countryId,\r\n region: values.region,\r\n legalRepresentativeRegion:values.legalRepresentativeRegion,\r\n legalRepresentativePostalCode:values.legalRepresentativePostalCode,\r\n legalRepresentativeCity:values.legalRepresentativeCity,\r\n legalRepresentativeAddress: values.legalRepresentativeAddress,\r\n legalRepresentativeFirstName: values.legalRepresentativeFirstName,\r\n legalRepresentativeLastName: values.legalRepresentativeLastName,\r\n legalRepresentativeBirthDate: new Date(\r\n Date.parse(values.legalRepresentativeBirthDate)\r\n ).toJSON(),\r\n legalRepresentativeEmail: values.legalRepresentativeEmail,\r\n legalRepresentativeCountryOfResidenceId:\r\n values.legalRepresentativeCountryOfResidenceId,\r\n legalRepresentativeNationalityId:\r\n values.legalRepresentativeNationalityId,\r\n companyNumber: values.companyNumber,\r\n };\r\n return await CompanyService.setCompanyDataAsync(\r\n helpers.getFormData(data)\r\n );\r\n };\r\n\r\n const updateUserData = async (values) => {\r\n const data = {\r\n email: values.userEmail,\r\n firstName: values.userFirstName,\r\n lastName: values.userLastName,\r\n phoneNumber: values.userPhoneNumber,\r\n twoFactorEnabled: true,\r\n passwordExpiration: 90,\r\n };\r\n return await UserService.setUserDetailsAsync(data);\r\n };\r\n\r\n const updateUserCert = async (values) => {\r\n const data = {\r\n licenceNumber: values.userlicenceNumber,\r\n licenceExpirationDate: values.userlicenceExpiryDate,\r\n fGasCertificate: values.userlicenceCertificateFile,\r\n };\r\n return await UserService.setUserCertificateAsync(\r\n helpers.getFormData(data)\r\n );\r\n };\r\n\r\n const { modalProps, toggleOpen } = useModal({\r\n onConfirm: () => {\r\n toggleOpen();\r\n LoginService.logout();\r\n window.location.replace(\"/?login=1\");\r\n },\r\n onCancel: () => {\r\n toggleOpen();\r\n },\r\n confirmText: t(\"actions:dialogs.signOut.confirmText\"),\r\n cancelFirst: true,\r\n });\r\n\r\n const showSetup = async () => {\r\n const result = await CompanyService.getCompanyDataAsync(companyId);\r\n if (result && result.error) {\r\n toast.error(t(result.error.message));\r\n return;\r\n }\r\n const initialValues = result.data.data[0];\r\n if (initialValues.licences.length) {\r\n initialValues.licenceNumber =\r\n initialValues.licences[0].licenceNumber;\r\n initialValues.licenceExpiryDate =\r\n initialValues.licences[0].licenceExpiryDate;\r\n } else {\r\n initialValues.licenceNumber = \"\";\r\n initialValues.licenceExpiryDate = \"\";\r\n }\r\n delete initialValues.licences;\r\n initialValues.acceptTerms = false;\r\n initialValues.acceptData = false;\r\n initialValues.acceptMangoPay = false;\r\n initialValues.legalRepresentativeFirstName = \"\";\r\n initialValues.legalRepresentativeLastName = \"\";\r\n initialValues.legalRepresentativeBirthDate = \"\";\r\n initialValues.legalRepresentativeNationality = \"\";\r\n initialValues.legalRepresentativeNationalitySelected = \"\";\r\n initialValues.legalRepresentativeNationalityId = \"\";\r\n initialValues.legalRepresentativeCountryOfResidenceId = \"\";\r\n initialValues.legalRepresentativeCountryOfResidence = \"\";\r\n initialValues.legalRepresentativeCountryOfResidenceSelected = \"\";\r\n initialValues.legalRepresentativeEmail = \"\";\r\n initialValues.legalRepresentativeAddress=\"\";\r\n initialValues.legalRepresentativeCity=\"\";\r\n initialValues.legalRepresentativePostalCode=\"\";\r\n initialValues.legalRepresentativeRegion=\"\";\r\n initialValues.iban = \"\";\r\n initialValues.companyNumber = \"\";\r\n initialValues.userFirstName = \"\";\r\n initialValues.userLastName = \"\";\r\n initialValues.userEmail = initialValues.companyUsers[0].email;\r\n initialValues.userPhoneNumber =\r\n initialValues.companyUsers[0].phoneNumber;\r\n initialValues.userlicenceNumber = \"\";\r\n initialValues.userlicenceExpiryDate = \"\";\r\n initialValues.userlicenceCertificateFile = \"\";\r\n initialValues.licenceCheck = false;\r\n\r\n const response = await CountryService.getCountriesAsync();\r\n if (response && response.error) {\r\n toast.error(t(response.error.message));\r\n return;\r\n }\r\n\r\n Object.keys(initialValues).forEach((key) => {\r\n if (initialValues[key] === null) initialValues[key] = \"\";\r\n });\r\n\r\n const countries = response.data.data;\r\n\r\n ModalWizard.show(\r\n AccountWizard(t, i18n, initialValues, countries),\r\n {\r\n \r\n onSubmit: async (values) => {\r\n\r\n const updCompany = await updateCompanyData(values);\r\n if (updCompany.error) {\r\n ModalWizard.submitFailed(updCompany.error.message);\r\n return;\r\n }\r\n\r\n const updUser = await updateUserData(values);\r\n if (updUser.error) {\r\n ModalWizard.submitFailed(updUser.error.message);\r\n return;\r\n }\r\n\r\n if (values.licenceCheck) {\r\n const updCert = await updateUserCert(values);\r\n if (updCert.error) {\r\n ModalWizard.submitFailed(updCert.error.message);\r\n return;\r\n }\r\n }\r\n\r\n toast.success(\r\n t(\"actions:dialogs.updateAccountInfo.success\")\r\n );\r\n ModalWizard.hide();\r\n\r\n await LoginService.refresh();\r\n window.location.replace(\"/?login=1\");\r\n },\r\n onCancel: async () => {\r\n ModalWizard.hidePrompt(() => {\r\n LoginService.logout();\r\n window.location.replace(\"/\");\r\n });\r\n },\r\n },\r\n { wide: true, style: { minHeight: \"720px\" }, logo: true }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n showSetup();\r\n }, []);\r\n\r\n return (\r\n \r\n {t(\"actions:dialogs.signOut.title\")}\r\n

    {t(\"actions:dialogs.signOut.text\")}

    \r\n
    \r\n );\r\n};\r\n\r\nexport default SetupAccountScreen;\r\n","const Color = require('color');\r\n\r\nconst $inputColor = \"#ffffff\";\r\nconst $primaryColor = \"#48b05e\";\r\nconst $secondaryColor = \"#2294d2\";\r\nconst $tertiaryColor = \"#04A9F5\";\r\nconst $textColor = \"#000000\";\r\n\r\n/* plain colors */\r\nconst $white = \"#FFF\";\r\nconst $whiteSmoke = \"#F8F8F8\";\r\nconst $lightGray= \"#EFEFEF\";\r\nconst $silver = \"#D5D5D5\";\r\nconst $ivory = \"#F5F5F5\";\r\nconst $neutral = \"#8E8E8E\";\r\nconst $error = \"#E94E4E\";\r\nconst $attention = \"#000000\";\r\nconst $inputBorderColor = \"#E2E2E2\";\r\nconst $green = \"#48b05e\";\r\nconst $disabled = \"#ccc\";\r\nconst $active = \"#1F91C1\";\r\nconst $tooltip = \"#454B60\";\r\n\r\nexport const device = {\r\n mobile: \"(max-width: 768px)\",\r\n tablet: \"(max-width: 991.98px)\",\r\n desktop: \"(min-width: 769px)\"\r\n};\r\n\r\nexport default {\r\n fontFamily: \"Poppins, sans-serif\",\r\n\r\n /* Colors*/\r\n primaryColor: $primaryColor,\r\n primaryActionColor: $tertiaryColor,\r\n secondaryColor: $secondaryColor,\r\n secondaryNegativeColor: $error,\r\n tertiaryColor: $tertiaryColor,\r\n tertiaryNegativeColor: $error,\r\n checkBoxDefaultBgColor: $inputColor,\r\n textColor: $textColor,\r\n textWhite: $white,\r\n textActive: $green,\r\n textPagination: \"#4D4F5C\",\r\n textDisabled: $disabled,\r\n menuItems: '#505050',\r\n error: $error,\r\n textUploader: '#8E8E8E',\r\n textNeutral: $neutral,\r\n bidA: '#2B736B',\r\n bidB: '#94C21C',\r\n bidC: '#F0C40D',\r\n\r\n /* Backgrounds */\r\n bgDisabled: $lightGray,\r\n bgIvory: $ivory,\r\n bgWhite: $white,\r\n bgActive: $green,\r\n bgInactive: $error,\r\n bgSideBar: $white,\r\n bgFileUploader: $tertiaryColor,\r\n bgHeader: $whiteSmoke,\r\n bgUserActionElem: \"#F4F4F4\",\r\n bgUserActionButton: $green,\r\n bgModuleCards: $lightGray,\r\n bgMenuActive: $green,\r\n bgMenuHover: $lightGray,\r\n bgTableActive: $lightGray,\r\n bgDataCard: \"#F0F0F0\",\r\n bgTabs: $lightGray,\r\n bgTabsActive: $green,\r\n bgPagination: \"#EDEDED\",\r\n bgCloseMenuButton: $whiteSmoke,\r\n bgCloseSlideButton: $primaryColor,\r\n bgStatusIconDefault: \"#EDEDED\",\r\n bgStatusIconFinished: $primaryColor,\r\n bgTooltip: $tooltip,\r\n\r\n /* Overlay Background */\r\n bgOverlay: $ivory,\r\n\r\n /* Colors for Inputs */\r\n inputBgColor: $inputColor,\r\n inputPlaceholder: \"#898989\",\r\n\r\n /* Colors for text*/\r\n primaryColorText: $white,\r\n secondaryColorText: $tertiaryColor,\r\n attentionColor: $attention,\r\n walletMain: $primaryColor,\r\n walletTransaction: \"#E98C13\",\r\n\r\n /* Colors for borders*/\r\n primaryColorBorder: $primaryColor,\r\n primaryActionColorBorder: $tertiaryColor,\r\n secondaryColorBorder: $secondaryColor,\r\n tertiaryColorBorder: $tertiaryColor,\r\n secondaryNegativeColorBorder: $error,\r\n primaryInputBorderColor: $inputBorderColor,\r\n tableInputBorderColor: $inputBorderColor,\r\n sidebarWrapperBorderColor: $silver,\r\n sidebarFieldBorderColor: $inputBorderColor,\r\n tableActiveBorder: $active,\r\n secondaryInputBorderColor: $secondaryColor,\r\n headerBorderColor: \"#D8D8D8\",\r\n tabsBorderColor: \"#DCDCDC\",\r\n borderColorDisabled: $lightGray,\r\n borderColorError: $error,\r\n borderModalDialogColor: \"#ccc\",\r\n borderSeparator: \"#DDDDDD\",\r\n\r\n /* Colors for checkboxes */\r\n checkBoxActiveBgColor: \"#EFEFEF\",\r\n\r\n /* Link colors */\r\n primaryLinkColor: $primaryColor,\r\n\r\n /* Colors on hover */\r\n primaryColorHover: '#41a198',\r\n secondaryColorHover: '#41a198',\r\n\r\n /* Buttons */\r\n variantCancelBg: $error,\r\n variantCancelBgHover: Color($error).lighten(0.5).string(),\r\n variantCancelColor: \"#FFF\",\r\n\r\n /* Border Radius */\r\n inputBorderRadius: \"6px\",\r\n buttonsBorderRadius: \"27px\",\r\n filtersBorderRadius: \"23px\",\r\n closeButtonBorderRadius: \"4px\",\r\n cardsBorderRadius: \"12px\",\r\n actionButtonBorderRadius: '16px',\r\n walletBorderRadius: '4px',\r\n\r\n /* Loader colors */\r\n\r\n /* Errors */\r\n errorColor: $error,\r\n errorTextColor: $white,\r\n\r\n /* Default width */\r\n widthButtonMin: \"164px\",\r\n widthActionButtonMin: \"88px\",\r\n leftMenuWidth: '280px',\r\n\r\n /* Default height */\r\n heightButtonBig: \"44px\",\r\n heightButtonSmall: \"32px\",\r\n heightInputBig: \"46px\",\r\n heightInputBigPx: 46,\r\n heightInputSmall: \"32px\",\r\n\r\n /* Default padding */\r\n paddingButton: \"0 32px\",\r\n paddingInlineButton: \"0 24px\",\r\n\r\n /* Shadows */\r\n buttonShadow: \"4px 4px 8px 0 rgba(34, 34, 34, 0.29)\",\r\n buttonShadowNegative: \"4px 4px 8px 0 rgba(233, 78, 78, 0.29), -2px 4px 8px 0 rgba(233, 78, 78, 0.29)\",\r\n modalShadow: \"15px 15px 30px rgba(163, 163, 163, 0.16), -15px 15px 30px rgba(163, 163, 163, 0.16)\",\r\n notifierShadow: \"4px 4px 8px 0 rgba(34, 34, 34, 0.29)\",\r\n closeMenuShadow: \"0 3px 6px rgba(0, 0, 0, 0.16)\",\r\n closeSideBarShadow: \"-3px 0px 6px rgba(0, 0, 0, 0.16)\",\r\n walletShadow: \"4px 4px 8px rgba(34, 34, 34, 0.30)\",\r\n\r\n /* Sizes */\r\n baseFontSize: '16px',\r\n h1FontSize: '1.125rem',\r\n h2FontSize: '1rem',\r\n h1TitleFontSize: '2.5rem',\r\n h1TitleFontSizeSmall: '1.5rem',\r\n h2TitleFontSize: '2.0rem',\r\n labelFontSize: '0.875rem',\r\n inputFontSize: '0.875rem',\r\n\r\n /* Breakpoints */\r\n smallDevices: '576px',\r\n mediumDevices: '768px',\r\n largeDevices: '992px',\r\n extraLargeDevices: '1200px',\r\n superExtraLargeDevices: '1400px',\r\n device,\r\n /* Heights */\r\n heightHeader: '60px'\r\n}\r\n","import Roles from \"./core/enums/Roles\";\r\nimport sk from \"date-fns/locale/sk\";\r\nimport hu from \"date-fns/locale/hu\";\r\nimport cz from \"date-fns/locale/cs\";\r\nimport i18n from \"i18next\";\r\nimport React, { useEffect } from \"react\";\r\nimport LoginService from \"./services/Login/LoginService\";\r\nimport { registerLocale, setDefaultLocale } from \"react-datepicker\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { initReactI18next, useTranslation } from \"react-i18next\";\r\nimport { BrowserRouter as Router, Redirect, Route, Switch } from \"react-router-dom\";\r\nimport useSharedState from \"./hooks/_shared/useSharedState\";\r\nimport { ThemeProvider } from \"styled-components\";\r\nimport { Normalize } from \"styled-normalize\";\r\nimport ListingPageProvider from \"./components/data/ListingPageProvider\";\r\nimport GlobalStyles from \"./components/elements/GlobalStyles\";\r\nimport AppHeader from \"./components/elements/header/AppHeader.js\";\r\nimport { Main } from \"./components/elements/Main\";\r\nimport MainLayout from \"./components/layout/split/one-two/MainLayout\";\r\nimport Loader from \"./components/loaders/Loader\";\r\nimport ModalWizard from \"./components/modal/ModalWizard\";\r\nimport Notifier from \"./components/notifications/Notifier\";\r\nimport PrivateRoute from \"./core/PrivateRoute\";\r\nimport companyStateModule from \"./core/state/company/companyStateModule\";\r\nimport userStateModule from \"./core/state/user/userStateModule.js\";\r\nimport useStateModule from \"./core/state/useStateModule.js\";\r\nimport globals from \"./globalVars\";\r\nimport useMatchMedia from \"./hooks/_shared/useMatchMedia\";\r\nimport routes from \"./routes\";\r\nimport SetupAccountScreen from \"./screens/Company/views/company/SetupAccountScreen.js\";\r\nimport UserService from \"./services/User/UserService\";\r\nimport CountryService from \"./services/User/CountryService\";\r\nimport CompanyService from \"./services/Company/CompanyService\";\r\nimport defaultTheme from \"./themes/default\";\r\nimport actions_en from \"./translations/en/actions\";\r\nimport common_en from \"./translations/en/common.json\";\r\nimport exceptions_en from \"./translations/en/exceptions.json\";\r\nimport filters_en from \"./translations/en/filters\";\r\nimport forms_en from \"./translations/en/forms.json\";\r\nimport header_en from \"./translations/en/header\";\r\nimport moduleCards_en from \"./translations/en/moduleCards.json\";\r\nimport navigation_en from \"./translations/en/navigation\";\r\nimport screens_en from \"./translations/en/screens.json\";\r\nimport sidebar_en from \"./translations/en/sidebar\";\r\nimport table_en from \"./translations/en/table\";\r\nimport seo_en from \"./translations/en/seo\";\r\nimport actions_sk from \"./translations/sk/actions\";\r\nimport common_sk from \"./translations/sk/common.json\";\r\nimport exceptions_sk from \"./translations/sk/exceptions.json\";\r\nimport filters_sk from \"./translations/sk/filters\";\r\nimport forms_sk from \"./translations/sk/forms\";\r\nimport header_sk from \"./translations/sk/header\";\r\nimport moduleCards_sk from \"./translations/sk/moduleCards.json\";\r\nimport navigation_sk from \"./translations/sk/navigation\";\r\nimport screens_sk from \"./translations/sk/screens\";\r\nimport sidebar_sk from \"./translations/sk/sidebar\";\r\nimport table_sk from \"./translations/sk/table\";\r\nimport seo_sk from \"./translations/sk/seo\";\r\nimport actions_hu from \"./translations/hu/actions\";\r\nimport common_hu from \"./translations/hu/common.json\";\r\nimport exceptions_hu from \"./translations/hu/exceptions.json\";\r\nimport filters_hu from \"./translations/hu/filters\";\r\nimport forms_hu from \"./translations/hu/forms\";\r\nimport header_hu from \"./translations/hu/header\";\r\nimport moduleCards_hu from \"./translations/hu/moduleCards.json\";\r\nimport navigation_hu from \"./translations/hu/navigation\";\r\nimport screens_hu from \"./translations/hu/screens\";\r\nimport sidebar_hu from \"./translations/hu/sidebar\";\r\nimport table_hu from \"./translations/hu/table\";\r\nimport seo_hu from \"./translations/hu/seo\";\r\nimport actions_cz from \"./translations/cz/actions\";\r\nimport common_cz from \"./translations/cz/common.json\";\r\nimport exceptions_cz from \"./translations/cz/exceptions.json\";\r\nimport filters_cz from \"./translations/cz/filters\";\r\nimport forms_cz from \"./translations/cz/forms\";\r\nimport header_cz from \"./translations/cz/header\";\r\nimport moduleCards_cz from \"./translations/cz/moduleCards.json\";\r\nimport navigation_cz from \"./translations/cz/navigation\";\r\nimport screens_cz from \"./translations/cz/screens\";\r\nimport sidebar_cz from \"./translations/cz/sidebar\";\r\nimport table_cz from \"./translations/cz/table\";\r\nimport seo_cz from \"./translations/cz/seo\";\r\n\r\nregisterLocale(\"sk\", sk);\r\nregisterLocale(\"cz\", cz);\r\nregisterLocale(\"hu\", hu);\r\n\r\nif (!localStorage.getItem(\"lang\")) {\r\n localStorage.setItem(\"lang\", \"en\");\r\n}\r\n\r\nconst lang = localStorage.getItem(\"lang\");\r\n\r\ni18n.on(\"languageChanged\", (lng) => {\r\n localStorage.setItem(\"lang\", lng);\r\n setDefaultLocale(lng);\r\n});\r\n\r\ni18n.use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources: {\r\n en: {\r\n common: common_en,\r\n forms: forms_en,\r\n screens: screens_en,\r\n exceptions: exceptions_en,\r\n moduleCards: moduleCards_en,\r\n sidebar: sidebar_en,\r\n header: header_en,\r\n actions: actions_en,\r\n navigation: navigation_en,\r\n filters: filters_en,\r\n table: table_en,\r\n seo: seo_en,\r\n },\r\n sk: {\r\n header: header_sk,\r\n navigation: navigation_sk,\r\n screens: screens_sk,\r\n actions: actions_sk,\r\n common: common_sk,\r\n exceptions: exceptions_sk,\r\n filters: filters_sk,\r\n forms: forms_sk,\r\n moduleCards: moduleCards_sk,\r\n sidebar: sidebar_sk,\r\n table: table_sk,\r\n seo: seo_sk,\r\n },\r\n hu: {\r\n header: header_hu,\r\n navigation: navigation_hu,\r\n screens: screens_hu,\r\n actions: actions_hu,\r\n common: common_hu,\r\n exceptions: exceptions_hu,\r\n filters: filters_hu,\r\n forms: forms_hu,\r\n moduleCards: moduleCards_hu,\r\n sidebar: sidebar_hu,\r\n table: table_hu,\r\n seo: seo_hu,\r\n },\r\n cz: {\r\n header: header_cz,\r\n navigation: navigation_cz,\r\n screens: screens_cz,\r\n actions: actions_cz,\r\n common: common_cz,\r\n exceptions: exceptions_cz,\r\n filters: filters_cz,\r\n forms: forms_cz,\r\n moduleCards: moduleCards_cz,\r\n sidebar: sidebar_cz,\r\n table: table_cz,\r\n seo: seo_cz,\r\n },\r\n },\r\n lng: lang,\r\n fallbackLng: \"en\",\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n transSupportBasicHtmlNodes: true,\r\n });\r\n\r\nconst ECertificateStatus = {\r\n Submitted: 0,\r\n Valid: 1,\r\n Rejected: 2,\r\n Expired: 99,\r\n NoAttestation: -1, //display only\r\n};\r\n\r\nfunction App() {\r\n let params = new URLSearchParams(window.location.search);\r\n const ssoLoginId = params.get(\"ssoId\");\r\n\r\n useEffect(() => {\r\n const getSsoData = async () => {\r\n const data = await LoginService.getSSOTokens(ssoLoginId);\r\n if (data.token && data.refreshToken) {\r\n localStorage.setItem(\"token\", data.token);\r\n localStorage.setItem(\r\n \"refreshToken\",\r\n data.refreshToken\r\n );\r\n window.location.href = window.location.origin;\r\n }\r\n };\r\n if (ssoLoginId) getSsoData();\r\n }, []);\r\n\r\n const { isAuthenticated, isFullyRegistered, loadUserData, userData } =\r\n useStateModule(userStateModule);\r\n\r\n const [globalState, setGlobalState] = useSharedState(\"global\", {\r\n userLoaded: false,\r\n showDisposalSection: false,\r\n showGasAnalyzers: false,\r\n });\r\n\r\n const { loadCompany } = useStateModule(companyStateModule);\r\n const userDetails = UserService.getUserDetailsFromToken();\r\n const userCompanyId = userDetails ? userDetails.CompanyId : null;\r\n const userCountryId = userDetails ? userDetails.CountryId : null;\r\n const userRoles = UserService.getUserRoles();\r\n\r\n const getCompanyCertificateAsync = async () => {\r\n const resCompany = await CompanyService.getMyCompanyCertificates();\r\n if (!resCompany.error) {\r\n const certs = resCompany.data.data;\r\n const validCerts = certs.filter((c) => c.licenceStatus === ECertificateStatus.Valid);\r\n setGlobalState({\r\n hasValidCompanyCertificate: validCerts.length > 0,\r\n userLoaded: true,\r\n });\r\n }\r\n };\r\n\r\n const isUserCertValid = (userData) => {\r\n return (\r\n userData.licences.length > 0 &&\r\n userData.licences.filter((l) => l.licenceStatus === 1).length > 0\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (isAuthenticated && !userData.isLoaded && !userData.isLoading) {\r\n loadUserData();\r\n }\r\n if (\r\n isAuthenticated &&\r\n isFullyRegistered &&\r\n !userData.isLoaded &&\r\n !userData.isLoading &&\r\n userCompanyId\r\n ) {\r\n loadCompany(userCompanyId);\r\n }\r\n globals.userCountryId = userCountryId;\r\n globals.companyId = userCompanyId;\r\n globals.userRoles = userRoles;\r\n globals.isAdmin = globals.userRoles\r\n ? globals.userRoles.includes(Roles.MasterAdmin) ||\r\n globals.userRoles.includes(Roles.Admin)\r\n : false;\r\n globals.VATPercentage = userData.vatPercentage ? userData.vatPercentage / 100 + 1.0 : 1;\r\n globals.VATPercString = userData.vatPercentage ? userData.vatPercentage : 0;\r\n\r\n if (userData.isLoaded && !globalState.userLoaded) {\r\n globals.isDistributor = userData.companyType === 1;\r\n globals.showDisposalSection =\r\n userData.showDisposalSection !== undefined ? userData.showDisposalSection : true;\r\n setGlobalState({\r\n enableHandlingCosts:\r\n userData.enableHandlingCosts !== undefined\r\n ? userData.enableHandlingCosts\r\n : false,\r\n hasCertificateRights: userData.hasCertificateRights,\r\n showCertificateWarning: userData.showCertificateWarning,\r\n hasValidUserCertificate: isUserCertValid(userData),\r\n isDistributor: userData.companyType === 1,\r\n isMasterAdmin: (globals.userRoles = userData.roleNames.includes(Roles.MasterAdmin)),\r\n isAdmin:\r\n userData.roleNames.includes(Roles.MasterAdmin) ||\r\n userData.roleNames.includes(Roles.Admin),\r\n userCountryId: userDetails.CountryId,\r\n showDisposalSection:\r\n userData.showDisposalSection !== undefined\r\n ? userData.showDisposalSection\r\n : true,\r\n showGasAnalyzers:\r\n userData.showGasAnalyzers !== undefined ? userData.showGasAnalyzers : true,\r\n showServicesSection:\r\n userData.showServicesSection !== undefined\r\n ? userData.showServicesSection\r\n : true,\r\n userCompanyId: userCompanyId,\r\n });\r\n getCompanyCertificateAsync();\r\n }\r\n }, [\r\n isAuthenticated,\r\n userData.isLoaded,\r\n userData.isLoading,\r\n loadUserData,\r\n loadCompany,\r\n userCompanyId,\r\n userRoles,\r\n isFullyRegistered,\r\n ]);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n const result = await CountryService.getCountriesAsync();\r\n globals.countries = result?.data?.data || [];\r\n })();\r\n }, []);\r\n\r\n const { t } = useTranslation();\r\n globals.isMobile = useMatchMedia(\"(max-width: 768px)\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {!globals.isMobile && }\r\n\r\n {!isFullyRegistered && isAuthenticated ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n {routes.map((r) => {\r\n return r.unprotected ? (\r\n \r\n ) : (\r\n \r\n );\r\n })}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n